X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/mLib/blobdiff_plain/63935474eb0bb850356356496625ad5b8dd7357a..ff0f0220601f448169de6cda01f3a39f04bae808:/track.c diff --git a/track.c b/track.c index 52e800d..10da09b 100644 --- a/track.c +++ b/track.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: track.c,v 1.3 1999/05/06 19:51:36 mdw Exp $ + * $Id: track.c,v 1.4 1999/05/19 20:27:11 mdw Exp $ * * Tracing functions for debugging * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: track.c,v $ + * Revision 1.4 1999/05/19 20:27:11 mdw + * Change naming to match newer mLib conventions. + * * Revision 1.3 1999/05/06 19:51:36 mdw * Reformatted the LGPL notice a little bit. * @@ -63,35 +66,35 @@ * This gets prefixed to every block I manage. */ -typedef union track__block { +typedef union block { struct { - union track__block *next; /* Link to previous block */ - union track__block *prev; /* Link to next block */ + union block *next; /* Link to previous block */ + union block *prev; /* Link to next block */ size_t sz; /* Size of the block */ const char *ctx; /* Pointer to allocating context */ } x; /* Main data area */ long double _ld; /* Long double for alignment */ void *_p; /* Void pointer for alignment */ -} track__block; +} block; /*----- Private state -----------------------------------------------------*/ /* --- Tracking memory usage --- */ -static unsigned int track__used = 0; /* Count of bytes occupied */ -static track__block *track__list; /* List of allocated blocks */ +static unsigned int used = 0; /* Count of bytes occupied */ +static block *list; /* List of allocated blocks */ /* --- Trace level for verbose messages --- */ -static unsigned int track__vLevel = 0; +static unsigned int vLevel = 0; /* --- Context tracking --- */ -static track_ctx track__baseContext = { +static track_ctx baseContext = { 0, "[unknown context]" }; -static track_ctx *track__context = &track__baseContext; +static track_ctx *context = &baseContext; /*----- Functions provided ------------------------------------------------*/ @@ -106,7 +109,7 @@ static track_ctx *track__context = &track__baseContext; void track_setLevel(unsigned int l) { - track__vLevel = l; + vLevel = l; } /* --- @track_pushContext@ --- * @@ -120,8 +123,8 @@ void track_setLevel(unsigned int l) void track_pushContext(track_ctx *ctx) { - ctx->next = track__context; - track__context = ctx; + ctx->next = context; + context = ctx; } /* --- @track_popContext@ --- * @@ -135,7 +138,7 @@ void track_pushContext(track_ctx *ctx) void track_popContext(track_ctx *ctx) { - track__context = ctx->next; + context = ctx->next; } /* --- @track_malloc@ --- * @@ -149,20 +152,20 @@ void track_popContext(track_ctx *ctx) void *track_malloc(size_t sz) { - track__block *q = (malloc)(sz + sizeof(track__block)); + block *q = (malloc)(sz + sizeof(block)); if (q) { - track__used += sz; - if (track__vLevel) { - trace(track__vLevel, "(track) allocated %lu at %p in %s", - (unsigned long)sz, (void *)(q + 1), track__context->s); + used += sz; + if (vLevel) { + trace(vLevel, "(track) allocated %lu at %p in %s", + (unsigned long)sz, (void *)(q + 1), context->s); } q->x.sz = sz; - q->x.next = track__list; + q->x.next = list; q->x.prev = 0; - q->x.ctx = track__context->s; + q->x.ctx = context->s; if (q->x.next) q->x.next->x.prev = q; - track__list = q; + list = q; return (q + 1); } return (0); @@ -179,23 +182,23 @@ void *track_malloc(size_t sz) void track_free(void *p) { - track__block *q; + block *q; if (!p) return; - q = (track__block *)p - 1; - if (track__vLevel) { - trace(track__vLevel, "(track) freed %lu at %p for %s in %s", + q = (block *)p - 1; + if (vLevel) { + trace(vLevel, "(track) freed %lu at %p for %s in %s", (unsigned long)q->x.sz, (void *)(q + 1), - q->x.ctx, track__context->s); + q->x.ctx, context->s); } if (q->x.next) q->x.next->x.prev = q->x.prev; if (q->x.prev) q->x.prev->x.next = q->x.next; else - track__list = q->x.next; - track__used -= q->x.sz; + list = q->x.next; + used -= q->x.sz; (free)(q); } @@ -213,36 +216,36 @@ void track_free(void *p) void *track_realloc(void *p, size_t sz) { size_t osz; - track__block *q, *qq; + block *q, *qq; if (p) { - q = (track__block *)p - 1; + q = (block *)p - 1; osz = q->x.sz; if (q->x.next) q->x.next->x.prev = q->x.prev; if (q->x.prev) q->x.prev->x.next = q->x.next; else - track__list = q->x.next; + list = q->x.next; } else { q = 0; osz = 0; } - qq = (realloc)(q, sz + sizeof(track__block)); + qq = (realloc)(q, sz + sizeof(block)); if (qq) { - if (track__vLevel) { - trace(track__vLevel, + if (vLevel) { + trace(vLevel, "(track) reallocated %lu at %p to %lu for %s in %s", (unsigned long)osz, (void *)(q + 1), (unsigned long)sz, (void *)(qq + 1), - qq->x.ctx, track__context->s); + qq->x.ctx, context->s); } qq->x.sz = sz; - qq->x.next = track__list; + qq->x.next = list; qq->x.prev = 0; if (qq->x.next) qq->x.next->x.prev = qq; - track__list = qq; - track__used += sz - osz; + list = qq; + used += sz - osz; qq->x.sz = sz; return (qq + 1); } @@ -261,7 +264,7 @@ void *track_realloc(void *p, size_t sz) unsigned long track_used(void) { - return (track__used); + return (used); } /* --- @track_list@ --- * @@ -279,7 +282,7 @@ unsigned long track_used(void) void track_list(unsigned int l) { - track__block *q = track__list; + block *q = list; if (!(tracing() & l)) return;