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

Reply via email to