#ifdef __NSMALLOC_C
#define pool(x) #x
-#define beginpools() char *poolnames[MAXPOOL] =
+#define beginpools() char *nsmpoolnames[MAXPOOL] =
#define endpools();
#else
#define pool(x) POOL_ ## x
#define beginpools(x) typedef enum nsmallocpools
-#define endpools() nsmallocpools;
+#define endpools() nsmallocpools; extern char *nsmpoolnames[MAXPOOL];
#include <stdlib.h>
void nsexit(void);
void *nsrealloc(unsigned int poolid, void *ptr, size_t size);
void nscheckfreeall(unsigned int poolid);
-void initnsmalloc(void);
+void *nscalloc(unsigned int poolid, size_t nmemb, size_t size);
#define MAXPOOL 100
+struct nsminfo {
+ struct nsminfo *next;
+ struct nsminfo *prev;
+
+ size_t size;
+ char data[];
+};
+
+struct nsmpool {
+ unsigned long count;
+ size_t size;
+ struct nsminfo first;
+};
+
+extern struct nsmpool nsmpools[MAXPOOL];
+
#endif
/* Pools here in the order they were created */
pool(LUA),
pool(TROJANSCAN),
pool(NTERFACER),
+ pool(SQLITE),
+ pool(PQSQL),
+ pool(PATRICIA),
+ pool(PATRICIANICK),
+ pool(GLINE),
+ pool(TRUSTS),
+ pool(SPAMSCAN2),
+ pool(ACHIEVEMENTS)
} endpools()
#undef pool