This function is to convert odp_packet_t to odp_buffer_hdr_t ptr.

Signed-off-by: Kevin Wang <[email protected]>
Reviewed-by: Brian Brooks <[email protected]>
---
 platform/linux-generic/include/odp_packet_internal.h | 3 +++
 platform/linux-generic/odp_packet.c                  | 5 +++++
 2 files changed, 8 insertions(+)

diff --git a/platform/linux-generic/include/odp_packet_internal.h 
b/platform/linux-generic/include/odp_packet_internal.h
index 0a9f177..acfe42b 100644
--- a/platform/linux-generic/include/odp_packet_internal.h
+++ b/platform/linux-generic/include/odp_packet_internal.h
@@ -235,6 +235,9 @@ odp_buffer_t _odp_packet_to_buffer(odp_packet_t pkt);
 /* Convert a buffer handle to a packet handle */
 odp_packet_t _odp_packet_from_buffer(odp_buffer_t buf);
 
+/* Convert a packet handle to a buffer hdr handle pointer */
+odp_buffer_hdr_t *pkt_to_buffer_hdr(odp_packet_t pkt);
+
 static inline int packet_hdr_has_l2(odp_packet_hdr_t *pkt_hdr)
 {
        return pkt_hdr->p.input_flags.l2;
diff --git a/platform/linux-generic/odp_packet.c 
b/platform/linux-generic/odp_packet.c
index b8aac6b..2233cd1 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -651,6 +651,11 @@ odp_buffer_t _odp_packet_to_buffer(odp_packet_t pkt)
        return buffer_handle(packet_hdr(pkt));
 }
 
+odp_buffer_hdr_t *pkt_to_buffer_hdr(odp_packet_t pkt)
+{
+       return (odp_buffer_hdr_t *)(uintptr_t)_odp_packet_to_buffer(pkt);
+}
+
 odp_packet_t odp_packet_from_event(odp_event_t ev)
 {
        if (odp_unlikely(ev == ODP_EVENT_INVALID))
-- 
2.7.4

Reply via email to