/* nalloc.h */ #define SBSIZE 16384 #define MAXBLK 20000 typedef struct bigblk BIGBLK; typedef struct nalloc NALLOC; struct bigblk { NALLOC *owner; /* list this block belongs to */ int used; /* how many datas are used here? */ char *blk; /* pointer to data area */ }; /* a kludge to get rid of some warnings */ typedef struct point POINT; struct point { POINT *next; }; struct nalloc { int offset; int size; int curblk; /* current block we are adding to */ POINT *free; /* pointer to first item on free list or null */ }; extern NALLOC *na_open(); extern char *na_alloc(); extern char *na_get(); extern char *na_ualloc(); extern char *bigalloc(); extern void na_clear(); extern void na_close(); extern void na_giveback(); extern void na_free(); extern void bigfree();