diff options
author | peter <peter@FreeBSD.org> | 1997-01-01 09:29:03 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1997-01-01 09:29:03 +0000 |
commit | dea0b1af9c5b52f24ba9347a2b49cd82bfdc4b8f (patch) | |
tree | da412cdd1d301d7a554281aeebd4b88d369542da /contrib/bind | |
parent | d441076b400b69887793d110f4b3d76a7705e604 (diff) | |
download | FreeBSD-src-dea0b1af9c5b52f24ba9347a2b49cd82bfdc4b8f.zip FreeBSD-src-dea0b1af9c5b52f24ba9347a2b49cd82bfdc4b8f.tar.gz |
These are gone in 4.9.5
Diffstat (limited to 'contrib/bind')
-rw-r--r-- | contrib/bind/named/dmalloc.c | 315 | ||||
-rw-r--r-- | contrib/bind/named/dmalloc.h | 68 |
2 files changed, 0 insertions, 383 deletions
diff --git a/contrib/bind/named/dmalloc.c b/contrib/bind/named/dmalloc.c deleted file mode 100644 index 03593e2..0000000 --- a/contrib/bind/named/dmalloc.c +++ /dev/null @@ -1,315 +0,0 @@ -/* dmalloc - debugging layer on top of malloc - * vix 25mar92 [fixed bug in round-up calcs in alloc()] - * vix 24mar92 [added size calcs, improved printout] - * vix 22mar92 [original work] - * - * $Id: dmalloc.c,v 8.3 1996/05/17 09:10:46 vixie Exp $ - */ - -/* - * ++Copyright++ 1993 - * - - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - - * Portions Copyright (c) 1993 by Digital Equipment Corporation. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies, and that - * the name of Digital Equipment Corporation not be used in advertising or - * publicity pertaining to distribution of the document or software without - * specific, written prior permission. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT - * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR - * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS - * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS - * SOFTWARE. - * - - * --Copyright-- - */ - -#include <stdio.h> -#include <signal.h> -#include "../conf/portability.h" -#include "../conf/options.h" - -#ifdef DMALLOC - -#define TRUE 1 -#define FALSE 0 -typedef unsigned bool; - -#define MAX_MEMORY 65536 /* must fit in typeof(datum.size) */ -#define MAX_CALLERS 256 /* must be **2 */ - -typedef struct caller { - struct caller *next; - struct filenam *file; - struct calltab *frees; - unsigned line; - unsigned calls; - unsigned blocks; - unsigned bytes; -} caller; - -typedef struct filenam { - struct filenam *next; - char *name; -} filenam; - -typedef struct calltab { - struct caller *callers[MAX_CALLERS]; -} calltab; - -typedef struct datum { - unsigned size; /* size of malloc'd item */ - unsigned caller; /* offset into memory[] */ - /* user data follows */ -} datum; - -static char memory[MAX_MEMORY]; -static char *nextmem = memory; -static char *alloc(size) unsigned size; { - char *thismem = nextmem; - int oddness = (size % sizeof(char*)); - if (oddness) - size += (sizeof(char*) - oddness); - nextmem += size; - if (nextmem >= &memory[MAX_MEMORY]) { - fprintf(stderr, "dmalloc.alloc: out of mem\n"); - kill(0, SIGBUS); - } - return thismem; - } - -static filenam *Files; -static calltab Callers; - -/*--------------------------------------------------- imports - */ - -#undef malloc -#undef calloc -#undef realloc -#undef free - -char *malloc(), *calloc(), *realloc(); - -#if defined(sun) -int free(); -#else -void free(); -#endif - -/*--------------------------------------------------- private - */ - -#define STR_EQ(l,r) (((l)[0] == (r)[0]) && !strcmp(l, r)) - -static filenam * -findFile(file, addflag) - char *file; - bool addflag; -{ - filenam *f; - - for (f = Files; f; f = f->next) - if (STR_EQ(file, f->name)) - return f; - if (!addflag) - return NULL; - f = (filenam*) alloc(sizeof(filenam)); - f->next = Files; - Files = f; - f->name = alloc(strlen(file) + 1); - strcpy(f->name, file); - return f; -} - -static caller * -findCaller(ctab, file, line, addflag) - calltab *ctab; - char *file; - unsigned line; - bool addflag; -{ - unsigned hash = line & (MAX_CALLERS - 1); - caller *c; - - for (c = ctab->callers[hash]; c; c = c->next) - if ((c->line == line) && STR_EQ(c->file->name, file)) - return c; - if (!addflag) - return NULL; - c = (caller*) alloc(sizeof(caller)); - c->next = ctab->callers[hash]; - c->file = findFile(file, TRUE); - c->line = line; - c->calls = 0; - c->frees = (calltab *) alloc(sizeof(calltab)); - ctab->callers[hash] = c; - return c; -} - -/*--------------------------------------------------- public - */ - -char * -dmalloc(file, line, size) - char *file; - unsigned line; - unsigned size; -{ - caller *c; - datum *d; - - c = findCaller(&Callers, file, line, TRUE); - d = (datum *) malloc(sizeof(datum) + size); - if (!d) - return (NULL); - d->size = size; - d->caller = ((char *)c) - memory; - c->calls++; - c->blocks++; - c->bytes += size; - return (char *) (d+1); -} - -void -dfree(file, line, ptr) - char *file; - unsigned line; - char *ptr; -{ - caller *c, *a; - datum *d; - - d = (datum *) ptr; d--; - a = (caller *) (memory + d->caller); - a->bytes -= d->size; - a->blocks--; - c = findCaller(a->frees, file, line, TRUE); - c->calls++; - free((char*) d); -} - -char * -dcalloc(file, line, nelems, elsize) - char *file; - unsigned line; - unsigned nelems, elsize; -{ - unsigned size = (nelems * elsize); - char *ptr; - - ptr = dmalloc(file, line, size); - if (ptr) - bzero(ptr, size); - return ptr; -} - -char * -drealloc(file, line, ptr, size) - char *file; - unsigned line; - char *ptr; - unsigned size; -{ - caller *c, *a; - datum *d; - - d = (datum *) ptr; d--; - /* fix up stats from allocation */ - a = (caller *) (memory + d->caller); - a->bytes -= d->size; - a->blocks--; - /* we are a "freer" of this allocation */ - c = findCaller(a->frees, file, line, TRUE); - c->calls++; - /* get new allocation and stat it */ - c = findCaller(&Callers, file, line, TRUE); - d = (datum *) realloc((char *) d, sizeof(datum) + size); - d->size = size; - d->caller = ((char *)c) - memory; - c->calls++; - c->blocks++; - c->bytes += size; - return (char *) (d+1); -} - -static void -dmalloccallers(outf, prefix, ctab) - FILE *outf; - char *prefix; - calltab *ctab; -{ - /* this bizarre logic is to print all of a file's entries together */ - filenam *f; - - for (f = Files; f; f = f->next) { - int i; - - for (i = MAX_CALLERS-1; i >= 0; i--) { - caller *c; - - for (c = ctab->callers[i]; c; c = c->next) { - if (f != c->file) - continue; - fprintf(outf, "%s\"%s\":%u calls=%u", - prefix, c->file->name, c->line, - c->calls); - if (c->blocks || c->bytes) - fprintf(outf, " blocks=%u bytes=%u", - c->blocks, c->bytes); - fputc('\n', outf); - if (c->frees) - dmalloccallers(outf, - "\t\t", c->frees); - } - } - } -} - -void -dmallocstats(outf) - FILE *outf; -{ - fprintf(outf, "dallocstats [ private mem used=%u, avail=%u ]\n", - nextmem - memory, &memory[MAX_MEMORY] - nextmem); - dmalloccallers(outf, "\t", &Callers); -} - -#endif /*DMALLOC*/ diff --git a/contrib/bind/named/dmalloc.h b/contrib/bind/named/dmalloc.h deleted file mode 100644 index 9d0b44a..0000000 --- a/contrib/bind/named/dmalloc.h +++ /dev/null @@ -1,68 +0,0 @@ -/* dmalloc - debugging layer on top of malloc - * vix 22mar92 [written] - * - * $Id: dmalloc.h,v 8.1 1994/12/15 06:24:14 vixie Exp $ - */ - -/* - * ++Copyright++ - * - - * Copyright (c) - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - - * Portions Copyright (c) 1993 by Digital Equipment Corporation. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies, and that - * the name of Digital Equipment Corporation not be used in advertising or - * publicity pertaining to distribution of the document or software without - * specific, written prior permission. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT - * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR - * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS - * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS - * SOFTWARE. - * - - * --Copyright-- - */ - -#define malloc(s) dmalloc(__FILE__, __LINE__, s) -#define free(p) dfree(__FILE__, __LINE__, p) -#define calloc(n, s) dcalloc(__FILE__, __LINE__, n, s) -#define realloc(p, s) drealloc(__FILE__, __LINE__, p, s) - -char *dmalloc(), *dcalloc(), *drealloc(); -void dfree(), dmallocstats(); |