]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lwip.git/blobdiff - src/core/memp.c
Merged from DEVEL into main tree.
[pes-rpp/rpp-lwip.git] / src / core / memp.c
index 26ae7e007afe30ed6959d4bda7e7d8fb399f82ed..7ecff5f8ce93afacce93732ff27cb2bea822e843 100644 (file)
@@ -36,6 +36,7 @@
 
 #include "lwip/pbuf.h"
 #include "lwip/udp.h"
+#include "lwip/raw.h"
 #include "lwip/tcp.h"
 #include "lwip/api.h"
 #include "lwip/api_msg.h"
@@ -54,6 +55,7 @@ static struct memp *memp_tab[MEMP_MAX];
 
 static const u16_t memp_sizes[MEMP_MAX] = {
   sizeof(struct pbuf),
+  sizeof(struct raw_pcb),
   sizeof(struct udp_pcb),
   sizeof(struct tcp_pcb),
   sizeof(struct tcp_pcb_listen),
@@ -67,6 +69,7 @@ static const u16_t memp_sizes[MEMP_MAX] = {
 
 static const u16_t memp_num[MEMP_MAX] = {
   MEMP_NUM_PBUF,
+  MEMP_NUM_RAW_PCB,
   MEMP_NUM_UDP_PCB,
   MEMP_NUM_TCP_PCB,
   MEMP_NUM_TCP_PCB_LISTEN,
@@ -81,6 +84,9 @@ static const u16_t memp_num[MEMP_MAX] = {
 static u8_t memp_memory[(MEMP_NUM_PBUF *
        MEM_ALIGN_SIZE(sizeof(struct pbuf) +
           sizeof(struct memp)) +
+      MEMP_NUM_RAW_PCB *
+       MEM_ALIGN_SIZE(sizeof(struct raw_pcb) +
+          sizeof(struct memp)) +
       MEMP_NUM_UDP_PCB *
        MEM_ALIGN_SIZE(sizeof(struct udp_pcb) +
           sizeof(struct memp)) +
@@ -109,12 +115,12 @@ static u8_t memp_memory[(MEMP_NUM_PBUF *
        MEM_ALIGN_SIZE(sizeof(struct sys_timeout) +
           sizeof(struct memp)))];
 
-/*-----------------------------------------------------------------------------------*/
+
 #if !SYS_LIGHTWEIGHT_PROT
 static sys_sem_t mutex;
 #endif
-/*-----------------------------------------------------------------------------------*/
-#ifdef LWIP_DEBUG
+
+#ifndef LWIP_NOASSERT
 static int
 memp_sanity(void)
 {
@@ -135,7 +141,7 @@ memp_sanity(void)
   return 1;
 }
 #endif /* LWIP_DEBUG */
-/*-----------------------------------------------------------------------------------*/
+
 void
 memp_init(void)
 {
@@ -143,7 +149,7 @@ memp_init(void)
   u16_t i, j;
   u16_t size;
       
-#ifdef MEMP_STATS
+#if MEMP_STATS
   for(i = 0; i < MEMP_MAX; ++i) {
     lwip_stats.memp[i].used = lwip_stats.memp[i].max =
       lwip_stats.memp[i].err = 0;
@@ -176,19 +182,19 @@ memp_init(void)
 
   
 }
-/*-----------------------------------------------------------------------------------*/
+
 void *
 memp_malloc(memp_t type)
 {
   struct memp *memp;
   void *mem;
-#ifdef SYS_LIGHTWEIGHT_PROT
+#if SYS_LIGHTWEIGHT_PROT
   SYS_ARCH_DECL_PROTECT(old_level);
 #endif
  
   LWIP_ASSERT("memp_malloc: type < MEMP_MAX", type < MEMP_MAX);
 
-#ifdef SYS_LIGHTWEIGHT_PROT
+#if SYS_LIGHTWEIGHT_PROT
   SYS_ARCH_PROTECT(old_level);
 #else /* SYS_LIGHTWEIGHT_PROT */  
   sys_sem_wait(mutex);
@@ -199,13 +205,13 @@ memp_malloc(memp_t type)
   if (memp != NULL) {    
     memp_tab[type] = memp->next;    
     memp->next = NULL;
-#ifdef MEMP_STATS
+#if MEMP_STATS
     ++lwip_stats.memp[type].used;
     if (lwip_stats.memp[type].used > lwip_stats.memp[type].max) {
       lwip_stats.memp[type].max = lwip_stats.memp[type].used;
     }
 #endif /* MEMP_STATS */
-#ifdef SYS_LIGHTWEIGHT_PROT
+#if SYS_LIGHTWEIGHT_PROT
     SYS_ARCH_UNPROTECT(old_level);
 #else /* SYS_LIGHTWEIGHT_PROT */
     sys_sem_signal(mutex);
@@ -219,7 +225,7 @@ memp_malloc(memp_t type)
     return mem;
   } else {
     LWIP_DEBUGF(MEMP_DEBUG | 2, ("memp_malloc: out of memory in pool %d\n", type));
-#ifdef MEMP_STATS
+#if MEMP_STATS
     ++lwip_stats.memp[type].err;
 #endif /* MEMP_STATS */
 #if SYS_LIGHTWEIGHT_PROT
@@ -230,12 +236,12 @@ memp_malloc(memp_t type)
     return NULL;
   }
 }
-/*-----------------------------------------------------------------------------------*/
+
 void
 memp_free(memp_t type, void *mem)
 {
   struct memp *memp;
-#ifdef SYS_LIGHTWEIGHT_PROT
+#if SYS_LIGHTWEIGHT_PROT
   SYS_ARCH_DECL_PROTECT(old_level);
 #endif /* SYS_LIGHTWEIGHT_PROT */  
 
@@ -244,13 +250,13 @@ memp_free(memp_t type, void *mem)
   }
   memp = (struct memp *)((u8_t *)mem - sizeof(struct memp));
 
-#ifdef SYS_LIGHTWEIGHT_PROT
+#if SYS_LIGHTWEIGHT_PROT
     SYS_ARCH_PROTECT(old_level);
 #else /* SYS_LIGHTWEIGHT_PROT */  
   sys_sem_wait(mutex);
 #endif /* SYS_LIGHTWEIGHT_PROT */  
 
-#ifdef MEMP_STATS
+#if MEMP_STATS
   lwip_stats.memp[type].used--; 
 #endif /* MEMP_STATS */
   
@@ -265,4 +271,4 @@ memp_free(memp_t type, void *mem)
   sys_sem_signal(mutex);
 #endif /* SYS_LIGHTWEIGHT_PROT */  
 }
-/*-----------------------------------------------------------------------------------*/
+