81 |
ASSERT("pbuf_init: pool aligned", (long)pbuf_pool % MEM_ALIGNMENT == 0); |
ASSERT("pbuf_init: pool aligned", (long)pbuf_pool % MEM_ALIGNMENT == 0); |
82 |
|
|
83 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
84 |
stats.pbuf.avail = PBUF_POOL_SIZE; |
lwip_stats.pbuf.avail = PBUF_POOL_SIZE; |
85 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
86 |
|
|
87 |
/* Set up ->next pointers to link the pbufs of the pool together. */ |
/* Set up ->next pointers to link the pbufs of the pool together. */ |
123 |
pretend to be out of buffers and return NULL. */ |
pretend to be out of buffers and return NULL. */ |
124 |
if(pbuf_pool_free_lock) { |
if(pbuf_pool_free_lock) { |
125 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
126 |
++stats.pbuf.alloc_locked; |
++lwip_stats.pbuf.alloc_locked; |
127 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
128 |
return NULL; |
return NULL; |
129 |
} |
} |
135 |
} |
} |
136 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
137 |
} else { |
} else { |
138 |
++stats.pbuf.alloc_locked; |
++lwip_stats.pbuf.alloc_locked; |
139 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
140 |
} |
} |
141 |
pbuf_pool_alloc_lock = 0; |
pbuf_pool_alloc_lock = 0; |
143 |
|
|
144 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
145 |
if(p != NULL) { |
if(p != NULL) { |
146 |
++stats.pbuf.used; |
++lwip_stats.pbuf.used; |
147 |
if(stats.pbuf.used > stats.pbuf.max) { |
if(lwip_stats.pbuf.used > lwip_stats.pbuf.max) { |
148 |
stats.pbuf.max = stats.pbuf.used; |
lwip_stats.pbuf.max = lwip_stats.pbuf.used; |
149 |
} |
} |
150 |
} |
} |
151 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
160 |
|
|
161 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
162 |
for(q = p; q != NULL; q = q->next) { |
for(q = p; q != NULL; q = q->next) { |
163 |
--stats.pbuf.used; |
--lwip_stats.pbuf.used; |
164 |
} |
} |
165 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
166 |
|
|
221 |
p = pbuf_pool_alloc(); |
p = pbuf_pool_alloc(); |
222 |
if(p == NULL) { |
if(p == NULL) { |
223 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
224 |
++stats.pbuf.err; |
++lwip_stats.pbuf.err; |
225 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
226 |
return NULL; |
return NULL; |
227 |
} |
} |
247 |
if(q == NULL) { |
if(q == NULL) { |
248 |
DEBUGF(PBUF_DEBUG, ("pbuf_alloc: Out of pbufs in pool,\n")); |
DEBUGF(PBUF_DEBUG, ("pbuf_alloc: Out of pbufs in pool,\n")); |
249 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
250 |
++stats.pbuf.err; |
++lwip_stats.pbuf.err; |
251 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
252 |
pbuf_pool_free(p); |
pbuf_pool_free(p); |
253 |
return NULL; |
return NULL; |
328 |
pbuf_pool_free_cache = NULL; |
pbuf_pool_free_cache = NULL; |
329 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
330 |
} else { |
} else { |
331 |
++stats.pbuf.refresh_locked; |
++lwip_stats.pbuf.refresh_locked; |
332 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
333 |
} |
} |
334 |
|
|
390 |
r = q->next; |
r = q->next; |
391 |
PBUF_POOL_FREE(q); |
PBUF_POOL_FREE(q); |
392 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
393 |
--stats.pbuf.used; |
--lwip_stats.pbuf.used; |
394 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
395 |
q = r; |
q = r; |
396 |
} |
} |
502 |
q = p->next; |
q = p->next; |
503 |
PBUF_POOL_FREE(p); |
PBUF_POOL_FREE(p); |
504 |
#ifdef PBUF_STATS |
#ifdef PBUF_STATS |
505 |
--stats.pbuf.used; |
--lwip_stats.pbuf.used; |
506 |
#endif /* PBUF_STATS */ |
#endif /* PBUF_STATS */ |
507 |
} else if(p->flags == PBUF_FLAG_ROM) { |
} else if(p->flags == PBUF_FLAG_ROM) { |
508 |
q = p->next; |
q = p->next; |