bpf: Move endianness BPF helpers out of bpf_util.h
authorDavid S. Miller <davem@davemloft.net>
Mon, 1 May 2017 19:43:49 +0000 (12:43 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 May 2017 19:43:49 +0000 (12:43 -0700)
We do not want to include things like stdio.h and friends into
eBPF program builds.  bpf_util.h is for host compiled programs,
so eBPF C-code helpers don't really belong there.

Add a new bpf_endian.h as a quick fix for this for now.

Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/bpf/bpf_endian.h [new file with mode: 0644]
tools/testing/selftests/bpf/bpf_util.h
tools/testing/selftests/bpf/test_l4lb.c
tools/testing/selftests/bpf/test_pkt_access.c

diff --git a/tools/testing/selftests/bpf/bpf_endian.h b/tools/testing/selftests/bpf/bpf_endian.h
new file mode 100644 (file)
index 0000000..19d0604
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef __BPF_ENDIAN__
+#define __BPF_ENDIAN__
+
+#include <asm/byteorder.h>
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define __bpf_ntohs(x)                __builtin_bswap16(x)
+# define __bpf_htons(x)                __builtin_bswap16(x)
+#elif __BYTE_ORDER == __BIG_ENDIAN
+# define __bpf_ntohs(x)                (x)
+# define __bpf_htons(x)                (x)
+#else
+# error "Fix your __BYTE_ORDER?!"
+#endif
+
+#define bpf_htons(x)                           \
+       (__builtin_constant_p(x) ?              \
+        __constant_htons(x) : __bpf_htons(x))
+#define bpf_ntohs(x)                           \
+       (__builtin_constant_p(x) ?              \
+        __constant_ntohs(x) : __bpf_ntohs(x))
+
+#endif
index 369e7d7bba80d512fb547c075c24d94621bc9eb2..20ecbaa0d85d72b860678caf49c3e421105802b8 100644 (file)
@@ -6,25 +6,6 @@
 #include <string.h>
 #include <errno.h>
 
-#include <asm/byteorder.h>
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-# define __bpf_ntohs(x)                __builtin_bswap16(x)
-# define __bpf_htons(x)                __builtin_bswap16(x)
-#elif __BYTE_ORDER == __BIG_ENDIAN
-# define __bpf_ntohs(x)                (x)
-# define __bpf_htons(x)                (x)
-#else
-# error "Fix your __BYTE_ORDER?!"
-#endif
-
-#define bpf_htons(x)                           \
-       (__builtin_constant_p(x) ?              \
-        __constant_htons(x) : __bpf_htons(x))
-#define bpf_ntohs(x)                           \
-       (__builtin_constant_p(x) ?              \
-        __constant_ntohs(x) : __bpf_ntohs(x))
-
 static inline unsigned int bpf_num_possible_cpus(void)
 {
        static const char *fcpu = "/sys/devices/system/cpu/possible";
index b68b21274bac0c97ef8b9f8ba48284cee4a88f2b..1e10c9590991bfde9b35753d955591d2f66bb1c1 100644 (file)
@@ -19,7 +19,7 @@
 #include <linux/udp.h>
 #include "bpf_helpers.h"
 #include "test_iptunnel_common.h"
-#include "bpf_util.h"
+#include "bpf_endian.h"
 
 int _version SEC("version") = 1;
 
index 711300508ee093e212f77b738ccb6b249126bbae..39387bb7e08ca79be1ebd94452c0c126abd2316c 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/tcp.h>
 #include <linux/pkt_cls.h>
 #include "bpf_helpers.h"
-#include "bpf_util.h"
+#include "bpf_endian.h"
 
 #define barrier() __asm__ __volatile__("": : :"memory")
 int _version SEC("version") = 1;