game/bin/
game/data/
/* alloc.h - External definitions for memory allocation subsystem */
/* $Id: alloc.h,v 1.2 1995/11/18 09:26:11 root Exp $ */

#include "copyright.h"

#ifndef M_ALLOC_H
#define M_ALLOC_H

#define	POOL_SBUF	0
#define	POOL_MBUF	1
#define	POOL_LBUF	2
#define	POOL_BOOL	3
#define	POOL_DESC	4
#define	POOL_QENTRY	5
#define POOL_PCACHE	6
#define	NUM_POOLS	7

#define LBUF_SIZE	8000
#define MBUF_SIZE	400
#define SBUF_SIZE	64

/* #define LBUF_SIZE	4000	*/
/* #define MBUF_SIZE	200	*/
/* #define SBUF_SIZE	32	*/

#ifndef STANDALONE

extern void	FDECL(pool_init, (int, int));
extern char *	FDECL(pool_alloc, (int, const char *));
extern void	FDECL(pool_free, (int, char **));
extern void	FDECL(list_bufstats, (dbref));
extern void	FDECL(list_buftrace, (dbref));

#define	alloc_lbuf(s)	pool_alloc(POOL_LBUF,s)
#define	free_lbuf(b)	pool_free(POOL_LBUF,((char **)&(b)))
#define	alloc_mbuf(s)	pool_alloc(POOL_MBUF,s)
#define	free_mbuf(b)	pool_free(POOL_MBUF,((char **)&(b)))
#define	alloc_sbuf(s)	pool_alloc(POOL_SBUF,s)
#define	free_sbuf(b)	pool_free(POOL_SBUF,((char **)&(b)))
#define	alloc_bool(s)	(struct boolexp *)pool_alloc(POOL_BOOL,s)
#define	free_bool(b)	pool_free(POOL_BOOL,((char **)&(b)))
#define	alloc_qentry(s)	(BQUE *)pool_alloc(POOL_QENTRY,s)
#define	free_qentry(b)	pool_free(POOL_QENTRY,((char **)&(b)))
#define alloc_pcache(s)	(PCACHE *)pool_alloc(POOL_PCACHE,s)
#define free_pcache(b)	pool_free(POOL_PCACHE,((char **)&(b)))

#else

#define	alloc_lbuf(s)	(char *)malloc(LBUF_SIZE)
#define	free_lbuf(b)	if (b) free(b)
#define	alloc_mbuf(s)	(char *)malloc(MBUF_SIZE)
#define	free_mbuf(b)	if (b) free(b)
#define	alloc_sbuf(s)	(char *)malloc(SBUF_SIZE)
#define	free_sbuf(b)	if (b) free(b)
#define	alloc_bool(s)	(struct boolexp *)malloc(sizeof(struct boolexp))
#define	free_bool(b)	if (b) free(b)
#define	alloc_qentry(s)	(BQUE *)malloc(sizeof(BQUE))
#define	free_qentry(b)	if (b) free(b)
#define	alloc_pcache(s)	(PCACHE *)malloc(sizeof(PCACHE)
#define free_pcache(b)	if (b) free(b)
#endif

#define	safe_str(s,b,p)		safe_copy_str(s,b,p,(LBUF_SIZE-1))
#define	safe_chr(c,b,p)		safe_copy_chr(c,b,p,(LBUF_SIZE-1))
#define	safe_sb_str(s,b,p)	safe_copy_str(s,b,p,(SBUF_SIZE-1))
#define	safe_sb_chr(c,b,p)	safe_copy_chr(c,b,p,(SBUF_SIZE-1))
#define	safe_mb_str(s,b,p)	safe_copy_str(s,b,p,(MBUF_SIZE-1))
#define	safe_mb_chr(c,b,p)	safe_copy_chr(c,b,p,(MBUF_SIZE-1))

#endif	/* M_ALLOC_H */