1 typedef struct Pool Pool;
10 ulong minarena; /* smallest size of new arena */
11 ulong quantum; /* allocated blocks should be multiple of */
12 ulong minblock; /* smallest newly allocated block */
14 void* freeroot; /* actually Free* */
15 void* arenalist; /* actually Arena* */
17 void* (*alloc)(ulong);
18 int (*merge)(void*, void*);
19 void (*move)(void* from, void* to);
26 void (*unlock)(Pool*);
27 void (*print)(Pool*, char*, ...);
28 void (*panic)(Pool*, char*, ...);
29 void (*logstack)(Pool*);
34 extern void* poolalloc(Pool*, ulong);
35 extern void* poolallocalign(Pool*, ulong, ulong, long, ulong);
36 extern void poolfree(Pool*, void*);
37 extern ulong poolmsize(Pool*, void*);
38 extern void* poolrealloc(Pool*, void*, ulong);
39 extern void poolcheck(Pool*);
40 extern int poolcompact(Pool*);
41 extern void poolblockcheck(Pool*, void*);
42 extern void pooldump(Pool*);
48 POOL_ANTAGONISM = 1<<0,
50 POOL_VERBOSITY = 1<<2,
51 POOL_DEBUGGING = 1<<3,
53 POOL_TOLERANCE = 1<<5,