struct mbuf * mbuf_get(void) { struct mbuf *mbuf; uint8_t *buf; mbuf = _mbuf_get(); if (mbuf == NULL) { loga("mbuf is Null"); return NULL; } buf = (uint8_t *)mbuf - mbuf_offset; mbuf->start = buf; mbuf->end = buf + mbuf_offset - MBUF_ESIZE; mbuf->end_extra = buf + mbuf_offset; //ASSERT(mbuf->end - mbuf->start == (int)mbuf_offset); ASSERT(mbuf->start < mbuf->end); mbuf->pos = mbuf->start; mbuf->last = mbuf->start; mbuf->read_flip = 0; log_debug(LOG_VVERB, "get mbuf %p", mbuf); return mbuf; }
struct mbuf * mbuf_get(void) { struct mbuf *mbuf; uint8_t *buf; mbuf = _mbuf_get(); if (mbuf == NULL) { return NULL; } buf = (uint8_t *)mbuf - mbuf_offset; mbuf->start = buf; mbuf->end = buf + mbuf_offset; ASSERT(mbuf->end - mbuf->start == (int)mbuf_offset); ASSERT(mbuf->start < mbuf->end); mbuf->pos = mbuf->start; mbuf->last = mbuf->start; log_debug(LOG_VVERB, "get mbuf %p", mbuf); return mbuf; }
struct mbuf *mbuf_get(struct context *ctx) { struct mbuf *mbuf; uint8_t *buf; mbuf = _mbuf_get(ctx); if (mbuf == NULL) { return NULL; } buf = (uint8_t *)mbuf - ctx->mbuf_offset; mbuf->start = buf; mbuf->end = buf + ctx->mbuf_offset; mbuf->pos = mbuf->start; mbuf->last = mbuf->start; return mbuf; }
struct mbuf *mbuf_get(struct context *ctx) { struct mbuf *mbuf; uint8_t *buf; mbuf = _mbuf_get(ctx); if (mbuf == NULL) { return NULL; } buf = (uint8_t *)mbuf - ctx->mbuf_offset; mbuf->start = buf; mbuf->end = buf + ctx->mbuf_offset; mbuf->pos = mbuf->start; mbuf->last = mbuf->start; mbuf->refcount = 0; STAILQ_NEXT(mbuf, next) = NULL; ctx->stats.buffers++; return mbuf; }