127 |
|
|
128 |
lfree = (struct mem *)ram; |
lfree = (struct mem *)ram; |
129 |
|
|
130 |
#ifdef MEM_STATS |
#if MEM_STATS |
131 |
lwip_stats.mem.avail = MEM_SIZE; |
lwip_stats.mem.avail = MEM_SIZE; |
132 |
#endif /* MEM_STATS */ |
#endif /* MEM_STATS */ |
133 |
} |
} |
148 |
|
|
149 |
if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) { |
if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) { |
150 |
LWIP_DEBUGF(MEM_DEBUG | 3, ("mem_free: illegal memory\n")); |
LWIP_DEBUGF(MEM_DEBUG | 3, ("mem_free: illegal memory\n")); |
151 |
#ifdef MEM_STATS |
#if MEM_STATS |
152 |
++lwip_stats.mem.err; |
++lwip_stats.mem.err; |
153 |
#endif /* MEM_STATS */ |
#endif /* MEM_STATS */ |
154 |
sys_sem_signal(mem_sem); |
sys_sem_signal(mem_sem); |
164 |
lfree = mem; |
lfree = mem; |
165 |
} |
} |
166 |
|
|
167 |
#ifdef MEM_STATS |
#if MEM_STATS |
168 |
lwip_stats.mem.used -= mem->next - ((u8_t *)mem - ram); |
lwip_stats.mem.used -= mem->next - ((u8_t *)mem - ram); |
169 |
|
|
170 |
#endif /* MEM_STATS */ |
#endif /* MEM_STATS */ |
183 |
mem_free(rmem); |
mem_free(rmem); |
184 |
return nmem; |
return nmem; |
185 |
} |
} |
186 |
/*-----------------------------------------------------------------------------------*/ |
|
187 |
void * |
void * |
188 |
mem_realloc(void *rmem, mem_size_t newsize) |
mem_realloc(void *rmem, mem_size_t newsize) |
189 |
{ |
{ |
215 |
ptr = (u8_t *)mem - ram; |
ptr = (u8_t *)mem - ram; |
216 |
|
|
217 |
size = mem->next - ptr - SIZEOF_STRUCT_MEM; |
size = mem->next - ptr - SIZEOF_STRUCT_MEM; |
218 |
#ifdef MEM_STATS |
#if MEM_STATS |
219 |
lwip_stats.mem.used -= (size - newsize); |
lwip_stats.mem.used -= (size - newsize); |
220 |
#endif /* MEM_STATS */ |
#endif /* MEM_STATS */ |
221 |
|
|
273 |
|
|
274 |
mem2->used = 0; |
mem2->used = 0; |
275 |
mem->used = 1; |
mem->used = 1; |
276 |
#ifdef MEM_STATS |
#if MEM_STATS |
277 |
lwip_stats.mem.used += (size + SIZEOF_STRUCT_MEM); |
lwip_stats.mem.used += (size + SIZEOF_STRUCT_MEM); |
278 |
/* if (lwip_stats.mem.max < lwip_stats.mem.used) { |
/* if (lwip_stats.mem.max < lwip_stats.mem.used) { |
279 |
lwip_stats.mem.max = lwip_stats.mem.used; |
lwip_stats.mem.max = lwip_stats.mem.used; |
299 |
} |
} |
300 |
} |
} |
301 |
LWIP_DEBUGF(MEM_DEBUG | 2, ("mem_malloc: could not allocate %d bytes\n", (int)size)); |
LWIP_DEBUGF(MEM_DEBUG | 2, ("mem_malloc: could not allocate %d bytes\n", (int)size)); |
302 |
#ifdef MEM_STATS |
#if MEM_STATS |
303 |
++lwip_stats.mem.err; |
++lwip_stats.mem.err; |
304 |
#endif /* MEM_STATS */ |
#endif /* MEM_STATS */ |
305 |
sys_sem_signal(mem_sem); |
sys_sem_signal(mem_sem); |