/[lwip]/lwip/src/core/pbuf.c
ViewVC logotype

Diff of /lwip/src/core/pbuf.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.48 by likewise, Thu May 1 07:48:01 2003 UTC revision 1.49 by likewise, Thu May 1 13:24:01 2003 UTC
# Line 134  pbuf_pool_alloc(void) Line 134  pbuf_pool_alloc(void)
134  #if !SYS_LIGHTWEIGHT_PROT        #if !SYS_LIGHTWEIGHT_PROT      
135    /* Next, check the actual pbuf pool, but if the pool is locked, we    /* Next, check the actual pbuf pool, but if the pool is locked, we
136       pretend to be out of buffers and return NULL. */       pretend to be out of buffers and return NULL. */
137    if(pbuf_pool_free_lock) {    if (pbuf_pool_free_lock) {
138  #ifdef PBUF_STATS  #ifdef PBUF_STATS
139      ++lwip_stats.pbuf.alloc_locked;      ++lwip_stats.pbuf.alloc_locked;
140  #endif /* PBUF_STATS */  #endif /* PBUF_STATS */
141      return NULL;      return NULL;
142    }    }
143    pbuf_pool_alloc_lock = 1;    pbuf_pool_alloc_lock = 1;
144    if(!pbuf_pool_free_lock) {    if (!pbuf_pool_free_lock) {
145  #endif /* SYS_LIGHTWEIGHT_PROT */          #endif /* SYS_LIGHTWEIGHT_PROT */        
146      p = pbuf_pool;      p = pbuf_pool;
147      if(p) {      if (p) {
148        pbuf_pool = p->next;        pbuf_pool = p->next;
149      }      }
150  #if !SYS_LIGHTWEIGHT_PROT        #if !SYS_LIGHTWEIGHT_PROT      
# Line 157  pbuf_pool_alloc(void) Line 157  pbuf_pool_alloc(void)
157  #endif /* SYS_LIGHTWEIGHT_PROT */      #endif /* SYS_LIGHTWEIGHT_PROT */    
158        
159  #ifdef PBUF_STATS  #ifdef PBUF_STATS
160    if(p != NULL) {        if (p != NULL) {    
161      ++lwip_stats.pbuf.used;      ++lwip_stats.pbuf.used;
162      if(lwip_stats.pbuf.used > lwip_stats.pbuf.max) {      if (lwip_stats.pbuf.used > lwip_stats.pbuf.max) {
163        lwip_stats.pbuf.max = lwip_stats.pbuf.used;        lwip_stats.pbuf.max = lwip_stats.pbuf.used;
164      }      }
165    }    }
# Line 258  pbuf_alloc(pbuf_layer l, u16_t length, p Line 258  pbuf_alloc(pbuf_layer l, u16_t length, p
258      /* remaining length to be allocated */      /* remaining length to be allocated */
259      rem_len = length - p->len;      rem_len = length - p->len;
260      /* any remaining pbufs to be allocated? */      /* any remaining pbufs to be allocated? */
261      while(rem_len > 0) {            while (rem_len > 0) {      
262        q = pbuf_pool_alloc();        q = pbuf_pool_alloc();
263        if (q == NULL) {        if (q == NULL) {
264         DEBUGF(PBUF_DEBUG | 2, ("pbuf_alloc: Out of pbufs in pool.\n"));         DEBUGF(PBUF_DEBUG | 2, ("pbuf_alloc: Out of pbufs in pool.\n"));
# Line 346  pbuf_alloc(pbuf_layer l, u16_t length, p Line 346  pbuf_alloc(pbuf_layer l, u16_t length, p
346                                  SYS_ARCH_PROTECT(old_level);            \                                  SYS_ARCH_PROTECT(old_level);            \
347                                  PBUF_POOL_FAST_FREE(p);                 \                                  PBUF_POOL_FAST_FREE(p);                 \
348                                  SYS_ARCH_UNPROTECT(old_level);          \                                  SYS_ARCH_UNPROTECT(old_level);          \
349                                 } while(0)                                 } while (0)
350  #else /* SYS_LIGHTWEIGHT_PROT */  #else /* SYS_LIGHTWEIGHT_PROT */
351  #define PBUF_POOL_FREE(p)  do {                                         \  #define PBUF_POOL_FREE(p)  do {                                         \
352                               sys_sem_wait(pbuf_pool_free_sem);          \                               sys_sem_wait(pbuf_pool_free_sem);          \
353                               PBUF_POOL_FAST_FREE(p);                    \                               PBUF_POOL_FAST_FREE(p);                    \
354                               sys_sem_signal(pbuf_pool_free_sem);        \                               sys_sem_signal(pbuf_pool_free_sem);        \
355                             } while(0)                             } while (0)
356  #endif /* SYS_LIGHTWEIGHT_PROT */  #endif /* SYS_LIGHTWEIGHT_PROT */
357    
358  /**  /**
# Line 632  pbuf_chain(struct pbuf *h, struct pbuf * Line 632  pbuf_chain(struct pbuf *h, struct pbuf *
632    LWIP_ASSERT("h != NULL", h != NULL);    LWIP_ASSERT("h != NULL", h != NULL);
633    LWIP_ASSERT("t != NULL", t != NULL);    LWIP_ASSERT("t != NULL", t != NULL);
634    
635    if(t == NULL)    if (t == NULL)
636      return;      return;
637        
638    /* proceed to last pbuf of chain */    /* proceed to last pbuf of chain */

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.49

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26