mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-06 14:48:06 +00:00
bpf: Move endianness BPF helpers out of bpf_util.h
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>
This commit is contained in:
parent
5b8481fa42
commit
bc1bafbbe9
4 changed files with 25 additions and 21 deletions
23
tools/testing/selftests/bpf/bpf_endian.h
Normal file
23
tools/testing/selftests/bpf/bpf_endian.h
Normal file
|
@ -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
|
|
@ -6,25 +6,6 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.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 inline unsigned int bpf_num_possible_cpus(void)
|
||||||
{
|
{
|
||||||
static const char *fcpu = "/sys/devices/system/cpu/possible";
|
static const char *fcpu = "/sys/devices/system/cpu/possible";
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include <linux/udp.h>
|
#include <linux/udp.h>
|
||||||
#include "bpf_helpers.h"
|
#include "bpf_helpers.h"
|
||||||
#include "test_iptunnel_common.h"
|
#include "test_iptunnel_common.h"
|
||||||
#include "bpf_util.h"
|
#include "bpf_endian.h"
|
||||||
|
|
||||||
int _version SEC("version") = 1;
|
int _version SEC("version") = 1;
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#include <linux/tcp.h>
|
#include <linux/tcp.h>
|
||||||
#include <linux/pkt_cls.h>
|
#include <linux/pkt_cls.h>
|
||||||
#include "bpf_helpers.h"
|
#include "bpf_helpers.h"
|
||||||
#include "bpf_util.h"
|
#include "bpf_endian.h"
|
||||||
|
|
||||||
#define barrier() __asm__ __volatile__("": : :"memory")
|
#define barrier() __asm__ __volatile__("": : :"memory")
|
||||||
int _version SEC("version") = 1;
|
int _version SEC("version") = 1;
|
||||||
|
|
Loading…
Add table
Reference in a new issue