diff mbox

[PATCHv2,1/4] Add user context to packet

Message ID 1408648211-9995-2-git-send-email-robking@cisco.com
State New
Headers show

Commit Message

Robbie King Aug. 21, 2014, 7:10 p.m. UTC
Signed-off-by: Robbie King <robking@cisco.com>
---
 include/odp_packet.h                               |   18 ++++++++++++++++++
 .../linux-generic/include/odp_packet_internal.h    |    2 ++
 platform/linux-generic/odp_packet.c                |   10 ++++++++++
 3 files changed, 30 insertions(+), 0 deletions(-)

Comments

Alexandru Badicioiu Aug. 22, 2014, 7:31 a.m. UTC | #1
On 21 August 2014 22:10, Robbie King <robking@cisco.com> wrote:

> Signed-off-by: Robbie King <robking@cisco.com>
>
    Tested-by: Alexandru Badicioiu <alexandru.badicioiu@linaro.org>

> ---
>  include/odp_packet.h                               |   18
> ++++++++++++++++++
>  .../linux-generic/include/odp_packet_internal.h    |    2 ++
>  platform/linux-generic/odp_packet.c                |   10 ++++++++++
>  3 files changed, 30 insertions(+), 0 deletions(-)
>
> diff --git a/include/odp_packet.h b/include/odp_packet.h
> index ef4be9e..28cabb8 100644
> --- a/include/odp_packet.h
> +++ b/include/odp_packet.h
> @@ -98,6 +98,24 @@ void odp_packet_set_len(odp_packet_t pkt, size_t len);
>  size_t odp_packet_get_len(odp_packet_t pkt);
>
>  /**
> + * Set packet user context
> + *
> + * @param buf      Packet handle
> + * @param ctx      User context
> + *
> + */
> +void odp_packet_set_ctx(odp_packet_t buf, void *ctx);
> +
> +/**
> + * Get packet user context
> + *
> + * @param buf      Packet handle
> + *
> + * @return User context
> + */
> +void *odp_packet_get_ctx(odp_packet_t buf);
> +
> +/**
>   * Get address to the start of the packet buffer
>   *
>   * The address of the packet buffer is not necessarily the same as the
> start
> diff --git a/platform/linux-generic/include/odp_packet_internal.h
> b/platform/linux-generic/include/odp_packet_internal.h
> index 0ab3be2..49c59b2 100644
> --- a/platform/linux-generic/include/odp_packet_internal.h
> +++ b/platform/linux-generic/include/odp_packet_internal.h
> @@ -112,6 +112,8 @@ typedef struct {
>
>         uint32_t frame_len;
>
> +       uint64_t user_ctx;        /* user context */
> +
>         odp_pktio_t input;
>
>         uint32_t pad;
> diff --git a/platform/linux-generic/odp_packet.c
> b/platform/linux-generic/odp_packet.c
> index 13e2471..07c6956 100644
> --- a/platform/linux-generic/odp_packet.c
> +++ b/platform/linux-generic/odp_packet.c
> @@ -386,3 +386,13 @@ int odp_packet_copy(odp_packet_t pkt_dst,
> odp_packet_t pkt_src)
>
>         return 0;
>  }
> +
> +void odp_packet_set_ctx(odp_packet_t pkt, void *ctx)
> +{
> +       odp_packet_hdr(pkt)->user_ctx = (intptr_t)ctx;
> +}
> +
> +void *odp_packet_get_ctx(odp_packet_t pkt)
> +{
> +       return (void *)(intptr_t)odp_packet_hdr(pkt)->user_ctx;
> +}
> --
> 1.7.7.6
>
>
> _______________________________________________
> lng-odp mailing list
> lng-odp@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/lng-odp
>
diff mbox

Patch

diff --git a/include/odp_packet.h b/include/odp_packet.h
index ef4be9e..28cabb8 100644
--- a/include/odp_packet.h
+++ b/include/odp_packet.h
@@ -98,6 +98,24 @@  void odp_packet_set_len(odp_packet_t pkt, size_t len);
 size_t odp_packet_get_len(odp_packet_t pkt);
 
 /**
+ * Set packet user context
+ *
+ * @param buf      Packet handle
+ * @param ctx      User context
+ *
+ */
+void odp_packet_set_ctx(odp_packet_t buf, void *ctx);
+
+/**
+ * Get packet user context
+ *
+ * @param buf      Packet handle
+ *
+ * @return User context
+ */
+void *odp_packet_get_ctx(odp_packet_t buf);
+
+/**
  * Get address to the start of the packet buffer
  *
  * The address of the packet buffer is not necessarily the same as the start
diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h
index 0ab3be2..49c59b2 100644
--- a/platform/linux-generic/include/odp_packet_internal.h
+++ b/platform/linux-generic/include/odp_packet_internal.h
@@ -112,6 +112,8 @@  typedef struct {
 
 	uint32_t frame_len;
 
+	uint64_t user_ctx;        /* user context */
+
 	odp_pktio_t input;
 
 	uint32_t pad;
diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c
index 13e2471..07c6956 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -386,3 +386,13 @@  int odp_packet_copy(odp_packet_t pkt_dst, odp_packet_t pkt_src)
 
 	return 0;
 }
+
+void odp_packet_set_ctx(odp_packet_t pkt, void *ctx)
+{
+	odp_packet_hdr(pkt)->user_ctx = (intptr_t)ctx;
+}
+
+void *odp_packet_get_ctx(odp_packet_t pkt)
+{
+	return (void *)(intptr_t)odp_packet_hdr(pkt)->user_ctx;
+}