X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_hc.c;h=1d6bd4cbc5da6ab9c19af8e02954ab6cb0b70760;hb=6d3a534d99c0974a14d674862566ba1fbfda5fb8;hp=26fe62480b15c0e39ba166e955972fcc2bd88ece;hpb=8fe59539760b4d569c902912818c12bb5ffa9dde;p=16.git diff --git a/src/lib/16_hc.c b/src/lib/16_hc.c index 26fe6248..1d6bd4cb 100755 --- a/src/lib/16_hc.c +++ b/src/lib/16_hc.c @@ -27,11 +27,11 @@ #include //from ftp://213.85.246.177/pub/FreeBSD/ports/archivers/arj/work/arj-3.10.22/environ.c +#if 0 //#ifdef __WATCOMC__ -#define FARCORELEFTPTR __huge -long HC_farcoreleft() +long HC_Newfarcoreleft() { - void FARCORELEFTPTR *hp; static long rc=736L; long s_rc; + void __huge *hp; static long rc=736L; long s_rc; s_rc=rc; rc+=2L; do @@ -49,8 +49,9 @@ long HC_farcoreleft() } while(hp!=NULL); return((rc-16L)*1024L); } -//#endif +#endif +//from: https://stackoverflow.com/questions/14386856/c-check-available-ram void #ifdef __BORLANDC__ * @@ -117,6 +118,7 @@ HC_LargestFreeBlock(size_t* Size) return p; } +//from: https://stackoverflow.com/questions/14386856/c-check-available-ram size_t HC_coreleft(void) { size_t total = 0; @@ -161,12 +163,13 @@ size_t HC_coreleft(void) return total; } -void far* HC_LargestFarFreeBlock(size_t* Size) +//far version of above +void far* HC_LargestFarFreeBlock(unsigned long* Size) { - size_t s0, s1; + unsigned long s0, s1; void far* p; - s0 = ~(size_t)0 ^ (~(size_t)0 >> 1); + s0 = ~(unsigned long)0 ^ (~(unsigned long)0 >> 1); while (s0 && (p = _fmalloc(s0)) == NULL) s0 >>= 1; @@ -190,14 +193,15 @@ void far* HC_LargestFarFreeBlock(size_t* Size) return p; } -size_t HC_farcoreleft_(void) +//far version of above +unsigned long HC_farcoreleft(void) { - size_t total = 0; + unsigned long total = 0UL; void far* pFirst = NULL; void far* pLast = NULL; for(;;) { - size_t largest; + unsigned long largest; void far* p = HC_LargestFarFreeBlock(&largest); if (largest < sizeof(void far*)) { @@ -361,7 +365,7 @@ size_t _basedcoreleft(void) } return total; }*/ - +#if 0 size_t HC_GetFreeSize(void) { struct _heapinfo h_info; @@ -376,15 +380,16 @@ size_t HC_GetFreeSize(void) if((h_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") h_used += h_info._size; h_total += h_info._size; } - HC_heapstat0(heap_status); + HCL_heapstat0(heap_status); return h_free; } +#endif -size_t HC_GetFarFreeSize(void) +unsigned long HC_GetFarFreeSize(void) { struct _heapinfo fh_info; int heap_status; - size_t fh_free=0, fh_total=0, fh_used=0; + unsigned long fh_free=0, fh_total=0, fh_used=0; fh_info._pentry = NULL; for(;;) { @@ -394,7 +399,7 @@ size_t HC_GetFarFreeSize(void) if((fh_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") fh_used += fh_info._size; fh_total += fh_info._size; } - HC_heapstat0(heap_status); + HCL_heapstat0(heap_status); return fh_free; } @@ -412,7 +417,7 @@ size_t HC_GetNearFreeSize(void) if((nh_info._useflag == _USEDENTRY ? "USED" : "FREE")=="USED") nh_used += nh_info._size; nh_total += nh_info._size; } - HC_heapstat0(heap_status); + HCL_heapstat0(heap_status); return nh_free; } @@ -441,7 +446,7 @@ void HC_heapdump(global_game_variables_t *gvar) h_total += h_info._size; write(gvar->handle.heaphandle,scratch,strlen(scratch)); } - HC_heapstat(gvar, heap_status, &scratch); + HCL_heapstat(gvar, heap_status, &scratch); #endif //near @@ -463,7 +468,7 @@ nh_info._pentry, nh_info._size );*/ nh_total += nh_info._size; write(gvar->handle.heaphandle,scratch,strlen(scratch)); } - HC_heapstat(gvar, heap_status, &scratch); + HCL_heapstat(gvar, heap_status, &scratch); //far strcpy(scratch,"\n == far ==\n\n"); @@ -484,7 +489,7 @@ fh_info._pentry, fh_info._size );*/ fh_total += fh_info._size; write(gvar->handle.heaphandle,scratch,strlen(scratch)); } - HC_heapstat(gvar, heap_status, &scratch); + HCL_heapstat(gvar, heap_status, &scratch); strcpy(scratch,"\n"); strcat(scratch,kittengets(2,0,"Memory Type Total Used Free\n")); @@ -493,18 +498,20 @@ fh_info._pentry, fh_info._size );*/ printmeminfoline(&scratch, "Near", nh_total, nh_used, nh_free); printmeminfoline(&scratch, "Far", fh_total, fh_used, fh_free); strcat(scratch,"---------------- -------- -------- --------\n"); - strcat(scratch,"HC_coreleft = "); ultoa((dword)HC_coreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n"); - strcat(scratch,"HC_farcoreleft = "); ultoa((dword)HC_farcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n"); - strcat(scratch,"HC_GetFreeSize = "); ultoa((dword)HC_GetFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n"); + strcat(scratch,"HC_coreleft = "); ultoa((dword)HC_coreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n"); + strcat(scratch,"HC_farcoreleft = "); ultoa((dword)HC_farcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n"); +// strcat(scratch,"HC_Newfarcoreleft = "); ultoa((dword)HC_Newfarcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n"); +// strcat(scratch,"HC_GetFreeSize = "); ultoa((dword)HC_GetFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n"); strcat(scratch,"HC_GetNearFreeSize = "); ultoa((dword)HC_GetNearFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n"); strcat(scratch,"HC_GetFarFreeSize = "); ultoa((dword)HC_GetFarFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n"); - strcat(scratch,"memavl = "); ultoa((dword)_memavl(),str,10); strcat(scratch,str); strcat(scratch,"\n"); - strcat(scratch,"stackavail = "); ultoa((dword)stackavail(),str,10); strcat(scratch,str); strcat(scratch,"\n"); + strcat(scratch,"coreleft = "); ultoa((dword)coreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n"); + strcat(scratch,"farcoreleft = "); ultoa((dword)farcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n"); + strcat(scratch,"stackavail = "); ultoa((dword)stackavail(),str,10); strcat(scratch,str); strcat(scratch,"\n"); write(gvar->handle.heaphandle,scratch,strlen(scratch)); HC_CloseDebug(gvar); } -void HC_heapstat(global_game_variables_t *gvar, int heap_status, byte *str) +void HCL_heapstat(global_game_variables_t *gvar, int heap_status, byte *str) { switch( heap_status ) { case _HEAPEND: @@ -526,7 +533,7 @@ void HC_heapstat(global_game_variables_t *gvar, int heap_status, byte *str) write(gvar->handle.heaphandle,(str),strlen((str))); } -void HC_heapstat0(int heap_status) +void HCL_heapstat0(int heap_status) { switch( heap_status ) { case _HEAPEND: @@ -545,7 +552,22 @@ void HC_heapstat0(int heap_status) printf("ERROR - bad node in heap\n"); } } + +unsigned long farcoreleft() +{ +//---- _fheapgrow(); + return HC_farcoreleft(); +//stack overflows return HC_GetFarFreeSize(); +} + +unsigned long coreleft() +{ + _nheapgrow(); + return _memavl(); +// return HC_GetNearFreeSize(); +} #endif + /* ============================ = @@ -578,17 +600,3 @@ void HC_CloseDebug(global_game_variables_t *gvar) strcpy(gvar->handle.heapdumpfilename, "heap.16w"); #endif } - -#ifdef __WATCOMC__ -unsigned long farcoreleft() -{ - _fheapgrow(); - return HC_farcoreleft(); -} - -unsigned long coreleft() -{ - _nheapgrow(); - return _memavl(); -} -#endif