]> git.sur5r.net Git - freertos/blob - Demo/Common/ethernet/lwIP_130/src/include/lwip/memp.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / Common / ethernet / lwIP_130 / src / include / lwip / memp.h
1 /*\r
2  * Copyright (c) 2001-2004 Swedish Institute of Computer Science.\r
3  * All rights reserved.\r
4  *\r
5  * Redistribution and use in source and binary forms, with or without modification,\r
6  * are permitted provided that the following conditions are met:\r
7  *\r
8  * 1. Redistributions of source code must retain the above copyright notice,\r
9  *    this list of conditions and the following disclaimer.\r
10  * 2. Redistributions in binary form must reproduce the above copyright notice,\r
11  *    this list of conditions and the following disclaimer in the documentation\r
12  *    and/or other materials provided with the distribution.\r
13  * 3. The name of the author may not be used to endorse or promote products\r
14  *    derived from this software without specific prior written permission.\r
15  *\r
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED\r
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
18  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\r
19  * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\r
21  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
22  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING\r
24  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\r
25  * OF SUCH DAMAGE.\r
26  *\r
27  * This file is part of the lwIP TCP/IP stack.\r
28  *\r
29  * Author: Adam Dunkels <adam@sics.se>\r
30  *\r
31  */\r
32 \r
33 #ifndef __LWIP_MEMP_H__\r
34 #define __LWIP_MEMP_H__\r
35 \r
36 #include "lwip/opt.h"\r
37 \r
38 #ifdef __cplusplus\r
39 extern "C" {\r
40 #endif\r
41 \r
42 /* Create the list of all memory pools managed by memp. MEMP_MAX represents a NULL pool at the end */\r
43 typedef enum {\r
44 #define LWIP_MEMPOOL(name,num,size,desc)  MEMP_##name,\r
45 #include "lwip/memp_std.h"\r
46   MEMP_MAX\r
47 } memp_t;\r
48 \r
49 #if MEM_USE_POOLS\r
50 /* Use a helper type to get the start and end of the user "memory pools" for mem_malloc */\r
51 typedef enum {\r
52     /* Get the first (via:\r
53        MEMP_POOL_HELPER_START = ((u8_t) 1*MEMP_POOL_A + 0*MEMP_POOL_B + 0*MEMP_POOL_C + 0)*/\r
54     MEMP_POOL_HELPER_FIRST = ((u8_t)\r
55 #define LWIP_MEMPOOL(name,num,size,desc)\r
56 #define LWIP_MALLOC_MEMPOOL_START 1\r
57 #define LWIP_MALLOC_MEMPOOL(num, size) * MEMP_POOL_##size + 0\r
58 #define LWIP_MALLOC_MEMPOOL_END\r
59 #include "lwip/memp_std.h"\r
60     ) ,\r
61     /* Get the last (via:\r
62        MEMP_POOL_HELPER_END = ((u8_t) 0 + MEMP_POOL_A*0 + MEMP_POOL_B*0 + MEMP_POOL_C*1) */\r
63     MEMP_POOL_HELPER_LAST = ((u8_t)\r
64 #define LWIP_MEMPOOL(name,num,size,desc)\r
65 #define LWIP_MALLOC_MEMPOOL_START\r
66 #define LWIP_MALLOC_MEMPOOL(num, size) 0 + MEMP_POOL_##size *\r
67 #define LWIP_MALLOC_MEMPOOL_END 1\r
68 #include "lwip/memp_std.h"\r
69     )\r
70 } memp_pool_helper_t;\r
71 \r
72 /* The actual start and stop values are here (cast them over)\r
73    We use this helper type and these defines so we can avoid using const memp_t values */\r
74 #define MEMP_POOL_FIRST ((memp_t) MEMP_POOL_HELPER_FIRST)\r
75 #define MEMP_POOL_LAST   ((memp_t) MEMP_POOL_HELPER_LAST)\r
76 \r
77 extern const u16_t memp_sizes[MEMP_MAX];\r
78 #endif /* MEM_USE_POOLS */\r
79 \r
80 void  memp_init(void);\r
81 \r
82 #if MEMP_OVERFLOW_CHECK\r
83 void *memp_malloc_fn(memp_t type, const char* file, const int line);\r
84 #define memp_malloc(t) memp_malloc_fn((t), __FILE__, __LINE__)\r
85 #else\r
86 void *memp_malloc(memp_t type);\r
87 #endif\r
88 void  memp_free(memp_t type, void *mem);\r
89 \r
90 #ifdef __cplusplus\r
91 }\r
92 #endif\r
93 \r
94 #endif /* __LWIP_MEMP_H__ */\r