Signed-off-by: Mike Holmes <[email protected]>
---
 helper/Makefile.am                      |  4 +++-
 helper/include/odp/helper/udp.h         | 13 ++++++------
 helper/include/odp/helper/udp_inlines.h | 36 +++++++++++++++++++++++++++++++++
 helper/udp.c                            | 14 +++++++++++++
 4 files changed, 59 insertions(+), 8 deletions(-)
 create mode 100644 helper/include/odp/helper/udp_inlines.h
 create mode 100644 helper/udp.c

diff --git a/helper/Makefile.am b/helper/Makefile.am
index 6820532..1bd2cda 100644
--- a/helper/Makefile.am
+++ b/helper/Makefile.am
@@ -34,6 +34,7 @@ helperinclude_HEADERS = \
                  $(srcdir)/include/odp/helper/table.h\
                  $(srcdir)/include/odp/helper/threads.h \
                  $(srcdir)/include/odp/helper/udp.h \
+                 $(srcdir)/include/odp/helper/udp_inlines.h \
                  $(srcdir)/include/odp/helper/udp_types.h
 
 if helper_extn
@@ -53,7 +54,8 @@ __LIB__libodphelper_@with_platform@_la_SOURCES = \
                                        lineartable.c \
                                        cuckootable.c \
                                        iplookuptable.c \
-                                       threads.c
+                                       threads.c \
+                                       udp.c
 
 if helper_extn
 __LIB__libodphelper_@with_platform@_la_SOURCES += \
diff --git a/helper/include/odp/helper/udp.h b/helper/include/odp/helper/udp.h
index e1661de..e52dd4f 100644
--- a/helper/include/odp/helper/udp.h
+++ b/helper/include/odp/helper/udp.h
@@ -25,6 +25,7 @@ extern "C" {
  */
 
 /**
+ * @fn odph_ipv4_udp_chksum(odp_packet_t pkt)
  * UDP checksum
  *
  * This function calculates the UDP checksum given an odp packet.
@@ -32,14 +33,12 @@ extern "C" {
  * @param pkt  calculate chksum for pkt
  * @return  checksum value in BE endianness
  */
-static inline uint16_t odph_ipv4_udp_chksum(odp_packet_t pkt)
-{
-       uint16_t chksum;
-       int      rc;
 
-       rc = odph_udp_tcp_chksum(pkt, ODPH_CHKSUM_RETURN, &chksum);
-       return (rc == 0) ? chksum : 0;
-}
+#if ODP_HELPER_ABI_COMPAT == 0
+#include <odp/helper/udp_inlines.h>
+#else
+uint16_t odph_ipv4_udp_chksum(odp_packet_t pkt);
+#endif
 
 /**
  * @}
diff --git a/helper/include/odp/helper/udp_inlines.h 
b/helper/include/odp/helper/udp_inlines.h
new file mode 100644
index 0000000..fa2fc4a
--- /dev/null
+++ b/helper/include/odp/helper/udp_inlines.h
@@ -0,0 +1,36 @@
+/* Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * ODP UDP inline header
+ */
+
+#ifndef ODPH_UDP_INLINES_H_
+#define ODPH_UDP_INLINES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <odp/helper/static_inline.h>
+#include <odp/helper/udp.h>
+
+_HELPER_STATIC uint16_t odph_ipv4_udp_chksum(odp_packet_t pkt)
+{
+       uint16_t chksum;
+       int      rc;
+
+       rc = odph_udp_tcp_chksum(pkt, ODPH_CHKSUM_RETURN, &chksum);
+       return (rc == 0) ? chksum : 0;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/helper/udp.c b/helper/udp.c
new file mode 100644
index 0000000..0b9a634
--- /dev/null
+++ b/helper/udp.c
@@ -0,0 +1,14 @@
+/* Copyright (c) 2017, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#include <odp/helper/udp.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#if ODP_ABI_COMPAT == 1
+#include <odp/helper/udp_inlines.h>
+#endif
-- 
2.9.3

Reply via email to