78 #define LWIP_MEMPOOL(name,num,size,desc) LWIP_MEMPOOL_DECLARE(name,num,size,desc) 
   82 #define LWIP_MEMPOOL(name,num,size,desc) &memp_ ## name, 
   86 #ifdef LWIP_HOOK_FILENAME 
   87 #include LWIP_HOOK_FILENAME 
   90 #if MEMP_MEM_MALLOC && MEMP_OVERFLOW_CHECK >= 2 
   91 #undef MEMP_OVERFLOW_CHECK 
   93 #define MEMP_OVERFLOW_CHECK 1 
   96 #if MEMP_SANITY_CHECK && !MEMP_MEM_MALLOC 
  101 memp_sanity(
const struct memp_desc *desc)
 
  119 #if MEMP_OVERFLOW_CHECK 
  128 memp_overflow_check_element_overflow(
struct memp *p, 
const struct memp_desc *desc)
 
  130 #if MEMP_SANITY_REGION_AFTER_ALIGNED > 0 
  134   for (k = 0; k < MEMP_SANITY_REGION_AFTER_ALIGNED; k++) {
 
  136       char errstr[128] = 
"detected memp overflow in pool ";
 
  137       strcat(errstr, desc->desc);
 
  155 memp_overflow_check_element_underflow(
struct memp *p, 
const struct memp_desc *desc)
 
  157 #if MEMP_SANITY_REGION_BEFORE_ALIGNED > 0 
  160   m = (
u8_t*)p + 
MEMP_SIZE - MEMP_SANITY_REGION_BEFORE_ALIGNED;
 
  161   for (k = 0; k < MEMP_SANITY_REGION_BEFORE_ALIGNED; k++) {
 
  163       char errstr[128] = 
"detected memp underflow in pool ";
 
  164       strcat(errstr, desc->desc);
 
  178 memp_overflow_init_element(
struct memp *p, 
const struct memp_desc *desc)
 
  180 #if MEMP_SANITY_REGION_BEFORE_ALIGNED > 0 || MEMP_SANITY_REGION_AFTER_ALIGNED > 0 
  182 #if MEMP_SANITY_REGION_BEFORE_ALIGNED > 0 
  183   m = (
u8_t*)p + 
MEMP_SIZE - MEMP_SANITY_REGION_BEFORE_ALIGNED;
 
  184   memset(m, 0xcd, MEMP_SANITY_REGION_BEFORE_ALIGNED);
 
  186 #if MEMP_SANITY_REGION_AFTER_ALIGNED > 0 
  188   memset(m, 0xcd, MEMP_SANITY_REGION_AFTER_ALIGNED);
 
  196 #if MEMP_OVERFLOW_CHECK >= 2 
  203 memp_overflow_check_all(
void)
 
  213       memp_overflow_check_element_overflow(p, 
memp_pools[i]);
 
  214       memp_overflow_check_element_underflow(p, 
memp_pools[i]);
 
  241   for (i = 0; i < desc->
num; ++i) {
 
  244 #if MEMP_OVERFLOW_CHECK 
  245     memp_overflow_init_element(
memp, desc);
 
  250       + MEMP_SANITY_REGION_AFTER_ALIGNED
 
  255   desc->stats->avail = desc->
num;
 
  259 #if MEMP_STATS && (defined(LWIP_DEBUG) || LWIP_STATS_DISPLAY) 
  260   desc->stats->name  = desc->desc;
 
  279 #if LWIP_STATS && MEMP_STATS 
  284 #if MEMP_OVERFLOW_CHECK >= 2 
  286   memp_overflow_check_all();
 
  291 #if !MEMP_OVERFLOW_CHECK 
  292 do_memp_malloc_pool(
const struct memp_desc *desc)
 
  294 do_memp_malloc_pool_fn(
const struct memp_desc *desc, 
const char* 
file, 
const int line)
 
  311 #if MEMP_OVERFLOW_CHECK == 1 
  312     memp_overflow_check_element_overflow(
memp, desc);
 
  313     memp_overflow_check_element_underflow(
memp, desc);
 
  317 #if MEMP_OVERFLOW_CHECK 
  321 #if MEMP_OVERFLOW_CHECK 
  325     memp_overflow_init_element(
memp, desc);
 
  332     if (desc->stats->used > desc->stats->max) {
 
  333       desc->stats->max = desc->stats->used;
 
  358 #if !MEMP_OVERFLOW_CHECK 
  361 memp_malloc_pool_fn(
const struct memp_desc *desc, 
const char* 
file, 
const int line)
 
  369 #if !MEMP_OVERFLOW_CHECK 
  370   return do_memp_malloc_pool(desc);
 
  372   return do_memp_malloc_pool_fn(desc, 
file, line);
 
  384 #if !MEMP_OVERFLOW_CHECK 
  387 memp_malloc_fn(
memp_t type, 
const char* 
file, 
const int line)
 
  393 #if MEMP_OVERFLOW_CHECK >= 2 
  394   memp_overflow_check_all();
 
  397 #if !MEMP_OVERFLOW_CHECK 
  407 do_memp_free_pool(
const struct memp_desc* desc, 
void *
mem)
 
  420 #if MEMP_OVERFLOW_CHECK == 1 
  421   memp_overflow_check_element_overflow(
memp, desc);
 
  422   memp_overflow_check_element_underflow(
memp, desc);
 
  437 #if MEMP_SANITY_CHECK 
  459   do_memp_free_pool(desc, 
mem);
 
  471 #ifdef LWIP_HOOK_MEMP_AVAILABLE 
  472   struct memp *old_first;
 
  481 #if MEMP_OVERFLOW_CHECK >= 2 
  482   memp_overflow_check_all();
 
  485 #ifdef LWIP_HOOK_MEMP_AVAILABLE 
  491 #ifdef LWIP_HOOK_MEMP_AVAILABLE 
  492   if (old_first == 
NULL) {
 
  493     LWIP_HOOK_MEMP_AVAILABLE(type);