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