home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / dbmalloc-1.14-bin.lha / include / dbmalloc / malloc.h
C/C++ Source or Header  |  1996-10-12  |  20KB  |  623 lines

  1. /*
  2.  * (c) Copyright 1990, 1991, 1992 Conor P. Cahill (cpcahil@virtech.vti.com)
  3.  *
  4.  * This software may be distributed freely as long as the following conditions
  5.  * are met:
  6.  *         * the distribution, or any derivative thereof, may not be
  7.  *          included as part of a commercial product
  8.  *        * full source code is provided including this copyright
  9.  *        * there is no charge for the software itself (there may be
  10.  *          a minimal charge for the copying or distribution effort)
  11.  *        * this copyright notice is not modified or removed from any
  12.  *          source file
  13.  */
  14. /*
  15.  * $Id: malloc.h.org,v 1.38 1992/08/22 16:27:13 cpcahil Exp $
  16.  */
  17.  
  18. #ifndef _DEBUG_MALLOC_INC
  19. #define _DEBUG_MALLOC_INC 1
  20.  
  21. #ifdef    force_cproto_to_use_defines
  22.  
  23. /*
  24.  * these are just here because cproto used the c-preprocessor to generate
  25.  * the prototypes and if they were left as #defines the prototypes.h file
  26.  * would have the contents of the define, not the define itself
  27.  */
  28.  
  29. typedef char        DATATYPE;
  30. typedef int        SIZETYPE;
  31. typedef void        VOIDTYPE;
  32. typedef char        MEMDATA;
  33. typedef int        MEMSIZE;
  34. typedef int        STRSIZE;
  35. typedef int        FREETYPE;
  36. typedef int        EXITTYPE;
  37.  
  38. #if 0
  39. #ifdef WRTSIZE
  40. #undef WRTSIZE
  41. #endif
  42. typedef unsigned int    WRTSIZE;
  43. #endif
  44.  
  45. /*
  46.  * for now, define CONST as const.  A sed script in the makefile will change 
  47.  * this back to CONST in the prototypes.h file.
  48.  */
  49. #define CONST const
  50.  
  51. #else  /* force_cproto_to_use_defines */
  52.  
  53. /*
  54.  * The following entries are automatically added by the Configure script.
  55.  * If they are not correct for your system, then Configure is not handling
  56.  * your system correctly.  Please report this to the author along with
  57.  * a description of your system and the correct values
  58.  */
  59.  
  60.  
  61.  
  62. #if       (__GNUC__ == 2) && __STDC__
  63.  
  64. #define VOIDTYPE void
  65. #define CONST const
  66. #define EXITTYPE void
  67. #define DATATYPE void
  68. #define SIZETYPE size_t
  69. #define FREETYPE void
  70. #define MEMDATA void
  71. #define MEMSIZE size_t
  72. #define MEMCMPTYPE unsigned char
  73. #define STRSIZE size_t
  74. #define STRCMPTYPE char
  75.  
  76. #else  /* (__GNUC__ == 2) && __STDC__ */
  77.  
  78.  
  79. #if       (__GNUC__ == 2)
  80.  
  81. #define VOIDTYPE void
  82. #define CONST 
  83. #define EXITTYPE void
  84. #define DATATYPE void
  85. #define SIZETYPE size_t
  86. #define FREETYPE void
  87. #define MEMDATA void
  88. #define MEMSIZE size_t
  89. #define MEMCMPTYPE unsigned char
  90. #define STRSIZE size_t
  91. #define STRCMPTYPE char
  92.  
  93. #endif /* (__GNUC__ == 2) */
  94.  
  95.  
  96. #endif /* (__GNUC__ == 2) && __STDC__ */
  97.  
  98. /*
  99.  * END of automatic configuration stuff.
  100.  */
  101.  
  102. /*
  103.  * if DATATYPE is not defined, then the configure script must have had a 
  104.  * problem, or was used with a different compiler.  So we have to stop
  105.  * here and get the user to fix the problem.
  106.  */
  107. #ifndef   DATATYPE
  108.     /*
  109.      * the following string should cause a comilation error and get the
  110.      * user to look at this stuff to find out what is wrong.
  111.      */
  112.     "This file is not configured correctly for this system. Run configure
  113.      and check its results"
  114.     char * malloc(); /* DON'T REMOVE THIS LINE if you get a compiler error
  115.                 here it is because the malloc.h file is not 
  116.                 configured correctly  See the readme/problems
  117.                 files for more info */
  118.  
  119. #endif /* DATATYPE */
  120.  
  121. #endif /* force_cproto_to_use_defines */
  122.  
  123. #define VOIDCAST (VOIDTYPE)
  124.  
  125. /*
  126.  * since we redefine much of the stuff that is #defined in string.h and 
  127.  * memory.h, we should do what we can to make sure that they don't get 
  128.  * included after us.  This is typically accomplished by a special symbol
  129.  * (similar to _DEBUG_MALLOC_INC defined above) that is #defined when the
  130.  * file is included.  Since we don't want the file to be included we will
  131.  * #define the symbol ourselves.  These will typically have to change from
  132.  * one system to another.  I have put in several standard mechanisms used to
  133.  * support this mechanism, so hopefully you won't have to modify this file.
  134.  */
  135. #ifndef _H_STRING
  136. #define _H_STRING        1
  137. #endif 
  138. #ifndef __STRING_H
  139. #define __STRING_H        1
  140. #endif 
  141. #ifndef _STRING_H_
  142. #define _STRING_H_        1
  143. #endif 
  144. #ifndef _STRING_H 
  145. #define _STRING_H         1
  146. #endif 
  147. #ifndef _STRING_INCLUDED
  148. #define _STRING_INCLUDED    1
  149. #endif
  150. #ifndef __string_h
  151. #define __string_h        1
  152. #endif
  153. #ifndef _string_h
  154. #define _string_h        1
  155. #endif
  156. #ifndef __string_h__
  157. #define __string_h__        1
  158. #endif
  159. #ifndef _strings_h
  160. #define _strings_h        1
  161. #endif
  162. #ifndef __strings_h
  163. #define __strings_h        1
  164. #endif
  165. #ifndef __strings_h__
  166. #define __strings_h__        1
  167. #endif
  168. #ifndef _H_MEMORY
  169. #define _H_MEMORY        1
  170. #endif
  171. #ifndef __MEMORY_H
  172. #define __MEMORY_H        1
  173. #endif
  174. #ifndef _MEMORY_H_
  175. #define _MEMORY_H_        1
  176. #endif
  177. #ifndef _MEMORY_H
  178. #define _MEMORY_H        1
  179. #endif
  180. #ifndef _MEMORY_INCLUDED
  181. #define _MEMORY_INCLUDED    1
  182. #endif
  183. #ifndef __memory_h
  184. #define __memory_h        1
  185. #endif
  186. #ifndef _memory_h
  187. #define _memory_h        1
  188. #endif
  189. #ifndef __memory_h__
  190. #define __memory_h__        1
  191. #endif
  192.  
  193. /*
  194.  * for NCR, we need to disable their in-line expansion of the str* routines
  195.  */
  196. #define ISTRING    1
  197.  
  198. /*
  199.  * Malloc warning/fatal error handler defines...
  200.  */
  201. #define M_HANDLE_DUMP    0x80  /* 128 */
  202. #define M_HANDLE_IGNORE    0
  203. #define M_HANDLE_ABORT    1
  204. #define M_HANDLE_EXIT    2
  205. #define M_HANDLE_CORE    3
  206.     
  207. /*
  208.  * Mallopt commands and defaults
  209.  *
  210.  * the first four settings are ignored by the debugging dbmallopt, but are
  211.  * here to maintain compatibility with the system malloc.h.
  212.  */
  213. #define M_MXFAST    1        /* ignored by mallopt        */
  214. #define M_NLBLKS    2        /* ignored by mallopt        */
  215. #define M_GRAIN        3        /* ignored by mallopt        */
  216. #define M_KEEP        4        /* ignored by mallopt        */
  217. #define MALLOC_WARN    100        /* set malloc warning handling    */
  218. #define MALLOC_FATAL    101        /* set malloc fatal handling    */
  219. #define MALLOC_ERRFILE    102        /* specify malloc error file    */
  220. #define MALLOC_CKCHAIN    103        /* turn on chain checking    */
  221. #define MALLOC_FILLAREA    104        /* turn off area filling    */
  222. #define MALLOC_LOWFRAG    105        /* use best fit allocation mech    */
  223. #define MALLOC_CKDATA    106        /* turn off/on data checking    */
  224. #define MALLOC_REUSE    107        /* turn off/on freed seg reuse    */
  225. #define MALLOC_SHOWLINKS 108        /* turn off/on adjacent link disp */
  226. #define MALLOC_DETAIL    109        /* turn off/on detail output    */
  227. #define MALLOC_FREEMARK    110        /* warn about freeing marked segs*/
  228. #define MALLOC_ZERO    111        /* warn about zero len allocs    */
  229.  
  230. union dbmalloptarg
  231. {
  232.     int      i;
  233.     char    * str;
  234. };
  235.  
  236. /*
  237.  * disable the standard mallopt function
  238.  */
  239. #define mallopt(a,b)    (0)
  240.  
  241. /*
  242.  * Malloc warning/fatal error codes
  243.  */
  244. #define M_CODE_CHAIN_BROKE    1    /* malloc chain is broken    */
  245. #define M_CODE_NO_END        2    /* chain end != endptr        */
  246. #define M_CODE_BAD_PTR        3    /* pointer not in malloc area    */
  247. #define M_CODE_BAD_MAGIC    4    /* bad magic number in header    */
  248. #define M_CODE_BAD_CONNECT    5    /* chain poingers corrupt    */
  249. #define M_CODE_OVERRUN        6    /* data overrun in malloc seg    */
  250. #define M_CODE_REUSE        7    /* reuse of freed area        */
  251. #define M_CODE_NOT_INUSE    8    /* pointer is not in use    */
  252. #define M_CODE_NOMORE_MEM    9    /* no more memory available    */
  253. #define M_CODE_OUTOF_BOUNDS    10    /* gone beyound bounds         */
  254. #define M_CODE_FREELIST_BAD    11    /* inuse segment on freelist    */
  255. #define M_CODE_NOBOUND        12    /* can't calculate boundry    */
  256. #define M_CODE_STK_NOCUR    13    /* no current element on stack    */
  257. #define M_CODE_STK_BADFUNC    14    /* current func doesn't match    */
  258. #define M_CODE_UNDERRUN        15    /* data underrun in malloc seg    */
  259. #define M_CODE_FREEMARK        16    /* free of marked segment    */
  260. #define M_CODE_ZERO_ALLOC    17    /* zero length allocation    */
  261.  
  262. #ifndef __STDCARGS
  263. #if  __STDC__ || __cplusplus
  264. #define __STDCARGS(a) a
  265. #else
  266. #define __STDCARGS(a) ()
  267. #endif
  268. #endif
  269.  
  270. #if __cplusplus
  271. extern "C" {
  272. #endif
  273.  
  274. VOIDTYPE      malloc_dump __STDCARGS((int));
  275. VOIDTYPE      malloc_list __STDCARGS((int,unsigned long, unsigned long));
  276. int          dbmallopt __STDCARGS((int, union dbmalloptarg *));
  277. DATATYPE    * debug_calloc __STDCARGS((CONST char *,int,SIZETYPE,SIZETYPE));
  278. FREETYPE      debug_cfree __STDCARGS((CONST char *, int, DATATYPE *));
  279. FREETYPE      debug_free __STDCARGS((CONST char *, int, DATATYPE *));
  280. DATATYPE    * debug_malloc __STDCARGS((CONST char *,int, SIZETYPE));
  281. DATATYPE    * debug_realloc __STDCARGS((CONST char *,int,
  282.                         DATATYPE *,SIZETYPE));
  283. VOIDTYPE      DBmalloc_mark __STDCARGS((CONST char *,int, DATATYPE *));
  284. unsigned long      DBmalloc_inuse __STDCARGS((CONST char *,int,
  285.                         unsigned long *));
  286. int          DBmalloc_chain_check __STDCARGS((CONST char *,int,int));
  287. SIZETYPE      DBmalloc_size __STDCARGS((CONST char *,int,CONST DATATYPE *));
  288. DATATYPE    * DBmemalign __STDCARGS((CONST char *, int,SIZETYPE, SIZETYPE));
  289. void          StackEnter __STDCARGS((CONST char *, CONST char *, int));
  290. void          StackLeave __STDCARGS((CONST char *, CONST char *, int));
  291.  
  292. /*
  293.  * X allocation related prototypes
  294.  */
  295. char        * debug_XtMalloc __STDCARGS((CONST char *, int, unsigned int));
  296. char        * debug_XtRealloc __STDCARGS((CONST char *, int,
  297.                         char *, unsigned int));
  298. char        * debug_XtCalloc __STDCARGS((CONST char *, int,
  299.                         unsigned int, unsigned int));
  300. void          debug_XtFree __STDCARGS((CONST char *, int, char *));
  301. void        * debug_XtBCopy  __STDCARGS((CONST char *, int, char *,
  302.                         char *, int));
  303. extern void    (*XtAllocErrorHandler) __STDCARGS((CONST char *));
  304.  
  305. /*
  306.  * memory(3) related prototypes
  307.  */
  308. MEMDATA      * DBmemccpy __STDCARGS((CONST char *file, int line,
  309.                     MEMDATA  *ptr1, CONST MEMDATA  *ptr2,
  310.                     int ch, MEMSIZE len));
  311. MEMDATA      * DBmemchr __STDCARGS((CONST char *file, int line,
  312.                     CONST MEMDATA  *ptr1, int ch,
  313.                     MEMSIZE len));
  314. MEMDATA     * DBmemmove __STDCARGS((CONST char *file, int line,
  315.                     MEMDATA  *ptr1, CONST MEMDATA  *ptr2,
  316.                     MEMSIZE len));
  317. MEMDATA     * DBmemcpy __STDCARGS((CONST char *file, int line,
  318.                     MEMDATA  *ptr1, CONST MEMDATA  *ptr2,
  319.                     MEMSIZE len));
  320. int          DBmemcmp __STDCARGS((CONST char *file, int line,
  321.                     CONST MEMDATA  *ptr1,
  322.                     CONST MEMDATA  *ptr2, MEMSIZE len));
  323. MEMDATA     * DBmemset __STDCARGS((CONST char *file, int line,
  324.                     MEMDATA  *ptr1, int ch, MEMSIZE len));
  325. MEMDATA     * DBbcopy __STDCARGS((CONST char *file, int line,
  326.                     CONST MEMDATA  *ptr2, MEMDATA  *ptr1,
  327.                     MEMSIZE len));
  328. MEMDATA      * DBbzero __STDCARGS((CONST char *file, int line,
  329.                     MEMDATA  *ptr1, MEMSIZE len));
  330. int          DBbcmp __STDCARGS((CONST char *file, int line,
  331.                     CONST MEMDATA  *ptr2,
  332.                     CONST MEMDATA  *ptr1, MEMSIZE len));
  333.  
  334. /*
  335.  * string(3) related prototypes
  336.  */
  337. char        * DBstrcat __STDCARGS((CONST char *file,int line, char *str1,
  338.                     CONST char *str2));
  339. char        * DBstrdup __STDCARGS((CONST char *file, int line,
  340.                     CONST char *str1));
  341. char        * DBstrncat __STDCARGS((CONST char *file, int line, char *str1,
  342.                     CONST char *str2, STRSIZE len));
  343. int          DBstrcmp __STDCARGS((CONST char *file, int line,
  344.                     CONST char *str1, CONST char *str2));
  345. int          DBstrncmp __STDCARGS((CONST char *file, int line,
  346.                     CONST char *str1, CONST char *str2,
  347.                     STRSIZE len));
  348. int          DBstricmp __STDCARGS((CONST char *file, int line,
  349.                     CONST char *str1, CONST char *str2));
  350. int          DBstrincmp __STDCARGS((CONST char *file, int line,
  351.                     CONST char *str1, CONST char *str2,
  352.                     STRSIZE len));
  353. char        * DBstrcpy __STDCARGS((CONST char *file, int line, char *str1,
  354.                     CONST char *str2));
  355. char        * DBstrncpy __STDCARGS((CONST char *file, int line, char *str1,
  356.                     CONST char *str2, STRSIZE len));
  357. STRSIZE          DBstrlen __STDCARGS((CONST char *file, int line,
  358.                     CONST char *str1));
  359. char        * DBstrchr __STDCARGS((CONST char *file, int line,
  360.                     CONST char *str1, int c));
  361. char        * DBstrrchr __STDCARGS((CONST char *file, int line,
  362.                     CONST char *str1, int c));
  363. char        * DBindex __STDCARGS((CONST char *file, int line,
  364.                     CONST char *str1, int c));
  365. char        * DBrindex __STDCARGS((CONST char *file, int line,
  366.                     CONST char *str1, int c));
  367. char        * DBstrpbrk __STDCARGS((CONST char *file, int line,
  368.                     CONST char *str1, CONST char *str2));
  369. STRSIZE          DBstrspn __STDCARGS((CONST char *file, int line,
  370.                     CONST char *str1, CONST char *str2));
  371. STRSIZE          DBstrcspn __STDCARGS((CONST char *file, int line,
  372.                     CONST char *str1, CONST char *str2));
  373. char        * DBstrstr __STDCARGS((CONST char *file, int line,
  374.                     CONST char *str1, CONST char *str2));
  375. char        * DBstrtok __STDCARGS((CONST char *file, int line, char *str1,
  376.                     CONST char *str2));
  377.  
  378. #if __cplusplus
  379. };
  380. #endif
  381.  
  382. /*
  383.  * Macro which enables logging of the file and line number for each allocation
  384.  * so that it is easier to determine where the offending malloc comes from.
  385.  *
  386.  * NOTE that only code re-compiled with this include file will have this 
  387.  * additional info.  Calls from libraries that have not been recompiled will
  388.  * just have a null string for this info.
  389.  */
  390. #ifndef IN_MALLOC_CODE
  391.  
  392. /*
  393.  * allocation functions
  394.  */
  395. #define malloc(len)        debug_malloc( __FILE__,__LINE__, (len))
  396. #define realloc(ptr,len)    debug_realloc(__FILE__,__LINE__, (ptr), (len))
  397. #define calloc(numelem,size)    debug_calloc(__FILE__,__LINE__,(numelem),(size))
  398. #define cfree(ptr)        debug_cfree(__FILE__,__LINE__,(ptr))
  399. #define free(ptr)        debug_free(__FILE__,__LINE__,(ptr))
  400. #define malloc_chain_check(do)  DBmalloc_chain_check(__FILE__,__LINE__,(do))
  401. #define malloc_mark(ptr)    DBmalloc_mark(__FILE__,__LINE__,(ptr))
  402. #define malloc_inuse(histptr)    DBmalloc_inuse(__FILE__,__LINE__,(histptr))
  403. #define malloc_size(ptr)    DBmalloc_size(__FILE__,__LINE__,(ptr))
  404. #define memalign(align,size)    DBmemalign(__FILE__,__LINE__,(align),(size))
  405.  
  406. /* 
  407.  * X allocation routines
  408.  */
  409. #define XtCalloc(_num,_size)    debug_XtCalloc(__FILE__,__LINE__,_num,_size)
  410. #define XtMalloc(_size)        debug_XtMalloc(__FILE__,__LINE__,_size)
  411. #define XtRealloc(_ptr,_size)    debug_XtRealloc(__FILE__,__LINE__,_ptr,_size)
  412. #define XtFree(_ptr)        debug_XtFree(__FILE__,__LINE__,_ptr)
  413. #define _XtBCopy(ptr1,ptr2,len) debug_XtBcopy(__FILE__,__LINE__,ptr1,ptr2,len)
  414.  
  415. /*
  416.  * Other allocation functions
  417.  */
  418. #define _malloc(_size)        debug_malloc(__FILE__,__LINE__,_size)
  419. #define _realloc(_ptr,_size)    debug_realloc(__FILE__,__LINE__,_ptr,_size)
  420. #define _calloc(_num,_size)    debug_calloc(__FILE__,__LINE__,_num,_size)
  421. #define _free(_ptr)        debug_free(__FILE__,__LINE__,_ptr)
  422.  
  423. /*
  424.  * memory(3) related functions
  425.  */
  426. #ifdef bcopy
  427. #undef bcopy
  428. #endif
  429. #ifdef bzero
  430. #undef bzero
  431. #endif
  432. #ifdef bcmp
  433. #undef bcmp
  434. #endif
  435. #define memccpy(ptr1,ptr2,ch,len) DBmemccpy(__FILE__,__LINE__,ptr1,ptr2,ch,len)
  436. #define memchr(ptr1,ch,len)      DBmemchr(__FILE__,__LINE__,ptr1,ch,len)
  437. #define memmove(ptr1,ptr2,len)    DBmemmove(__FILE__,__LINE__,ptr1, ptr2, len)
  438. #define memcpy(ptr1,ptr2,len)     DBmemcpy(__FILE__, __LINE__, ptr1, ptr2, len)
  439. #define memcmp(ptr1,ptr2,len)     DBmemcmp(__FILE__,__LINE__,ptr1, ptr2, len)
  440. #define memset(ptr1,ch,len)       DBmemset(__FILE__,__LINE__,ptr1, ch, len)
  441. #define bcopy(ptr2,ptr1,len)      DBbcopy(__FILE__,__LINE__,ptr2,ptr1,len)
  442. #define bzero(ptr1,len)           DBbzero(__FILE__,__LINE__,ptr1,len)
  443. #define bcmp(ptr2,ptr1,len)       DBbcmp(__FILE__, __LINE__, ptr2, ptr1, len)
  444.  
  445. #define _bcopy(ptr2,ptr1,len)     DBbcopy(__FILE__,__LINE__,ptr2,ptr1,len)
  446. #define _bzero(ptr1,len)          DBbzero(__FILE__,__LINE__,ptr1,len)
  447. #define _bcmp(ptr2,ptr1,len)      DBbcmp(__FILE__,__LINE__,ptr2,ptr1,len)
  448. #define __dg_bcopy(ptr2,ptr1,len) DBbcopy(__FILE__,__LINE__,ptr2,ptr1,len)
  449. #define __dg_bzero(ptr1,len)      DBbzero(__FILE__,__LINE__,ptr1,len)
  450. #define __dg_bcmp(ptr2,ptr1,len)  DBbcmp(__FILE__,__LINE__,ptr2,ptr1,len)
  451.  
  452. /*
  453.  * string(3) related functions
  454.  */
  455. #ifdef index
  456. #undef index
  457. #endif
  458. #ifdef rindex
  459. #undef rindex
  460. #endif
  461. #ifdef strcpy
  462. #undef strcpy
  463. #endif
  464. #ifdef strcpy
  465. #undef strcmp
  466. #endif
  467. #define index(str1,c)          DBindex(__FILE__, __LINE__, str1, c)
  468. #define rindex(str1,c)          DBrindex(__FILE__, __LINE__, str1, c)
  469. #define strcat(str1,str2)      DBstrcat(__FILE__,__LINE__,str1,str2)
  470. #define strchr(str1,c)          DBstrchr(__FILE__, __LINE__, str1,c)
  471. #define strcmp(str1,str2)      DBstrcmp(__FILE__, __LINE__, str1, str2)
  472. #define strcpy(str1,str2)      DBstrcpy(__FILE__, __LINE__, str1, str2)
  473. #define strcspn(str1,str2)      DBstrcspn(__FILE__, __LINE__, str1,str2)
  474. #define strdup(str1)          DBstrdup(__FILE__, __LINE__, str1)
  475. #define stricmp(str1,str2)      DBstricmp(__FILE__, __LINE__, str1, str2)
  476. #define strincmp(str1,str2,len)      DBstrincmp(__FILE__, __LINE__, str1,str2,len)
  477. #define strlen(str1)          DBstrlen(__FILE__, __LINE__, str1)
  478. #define strncat(str1,str2,len)      DBstrncat(__FILE__, __LINE__, str1,str2,len)
  479. #define strncpy(str1,str2,len)      DBstrncpy(__FILE__,__LINE__,str1,str2,len)
  480. #define strncmp(str1,str2,len)      DBstrncmp(__FILE__, __LINE__, str1,str2,len)
  481. #define strpbrk(str1,str2)      DBstrpbrk(__FILE__, __LINE__, str1,str2)
  482. #define strrchr(str1,c)          DBstrrchr(__FILE__,__LINE__,str1,c)
  483. #define strspn(str1,str2)      DBstrspn(__FILE__, __LINE__, str1,str2)
  484. #define strstr(str1,str2)      DBstrstr(__FILE__, __LINE__, str1, str2)
  485. #define strtok(str1,str2)      DBstrtok(__FILE__, __LINE__, str1, str2)
  486.  
  487. /*
  488.  * malloc stack related functions
  489.  */
  490. #define malloc_enter(func)      StackEnter(func,__FILE__,__LINE__)
  491. #define malloc_leave(func)      StackLeave(func,__FILE__,__LINE__)
  492.  
  493. #endif /* IN_MALLOC_CODE */
  494.  
  495. #ifdef HAVE_SBRK
  496. #define ENDPTR (&end)        /* Pointer to first location used by sbrk() */
  497. #else
  498. extern char *_endptr;
  499. #define ENDPTR _endptr
  500. #endif
  501.  
  502. #endif /* _DEBUG_MALLOC_INC */
  503.  
  504. /*
  505.  * $Log: malloc.h.org,v $
  506.  * Revision 1.38  1992/08/22  16:27:13  cpcahil
  507.  * final changes for pl14
  508.  *
  509.  * Revision 1.37  1992/08/18  11:42:00  cpcahil
  510.  * added more #defs to preclude memory/string.h inclusion
  511.  *
  512.  * Revision 1.36  1992/07/12  15:30:58  cpcahil
  513.  * Merged in Jonathan I Kamens' changes
  514.  *
  515.  * Revision 1.35  1992/07/03  00:03:25  cpcahil
  516.  * more fixes for pl13, several suggestons from Rich Salz.
  517.  *
  518.  * Revision 1.34  1992/07/02  15:35:52  cpcahil
  519.  * misc cleanups for PL13
  520.  *
  521.  * Revision 1.33  1992/07/02  13:49:54  cpcahil
  522.  * added support for new malloc_size function and additional tests to testerr
  523.  *
  524.  * Revision 1.32  1992/06/30  13:06:39  cpcahil
  525.  * added support for aligned allocations
  526.  *
  527.  * Revision 1.31  1992/06/22  23:40:10  cpcahil
  528.  * many fixes for working on small int systems
  529.  *
  530.  * Revision 1.30  1992/05/06  04:53:29  cpcahil
  531.  * performance enhancments
  532.  *
  533.  * Revision 1.29  1992/04/22  18:17:32  cpcahil
  534.  * added support for Xt Alloc functions, linted code
  535.  *
  536.  * Revision 1.28  1992/04/13  19:08:18  cpcahil
  537.  * fixed case insensitive stuff
  538.  *
  539.  * Revision 1.27  1992/04/13  18:41:18  cpcahil
  540.  * added case insensitive string comparison routines
  541.  *
  542.  * Revision 1.26  1992/04/13  17:26:25  cpcahil
  543.  * minor portability changes
  544.  *
  545.  * Revision 1.25  1992/04/13  14:13:18  cpcahil
  546.  * cleanup of log message.
  547.  *
  548.  * Revision 1.24  1992/04/13  03:09:14  cpcahil
  549.  * lots of changes.
  550.  *
  551.  * Revision 1.23  1992/03/01  12:42:38  cpcahil
  552.  * added support for managing freed areas and fixed doublword bndr problems
  553.  *
  554.  * Revision 1.22  1992/02/07  15:51:07  cpcahil
  555.  * mods for sun4
  556.  *
  557.  * Revision 1.21  1992/01/29  01:35:32  cpcahil
  558.  * added sgi definition.
  559.  *
  560.  * Revision 1.20  1992/01/28  21:42:25  cpcahil
  561.  * changes for the ibmRS6000
  562.  *
  563.  * Revision 1.19  1992/01/28  18:05:37  cpcahil
  564.  * misc fixes for patch 7
  565.  *
  566.  * Revision 1.18  1992/01/22  16:21:35  cpcahil
  567.  * added code to prevent inclusions of string.h and memory.h after malloc.h
  568.  * was included.
  569.  *
  570.  * Revision 1.17  1992/01/10  17:26:46  cpcahil
  571.  * fixed prototypes use of void.
  572.  *
  573.  * Revision 1.16  1992/01/10  16:53:39  cpcahil
  574.  * added more info on sizetype and datatype. added support for overriding
  575.  * use of void type.
  576.  *
  577.  * Revision 1.15  1992/01/09  17:19:11  cpcahil
  578.  * put the close brace in the correct position.
  579.  *
  580.  * Revision 1.14  1992/01/09  17:12:36  cpcahil
  581.  * added code to support inclusion in C++ modules
  582.  *
  583.  * Revision 1.13  1991/12/31  21:31:26  cpcahil
  584.  * changes for patch 6.  See CHANGES file for more info
  585.  *
  586.  * Revision 1.12  1991/12/26  22:31:29  cpcahil
  587.  * added check to make sure file is not included twice.
  588.  *
  589.  * Revision 1.11  1991/12/06  17:58:46  cpcahil
  590.  * added cfree() for compatibility with some wierd systems
  591.  *
  592.  * Revision 1.10  91/12/06  08:54:18  cpcahil
  593.  * cleanup of __STDC__ usage and addition of CHANGES file
  594.  * 
  595.  * Revision 1.9  91/12/04  09:23:40  cpcahil
  596.  * several performance enhancements including addition of free list
  597.  * 
  598.  * Revision 1.8  91/12/02  19:10:11  cpcahil
  599.  * changes for patch release 5
  600.  * 
  601.  * Revision 1.7  91/11/25  14:42:00  cpcahil
  602.  * Final changes in preparation for patch 4 release
  603.  * 
  604.  * Revision 1.6  91/11/24  00:49:28  cpcahil
  605.  * first cut at patch 4
  606.  * 
  607.  * Revision 1.5  91/11/20  11:54:10  cpcahil
  608.  * interim checkin
  609.  * 
  610.  * Revision 1.4  90/08/29  22:23:38  cpcahil
  611.  * fixed mallopt to use a union as an argument.
  612.  * 
  613.  * Revision 1.3  90/05/11  11:04:10  cpcahil
  614.  * took out some extraneous lines
  615.  * 
  616.  * Revision 1.2  90/05/11  00:13:09  cpcahil
  617.  * added copyright statment
  618.  * 
  619.  * Revision 1.1  90/02/23  07:09:03  cpcahil
  620.  * Initial revision
  621.  * 
  622.  */
  623.