From a5aca66242bb7052bd89e8f62cb5bc16e0f3d2cd Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Fri, 31 Dec 2021 17:38:28 +0900 Subject: [PATCH] Add uapi header files to devel package Change-Id: If8822ad2b4d3d346b4a4ff69f75e64c71b88239a Signed-off-by: Jaehyun Kim --- include/uapi/linux/asm-generic/socket.h | 147 ++++++++++++++++++++++++++++++++ packaging/libbpf.spec | 2 +- src/Makefile | 7 +- 3 files changed, 152 insertions(+), 4 deletions(-) create mode 100644 include/uapi/linux/asm-generic/socket.h diff --git a/include/uapi/linux/asm-generic/socket.h b/include/uapi/linux/asm-generic/socket.h new file mode 100644 index 0000000..77f7c16 --- /dev/null +++ b/include/uapi/linux/asm-generic/socket.h @@ -0,0 +1,147 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef __ASM_GENERIC_SOCKET_H +#define __ASM_GENERIC_SOCKET_H + +#include +#include + +/* For setsockopt(2) */ +#define SOL_SOCKET 1 + +#define SO_DEBUG 1 +#define SO_REUSEADDR 2 +#define SO_TYPE 3 +#define SO_ERROR 4 +#define SO_DONTROUTE 5 +#define SO_BROADCAST 6 +#define SO_SNDBUF 7 +#define SO_RCVBUF 8 +#define SO_SNDBUFFORCE 32 +#define SO_RCVBUFFORCE 33 +#define SO_KEEPALIVE 9 +#define SO_OOBINLINE 10 +#define SO_NO_CHECK 11 +#define SO_PRIORITY 12 +#define SO_LINGER 13 +#define SO_BSDCOMPAT 14 +#define SO_REUSEPORT 15 +#ifndef SO_PASSCRED /* powerpc only differs in these */ +#define SO_PASSCRED 16 +#define SO_PEERCRED 17 +#define SO_RCVLOWAT 18 +#define SO_SNDLOWAT 19 +#define SO_RCVTIMEO_OLD 20 +#define SO_SNDTIMEO_OLD 21 +#endif + +/* Security levels - as per NRL IPv6 - don't actually do anything */ +#define SO_SECURITY_AUTHENTICATION 22 +#define SO_SECURITY_ENCRYPTION_TRANSPORT 23 +#define SO_SECURITY_ENCRYPTION_NETWORK 24 + +#define SO_BINDTODEVICE 25 + +/* Socket filtering */ +#define SO_ATTACH_FILTER 26 +#define SO_DETACH_FILTER 27 +#define SO_GET_FILTER SO_ATTACH_FILTER + +#define SO_PEERNAME 28 + +#define SO_ACCEPTCONN 30 + +#define SO_PEERSEC 31 +#define SO_PASSSEC 34 + +#define SO_MARK 36 + +#define SO_PROTOCOL 38 +#define SO_DOMAIN 39 + +#define SO_RXQ_OVFL 40 + +#define SO_WIFI_STATUS 41 +#define SCM_WIFI_STATUS SO_WIFI_STATUS +#define SO_PEEK_OFF 42 + +/* Instruct lower device to use last 4-bytes of skb data as FCS */ +#define SO_NOFCS 43 + +#define SO_LOCK_FILTER 44 + +#define SO_SELECT_ERR_QUEUE 45 + +#define SO_BUSY_POLL 46 + +#define SO_MAX_PACING_RATE 47 + +#define SO_BPF_EXTENSIONS 48 + +#define SO_INCOMING_CPU 49 + +#define SO_ATTACH_BPF 50 +#define SO_DETACH_BPF SO_DETACH_FILTER + +#define SO_ATTACH_REUSEPORT_CBPF 51 +#define SO_ATTACH_REUSEPORT_EBPF 52 + +#define SO_CNX_ADVICE 53 + +#define SCM_TIMESTAMPING_OPT_STATS 54 + +#define SO_MEMINFO 55 + +#define SO_INCOMING_NAPI_ID 56 + +#define SO_COOKIE 57 + +#define SCM_TIMESTAMPING_PKTINFO 58 + +#define SO_PEERGROUPS 59 + +#define SO_ZEROCOPY 60 + +#define SO_TXTIME 61 +#define SCM_TXTIME SO_TXTIME + +#define SO_BINDTOIFINDEX 62 + +#define SO_TIMESTAMP_OLD 29 +#define SO_TIMESTAMPNS_OLD 35 +#define SO_TIMESTAMPING_OLD 37 + +#define SO_TIMESTAMP_NEW 63 +#define SO_TIMESTAMPNS_NEW 64 +#define SO_TIMESTAMPING_NEW 65 + +#define SO_RCVTIMEO_NEW 66 +#define SO_SNDTIMEO_NEW 67 + +#define SO_DETACH_REUSEPORT_BPF 68 + +#if !defined(__KERNEL__) + +#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__)) +/* on 64-bit and x32, avoid the ?: operator */ +#define SO_TIMESTAMP SO_TIMESTAMP_OLD +#define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD +#define SO_TIMESTAMPING SO_TIMESTAMPING_OLD + +#define SO_RCVTIMEO SO_RCVTIMEO_OLD +#define SO_SNDTIMEO SO_SNDTIMEO_OLD +#else +#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW) +#define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW) +#define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW) + +#define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW) +#define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW) +#endif + +#define SCM_TIMESTAMP SO_TIMESTAMP +#define SCM_TIMESTAMPNS SO_TIMESTAMPNS +#define SCM_TIMESTAMPING SO_TIMESTAMPING + +#endif + +#endif /* __ASM_GENERIC_SOCKET_H */ diff --git a/packaging/libbpf.spec b/packaging/libbpf.spec index 9f0013a..d608195 100755 --- a/packaging/libbpf.spec +++ b/packaging/libbpf.spec @@ -1,7 +1,7 @@ Name: libbpf Summary: Libbpf library Version: 0.2.0 -Release: 1 +Release: 2 Group: System/Network License: LGPL-2.1+ or BSD-2-Clause Source0: %{name}-%{version}.tar.gz diff --git a/src/Makefile b/src/Makefile index f50b17a..c79e05c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -52,7 +52,8 @@ HEADERS := bpf.h libbpf.h btf.h xsk.h libbpf_util.h \ bpf_helpers.h bpf_helper_defs.h bpf_tracing.h \ bpf_endian.h bpf_core_read.h libbpf_common.h UAPI_HEADERS := $(addprefix $(TOPDIR)/include/uapi/linux/,\ - bpf.h bpf_common.h btf.h) + bpf.h bpf_common.h btf.h \ + asm-generic/socket.h) PC_FILE := $(OBJDIR)/libbpf.pc @@ -128,7 +129,7 @@ define do_s_install $(Q)cp -fpR $1 '$(DESTDIR)$2' endef -install: all install_headers install_pkgconfig +install: all install_headers install_uapi_headers install_pkgconfig $(call do_s_install,$(STATIC_LIBS) $(SHARED_LIBS),$(LIBDIR)) install_headers: @@ -137,7 +138,7 @@ install_headers: # UAPI headers can be installed by a different package so they're not installed # in by install rule. install_uapi_headers: - $(call do_install,$(UAPI_HEADERS),$(UAPIDIR)/linux,644) + $(call do_install,$(UAPI_HEADERS),$(UAPIDIR)/bpf/linux,644) install_pkgconfig: $(PC_FILE) $(call do_install,$(PC_FILE),$(LIBDIR)/pkgconfig,644) -- 2.7.4