memsys.h
上传用户:lengbin
上传日期:2010-03-31
资源大小:121k
文件大小:2k
开发平台:

C/C++

  1. /*----------------------------------------------------------------------
  2.   File    : memsys.h
  3.   Contents: memory management system for equally sized (small) objects
  4.   Author  : Christian Borgelt
  5.   History : 10.12.2004 file created from fpgrowth.c
  6. ----------------------------------------------------------------------*/
  7. #ifndef __MEMSYS__
  8. #define __MEMSYS__
  9. /*----------------------------------------------------------------------
  10.   Type Definitions
  11. ----------------------------------------------------------------------*/
  12. typedef struct _msblock {       /* --- memory system block --- */
  13.   struct _msblock *succ;        /* successor block in list */
  14.   void            *rsvd;        /* reserved (for alignment) */
  15. } MSBLOCK;                      /* (memory management system block) */
  16. typedef struct {                /* --- memory management system --- */
  17.   int  size;                    /* size of each object */
  18.   int  cnt;                     /* number of objects per block */
  19.   int  blksz;                   /* size of a memory block */
  20.   void **free;                  /* list of free objects */
  21.   void *blocks;                 /* allocated memory blocks */
  22. } MEMSYS;                       /* (memory management system) */
  23. /*----------------------------------------------------------------------
  24.   Functions
  25. ----------------------------------------------------------------------*/
  26. extern MEMSYS* ms_create (int size, int cnt);
  27. extern void    ms_delete (MEMSYS *ms);
  28. extern void*   ms_alloc  (MEMSYS *ms);
  29. extern void    ms_free   (MEMSYS *ms, void *obj);
  30. #endif