www.pudn.com > FP-GROWTH.rar > memsys.h
/*----------------------------------------------------------------------
File : memsys.h
Contents: memory management system for equally sized (small) objects
Author : Christian Borgelt
History : 10.12.2004 file created from fpgrowth.c
----------------------------------------------------------------------*/
#ifndef __MEMSYS__
#define __MEMSYS__
/*----------------------------------------------------------------------
Type Definitions
----------------------------------------------------------------------*/
typedef struct _msblock { /* --- memory system block --- */
struct _msblock *succ; /* successor block in list */
void *rsvd; /* reserved (for alignment) */
} MSBLOCK; /* (memory management system block) */
typedef struct { /* --- memory management system --- */
int size; /* size of each object */
int cnt; /* number of objects per block */
int blksz; /* size of a memory block */
void **free; /* list of free objects */
void *blocks; /* allocated memory blocks */
} MEMSYS; /* (memory management system) */
/*----------------------------------------------------------------------
Functions
----------------------------------------------------------------------*/
extern MEMSYS* ms_create (int size, int cnt);
extern void ms_delete (MEMSYS *ms);
extern void* ms_alloc (MEMSYS *ms);
extern void ms_free (MEMSYS *ms, void *obj);
#endif