/[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.12 by davidhaas, Tue Feb 4 22:52:22 2003 UTC revision 1.13 by davidhaas, Thu Feb 6 22:18:56 2003 UTC
# Line 78  static struct pbuf *pbuf_pool_free_cache Line 78  static struct pbuf *pbuf_pool_free_cache
78  void  void
79  pbuf_init(void)  pbuf_init(void)
80  {  {
81    struct pbuf *p, *q;    struct pbuf *p, *q = 0;
82    u16_t i;    u16_t i;
83    
84    pbuf_pool = (struct pbuf *)&pbuf_pool_memory[0];    pbuf_pool = (struct pbuf *)&pbuf_pool_memory[0];
85    ASSERT("pbuf_init: pool aligned", (long)pbuf_pool % MEM_ALIGNMENT == 0);    LWIP_ASSERT("pbuf_init: pool aligned", (long)pbuf_pool % MEM_ALIGNMENT == 0);
86        
87  #ifdef PBUF_STATS  #ifdef PBUF_STATS
88    lwip_stats.pbuf.avail = PBUF_POOL_SIZE;    lwip_stats.pbuf.avail = PBUF_POOL_SIZE;
# Line 191  pbuf_pool_free(struct pbuf *p) Line 191  pbuf_pool_free(struct pbuf *p)
191      }      }
192  #endif /* PBUF_STATS */  #endif /* PBUF_STATS */
193    
 #ifdef SYS_LIGHTWEIGHT_PROT  
     old_level = sys_arch_protect();  
 #endif /* SYS_LIGHTWEIGHT_PROT */      
194    if(pbuf_pool_alloc_cache == NULL) {    if(pbuf_pool_alloc_cache == NULL) {
195      pbuf_pool_alloc_cache = p;      pbuf_pool_alloc_cache = p;
196    } else {      } else {  
# Line 244  pbuf_alloc(pbuf_layer l, u16_t size, pbu Line 241  pbuf_alloc(pbuf_layer l, u16_t size, pbu
241    case PBUF_RAW:    case PBUF_RAW:
242      break;      break;
243    default:    default:
244      ASSERT("pbuf_alloc: bad pbuf layer", 0);      LWIP_ASSERT("pbuf_alloc: bad pbuf layer", 0);
245      return NULL;      return NULL;
246    }    }
247    
# Line 292  pbuf_alloc(pbuf_layer l, u16_t size, pbu Line 289  pbuf_alloc(pbuf_layer l, u16_t size, pbu
289        q->payload = (void *)((u8_t *)q + sizeof(struct pbuf));        q->payload = (void *)((u8_t *)q + sizeof(struct pbuf));
290        r = q;        r = q;
291        q->ref = 1;        q->ref = 1;
292        q = q->next;        /*q = q->next;            DJH: Appears to be an unnecessary statement*/
293        rsize -= PBUF_POOL_BUFSIZE;        rsize -= PBUF_POOL_BUFSIZE;
294      }      }
295      r->next = NULL;      r->next = NULL;
296    
297      ASSERT("pbuf_alloc: pbuf->payload properly aligned",      LWIP_ASSERT("pbuf_alloc: pbuf->payload properly aligned",
298             ((u32_t)p->payload % MEM_ALIGNMENT) == 0);             ((u32_t)p->payload % MEM_ALIGNMENT) == 0);
299      break;      break;
300    case PBUF_RAM:    case PBUF_RAM:
# Line 312  pbuf_alloc(pbuf_layer l, u16_t size, pbu Line 309  pbuf_alloc(pbuf_layer l, u16_t size, pbu
309      p->next = NULL;      p->next = NULL;
310      p->flags = PBUF_FLAG_RAM;      p->flags = PBUF_FLAG_RAM;
311    
312      ASSERT("pbuf_alloc: pbuf->payload properly aligned",      LWIP_ASSERT("pbuf_alloc: pbuf->payload properly aligned",
313             ((u32_t)p->payload % MEM_ALIGNMENT) == 0);             ((u32_t)p->payload % MEM_ALIGNMENT) == 0);
314      break;      break;
315    case PBUF_ROM:    case PBUF_ROM:
# Line 328  pbuf_alloc(pbuf_layer l, u16_t size, pbu Line 325  pbuf_alloc(pbuf_layer l, u16_t size, pbu
325      p->flags = PBUF_FLAG_ROM;      p->flags = PBUF_FLAG_ROM;
326      break;      break;
327    default:    default:
328      ASSERT("pbuf_alloc: erroneous flag", 0);      LWIP_ASSERT("pbuf_alloc: erroneous flag", 0);
329      return NULL;      return NULL;
330    }    }
331    p->ref = 1;    p->ref = 1;
# Line 426  pbuf_realloc(struct pbuf *p, u16_t size) Line 423  pbuf_realloc(struct pbuf *p, u16_t size)
423    struct pbuf *q, *r;    struct pbuf *q, *r;
424    u16_t rsize;    u16_t rsize;
425    
426    ASSERT("pbuf_realloc: sane p->flags", p->flags == PBUF_FLAG_POOL ||    LWIP_ASSERT("pbuf_realloc: sane p->flags", p->flags == PBUF_FLAG_POOL ||
427           p->flags == PBUF_FLAG_ROM ||           p->flags == PBUF_FLAG_ROM ||
428           p->flags == PBUF_FLAG_RAM);           p->flags == PBUF_FLAG_RAM);
429    
# Line 549  pbuf_free(struct pbuf *p) Line 546  pbuf_free(struct pbuf *p)
546    
547    PERF_START;    PERF_START;
548        
549    ASSERT("pbuf_free: sane flags", p->flags == PBUF_FLAG_POOL ||    LWIP_ASSERT("pbuf_free: sane flags", p->flags == PBUF_FLAG_POOL ||
550           p->flags == PBUF_FLAG_ROM ||           p->flags == PBUF_FLAG_ROM ||
551           p->flags == PBUF_FLAG_RAM);           p->flags == PBUF_FLAG_RAM);
552        
553    ASSERT("pbuf_free: p->ref > 0", p->ref > 0);    LWIP_ASSERT("pbuf_free: p->ref > 0", p->ref > 0);
554    
555  #ifdef SYS_LIGHTWEIGHT_PROT  #ifdef SYS_LIGHTWEIGHT_PROT
556    /* Since decrementing ref cannot be guarranteed to be a single machine operation    /* Since decrementing ref cannot be guarranteed to be a single machine operation
# Line 564  pbuf_free(struct pbuf *p) Line 561  pbuf_free(struct pbuf *p)
561    /* Decrement reference count. */      /* Decrement reference count. */  
562    p->ref--;    p->ref--;
563    
564    q = NULL;    /*q = NULL;           DJH: Unnecessary statement*/
565    /* If reference count == 0, actually deallocate pbuf. */    /* If reference count == 0, actually deallocate pbuf. */
566    if(p->ref == 0) {    if(p->ref == 0) {
567  #ifdef SYS_LIGHTWEIGHT_PROT  #ifdef SYS_LIGHTWEIGHT_PROT

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

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