X-Git-Url: https://git.distorted.org.uk/~mdw/become/blobdiff_plain/1cb135eefea58f7c429e8a924770ea7adcaec6df..deab2ee82eb974047777ad721bccecaca103d2a9:/src/utils.h diff --git a/src/utils.h b/src/utils.h index dce373e..869c4e9 100644 --- a/src/utils.h +++ b/src/utils.h @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: utils.h,v 1.2 1997/08/04 10:24:26 mdw Exp $ + * $Id: utils.h,v 1.3 1997/08/20 16:25:37 mdw Exp $ * * Miscellaneous useful bits of code. * @@ -29,6 +29,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: utils.h,v $ + * Revision 1.3 1997/08/20 16:25:37 mdw + * Add some simple `malloc' tracking. + * * Revision 1.2 1997/08/04 10:24:26 mdw * Sources placed under CVS control. * @@ -263,6 +266,81 @@ extern char *xstrdup(const char */*s*/); extern void *xrealloc(void */*p*/, size_t /*sz*/); +/*----- Simple memory use tracking ----------------------------------------*/ + +#undef TRACK_MALLOC + +#ifdef TRACK_MALLOC + +/* --- @track_malloc@ --- * + * + * Arguments: @size_t sz@ = size requested + * + * Returns: Pointer to allocated space, or null + * + * Use: Allocates memory, and tracks how much is allocated. + */ + +extern void *track_malloc(size_t /*sz*/); + +/* --- @track_free@ --- * + * + * Arguments: @void *p@ = pointer to an allocated block + * + * Returns: --- + * + * Use: Frees memory, and tracks how much is still allocated. + */ + +extern void track_free(void */*p*/); + +/* --- @track_realloc@ --- * + * + * Arguments: @void *p@ = pointer to an allocated block + * @size_t sz@ = how big it wants to be + * + * Returns: Pointer to the new block. + * + * Use: Reallocates a block, tracking how much memory is still + * available. + */ + +extern void *track_realloc(void */*p*/, size_t /*sz*/); + +/* --- @track_memused@ --- * + * + * Arguments: --- + * + * Returns: A count of how much memory is used currently. + * + * Use: Returns the amount of memory which the @track_@-functions + * above have counted as being currently allocated. + */ + +extern unsigned long track_memused(void); + +/* --- @track_memlist@ --- * + * + * Arguments: --- + * + * Returns: --- + * + * Use: Dumps a list of allocated blocks to standard output. + */ + +extern void track_memlist(void); + +#undef malloc +#define malloc(sz) track_malloc(sz) + +#undef free +#define free(p) track_free(p) + +#undef realloc +#define realloc(p, sz) track_realloc(p, sz) + +#endif + /*----- That's all, folks -------------------------------------------------*/ #ifdef __cplusplus