@@ -84,14 +84,14 @@ typedef struct _odp_packet_inline_offset_t {
/** @internal field offset */
size_t tailroom;
/** @internal field offset */
- size_t unshared_len;
- /** @internal field offset */
size_t ref_hdr;
/** @internal field offset */
size_t ref_offset;
/** *internal field offset */
size_t ref_len;
/** @internal field offset */
+ size_t unshared_len;
+ /** @internal field offset */
size_t pool;
/** @internal field offset */
size_t input;
@@ -124,7 +124,8 @@ typedef struct odp_packet_hdr_t {
uint32_t tailroom;
/* Fields used to support packet references */
- uint32_t unshared_len;
+ /* Incremented on refs, decremented on frees. */
+ odp_atomic_u32_t ref_count;
/* Next pkt_hdr in reference chain */
struct odp_packet_hdr_t *ref_hdr;
/* Offset into next pkt_hdr that ref was created at */
@@ -133,8 +134,8 @@ typedef struct odp_packet_hdr_t {
* allows original offset to be maintained when base pkt len
* is changed */
uint32_t ref_len;
- /* Incremented on refs, decremented on frees. */
- odp_atomic_u32_t ref_count;
+ /* Track unshared portion of frame_len */
+ uint32_t unshared_len;
/*
* Members below are not initialized by packet_init()
@@ -33,10 +33,10 @@ const _odp_packet_inline_offset_t _odp_packet_inline ODP_ALIGNED_CACHE = {
.frame_len = offsetof(odp_packet_hdr_t, frame_len),
.headroom = offsetof(odp_packet_hdr_t, headroom),
.tailroom = offsetof(odp_packet_hdr_t, tailroom),
- .unshared_len = offsetof(odp_packet_hdr_t, unshared_len),
.ref_hdr = offsetof(odp_packet_hdr_t, ref_hdr),
.ref_offset = offsetof(odp_packet_hdr_t, ref_offset),
.ref_len = offsetof(odp_packet_hdr_t, ref_len),
+ .unshared_len = offsetof(odp_packet_hdr_t, unshared_len),
.pool = offsetof(odp_packet_hdr_t, buf_hdr.pool_hdl),
.input = offsetof(odp_packet_hdr_t, input),
.segcount = offsetof(odp_packet_hdr_t, buf_hdr.segcount),