]> git.sur5r.net Git - freertos/blob - Demo/uIP_Demo_Rowley_ARM7/uip/memb.h
First version under SVN is V4.0.1
[freertos] / Demo / uIP_Demo_Rowley_ARM7 / uip / memb.h
1 /**\r
2  * \addtogroup exampleapps\r
3  * @{\r
4  */\r
5 \r
6 /**\r
7  * \file\r
8  * Memory block allocation routines.\r
9  * \author Adam Dunkels <adam@sics.se>\r
10  *\r
11  */\r
12 \r
13 #ifndef __MEMB_H__\r
14 #define __MEMB_H__\r
15 \r
16 /**\r
17  * Declare a memory block.\r
18  *\r
19  * \param name The name of the memory block (later used with\r
20  * memb_init(), memb_alloc() and memb_free()).\r
21  *\r
22  * \param size The size of each memory chunk, in bytes.\r
23  *\r
24  * \param num The total number of memory chunks in the block.\r
25  *\r
26  */\r
27 #define MEMB(name, size, num) \\r
28         static char memb_mem[(size + 1) * num]; \\r
29         static struct memb_blocks name = {size, num, memb_mem}\r
30 \r
31 struct memb_blocks {\r
32   unsigned short size;\r
33   unsigned short num;\r
34   char *mem;\r
35 };\r
36 \r
37 void  memb_init(struct memb_blocks *m);\r
38 char *memb_alloc(struct memb_blocks *m);\r
39 char  memb_ref(struct memb_blocks *m, char *ptr);\r
40 char  memb_free(struct memb_blocks *m, char *ptr);\r
41 \r
42 \r
43 #endif /* __MEMB_H__ */\r