summaryrefslogtreecommitdiff
path: root/sys/netiso/xebec/malloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netiso/xebec/malloc.c')
-rw-r--r--sys/netiso/xebec/malloc.c136
1 files changed, 0 insertions, 136 deletions
diff --git a/sys/netiso/xebec/malloc.c b/sys/netiso/xebec/malloc.c
deleted file mode 100644
index d09af2987cdb1..0000000000000
--- a/sys/netiso/xebec/malloc.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* $Header: /home/ncvs/src/sys/netiso/xebec/malloc.c,v 1.1.1.1 1994/05/24 10:07:48 rgrimes Exp $ */
-/* $Source: /home/ncvs/src/sys/netiso/xebec/malloc.c,v $ */
-/*
- * This code is such a kludge that I don't want to put my name on it.
- * It was a ridiculously fast hack and needs rewriting.
- * However it does work...
- */
-
-/*
- * a simple malloc
- * it might be brain-damaged but for the purposes of xebec
- * it's a whole lot faster than the c library malloc
- */
-
-#include <stdio.h>
-#include "malloc.h"
-#include "debug.h"
-#define CHUNKSIZE 4096*2
-
-static char *hiwat, *highend;
-int bytesmalloced=0;
-int byteswasted = 0;
-
-
-init_alloc()
-{
-#ifdef LINT
- hiwat = 0;
- highend = 0;
-#else LINT
- extern char *sbrk();
-
- hiwat = (char *) sbrk(0);
- hiwat = (char *)((unsigned)(hiwat + 3) & ~0x3);
- highend = hiwat;
-#endif LINT
-}
-
-HIWAT(s)
-char *s;
-{
- IFDEBUG(M)
- fprintf(stdout, "HIWAT 0x%x %s\n", hiwat,s);
- fflush(stdout);
- ENDDEBUG
-}
-
-#define MIN(x,y) ((x<y)?x:y)
-
-char *Malloc(x)
-int x;
-{
- char *c;
- extern char *sbrk();
- static int firsttime=1;
- int total = x;
- int first_iter = 1;
- char *returnvalue;
-
- IFDEBUG(N)
- fprintf(stdout, "Malloc 0x%x, %d, bytesmalloced %d\n",
- total,total, bytesmalloced);
- fflush(stdout);
- ENDDEBUG
- IFDEBUG(M)
- fprintf(stdout, "Malloc 0x%x, %d, hiwat 0x%x\n",
- total,total, hiwat);
- fflush(stdout);
- ENDDEBUG
- if(firsttime) {
- hiwat = sbrk(0);
- if(((unsigned)(hiwat) & 0x3)) {
- bytesmalloced = 4 - (int) ((unsigned)(hiwat) & 0x3);
- hiwat = sbrk( bytesmalloced );
- } else
- bytesmalloced = 0;
- firsttime = 0;
- highend = hiwat;
- }
- while( total ) {
- x = MIN(CHUNKSIZE, total);
- if(total != x) {
- IFDEBUG(N)
- fprintf(stdout, "BIG Malloc tot %d, x %d, left %d net %d\n",
- total,x, total-x, bytesmalloced);
- fflush(stdout);
- ENDDEBUG
- }
- if ( (hiwat + x) > highend) {
- c = sbrk(CHUNKSIZE);
- IFDEBUG(M)
- fprintf(stdout, "hiwat 0x%x, x 0x%x, highend 0x%x, c 0x%x\n",
- hiwat, x, highend, c);
- fflush(stdout);
- ENDDEBUG
- if( c == (char *) -1 ) {
- fprintf(stderr, "Ran out of memory!\n");
- Exit(-1);
- }
- if(first_iter) {
- returnvalue = c;
- first_iter = 0;
- }
- bytesmalloced += CHUNKSIZE;
- IFDEBUG(m)
- if (highend != c) {
- fprintf(OUT, "warning: %d wasted bytes!\n", highend - hiwat);
- fprintf(OUT, " chunksize 0x%x, x 0x%x \n", CHUNKSIZE, x);
- }
- ENDDEBUG
- highend = c + CHUNKSIZE;
- hiwat = c;
- }
- c = hiwat;
- if(first_iter) {
- returnvalue = c;
- first_iter = 0;
- }
- hiwat += x;
- total -= x;
- }
- if((unsigned)hiwat & 0x3) {
- byteswasted += (int)((unsigned)(hiwat) & 0x3);
- hiwat = (char *)((unsigned)(hiwat + 3) & ~0x3);
- }
- IFDEBUG(M)
- fprintf(stdout, "Malloc = 0x%x, bytesm 0x%x, wasted 0x%x, hiwat 0x%x\n",
- returnvalue, bytesmalloced, byteswasted, hiwat);
- ENDDEBUG
- IFDEBUG(N)
- fprintf(stdout, "Malloc returns 0x%x, sbrk(0) 0x%x\n", returnvalue, sbrk(0));
- fflush(stdout);
- ENDDEBUG
- return(returnvalue);
-}
-