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