202 |
sys_sem_wait(mem_sem); |
sys_sem_wait(mem_sem); |
203 |
|
|
204 |
LWIP_ASSERT("mem_realloc: legal memory", (u8_t *)rmem >= (u8_t *)ram && |
LWIP_ASSERT("mem_realloc: legal memory", (u8_t *)rmem >= (u8_t *)ram && |
205 |
(u8_t *)rmem < (u8_t *)ram_end); |
(u8_t *)rmem < (u8_t *)ram_end); |
206 |
|
|
207 |
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) { |
208 |
DEBUGF(MEM_DEBUG | 3, ("mem_realloc: illegal memory\n")); |
DEBUGF(MEM_DEBUG | 3, ("mem_realloc: illegal memory\n")); |
275 |
lwip_stats.mem.used += (size + SIZEOF_STRUCT_MEM); |
lwip_stats.mem.used += (size + SIZEOF_STRUCT_MEM); |
276 |
/* if (lwip_stats.mem.max < lwip_stats.mem.used) { |
/* if (lwip_stats.mem.max < lwip_stats.mem.used) { |
277 |
lwip_stats.mem.max = lwip_stats.mem.used; |
lwip_stats.mem.max = lwip_stats.mem.used; |
278 |
} */ |
} */ |
279 |
if (lwip_stats.mem.max < ptr2) { |
if (lwip_stats.mem.max < ptr2) { |
280 |
lwip_stats.mem.max = ptr2; |
lwip_stats.mem.max = ptr2; |
281 |
} |
} |
282 |
#endif /* MEM_STATS */ |
#endif /* MEM_STATS */ |
283 |
|
|
284 |
if (mem == lfree) { |
if (mem == lfree) { |
285 |
/* Find next free block after mem */ |
/* Find next free block after mem */ |
286 |
while (lfree->used && lfree != ram_end) { |
while (lfree->used && lfree != ram_end) { |
287 |
lfree = (struct mem *)&ram[lfree->next]; |
lfree = (struct mem *)&ram[lfree->next]; |
288 |
} |
} |
289 |
LWIP_ASSERT("mem_malloc: !lfree->used", !lfree->used); |
LWIP_ASSERT("mem_malloc: !lfree->used", !lfree->used); |
290 |
} |
} |
291 |
sys_sem_signal(mem_sem); |
sys_sem_signal(mem_sem); |
292 |
LWIP_ASSERT("mem_malloc: allocated memory not above ram_end.", |
LWIP_ASSERT("mem_malloc: allocated memory not above ram_end.", |
293 |
(u32_t)mem + SIZEOF_STRUCT_MEM + size <= (u32_t)ram_end); |
(u32_t)mem + SIZEOF_STRUCT_MEM + size <= (u32_t)ram_end); |
294 |
LWIP_ASSERT("mem_malloc: allocated memory properly aligned.", |
LWIP_ASSERT("mem_malloc: allocated memory properly aligned.", |
295 |
(unsigned long)((u8_t *)mem + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT == 0); |
(unsigned long)((u8_t *)mem + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT == 0); |
296 |
return (u8_t *)mem + SIZEOF_STRUCT_MEM; |
return (u8_t *)mem + SIZEOF_STRUCT_MEM; |
297 |
} |
} |
298 |
} |
} |