diff --git a/inc/pbuf.h b/inc/pbuf.h index bb99620..8535246 100644 --- a/inc/pbuf.h +++ b/inc/pbuf.h @@ -97,6 +97,19 @@ } +static inline void pbuf_reset(pbuf_t *p) +{ + p->payload = p->payload_memory; + p->capacity = p->pool->payload_capacity; +} + + +static inline uint32_t pbuf_offset(pbuf_t *p) +{ + return p->payload - p->payload_memory; +} + + static inline pbuf_t* pbuf_alloc(pbuf_pool_t *pool) { assert(pool); @@ -108,8 +121,7 @@ pool->free_list = pool->free_list->next; //remove it from the list pool->pbufs_available--; - p->payload = p->payload_memory; - p->capacity = pool->payload_capacity; + pbuf_reset(p); } return p;