/*** \addtogroup exampleapps* @{*//*** \file* Memory block allocation routines.* \author Adam Dunkels <adam@sics.se>**/#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__ */