// LWIP_MEMPOOL(name, number, type, description)
LWIP_MEMPOOL(PBUF,      MEMP_NUM_PBUF, sizeof(struct pbuf), "PBUF_REF/ROM")
LWIP_MEMPOOL(RAW_PCB,   MEMP_NUM_RAW_PCB, sizeof(struct raw_pcb), "RAW_PCB")
LWIP_MEMPOOL(UDP_PCB,   MEMP_NUM_UDP_PCB, sizeof(struct udp_pcb), "UDP_PCB")
LWIP_MEMPOOL(TCP_PCB,   MEMP_NUM_TCP_PCB, sizeof(struct tcp_pcb), "TCP_PCB")
LWIP_MEMPOOL(TCP_PCB_LISTEN, MEMP_NUM_TCP_PCB_LISTEN, sizeof(struct tcp_pcb_listen), "TCP_PCB_LISTEN")
LWIP_MEMPOOL(TCP_SEG,   MEMP_NUM_TCP_SEG, sizeof(struct tcp_seg), "TCP_SEG")
LWIP_MEMPOOL(NETBUF,    MEMP_NUM_NETBUF, sizeof(struct netbuf), "NETBUF")
LWIP_MEMPOOL(NETCONN,   MEMP_NUM_NETCONN, sizeof(struct netconn), "NETCONN")
LWIP_MEMPOOL(TCPIP_MSG, MEMP_NUM_TCPIP_MSG, sizeof(struct tcpip_msg), "TCPIP_MSG")

#if ARP_QUEUEING
LWIP_MEMPOOL(ARP_QUEUE, MEMP_NUM_ARP_QUEUE, sizeof(struct etharp_q_entry), "ARP_QUEUE")
#endif

LWIP_MEMPOOL(PBUF_POOL, PBUF_POOL_SIZE, (sizeof(struct pbuf) + MEMP_ALIGN_SIZE(PBUF_POOL_BUFSIZE)), "PBUF_POOL")
LWIP_MEMPOOL(SYS_TIMEOUT,MEMP_NUM_SYS_TIMEOUT, sizeof(struct sys_timeo), "SYS_TIMEOUT")

#if MEM_USE_POOLS
LWIP_MEMPOOL(MEM_POOL_1,MEM_POOL_NUM_1, MEM_POOL_SIZE_1, "POOL_1")
LWIP_MEMPOOL(MEM_POOL_2,MEM_POOL_NUM_2, MEM_POOL_SIZE_2, "POOL_2")
LWIP_MEMPOOL(MEM_POOL_3,MEM_POOL_NUM_3, MEM_POOL_SIZE_3, "POOL_3")
LWIP_MEMPOOL(MEM_POOL_4,MEM_POOL_NUM_4, MEM_POOL_SIZE_4, "POOL_4")
#endif

// Example custom pools for the developer
#if 0
LWIP_MEMPOOL(SYS_SEM, 10, sizeof(struct my_sem_type), "SYS_SEM")
LWIP_MEMPOOL(SYS_MBOX, 10, sizeof(struct my_mbox_type), "SYS_MBOX")
#endif

