diff options
-rw-r--r-- | platform/linux-generic/include/odp/api/plat/buffer_inlines.h | 2 | ||||
-rw-r--r-- | platform/linux-generic/include/odp/api/plat/packet_inlines.h | 2 | ||||
-rw-r--r-- | platform/linux-generic/include/odp/api/plat/packet_vector_inlines.h | 2 | ||||
-rw-r--r-- | platform/linux-generic/include/odp_event_internal.h | 5 | ||||
-rw-r--r-- | platform/linux-generic/include/odp_packet_internal.h | 8 | ||||
-rw-r--r-- | platform/linux-generic/odp_buffer.c | 2 | ||||
-rw-r--r-- | platform/linux-generic/odp_event.c | 2 | ||||
-rw-r--r-- | platform/linux-generic/odp_packet.c | 40 | ||||
-rw-r--r-- | platform/linux-generic/odp_packet_vector.c | 4 | ||||
-rw-r--r-- | platform/linux-generic/odp_pool.c | 8 | ||||
-rw-r--r-- | platform/linux-generic/pktio/ipc.c | 2 | ||||
-rw-r--r-- | platform/linux-generic/pktio/socket_xdp.c | 2 |
12 files changed, 40 insertions, 39 deletions
diff --git a/platform/linux-generic/include/odp/api/plat/buffer_inlines.h b/platform/linux-generic/include/odp/api/plat/buffer_inlines.h index 9466ff73d..576eb846e 100644 --- a/platform/linux-generic/include/odp/api/plat/buffer_inlines.h +++ b/platform/linux-generic/include/odp/api/plat/buffer_inlines.h @@ -46,7 +46,7 @@ _ODP_INLINE void *odp_buffer_addr(odp_buffer_t buf) _ODP_INLINE odp_pool_t odp_buffer_pool(odp_buffer_t buf) { - return (odp_pool_t)(uintptr_t)_odp_event_hdr_field(buf, void *, pool); + return _odp_event_hdr_field(buf, odp_pool_t, pool); } /** @endcond */ diff --git a/platform/linux-generic/include/odp/api/plat/packet_inlines.h b/platform/linux-generic/include/odp/api/plat/packet_inlines.h index 0fc46e056..950ede8d7 100644 --- a/platform/linux-generic/include/odp/api/plat/packet_inlines.h +++ b/platform/linux-generic/include/odp/api/plat/packet_inlines.h @@ -127,7 +127,7 @@ _ODP_INLINE uint32_t odp_packet_tailroom(odp_packet_t pkt) _ODP_INLINE odp_pool_t odp_packet_pool(odp_packet_t pkt) { - return (odp_pool_t)(uintptr_t)_odp_pkt_get(pkt, void *, pool); + return _odp_pkt_get(pkt, odp_pool_t, pool); } _ODP_INLINE odp_pktio_t odp_packet_input(odp_packet_t pkt) diff --git a/platform/linux-generic/include/odp/api/plat/packet_vector_inlines.h b/platform/linux-generic/include/odp/api/plat/packet_vector_inlines.h index 63fa6869b..c8da1b77a 100644 --- a/platform/linux-generic/include/odp/api/plat/packet_vector_inlines.h +++ b/platform/linux-generic/include/odp/api/plat/packet_vector_inlines.h @@ -59,7 +59,7 @@ _ODP_INLINE uint32_t odp_packet_vector_tbl(odp_packet_vector_t pktv, odp_packet_ _ODP_INLINE odp_pool_t odp_packet_vector_pool(odp_packet_vector_t pktv) { - return (odp_pool_t)(uintptr_t)_odp_event_vect_get(pktv, void *, pool); + return _odp_event_vect_get(pktv, odp_pool_t, pool); } _ODP_INLINE uint32_t odp_packet_vector_size(odp_packet_vector_t pktv) diff --git a/platform/linux-generic/include/odp_event_internal.h b/platform/linux-generic/include/odp_event_internal.h index 60788fd52..5a29e926e 100644 --- a/platform/linux-generic/include/odp_event_internal.h +++ b/platform/linux-generic/include/odp_event_internal.h @@ -19,6 +19,7 @@ extern "C" { #include <odp/api/debug.h> #include <odp/api/event.h> +#include <odp/api/pool_types.h> #include <odp/api/std_types.h> #include <odp_config_internal.h> @@ -47,8 +48,8 @@ typedef struct _odp_event_hdr_t { /* Initial buffer data pointer */ uint8_t *base_data; - /* Pool pointer */ - void *pool_ptr; + /* Pool handle */ + odp_pool_t pool; /* --- Mostly read only data --- */ diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h index f9fdb2c3b..253650b6d 100644 --- a/platform/linux-generic/include/odp_packet_internal.h +++ b/platform/linux-generic/include/odp_packet_internal.h @@ -221,7 +221,7 @@ static inline void packet_subtype_set(odp_packet_t pkt, int ev) */ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, uint32_t len) { - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); uint32_t seg_len; int num = pkt_hdr->seg_count; @@ -337,8 +337,8 @@ static inline void _odp_packet_copy_md(odp_packet_hdr_t *dst_hdr, if (src_hdr->uarea_addr) { if (uarea_copy) { - const pool_t *src_pool = src_hdr->event_hdr.pool_ptr; - const pool_t *dst_pool = dst_hdr->event_hdr.pool_ptr; + const pool_t *src_pool = _odp_pool_entry(src_hdr->event_hdr.pool); + const pool_t *dst_pool = _odp_pool_entry(dst_hdr->event_hdr.pool); const uint32_t src_uarea_size = src_pool->param_uarea_size; const uint32_t dst_uarea_size = dst_pool->param_uarea_size; @@ -351,7 +351,7 @@ static inline void _odp_packet_copy_md(odp_packet_hdr_t *dst_hdr, /* If user area exists, packets should always be from the same pool, so * user area pointers can simply be swapped. */ - ODP_ASSERT(dst_hdr->event_hdr.pool_ptr == src_hdr->event_hdr.pool_ptr); + ODP_ASSERT(dst_hdr->event_hdr.pool == src_hdr->event_hdr.pool); src_hdr->uarea_addr = dst_hdr->uarea_addr; dst_hdr->uarea_addr = src_uarea; diff --git a/platform/linux-generic/odp_buffer.c b/platform/linux-generic/odp_buffer.c index df3f047b1..609b0b206 100644 --- a/platform/linux-generic/odp_buffer.c +++ b/platform/linux-generic/odp_buffer.c @@ -18,7 +18,7 @@ uint32_t odp_buffer_size(odp_buffer_t buf) { odp_buffer_hdr_t *hdr = _odp_buf_hdr(buf); - pool_t *pool = hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(hdr->event_hdr.pool); return pool->seg_len; } diff --git a/platform/linux-generic/odp_event.c b/platform/linux-generic/odp_event.c index a528b5d81..5a1f68621 100644 --- a/platform/linux-generic/odp_event.c +++ b/platform/linux-generic/odp_event.c @@ -36,7 +36,7 @@ _odp_event_inline_offset ODP_ALIGNED_CACHE = { .event_type = offsetof(_odp_event_hdr_t, event_type), .base_data = offsetof(_odp_event_hdr_t, base_data), .flow_id = offsetof(_odp_event_hdr_t, flow_id), - .pool = offsetof(_odp_event_hdr_t, pool_ptr), + .pool = offsetof(_odp_event_hdr_t, pool), }; #include <odp/visibility_end.h> diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index 04848d80d..d96eb8748 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -53,7 +53,7 @@ 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), - .pool = offsetof(odp_packet_hdr_t, event_hdr.pool_ptr), + .pool = offsetof(odp_packet_hdr_t, event_hdr.pool), .input = offsetof(odp_packet_hdr_t, input), .seg_count = offsetof(odp_packet_hdr_t, seg_count), .user_ptr = offsetof(odp_packet_hdr_t, user_ptr), @@ -143,7 +143,7 @@ static inline void *packet_tail(odp_packet_hdr_t *pkt_hdr) static inline uint32_t seg_headroom(odp_packet_hdr_t *pkt_seg) { _odp_event_hdr_t *hdr = &pkt_seg->event_hdr; - pool_t *pool = hdr->pool_ptr; + pool_t *pool = _odp_pool_entry(hdr->pool); uint8_t *base = hdr->base_data; uint8_t *head = pkt_seg->seg_data; @@ -273,7 +273,7 @@ static inline void link_segments(odp_packet_hdr_t *pkt_hdr[], int num) int cur = 0; odp_packet_hdr_t *hdr; odp_packet_hdr_t *head = pkt_hdr[0]; - uint32_t seg_len = ((pool_t *)(head->event_hdr.pool_ptr))->seg_len; + uint32_t seg_len = _odp_pool_entry(head->event_hdr.pool)->seg_len; while (1) { _odp_event_hdr_t *event_hdr = &pkt_hdr[cur]->event_hdr; @@ -312,7 +312,7 @@ static inline void init_segments(odp_packet_hdr_t *pkt_hdr[], int num) /* First segment is the packet descriptor */ hdr = pkt_hdr[0]; - seg_len = ((pool_t *)(hdr->event_hdr.pool_ptr))->seg_len; + seg_len = _odp_pool_entry(hdr->event_hdr.pool)->seg_len; /* Defaults for single segment packet */ hdr->seg_data = hdr->event_hdr.base_data; @@ -336,7 +336,7 @@ static inline void init_segments(odp_packet_hdr_t *pkt_hdr[], int num) static inline void reset_segments(odp_packet_hdr_t *pkt_hdr) { void *base; - uint32_t seg_len = ((pool_t *)(pkt_hdr->event_hdr.pool_ptr))->seg_len; + uint32_t seg_len = _odp_pool_entry(pkt_hdr->event_hdr.pool)->seg_len; while (pkt_hdr != NULL) { base = pkt_hdr->event_hdr.base_data; @@ -734,7 +734,7 @@ void odp_packet_free_sp(const odp_packet_t pkt[], int num) int odp_packet_reset(odp_packet_t pkt, uint32_t len) { odp_packet_hdr_t *const pkt_hdr = packet_hdr(pkt); - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); int num = pkt_hdr->seg_count; int num_req; @@ -783,7 +783,7 @@ int odp_event_filter_packet(const odp_event_t event[], uint32_t odp_packet_buf_len(odp_packet_t pkt) { odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); return pool->max_seg_len * pkt_hdr->seg_count; } @@ -815,7 +815,7 @@ int odp_packet_extend_head(odp_packet_t *pkt, uint32_t len, int ret = 0; if (len > headroom) { - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); int num; void *ptr; @@ -924,7 +924,7 @@ int odp_packet_extend_tail(odp_packet_t *pkt, uint32_t len, ODP_ASSERT(odp_packet_has_ref(*pkt) == 0); if (len > tailroom) { - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); int num; void *ptr; @@ -1168,13 +1168,13 @@ int odp_packet_add_data(odp_packet_t *pkt_ptr, uint32_t offset, uint32_t len) odp_packet_t pkt = *pkt_ptr; odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); uint32_t pktlen = pkt_hdr->frame_len; - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + odp_pool_t pool = pkt_hdr->event_hdr.pool; odp_packet_t newpkt; if (offset > pktlen) return -1; - newpkt = odp_packet_alloc(_odp_pool_handle(pool), pktlen + len); + newpkt = odp_packet_alloc(pool, pktlen + len); if (newpkt == ODP_PACKET_INVALID) return -1; @@ -1198,13 +1198,13 @@ int odp_packet_rem_data(odp_packet_t *pkt_ptr, uint32_t offset, uint32_t len) odp_packet_t pkt = *pkt_ptr; odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); uint32_t pktlen = pkt_hdr->frame_len; - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + odp_pool_t pool = pkt_hdr->event_hdr.pool; odp_packet_t newpkt; if (offset + len >= pktlen) return -1; - newpkt = odp_packet_alloc(_odp_pool_handle(pool), pktlen - len); + newpkt = odp_packet_alloc(pool, pktlen - len); if (newpkt == ODP_PACKET_INVALID) return -1; @@ -1230,7 +1230,7 @@ int odp_packet_align(odp_packet_t *pkt, uint32_t offset, uint32_t len, uint32_t shift; uint32_t seglen = 0; /* GCC */ odp_packet_hdr_t *pkt_hdr = packet_hdr(*pkt); - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); void *addr = packet_map(pkt_hdr, offset, &seglen, NULL); uint64_t uaddr = (uint64_t)(uintptr_t)addr; uint64_t misalign; @@ -1272,8 +1272,8 @@ int odp_packet_concat(odp_packet_t *dst, odp_packet_t src) { odp_packet_hdr_t *dst_hdr = packet_hdr(*dst); odp_packet_hdr_t *src_hdr = packet_hdr(src); - pool_t *dst_pool = dst_hdr->event_hdr.pool_ptr; - pool_t *src_pool = src_hdr->event_hdr.pool_ptr; + pool_t *dst_pool = _odp_pool_entry(dst_hdr->event_hdr.pool); + pool_t *src_pool = _odp_pool_entry(src_hdr->event_hdr.pool); uint32_t dst_len = dst_hdr->frame_len; uint32_t src_len = src_hdr->frame_len; @@ -1618,7 +1618,7 @@ void odp_packet_print_data(odp_packet_t pkt, uint32_t offset, int len = 0; int n = max_len - 1; uint32_t data_len = odp_packet_len(pkt); - pool_t *pool = hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(hdr->event_hdr.pool); len += snprintf(&str[len], n - len, "Packet\n------\n"); len += snprintf(&str[len], n - len, @@ -2440,7 +2440,7 @@ static inline odp_packet_hdr_t *packet_buf_to_hdr(odp_packet_buf_t pkt_buf) void *odp_packet_buf_head(odp_packet_buf_t pkt_buf) { odp_packet_hdr_t *pkt_hdr = packet_buf_to_hdr(pkt_buf); - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); uint32_t head_offset = sizeof(odp_packet_hdr_t) + pool->ext_param.pkt.app_header_size; if (odp_unlikely(pool->pool_ext == 0)) { @@ -2454,7 +2454,7 @@ void *odp_packet_buf_head(odp_packet_buf_t pkt_buf) uint32_t odp_packet_buf_size(odp_packet_buf_t pkt_buf) { odp_packet_hdr_t *pkt_hdr = packet_buf_to_hdr(pkt_buf); - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); uint32_t head_offset = sizeof(odp_packet_hdr_t) + pool->ext_param.pkt.app_header_size; return pool->ext_param.pkt.buf_size - head_offset; @@ -2506,7 +2506,7 @@ uint32_t odp_packet_disassemble(odp_packet_t pkt, odp_packet_buf_t pkt_buf[], ui uint32_t i; odp_packet_seg_t seg; odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); - pool_t *pool = pkt_hdr->event_hdr.pool_ptr; + pool_t *pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); uint32_t num_segs = odp_packet_num_segs(pkt); if (odp_unlikely(pool->type != ODP_POOL_PACKET)) { diff --git a/platform/linux-generic/odp_packet_vector.c b/platform/linux-generic/odp_packet_vector.c index 4c0f09013..e0b99183f 100644 --- a/platform/linux-generic/odp_packet_vector.c +++ b/platform/linux-generic/odp_packet_vector.c @@ -23,7 +23,7 @@ /* Packet vector header field offsets for inline functions */ const _odp_event_vector_inline_offset_t _odp_event_vector_inline ODP_ALIGNED_CACHE = { .packet = offsetof(odp_event_vector_hdr_t, packet), - .pool = offsetof(odp_event_vector_hdr_t, event_hdr.pool_ptr), + .pool = offsetof(odp_event_vector_hdr_t, event_hdr.pool), .size = offsetof(odp_event_vector_hdr_t, size) }; @@ -82,7 +82,7 @@ int odp_packet_vector_valid(odp_packet_vector_t pktv) return 0; pktv_hdr = _odp_packet_vector_hdr(pktv); - pool = pktv_hdr->event_hdr.pool_ptr; + pool = _odp_pool_entry(pktv_hdr->event_hdr.pool); if (odp_unlikely(pktv_hdr->size > pool->params.vector.max_size)) return 0; diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c index f76cb1e47..d841796e1 100644 --- a/platform/linux-generic/odp_pool.c +++ b/platform/linux-generic/odp_pool.c @@ -424,7 +424,7 @@ static void init_event_hdr(pool_t *pool, _odp_event_hdr_t *event_hdr, uint32_t e event_hdr->index.event = event_index; event_hdr->type = type; event_hdr->event_type = type; - event_hdr->pool_ptr = pool; + event_hdr->pool = _odp_pool_handle(pool); /* Store base values for fast init */ if (type == ODP_POOL_BUFFER || type == ODP_POOL_PACKET) { @@ -1289,12 +1289,12 @@ void _odp_event_free_multi(_odp_event_hdr_t *event_hdr[], int num_total) while (1) { num = 1; i = 1; - pool = event_hdr[first]->pool_ptr; + pool = _odp_pool_entry(event_hdr[first]->pool); /* 'num' buffers are from the same pool */ if (num_total > 1) { for (i = first; i < num_total; i++) - if (pool != event_hdr[i]->pool_ptr) + if (pool != _odp_pool_entry(event_hdr[i]->pool)) break; num = i - first; @@ -1636,7 +1636,7 @@ int _odp_event_is_valid(odp_event_t event) if (pool == NULL) return 0; - if (pool != event_hdr->pool_ptr) + if (pool != _odp_pool_entry(event_hdr->pool)) return 0; if (event_hdr->index.event >= (pool->num + pool->skipped_blocks)) diff --git a/platform/linux-generic/pktio/ipc.c b/platform/linux-generic/pktio/ipc.c index 42cb1bec1..f3246c068 100644 --- a/platform/linux-generic/pktio/ipc.c +++ b/platform/linux-generic/pktio/ipc.c @@ -791,7 +791,7 @@ static int ipc_pktio_send_lockless(pktio_entry_t *pktio_entry, pool_t *pool; pkt_hdr = packet_hdr(pkt); - pool = pkt_hdr->event_hdr.pool_ptr; + pool = _odp_pool_entry(pkt_hdr->event_hdr.pool); if (pool->pool_idx != ipc_pool->pool_idx || odp_packet_has_ref(pkt)) { diff --git a/platform/linux-generic/pktio/socket_xdp.c b/platform/linux-generic/pktio/socket_xdp.c index 5ea4e1118..7e8877359 100644 --- a/platform/linux-generic/pktio/socket_xdp.c +++ b/platform/linux-generic/pktio/socket_xdp.c @@ -736,7 +736,7 @@ static int sock_xdp_send(pktio_entry_t *pktio_entry, int index, const odp_packet pkt_hdr = packet_hdr(packets[i]); seg_cnt = pkt_hdr->seg_count; - if (pkt_hdr->event_hdr.pool_ptr != pool) { + if (_odp_pool_entry(pkt_hdr->event_hdr.pool) != pool) { pkt = odp_packet_copy(packets[i], pool_hdl); if (odp_unlikely(pkt == ODP_PACKET_INVALID)) { |