82 struct memp_malloc_helper *
element;
86 for (poolnr = MEMP_POOL_FIRST; poolnr <= MEMP_POOL_LAST; poolnr = (
memp_t)(poolnr + 1)) {
87 #if MEM_USE_POOLS_TRY_BIGGER_POOL 96 if (poolnr > MEMP_POOL_LAST) {
97 LWIP_ASSERT(
"mem_malloc(): no pool is that big!", 0);
104 #if MEM_USE_POOLS_TRY_BIGGER_POOL 106 if (poolnr < MEMP_POOL_LAST) {
132 struct memp_malloc_helper *hmem;
138 hmem = (
struct memp_malloc_helper*)(
void*)((
u8_t*)rmem -
LWIP_MEM_ALIGN_SIZE(
sizeof(
struct memp_malloc_helper)));
172 #define MIN_SIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(MIN_SIZE) 173 #define SIZEOF_STRUCT_MEM LWIP_MEM_ALIGN_SIZE(sizeof(struct mem)) 174 #define MEM_SIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(MEM_SIZE) 180 #ifndef LWIP_RAM_HEAP_POINTER 183 #define LWIP_RAM_HEAP_POINTER ram_heap 198 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 200 static volatile u8_t mem_free_count;
203 #define LWIP_MEM_FREE_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_free) 204 #define LWIP_MEM_FREE_PROTECT() SYS_ARCH_PROTECT(lev_free) 205 #define LWIP_MEM_FREE_UNPROTECT() SYS_ARCH_UNPROTECT(lev_free) 206 #define LWIP_MEM_ALLOC_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_alloc) 207 #define LWIP_MEM_ALLOC_PROTECT() SYS_ARCH_PROTECT(lev_alloc) 208 #define LWIP_MEM_ALLOC_UNPROTECT() SYS_ARCH_UNPROTECT(lev_alloc) 213 #define LWIP_MEM_FREE_DECL_PROTECT() 214 #define LWIP_MEM_FREE_PROTECT() sys_mutex_lock(&mem_mutex) 215 #define LWIP_MEM_FREE_UNPROTECT() sys_mutex_unlock(&mem_mutex) 217 #define LWIP_MEM_ALLOC_DECL_PROTECT() 218 #define LWIP_MEM_ALLOC_PROTECT() 219 #define LWIP_MEM_ALLOC_UNPROTECT() 260 if (pmem !=
mem && pmem->
used == 0) {
352 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 409 if (newsize >
size) {
413 if (newsize ==
size) {
422 if(mem2->
used == 0) {
432 mem2 = (
struct mem *)(
void *)&
ram[ptr2];
457 mem2 = (
struct mem *)(
void *)&
ram[ptr2];
477 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 498 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 499 u8_t local_mem_free_count = 0;
523 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 526 local_mem_free_count = 0;
535 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 540 if (mem_free_count != 0) {
543 local_mem_free_count = 1;
566 mem2 = (
struct mem *)(
void *)&
ram[ptr2];
589 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 590 mem_malloc_adjust_lfree:
596 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 601 if (mem_free_count != 0) {
604 goto mem_malloc_adjust_lfree;
614 LWIP_ASSERT(
"mem_malloc: allocated memory not above ram_end.",
616 LWIP_ASSERT(
"mem_malloc: allocated memory properly aligned.",
624 #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 626 }
while(local_mem_free_count != 0);
#define LWIP_RAM_HEAP_POINTER
static const u16_t memp_sizes[MEMP_MAX]
#define LWIP_MEM_ALLOC_PROTECT()
#define LWIP_MEM_FREE_PROTECT()
static sys_mutex_t mem_mutex
err_t sys_mutex_new(sys_mutex_t *mutex)
GLuint GLuint GLsizei count
void mem_free(void *rmem)
#define SIZEOF_STRUCT_MEM
#define LWIP_MEM_ALLOC_DECL_PROTECT()
void sys_mutex_unlock(sys_mutex_t *mutex)
void sys_mutex_lock(sys_mutex_t *mutex)
void * mem_malloc(mem_size_t size)
static struct mem * ram_end
#define LWIP_ASSERT(message, assertion)
void memp_free(memp_t type, void *mem)
#define MEM_STATS_AVAIL(x, y)
void * mem_calloc(mem_size_t count, mem_size_t size)
static void plug_holes(struct mem *mem)
#define LWIP_DBG_LEVEL_SEVERE
void * mem_trim(void *rmem, mem_size_t newsize)
#define LWIP_DEBUGF(debug, message)
#define LWIP_MEM_ALIGN_SIZE(size)
#define LWIP_MEM_FREE_UNPROTECT()
static struct mem * lfree
u8_t ram_heap[MEM_SIZE_ALIGNED+(2 *SIZEOF_STRUCT_MEM)+MEM_ALIGNMENT]
#define LWIP_MEM_FREE_DECL_PROTECT()
#define SYS_ARCH_PROTECT(lev)
static unsigned __int64 next
#define LWIP_DBG_LEVEL_SERIOUS
#define SYS_ARCH_DECL_PROTECT(lev)
#define LWIP_MEM_ALIGN(addr)
#define SYS_ARCH_UNPROTECT(lev)
#define MEM_STATS_INC_USED(x, y)
#define MEM_STATS_DEC_USED(x, y)
void * memp_malloc(memp_t type)
#define LWIP_MEM_ALLOC_UNPROTECT()