From: Petri Savolainen <[email protected]> Removed definitions to access segment memory outside of segment data. A tighter segment specification makes segment manipulation definitions cleaner. Only packet level head-/tailrooms and segment data are moved with the packet, segment level head-/tailrooms are not.
Signed-off-by: Petri Savolainen <[email protected]> Signed-off-by: Bill Fischofer <[email protected]> --- include/odp/api/spec/packet.h | 29 ----------------------------- platform/linux-generic/odp_packet.c | 14 -------------- test/validation/packet/packet.c | 30 +++++++----------------------- 3 files changed, 7 insertions(+), 66 deletions(-) diff --git a/include/odp/api/spec/packet.h b/include/odp/api/spec/packet.h index 36eb89a..6e2302c 100644 --- a/include/odp/api/spec/packet.h +++ b/include/odp/api/spec/packet.h @@ -675,35 +675,6 @@ odp_packet_seg_t odp_packet_last_seg(odp_packet_t pkt); odp_packet_seg_t odp_packet_next_seg(odp_packet_t pkt, odp_packet_seg_t seg); /** - * Segment buffer address - * - * Returns start address of the segment. - * - * @param pkt Packet handle - * @param seg Segment handle - * - * @return Start address of the segment - * @retval NULL on failure - * - * @see odp_packet_seg_buf_len() - */ -void *odp_packet_seg_buf_addr(odp_packet_t pkt, odp_packet_seg_t seg); - -/** - * Segment buffer length - * - * Returns segment buffer length in bytes. - * - * @param pkt Packet handle - * @param seg Segment handle - * - * @return Segment buffer length in bytes - * - * @see odp_packet_seg_buf_addr() - */ -uint32_t odp_packet_seg_buf_len(odp_packet_t pkt, odp_packet_seg_t seg); - -/** * Segment data pointer * * Returns pointer to the first byte of data in the segment. diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index 2c44316..4202a90 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -491,20 +491,6 @@ odp_packet_seg_t odp_packet_next_seg(odp_packet_t pkt, odp_packet_seg_t seg) * */ -void *odp_packet_seg_buf_addr(odp_packet_t pkt, odp_packet_seg_t seg) -{ - odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); - - return segment_map(&pkt_hdr->buf_hdr, (odp_buffer_seg_t)seg, NULL, - pkt_hdr->headroom + pkt_hdr->frame_len, 0); -} - -uint32_t odp_packet_seg_buf_len(odp_packet_t pkt, - odp_packet_seg_t seg ODP_UNUSED) -{ - return odp_packet_hdr(pkt)->buf_hdr.segsize; -} - void *odp_packet_seg_data(odp_packet_t pkt, odp_packet_seg_t seg) { odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); diff --git a/test/validation/packet/packet.c b/test/validation/packet/packet.c index a764ed9..d59e96c 100644 --- a/test/validation/packet/packet.c +++ b/test/validation/packet/packet.c @@ -483,7 +483,7 @@ void packet_test_tailroom(void) void packet_test_segments(void) { int num_segs, seg_index; - uint32_t data_len, buf_len; + uint32_t data_len; odp_packet_seg_t seg; odp_packet_t pkt = test_packet; odp_packet_t seg_pkt = segmented_test_packet; @@ -504,28 +504,20 @@ void packet_test_segments(void) CU_ASSERT(odp_packet_is_segmented(seg_pkt) == 1); seg = odp_packet_first_seg(pkt); - buf_len = 0; data_len = 0; seg_index = 0; while (seg_index < num_segs && seg != ODP_PACKET_SEG_INVALID) { - uint32_t seg_data_len, seg_buf_len; - void *seg_buf_addr, *seg_data; + uint32_t seg_data_len; + void *seg_data; - seg_buf_addr = odp_packet_seg_buf_addr(pkt, seg); - seg_buf_len = odp_packet_seg_buf_len(pkt, seg); seg_data_len = odp_packet_seg_data_len(pkt, seg); seg_data = odp_packet_seg_data(pkt, seg); - CU_ASSERT(seg_buf_len > 0); CU_ASSERT(seg_data_len > 0); - CU_ASSERT(seg_buf_len >= seg_data_len); CU_ASSERT_PTR_NOT_NULL(seg_data); - CU_ASSERT_PTR_NOT_NULL(seg_buf_addr); - CU_ASSERT(seg_data >= seg_buf_addr); CU_ASSERT(odp_packet_seg_to_u64(seg) != odp_packet_seg_to_u64(ODP_PACKET_SEG_INVALID)); - buf_len += seg_buf_len; data_len += seg_data_len; /** @todo: touch memory in a segment */ @@ -534,7 +526,7 @@ void packet_test_segments(void) } CU_ASSERT(seg_index == num_segs); - CU_ASSERT(buf_len == odp_packet_buf_len(pkt)); + CU_ASSERT(data_len <= odp_packet_buf_len(pkt)); CU_ASSERT(data_len == odp_packet_len(pkt)); if (seg_index == num_segs) @@ -543,29 +535,21 @@ void packet_test_segments(void) seg = odp_packet_first_seg(seg_pkt); num_segs = odp_packet_num_segs(seg_pkt); - buf_len = 0; data_len = 0; seg_index = 0; while (seg_index < num_segs && seg != ODP_PACKET_SEG_INVALID) { - uint32_t seg_data_len, seg_buf_len; - void *seg_buf_addr, *seg_data; + uint32_t seg_data_len; + void *seg_data; - seg_buf_addr = odp_packet_seg_buf_addr(seg_pkt, seg); - seg_buf_len = odp_packet_seg_buf_len(seg_pkt, seg); seg_data_len = odp_packet_seg_data_len(seg_pkt, seg); seg_data = odp_packet_seg_data(seg_pkt, seg); - CU_ASSERT(seg_buf_len > 0); CU_ASSERT(seg_data_len > 0); - CU_ASSERT(seg_buf_len >= seg_data_len); CU_ASSERT(seg_data != NULL); - CU_ASSERT(seg_buf_addr != NULL); - CU_ASSERT(seg_data >= seg_buf_addr); CU_ASSERT(odp_packet_seg_to_u64(seg) != odp_packet_seg_to_u64(ODP_PACKET_SEG_INVALID)); - buf_len += seg_buf_len; data_len += seg_data_len; /** @todo: touch memory in a segment */ @@ -574,7 +558,7 @@ void packet_test_segments(void) } CU_ASSERT(seg_index == num_segs); - CU_ASSERT(buf_len == odp_packet_buf_len(seg_pkt)); + CU_ASSERT(data_len <= odp_packet_buf_len(seg_pkt)); CU_ASSERT(data_len == odp_packet_len(seg_pkt)); if (seg_index == num_segs) -- 2.5.0 _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
