Metropoli BBS
VIEWER: maldebug.h MODE: TEXT (ASCII)
/*----------------------------------------------------------------------
 *
 *  memdebug.h -- Dynamic memory handler interface
 *  Description: memdebug.h provides the interface definitions for the dynamic
 *  memory handler.
 *  See memdebug.c for complete documentation.
 *
 */

/* Compilation options */
#define MEM_LIST		/* Build internal list */
#define MEM_WHERE		/* Keep track of memory block source */
#define MEM_HEADER		/* Keep headers and footers around for each block */
#define MEM_COMP_FREE	/* Complement the space free'd */

/* Interface functions */
unsigned long	Mem_Used(void);
void		Mem_Display(FILE *fp);

/* Interface functions to access only through macros */
#if defined(MEM_WHERE)
void	*mem_alloc(size_t size, char *fil, int lin);
void	*mem_calloc(size_t n,size_t size, char *fil, int lin);
void	*mem_realloc(void *old_ptr, size_t size, char *fil, int lin);
void	mem_free(void *ptr, char *fil, int lin);
char	*mem_strdup(char *ptr, char *fil, int lin);
#else
void	*mem_alloc(size_t size) ;
void	*mem_calloc(size_t n,size_t size);
void	*mem_realloc(void *old_ptr, size_t size) ;
void	mem_free(void *ptr) ;
char	*mem_strdup(char *ptr) ;
#endif

/* Interface macros */
#if !defined(__MALDEBUG__)
#if defined(MEM_WHERE)
#define malloc(a)		mem_alloc((a),__FILE__,__LINE__)
#define calloc(a,b)		mem_calloc((a),(b),__FILE__,__LINE__)
#define realloc(a,b)	mem_realloc((a),(b),__FILE__,__LINE__)
#define free(a)			mem_free((a),__FILE__,__LINE__)
#define strdup(a)		mem_strdup((a),__FILE__,__LINE__)
#else
#define malloc(a)		mem_alloc(a)
#define calloc(a,b)		mem_calloc((a),(b))
#define realloc(a,b)	mem_realloc((a),(b))
#define free(a)			mem_free(a)
#define strdup(a)		mem_strdup(a)
#endif
#endif

[ RETURN TO DIRECTORY ]