3 * (C) Copyright Dec 12 1995, Edmond J. Breen.
\r
4 * ALL RIGHTS RESERVED.
\r
5 * This code may be copied for personal, non-profit use only.
\r
17 #define xmalloc(N) ymalloc(__FILE__,__LINE__,N)
\r
18 #define xcalloc(N,M) ycalloc(__FILE__,__LINE__,N,M)
\r
19 #define xrealloc(N,M) yrealloc(__FILE__,__LINE__,N,M)
\r
20 #define xfree(N) yfree(__FILE__,__LINE__,N)
\r
21 #define xmark(N,M) ymark(__FILE__,__LINE__,N,M)
\r
22 #define xmemcheck() ymemcheck(__FILE__,__LINE__)
\r
23 #define xdumpnonmark(N,M) ydumpnonmark(N,M)
\r
25 void xfreemark(char mark);
\r
26 int xexchmark(char oldmark, char newmark);
\r
27 int xlookup(void *p);
\r
29 int getMemMark(unsigned long item);
\r
30 void freeMemItem(unsigned long item);
\r
32 void xalloc_CleanUp(size_t bot, size_t top);
\r
33 size_t xalloc_NextEntryNum(void);
\r
35 void *ymalloc(char *file,int lineno, size_t nbytes);
\r
36 void *ycalloc(char *file,int lineno,size_t nelem,size_t elemsize);
\r
37 void *yrealloc(char *file,int lineno,void *block, size_t nbytes);
\r
38 void yfree(char *file,int lineno,void *block);
\r
39 int ymark(char *file,int lineno,void *block,char mark);
\r
40 void ydumpnonmark(char *outfile,char mark);
\r
43 extern unsigned long tot_memory; /* total amount of memory allocated */
\r
44 extern size_t tot_alloc; /* total number of blocks allocated */
\r
45 extern size_t tot_seen; /* total number of blocks seen */
\r
46 extern char XGMARK; /* memory mark, default = 0 */
\r
51 #define catchItem(X) {size_t x = X; if(tot_seen == x)\
\r
52 printf("\n\tCAUGHT ITEM %lu at %d in %s\n\n",\
\r
53 (unsigned long)x, __LINE__,__FILE__);}
\r
56 #define xmalloc(N) malloc(N)
\r
57 #define xcalloc(N,M) calloc(N,M)
\r
58 #define xrealloc(N,M) realloc(N,M)
\r
59 #define xfree(N) free(N)
\r