www.pudn.com > UIP09_ADSP-BF537_Blackfin_org.zip > memb.h


/** 
 * \addtogroup exampleapps 
 * @{ 
 */ 
 
/** 
 * \file 
 * Memory block allocation routines. 
 * \author Adam Dunkels  
 * 
 */ 
 
#ifndef __MEMB_H__ 
#define __MEMB_H__ 
 
/** 
 * Declare a memory block. 
 * 
 * \param name The name of the memory block (later used with 
 * memb_init(), memb_alloc() and memb_free()). 
 * 
 * \param size The size of each memory chunk, in bytes. 
 * 
 * \param num The total number of memory chunks in the block. 
 * 
 */ 
#define MEMB(name, size, num) \ 
        static char memb_mem[(size + 1) * num]; \ 
        static struct memb_blocks name = {size, num, memb_mem} 
 
struct memb_blocks { 
  unsigned short size; 
  unsigned short num; 
  char *mem; 
}; 
 
void  memb_init(struct memb_blocks *m); 
char *memb_alloc(struct memb_blocks *m); 
char  memb_ref(struct memb_blocks *m, char *ptr); 
char  memb_free(struct memb_blocks *m, char *ptr); 
 
 
#endif /* __MEMB_H__ */