summaryrefslogtreecommitdiff
path: root/vendor/github.com/cilium/ebpf/internal/sys
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/cilium/ebpf/internal/sys')
-rw-r--r--vendor/github.com/cilium/ebpf/internal/sys/doc.go6
-rw-r--r--vendor/github.com/cilium/ebpf/internal/sys/fd.go96
-rw-r--r--vendor/github.com/cilium/ebpf/internal/sys/ptr.go38
-rw-r--r--vendor/github.com/cilium/ebpf/internal/sys/ptr_32_be.go15
-rw-r--r--vendor/github.com/cilium/ebpf/internal/sys/ptr_32_le.go15
-rw-r--r--vendor/github.com/cilium/ebpf/internal/sys/ptr_64.go14
-rw-r--r--vendor/github.com/cilium/ebpf/internal/sys/syscall.go126
-rw-r--r--vendor/github.com/cilium/ebpf/internal/sys/types.go1052
8 files changed, 0 insertions, 1362 deletions
diff --git a/vendor/github.com/cilium/ebpf/internal/sys/doc.go b/vendor/github.com/cilium/ebpf/internal/sys/doc.go
deleted file mode 100644
index dfe174448..000000000
--- a/vendor/github.com/cilium/ebpf/internal/sys/doc.go
+++ /dev/null
@@ -1,6 +0,0 @@
-// Package sys contains bindings for the BPF syscall.
-package sys
-
-// Regenerate types.go by invoking go generate in the current directory.
-
-//go:generate go run github.com/cilium/ebpf/internal/cmd/gentypes ../../btf/testdata/vmlinux.btf.gz
diff --git a/vendor/github.com/cilium/ebpf/internal/sys/fd.go b/vendor/github.com/cilium/ebpf/internal/sys/fd.go
deleted file mode 100644
index 65517d45e..000000000
--- a/vendor/github.com/cilium/ebpf/internal/sys/fd.go
+++ /dev/null
@@ -1,96 +0,0 @@
-package sys
-
-import (
- "fmt"
- "math"
- "os"
- "runtime"
- "strconv"
-
- "github.com/cilium/ebpf/internal/unix"
-)
-
-var ErrClosedFd = unix.EBADF
-
-type FD struct {
- raw int
-}
-
-func newFD(value int) *FD {
- fd := &FD{value}
- runtime.SetFinalizer(fd, (*FD).Close)
- return fd
-}
-
-// NewFD wraps a raw fd with a finalizer.
-//
-// You must not use the raw fd after calling this function, since the underlying
-// file descriptor number may change. This is because the BPF UAPI assumes that
-// zero is not a valid fd value.
-func NewFD(value int) (*FD, error) {
- if value < 0 {
- return nil, fmt.Errorf("invalid fd %d", value)
- }
-
- fd := newFD(value)
- if value != 0 {
- return fd, nil
- }
-
- dup, err := fd.Dup()
- _ = fd.Close()
- return dup, err
-}
-
-func (fd *FD) String() string {
- return strconv.FormatInt(int64(fd.raw), 10)
-}
-
-func (fd *FD) Int() int {
- return fd.raw
-}
-
-func (fd *FD) Uint() uint32 {
- if fd.raw < 0 || int64(fd.raw) > math.MaxUint32 {
- // Best effort: this is the number most likely to be an invalid file
- // descriptor. It is equal to -1 (on two's complement arches).
- return math.MaxUint32
- }
- return uint32(fd.raw)
-}
-
-func (fd *FD) Close() error {
- if fd.raw < 0 {
- return nil
- }
-
- value := int(fd.raw)
- fd.raw = -1
-
- fd.Forget()
- return unix.Close(value)
-}
-
-func (fd *FD) Forget() {
- runtime.SetFinalizer(fd, nil)
-}
-
-func (fd *FD) Dup() (*FD, error) {
- if fd.raw < 0 {
- return nil, ErrClosedFd
- }
-
- // Always require the fd to be larger than zero: the BPF API treats the value
- // as "no argument provided".
- dup, err := unix.FcntlInt(uintptr(fd.raw), unix.F_DUPFD_CLOEXEC, 1)
- if err != nil {
- return nil, fmt.Errorf("can't dup fd: %v", err)
- }
-
- return newFD(dup), nil
-}
-
-func (fd *FD) File(name string) *os.File {
- fd.Forget()
- return os.NewFile(uintptr(fd.raw), name)
-}
diff --git a/vendor/github.com/cilium/ebpf/internal/sys/ptr.go b/vendor/github.com/cilium/ebpf/internal/sys/ptr.go
deleted file mode 100644
index a22100688..000000000
--- a/vendor/github.com/cilium/ebpf/internal/sys/ptr.go
+++ /dev/null
@@ -1,38 +0,0 @@
-package sys
-
-import (
- "unsafe"
-
- "github.com/cilium/ebpf/internal/unix"
-)
-
-// NewPointer creates a 64-bit pointer from an unsafe Pointer.
-func NewPointer(ptr unsafe.Pointer) Pointer {
- return Pointer{ptr: ptr}
-}
-
-// NewSlicePointer creates a 64-bit pointer from a byte slice.
-func NewSlicePointer(buf []byte) Pointer {
- if len(buf) == 0 {
- return Pointer{}
- }
-
- return Pointer{ptr: unsafe.Pointer(&buf[0])}
-}
-
-// NewSlicePointer creates a 64-bit pointer from a byte slice.
-//
-// Useful to assign both the pointer and the length in one go.
-func NewSlicePointerLen(buf []byte) (Pointer, uint32) {
- return NewSlicePointer(buf), uint32(len(buf))
-}
-
-// NewStringPointer creates a 64-bit pointer from a string.
-func NewStringPointer(str string) Pointer {
- p, err := unix.BytePtrFromString(str)
- if err != nil {
- return Pointer{}
- }
-
- return Pointer{ptr: unsafe.Pointer(p)}
-}
diff --git a/vendor/github.com/cilium/ebpf/internal/sys/ptr_32_be.go b/vendor/github.com/cilium/ebpf/internal/sys/ptr_32_be.go
deleted file mode 100644
index df903d780..000000000
--- a/vendor/github.com/cilium/ebpf/internal/sys/ptr_32_be.go
+++ /dev/null
@@ -1,15 +0,0 @@
-//go:build armbe || mips || mips64p32
-// +build armbe mips mips64p32
-
-package sys
-
-import (
- "unsafe"
-)
-
-// Pointer wraps an unsafe.Pointer to be 64bit to
-// conform to the syscall specification.
-type Pointer struct {
- pad uint32
- ptr unsafe.Pointer
-}
diff --git a/vendor/github.com/cilium/ebpf/internal/sys/ptr_32_le.go b/vendor/github.com/cilium/ebpf/internal/sys/ptr_32_le.go
deleted file mode 100644
index a6a51edb6..000000000
--- a/vendor/github.com/cilium/ebpf/internal/sys/ptr_32_le.go
+++ /dev/null
@@ -1,15 +0,0 @@
-//go:build 386 || amd64p32 || arm || mipsle || mips64p32le
-// +build 386 amd64p32 arm mipsle mips64p32le
-
-package sys
-
-import (
- "unsafe"
-)
-
-// Pointer wraps an unsafe.Pointer to be 64bit to
-// conform to the syscall specification.
-type Pointer struct {
- ptr unsafe.Pointer
- pad uint32
-}
diff --git a/vendor/github.com/cilium/ebpf/internal/sys/ptr_64.go b/vendor/github.com/cilium/ebpf/internal/sys/ptr_64.go
deleted file mode 100644
index 7c0279e48..000000000
--- a/vendor/github.com/cilium/ebpf/internal/sys/ptr_64.go
+++ /dev/null
@@ -1,14 +0,0 @@
-//go:build !386 && !amd64p32 && !arm && !mipsle && !mips64p32le && !armbe && !mips && !mips64p32
-// +build !386,!amd64p32,!arm,!mipsle,!mips64p32le,!armbe,!mips,!mips64p32
-
-package sys
-
-import (
- "unsafe"
-)
-
-// Pointer wraps an unsafe.Pointer to be 64bit to
-// conform to the syscall specification.
-type Pointer struct {
- ptr unsafe.Pointer
-}
diff --git a/vendor/github.com/cilium/ebpf/internal/sys/syscall.go b/vendor/github.com/cilium/ebpf/internal/sys/syscall.go
deleted file mode 100644
index 2a5935dc9..000000000
--- a/vendor/github.com/cilium/ebpf/internal/sys/syscall.go
+++ /dev/null
@@ -1,126 +0,0 @@
-package sys
-
-import (
- "runtime"
- "syscall"
- "unsafe"
-
- "github.com/cilium/ebpf/internal/unix"
-)
-
-// BPF wraps SYS_BPF.
-//
-// Any pointers contained in attr must use the Pointer type from this package.
-func BPF(cmd Cmd, attr unsafe.Pointer, size uintptr) (uintptr, error) {
- for {
- r1, _, errNo := unix.Syscall(unix.SYS_BPF, uintptr(cmd), uintptr(attr), size)
- runtime.KeepAlive(attr)
-
- // As of ~4.20 the verifier can be interrupted by a signal,
- // and returns EAGAIN in that case.
- if errNo == unix.EAGAIN && cmd == BPF_PROG_LOAD {
- continue
- }
-
- var err error
- if errNo != 0 {
- err = wrappedErrno{errNo}
- }
-
- return r1, err
- }
-}
-
-// Info is implemented by all structs that can be passed to the ObjInfo syscall.
-//
-// MapInfo
-// ProgInfo
-// LinkInfo
-// BtfInfo
-type Info interface {
- info() (unsafe.Pointer, uint32)
-}
-
-var _ Info = (*MapInfo)(nil)
-
-func (i *MapInfo) info() (unsafe.Pointer, uint32) {
- return unsafe.Pointer(i), uint32(unsafe.Sizeof(*i))
-}
-
-var _ Info = (*ProgInfo)(nil)
-
-func (i *ProgInfo) info() (unsafe.Pointer, uint32) {
- return unsafe.Pointer(i), uint32(unsafe.Sizeof(*i))
-}
-
-var _ Info = (*LinkInfo)(nil)
-
-func (i *LinkInfo) info() (unsafe.Pointer, uint32) {
- return unsafe.Pointer(i), uint32(unsafe.Sizeof(*i))
-}
-
-var _ Info = (*BtfInfo)(nil)
-
-func (i *BtfInfo) info() (unsafe.Pointer, uint32) {
- return unsafe.Pointer(i), uint32(unsafe.Sizeof(*i))
-}
-
-// ObjInfo retrieves information about a BPF Fd.
-//
-// info may be one of MapInfo, ProgInfo, LinkInfo and BtfInfo.
-func ObjInfo(fd *FD, info Info) error {
- ptr, len := info.info()
- err := ObjGetInfoByFd(&ObjGetInfoByFdAttr{
- BpfFd: fd.Uint(),
- InfoLen: len,
- Info: NewPointer(ptr),
- })
- runtime.KeepAlive(fd)
- return err
-}
-
-// BPFObjName is a null-terminated string made up of
-// 'A-Za-z0-9_' characters.
-type ObjName [unix.BPF_OBJ_NAME_LEN]byte
-
-// NewObjName truncates the result if it is too long.
-func NewObjName(name string) ObjName {
- var result ObjName
- copy(result[:unix.BPF_OBJ_NAME_LEN-1], name)
- return result
-}
-
-// LinkID uniquely identifies a bpf_link.
-type LinkID uint32
-
-// BTFID uniquely identifies a BTF blob loaded into the kernel.
-type BTFID uint32
-
-// wrappedErrno wraps syscall.Errno to prevent direct comparisons with
-// syscall.E* or unix.E* constants.
-//
-// You should never export an error of this type.
-type wrappedErrno struct {
- syscall.Errno
-}
-
-func (we wrappedErrno) Unwrap() error {
- return we.Errno
-}
-
-type syscallError struct {
- error
- errno syscall.Errno
-}
-
-func Error(err error, errno syscall.Errno) error {
- return &syscallError{err, errno}
-}
-
-func (se *syscallError) Is(target error) bool {
- return target == se.error
-}
-
-func (se *syscallError) Unwrap() error {
- return se.errno
-}
diff --git a/vendor/github.com/cilium/ebpf/internal/sys/types.go b/vendor/github.com/cilium/ebpf/internal/sys/types.go
deleted file mode 100644
index 291e3a619..000000000
--- a/vendor/github.com/cilium/ebpf/internal/sys/types.go
+++ /dev/null
@@ -1,1052 +0,0 @@
-// Code generated by internal/cmd/gentypes; DO NOT EDIT.
-
-package sys
-
-import (
- "unsafe"
-)
-
-type AdjRoomMode int32
-
-const (
- BPF_ADJ_ROOM_NET AdjRoomMode = 0
- BPF_ADJ_ROOM_MAC AdjRoomMode = 1
-)
-
-type AttachType int32
-
-const (
- BPF_CGROUP_INET_INGRESS AttachType = 0
- BPF_CGROUP_INET_EGRESS AttachType = 1
- BPF_CGROUP_INET_SOCK_CREATE AttachType = 2
- BPF_CGROUP_SOCK_OPS AttachType = 3
- BPF_SK_SKB_STREAM_PARSER AttachType = 4
- BPF_SK_SKB_STREAM_VERDICT AttachType = 5
- BPF_CGROUP_DEVICE AttachType = 6
- BPF_SK_MSG_VERDICT AttachType = 7
- BPF_CGROUP_INET4_BIND AttachType = 8
- BPF_CGROUP_INET6_BIND AttachType = 9
- BPF_CGROUP_INET4_CONNECT AttachType = 10
- BPF_CGROUP_INET6_CONNECT AttachType = 11
- BPF_CGROUP_INET4_POST_BIND AttachType = 12
- BPF_CGROUP_INET6_POST_BIND AttachType = 13
- BPF_CGROUP_UDP4_SENDMSG AttachType = 14
- BPF_CGROUP_UDP6_SENDMSG AttachType = 15
- BPF_LIRC_MODE2 AttachType = 16
- BPF_FLOW_DISSECTOR AttachType = 17
- BPF_CGROUP_SYSCTL AttachType = 18
- BPF_CGROUP_UDP4_RECVMSG AttachType = 19
- BPF_CGROUP_UDP6_RECVMSG AttachType = 20
- BPF_CGROUP_GETSOCKOPT AttachType = 21
- BPF_CGROUP_SETSOCKOPT AttachType = 22
- BPF_TRACE_RAW_TP AttachType = 23
- BPF_TRACE_FENTRY AttachType = 24
- BPF_TRACE_FEXIT AttachType = 25
- BPF_MODIFY_RETURN AttachType = 26
- BPF_LSM_MAC AttachType = 27
- BPF_TRACE_ITER AttachType = 28
- BPF_CGROUP_INET4_GETPEERNAME AttachType = 29
- BPF_CGROUP_INET6_GETPEERNAME AttachType = 30
- BPF_CGROUP_INET4_GETSOCKNAME AttachType = 31
- BPF_CGROUP_INET6_GETSOCKNAME AttachType = 32
- BPF_XDP_DEVMAP AttachType = 33
- BPF_CGROUP_INET_SOCK_RELEASE AttachType = 34
- BPF_XDP_CPUMAP AttachType = 35
- BPF_SK_LOOKUP AttachType = 36
- BPF_XDP AttachType = 37
- BPF_SK_SKB_VERDICT AttachType = 38
- BPF_SK_REUSEPORT_SELECT AttachType = 39
- BPF_SK_REUSEPORT_SELECT_OR_MIGRATE AttachType = 40
- BPF_PERF_EVENT AttachType = 41
- BPF_TRACE_KPROBE_MULTI AttachType = 42
- __MAX_BPF_ATTACH_TYPE AttachType = 43
-)
-
-type Cmd int32
-
-const (
- BPF_MAP_CREATE Cmd = 0
- BPF_MAP_LOOKUP_ELEM Cmd = 1
- BPF_MAP_UPDATE_ELEM Cmd = 2
- BPF_MAP_DELETE_ELEM Cmd = 3
- BPF_MAP_GET_NEXT_KEY Cmd = 4
- BPF_PROG_LOAD Cmd = 5
- BPF_OBJ_PIN Cmd = 6
- BPF_OBJ_GET Cmd = 7
- BPF_PROG_ATTACH Cmd = 8
- BPF_PROG_DETACH Cmd = 9
- BPF_PROG_TEST_RUN Cmd = 10
- BPF_PROG_RUN Cmd = 10
- BPF_PROG_GET_NEXT_ID Cmd = 11
- BPF_MAP_GET_NEXT_ID Cmd = 12
- BPF_PROG_GET_FD_BY_ID Cmd = 13
- BPF_MAP_GET_FD_BY_ID Cmd = 14
- BPF_OBJ_GET_INFO_BY_FD Cmd = 15
- BPF_PROG_QUERY Cmd = 16
- BPF_RAW_TRACEPOINT_OPEN Cmd = 17
- BPF_BTF_LOAD Cmd = 18
- BPF_BTF_GET_FD_BY_ID Cmd = 19
- BPF_TASK_FD_QUERY Cmd = 20
- BPF_MAP_LOOKUP_AND_DELETE_ELEM Cmd = 21
- BPF_MAP_FREEZE Cmd = 22
- BPF_BTF_GET_NEXT_ID Cmd = 23
- BPF_MAP_LOOKUP_BATCH Cmd = 24
- BPF_MAP_LOOKUP_AND_DELETE_BATCH Cmd = 25
- BPF_MAP_UPDATE_BATCH Cmd = 26
- BPF_MAP_DELETE_BATCH Cmd = 27
- BPF_LINK_CREATE Cmd = 28
- BPF_LINK_UPDATE Cmd = 29
- BPF_LINK_GET_FD_BY_ID Cmd = 30
- BPF_LINK_GET_NEXT_ID Cmd = 31
- BPF_ENABLE_STATS Cmd = 32
- BPF_ITER_CREATE Cmd = 33
- BPF_LINK_DETACH Cmd = 34
- BPF_PROG_BIND_MAP Cmd = 35
-)
-
-type FunctionId int32
-
-const (
- BPF_FUNC_unspec FunctionId = 0
- BPF_FUNC_map_lookup_elem FunctionId = 1
- BPF_FUNC_map_update_elem FunctionId = 2
- BPF_FUNC_map_delete_elem FunctionId = 3
- BPF_FUNC_probe_read FunctionId = 4
- BPF_FUNC_ktime_get_ns FunctionId = 5
- BPF_FUNC_trace_printk FunctionId = 6
- BPF_FUNC_get_prandom_u32 FunctionId = 7
- BPF_FUNC_get_smp_processor_id FunctionId = 8
- BPF_FUNC_skb_store_bytes FunctionId = 9
- BPF_FUNC_l3_csum_replace FunctionId = 10
- BPF_FUNC_l4_csum_replace FunctionId = 11
- BPF_FUNC_tail_call FunctionId = 12
- BPF_FUNC_clone_redirect FunctionId = 13
- BPF_FUNC_get_current_pid_tgid FunctionId = 14
- BPF_FUNC_get_current_uid_gid FunctionId = 15
- BPF_FUNC_get_current_comm FunctionId = 16
- BPF_FUNC_get_cgroup_classid FunctionId = 17
- BPF_FUNC_skb_vlan_push FunctionId = 18
- BPF_FUNC_skb_vlan_pop FunctionId = 19
- BPF_FUNC_skb_get_tunnel_key FunctionId = 20
- BPF_FUNC_skb_set_tunnel_key FunctionId = 21
- BPF_FUNC_perf_event_read FunctionId = 22
- BPF_FUNC_redirect FunctionId = 23
- BPF_FUNC_get_route_realm FunctionId = 24
- BPF_FUNC_perf_event_output FunctionId = 25
- BPF_FUNC_skb_load_bytes FunctionId = 26
- BPF_FUNC_get_stackid FunctionId = 27
- BPF_FUNC_csum_diff FunctionId = 28
- BPF_FUNC_skb_get_tunnel_opt FunctionId = 29
- BPF_FUNC_skb_set_tunnel_opt FunctionId = 30
- BPF_FUNC_skb_change_proto FunctionId = 31
- BPF_FUNC_skb_change_type FunctionId = 32
- BPF_FUNC_skb_under_cgroup FunctionId = 33
- BPF_FUNC_get_hash_recalc FunctionId = 34
- BPF_FUNC_get_current_task FunctionId = 35
- BPF_FUNC_probe_write_user FunctionId = 36
- BPF_FUNC_current_task_under_cgroup FunctionId = 37
- BPF_FUNC_skb_change_tail FunctionId = 38
- BPF_FUNC_skb_pull_data FunctionId = 39
- BPF_FUNC_csum_update FunctionId = 40
- BPF_FUNC_set_hash_invalid FunctionId = 41
- BPF_FUNC_get_numa_node_id FunctionId = 42
- BPF_FUNC_skb_change_head FunctionId = 43
- BPF_FUNC_xdp_adjust_head FunctionId = 44
- BPF_FUNC_probe_read_str FunctionId = 45
- BPF_FUNC_get_socket_cookie FunctionId = 46
- BPF_FUNC_get_socket_uid FunctionId = 47
- BPF_FUNC_set_hash FunctionId = 48
- BPF_FUNC_setsockopt FunctionId = 49
- BPF_FUNC_skb_adjust_room FunctionId = 50
- BPF_FUNC_redirect_map FunctionId = 51
- BPF_FUNC_sk_redirect_map FunctionId = 52
- BPF_FUNC_sock_map_update FunctionId = 53
- BPF_FUNC_xdp_adjust_meta FunctionId = 54
- BPF_FUNC_perf_event_read_value FunctionId = 55
- BPF_FUNC_perf_prog_read_value FunctionId = 56
- BPF_FUNC_getsockopt FunctionId = 57
- BPF_FUNC_override_return FunctionId = 58
- BPF_FUNC_sock_ops_cb_flags_set FunctionId = 59
- BPF_FUNC_msg_redirect_map FunctionId = 60
- BPF_FUNC_msg_apply_bytes FunctionId = 61
- BPF_FUNC_msg_cork_bytes FunctionId = 62
- BPF_FUNC_msg_pull_data FunctionId = 63
- BPF_FUNC_bind FunctionId = 64
- BPF_FUNC_xdp_adjust_tail FunctionId = 65
- BPF_FUNC_skb_get_xfrm_state FunctionId = 66
- BPF_FUNC_get_stack FunctionId = 67
- BPF_FUNC_skb_load_bytes_relative FunctionId = 68
- BPF_FUNC_fib_lookup FunctionId = 69
- BPF_FUNC_sock_hash_update FunctionId = 70
- BPF_FUNC_msg_redirect_hash FunctionId = 71
- BPF_FUNC_sk_redirect_hash FunctionId = 72
- BPF_FUNC_lwt_push_encap FunctionId = 73
- BPF_FUNC_lwt_seg6_store_bytes FunctionId = 74
- BPF_FUNC_lwt_seg6_adjust_srh FunctionId = 75
- BPF_FUNC_lwt_seg6_action FunctionId = 76
- BPF_FUNC_rc_repeat FunctionId = 77
- BPF_FUNC_rc_keydown FunctionId = 78
- BPF_FUNC_skb_cgroup_id FunctionId = 79
- BPF_FUNC_get_current_cgroup_id FunctionId = 80
- BPF_FUNC_get_local_storage FunctionId = 81
- BPF_FUNC_sk_select_reuseport FunctionId = 82
- BPF_FUNC_skb_ancestor_cgroup_id FunctionId = 83
- BPF_FUNC_sk_lookup_tcp FunctionId = 84
- BPF_FUNC_sk_lookup_udp FunctionId = 85
- BPF_FUNC_sk_release FunctionId = 86
- BPF_FUNC_map_push_elem FunctionId = 87
- BPF_FUNC_map_pop_elem FunctionId = 88
- BPF_FUNC_map_peek_elem FunctionId = 89
- BPF_FUNC_msg_push_data FunctionId = 90
- BPF_FUNC_msg_pop_data FunctionId = 91
- BPF_FUNC_rc_pointer_rel FunctionId = 92
- BPF_FUNC_spin_lock FunctionId = 93
- BPF_FUNC_spin_unlock FunctionId = 94
- BPF_FUNC_sk_fullsock FunctionId = 95
- BPF_FUNC_tcp_sock FunctionId = 96
- BPF_FUNC_skb_ecn_set_ce FunctionId = 97
- BPF_FUNC_get_listener_sock FunctionId = 98
- BPF_FUNC_skc_lookup_tcp FunctionId = 99
- BPF_FUNC_tcp_check_syncookie FunctionId = 100
- BPF_FUNC_sysctl_get_name FunctionId = 101
- BPF_FUNC_sysctl_get_current_value FunctionId = 102
- BPF_FUNC_sysctl_get_new_value FunctionId = 103
- BPF_FUNC_sysctl_set_new_value FunctionId = 104
- BPF_FUNC_strtol FunctionId = 105
- BPF_FUNC_strtoul FunctionId = 106
- BPF_FUNC_sk_storage_get FunctionId = 107
- BPF_FUNC_sk_storage_delete FunctionId = 108
- BPF_FUNC_send_signal FunctionId = 109
- BPF_FUNC_tcp_gen_syncookie FunctionId = 110
- BPF_FUNC_skb_output FunctionId = 111
- BPF_FUNC_probe_read_user FunctionId = 112
- BPF_FUNC_probe_read_kernel FunctionId = 113
- BPF_FUNC_probe_read_user_str FunctionId = 114
- BPF_FUNC_probe_read_kernel_str FunctionId = 115
- BPF_FUNC_tcp_send_ack FunctionId = 116
- BPF_FUNC_send_signal_thread FunctionId = 117
- BPF_FUNC_jiffies64 FunctionId = 118
- BPF_FUNC_read_branch_records FunctionId = 119
- BPF_FUNC_get_ns_current_pid_tgid FunctionId = 120
- BPF_FUNC_xdp_output FunctionId = 121
- BPF_FUNC_get_netns_cookie FunctionId = 122
- BPF_FUNC_get_current_ancestor_cgroup_id FunctionId = 123
- BPF_FUNC_sk_assign FunctionId = 124
- BPF_FUNC_ktime_get_boot_ns FunctionId = 125
- BPF_FUNC_seq_printf FunctionId = 126
- BPF_FUNC_seq_write FunctionId = 127
- BPF_FUNC_sk_cgroup_id FunctionId = 128
- BPF_FUNC_sk_ancestor_cgroup_id FunctionId = 129
- BPF_FUNC_ringbuf_output FunctionId = 130
- BPF_FUNC_ringbuf_reserve FunctionId = 131
- BPF_FUNC_ringbuf_submit FunctionId = 132
- BPF_FUNC_ringbuf_discard FunctionId = 133
- BPF_FUNC_ringbuf_query FunctionId = 134
- BPF_FUNC_csum_level FunctionId = 135
- BPF_FUNC_skc_to_tcp6_sock FunctionId = 136
- BPF_FUNC_skc_to_tcp_sock FunctionId = 137
- BPF_FUNC_skc_to_tcp_timewait_sock FunctionId = 138
- BPF_FUNC_skc_to_tcp_request_sock FunctionId = 139
- BPF_FUNC_skc_to_udp6_sock FunctionId = 140
- BPF_FUNC_get_task_stack FunctionId = 141
- BPF_FUNC_load_hdr_opt FunctionId = 142
- BPF_FUNC_store_hdr_opt FunctionId = 143
- BPF_FUNC_reserve_hdr_opt FunctionId = 144
- BPF_FUNC_inode_storage_get FunctionId = 145
- BPF_FUNC_inode_storage_delete FunctionId = 146
- BPF_FUNC_d_path FunctionId = 147
- BPF_FUNC_copy_from_user FunctionId = 148
- BPF_FUNC_snprintf_btf FunctionId = 149
- BPF_FUNC_seq_printf_btf FunctionId = 150
- BPF_FUNC_skb_cgroup_classid FunctionId = 151
- BPF_FUNC_redirect_neigh FunctionId = 152
- BPF_FUNC_per_cpu_ptr FunctionId = 153
- BPF_FUNC_this_cpu_ptr FunctionId = 154
- BPF_FUNC_redirect_peer FunctionId = 155
- BPF_FUNC_task_storage_get FunctionId = 156
- BPF_FUNC_task_storage_delete FunctionId = 157
- BPF_FUNC_get_current_task_btf FunctionId = 158
- BPF_FUNC_bprm_opts_set FunctionId = 159
- BPF_FUNC_ktime_get_coarse_ns FunctionId = 160
- BPF_FUNC_ima_inode_hash FunctionId = 161
- BPF_FUNC_sock_from_file FunctionId = 162
- BPF_FUNC_check_mtu FunctionId = 163
- BPF_FUNC_for_each_map_elem FunctionId = 164
- BPF_FUNC_snprintf FunctionId = 165
- BPF_FUNC_sys_bpf FunctionId = 166
- BPF_FUNC_btf_find_by_name_kind FunctionId = 167
- BPF_FUNC_sys_close FunctionId = 168
- BPF_FUNC_timer_init FunctionId = 169
- BPF_FUNC_timer_set_callback FunctionId = 170
- BPF_FUNC_timer_start FunctionId = 171
- BPF_FUNC_timer_cancel FunctionId = 172
- BPF_FUNC_get_func_ip FunctionId = 173
- BPF_FUNC_get_attach_cookie FunctionId = 174
- BPF_FUNC_task_pt_regs FunctionId = 175
- BPF_FUNC_get_branch_snapshot FunctionId = 176
- BPF_FUNC_trace_vprintk FunctionId = 177
- BPF_FUNC_skc_to_unix_sock FunctionId = 178
- BPF_FUNC_kallsyms_lookup_name FunctionId = 179
- BPF_FUNC_find_vma FunctionId = 180
- BPF_FUNC_loop FunctionId = 181
- BPF_FUNC_strncmp FunctionId = 182
- BPF_FUNC_get_func_arg FunctionId = 183
- BPF_FUNC_get_func_ret FunctionId = 184
- BPF_FUNC_get_func_arg_cnt FunctionId = 185
- BPF_FUNC_get_retval FunctionId = 186
- BPF_FUNC_set_retval FunctionId = 187
- BPF_FUNC_xdp_get_buff_len FunctionId = 188
- BPF_FUNC_xdp_load_bytes FunctionId = 189
- BPF_FUNC_xdp_store_bytes FunctionId = 190
- BPF_FUNC_copy_from_user_task FunctionId = 191
- BPF_FUNC_skb_set_tstamp FunctionId = 192
- BPF_FUNC_ima_file_hash FunctionId = 193
- __BPF_FUNC_MAX_ID FunctionId = 194
-)
-
-type HdrStartOff int32
-
-const (
- BPF_HDR_START_MAC HdrStartOff = 0
- BPF_HDR_START_NET HdrStartOff = 1
-)
-
-type LinkType int32
-
-const (
- BPF_LINK_TYPE_UNSPEC LinkType = 0
- BPF_LINK_TYPE_RAW_TRACEPOINT LinkType = 1
- BPF_LINK_TYPE_TRACING LinkType = 2
- BPF_LINK_TYPE_CGROUP LinkType = 3
- BPF_LINK_TYPE_ITER LinkType = 4
- BPF_LINK_TYPE_NETNS LinkType = 5
- BPF_LINK_TYPE_XDP LinkType = 6
- BPF_LINK_TYPE_PERF_EVENT LinkType = 7
- BPF_LINK_TYPE_KPROBE_MULTI LinkType = 8
- MAX_BPF_LINK_TYPE LinkType = 9
-)
-
-type MapType int32
-
-const (
- BPF_MAP_TYPE_UNSPEC MapType = 0
- BPF_MAP_TYPE_HASH MapType = 1
- BPF_MAP_TYPE_ARRAY MapType = 2
- BPF_MAP_TYPE_PROG_ARRAY MapType = 3
- BPF_MAP_TYPE_PERF_EVENT_ARRAY MapType = 4
- BPF_MAP_TYPE_PERCPU_HASH MapType = 5
- BPF_MAP_TYPE_PERCPU_ARRAY MapType = 6
- BPF_MAP_TYPE_STACK_TRACE MapType = 7
- BPF_MAP_TYPE_CGROUP_ARRAY MapType = 8
- BPF_MAP_TYPE_LRU_HASH MapType = 9
- BPF_MAP_TYPE_LRU_PERCPU_HASH MapType = 10
- BPF_MAP_TYPE_LPM_TRIE MapType = 11
- BPF_MAP_TYPE_ARRAY_OF_MAPS MapType = 12
- BPF_MAP_TYPE_HASH_OF_MAPS MapType = 13
- BPF_MAP_TYPE_DEVMAP MapType = 14
- BPF_MAP_TYPE_SOCKMAP MapType = 15
- BPF_MAP_TYPE_CPUMAP MapType = 16
- BPF_MAP_TYPE_XSKMAP MapType = 17
- BPF_MAP_TYPE_SOCKHASH MapType = 18
- BPF_MAP_TYPE_CGROUP_STORAGE MapType = 19
- BPF_MAP_TYPE_REUSEPORT_SOCKARRAY MapType = 20
- BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE MapType = 21
- BPF_MAP_TYPE_QUEUE MapType = 22
- BPF_MAP_TYPE_STACK MapType = 23
- BPF_MAP_TYPE_SK_STORAGE MapType = 24
- BPF_MAP_TYPE_DEVMAP_HASH MapType = 25
- BPF_MAP_TYPE_STRUCT_OPS MapType = 26
- BPF_MAP_TYPE_RINGBUF MapType = 27
- BPF_MAP_TYPE_INODE_STORAGE MapType = 28
- BPF_MAP_TYPE_TASK_STORAGE MapType = 29
- BPF_MAP_TYPE_BLOOM_FILTER MapType = 30
-)
-
-type ProgType int32
-
-const (
- BPF_PROG_TYPE_UNSPEC ProgType = 0
- BPF_PROG_TYPE_SOCKET_FILTER ProgType = 1
- BPF_PROG_TYPE_KPROBE ProgType = 2
- BPF_PROG_TYPE_SCHED_CLS ProgType = 3
- BPF_PROG_TYPE_SCHED_ACT ProgType = 4
- BPF_PROG_TYPE_TRACEPOINT ProgType = 5
- BPF_PROG_TYPE_XDP ProgType = 6
- BPF_PROG_TYPE_PERF_EVENT ProgType = 7
- BPF_PROG_TYPE_CGROUP_SKB ProgType = 8
- BPF_PROG_TYPE_CGROUP_SOCK ProgType = 9
- BPF_PROG_TYPE_LWT_IN ProgType = 10
- BPF_PROG_TYPE_LWT_OUT ProgType = 11
- BPF_PROG_TYPE_LWT_XMIT ProgType = 12
- BPF_PROG_TYPE_SOCK_OPS ProgType = 13
- BPF_PROG_TYPE_SK_SKB ProgType = 14
- BPF_PROG_TYPE_CGROUP_DEVICE ProgType = 15
- BPF_PROG_TYPE_SK_MSG ProgType = 16
- BPF_PROG_TYPE_RAW_TRACEPOINT ProgType = 17
- BPF_PROG_TYPE_CGROUP_SOCK_ADDR ProgType = 18
- BPF_PROG_TYPE_LWT_SEG6LOCAL ProgType = 19
- BPF_PROG_TYPE_LIRC_MODE2 ProgType = 20
- BPF_PROG_TYPE_SK_REUSEPORT ProgType = 21
- BPF_PROG_TYPE_FLOW_DISSECTOR ProgType = 22
- BPF_PROG_TYPE_CGROUP_SYSCTL ProgType = 23
- BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE ProgType = 24
- BPF_PROG_TYPE_CGROUP_SOCKOPT ProgType = 25
- BPF_PROG_TYPE_TRACING ProgType = 26
- BPF_PROG_TYPE_STRUCT_OPS ProgType = 27
- BPF_PROG_TYPE_EXT ProgType = 28
- BPF_PROG_TYPE_LSM ProgType = 29
- BPF_PROG_TYPE_SK_LOOKUP ProgType = 30
- BPF_PROG_TYPE_SYSCALL ProgType = 31
-)
-
-type RetCode int32
-
-const (
- BPF_OK RetCode = 0
- BPF_DROP RetCode = 2
- BPF_REDIRECT RetCode = 7
- BPF_LWT_REROUTE RetCode = 128
-)
-
-type SkAction int32
-
-const (
- SK_DROP SkAction = 0
- SK_PASS SkAction = 1
-)
-
-type StackBuildIdStatus int32
-
-const (
- BPF_STACK_BUILD_ID_EMPTY StackBuildIdStatus = 0
- BPF_STACK_BUILD_ID_VALID StackBuildIdStatus = 1
- BPF_STACK_BUILD_ID_IP StackBuildIdStatus = 2
-)
-
-type StatsType int32
-
-const (
- BPF_STATS_RUN_TIME StatsType = 0
-)
-
-type XdpAction int32
-
-const (
- XDP_ABORTED XdpAction = 0
- XDP_DROP XdpAction = 1
- XDP_PASS XdpAction = 2
- XDP_TX XdpAction = 3
- XDP_REDIRECT XdpAction = 4
-)
-
-type BtfInfo struct {
- Btf Pointer
- BtfSize uint32
- Id BTFID
- Name Pointer
- NameLen uint32
- KernelBtf uint32
-}
-
-type FuncInfo struct {
- InsnOff uint32
- TypeId uint32
-}
-
-type LineInfo struct {
- InsnOff uint32
- FileNameOff uint32
- LineOff uint32
- LineCol uint32
-}
-
-type LinkInfo struct {
- Type LinkType
- Id LinkID
- ProgId uint32
- _ [4]byte
- Extra [16]uint8
-}
-
-type MapInfo struct {
- Type uint32
- Id uint32
- KeySize uint32
- ValueSize uint32
- MaxEntries uint32
- MapFlags uint32
- Name ObjName
- Ifindex uint32
- BtfVmlinuxValueTypeId uint32
- NetnsDev uint64
- NetnsIno uint64
- BtfId uint32
- BtfKeyTypeId uint32
- BtfValueTypeId uint32
- _ [4]byte
- MapExtra uint64
-}
-
-type ProgInfo struct {
- Type uint32
- Id uint32
- Tag [8]uint8
- JitedProgLen uint32
- XlatedProgLen uint32
- JitedProgInsns uint64
- XlatedProgInsns Pointer
- LoadTime uint64
- CreatedByUid uint32
- NrMapIds uint32
- MapIds Pointer
- Name ObjName
- Ifindex uint32
- _ [4]byte /* unsupported bitfield */
- NetnsDev uint64
- NetnsIno uint64
- NrJitedKsyms uint32
- NrJitedFuncLens uint32
- JitedKsyms uint64
- JitedFuncLens uint64
- BtfId uint32
- FuncInfoRecSize uint32
- FuncInfo uint64
- NrFuncInfo uint32
- NrLineInfo uint32
- LineInfo uint64
- JitedLineInfo uint64
- NrJitedLineInfo uint32
- LineInfoRecSize uint32
- JitedLineInfoRecSize uint32
- NrProgTags uint32
- ProgTags uint64
- RunTimeNs uint64
- RunCnt uint64
- RecursionMisses uint64
- VerifiedInsns uint32
- _ [4]byte
-}
-
-type SkLookup struct {
- Cookie uint64
- Family uint32
- Protocol uint32
- RemoteIp4 [4]uint8
- RemoteIp6 [16]uint8
- RemotePort uint16
- _ [2]byte
- LocalIp4 [4]uint8
- LocalIp6 [16]uint8
- LocalPort uint32
- IngressIfindex uint32
- _ [4]byte
-}
-
-type XdpMd struct {
- Data uint32
- DataEnd uint32
- DataMeta uint32
- IngressIfindex uint32
- RxQueueIndex uint32
- EgressIfindex uint32
-}
-
-type BtfGetFdByIdAttr struct{ Id uint32 }
-
-func BtfGetFdById(attr *BtfGetFdByIdAttr) (*FD, error) {
- fd, err := BPF(BPF_BTF_GET_FD_BY_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type BtfGetNextIdAttr struct {
- Id BTFID
- NextId BTFID
-}
-
-func BtfGetNextId(attr *BtfGetNextIdAttr) error {
- _, err := BPF(BPF_BTF_GET_NEXT_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type BtfLoadAttr struct {
- Btf Pointer
- BtfLogBuf Pointer
- BtfSize uint32
- BtfLogSize uint32
- BtfLogLevel uint32
- _ [4]byte
-}
-
-func BtfLoad(attr *BtfLoadAttr) (*FD, error) {
- fd, err := BPF(BPF_BTF_LOAD, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type EnableStatsAttr struct{ Type uint32 }
-
-func EnableStats(attr *EnableStatsAttr) (*FD, error) {
- fd, err := BPF(BPF_ENABLE_STATS, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type IterCreateAttr struct {
- LinkFd uint32
- Flags uint32
-}
-
-func IterCreate(attr *IterCreateAttr) (*FD, error) {
- fd, err := BPF(BPF_ITER_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type LinkCreateAttr struct {
- ProgFd uint32
- TargetFd uint32
- AttachType AttachType
- Flags uint32
- TargetBtfId uint32
- _ [28]byte
-}
-
-func LinkCreate(attr *LinkCreateAttr) (*FD, error) {
- fd, err := BPF(BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type LinkCreateIterAttr struct {
- ProgFd uint32
- TargetFd uint32
- AttachType AttachType
- Flags uint32
- IterInfo Pointer
- IterInfoLen uint32
- _ [20]byte
-}
-
-func LinkCreateIter(attr *LinkCreateIterAttr) (*FD, error) {
- fd, err := BPF(BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type LinkCreatePerfEventAttr struct {
- ProgFd uint32
- TargetFd uint32
- AttachType AttachType
- Flags uint32
- BpfCookie uint64
- _ [24]byte
-}
-
-func LinkCreatePerfEvent(attr *LinkCreatePerfEventAttr) (*FD, error) {
- fd, err := BPF(BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type LinkUpdateAttr struct {
- LinkFd uint32
- NewProgFd uint32
- Flags uint32
- OldProgFd uint32
-}
-
-func LinkUpdate(attr *LinkUpdateAttr) error {
- _, err := BPF(BPF_LINK_UPDATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapCreateAttr struct {
- MapType MapType
- KeySize uint32
- ValueSize uint32
- MaxEntries uint32
- MapFlags uint32
- InnerMapFd uint32
- NumaNode uint32
- MapName ObjName
- MapIfindex uint32
- BtfFd uint32
- BtfKeyTypeId uint32
- BtfValueTypeId uint32
- BtfVmlinuxValueTypeId uint32
- MapExtra uint64
-}
-
-func MapCreate(attr *MapCreateAttr) (*FD, error) {
- fd, err := BPF(BPF_MAP_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type MapDeleteBatchAttr struct {
- InBatch Pointer
- OutBatch Pointer
- Keys Pointer
- Values Pointer
- Count uint32
- MapFd uint32
- ElemFlags uint64
- Flags uint64
-}
-
-func MapDeleteBatch(attr *MapDeleteBatchAttr) error {
- _, err := BPF(BPF_MAP_DELETE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapDeleteElemAttr struct {
- MapFd uint32
- _ [4]byte
- Key Pointer
- Value Pointer
- Flags uint64
-}
-
-func MapDeleteElem(attr *MapDeleteElemAttr) error {
- _, err := BPF(BPF_MAP_DELETE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapFreezeAttr struct{ MapFd uint32 }
-
-func MapFreeze(attr *MapFreezeAttr) error {
- _, err := BPF(BPF_MAP_FREEZE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapGetFdByIdAttr struct{ Id uint32 }
-
-func MapGetFdById(attr *MapGetFdByIdAttr) (*FD, error) {
- fd, err := BPF(BPF_MAP_GET_FD_BY_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type MapGetNextIdAttr struct {
- Id uint32
- NextId uint32
-}
-
-func MapGetNextId(attr *MapGetNextIdAttr) error {
- _, err := BPF(BPF_MAP_GET_NEXT_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapGetNextKeyAttr struct {
- MapFd uint32
- _ [4]byte
- Key Pointer
- NextKey Pointer
-}
-
-func MapGetNextKey(attr *MapGetNextKeyAttr) error {
- _, err := BPF(BPF_MAP_GET_NEXT_KEY, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapLookupAndDeleteBatchAttr struct {
- InBatch Pointer
- OutBatch Pointer
- Keys Pointer
- Values Pointer
- Count uint32
- MapFd uint32
- ElemFlags uint64
- Flags uint64
-}
-
-func MapLookupAndDeleteBatch(attr *MapLookupAndDeleteBatchAttr) error {
- _, err := BPF(BPF_MAP_LOOKUP_AND_DELETE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapLookupAndDeleteElemAttr struct {
- MapFd uint32
- _ [4]byte
- Key Pointer
- Value Pointer
- Flags uint64
-}
-
-func MapLookupAndDeleteElem(attr *MapLookupAndDeleteElemAttr) error {
- _, err := BPF(BPF_MAP_LOOKUP_AND_DELETE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapLookupBatchAttr struct {
- InBatch Pointer
- OutBatch Pointer
- Keys Pointer
- Values Pointer
- Count uint32
- MapFd uint32
- ElemFlags uint64
- Flags uint64
-}
-
-func MapLookupBatch(attr *MapLookupBatchAttr) error {
- _, err := BPF(BPF_MAP_LOOKUP_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapLookupElemAttr struct {
- MapFd uint32
- _ [4]byte
- Key Pointer
- Value Pointer
- Flags uint64
-}
-
-func MapLookupElem(attr *MapLookupElemAttr) error {
- _, err := BPF(BPF_MAP_LOOKUP_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapUpdateBatchAttr struct {
- InBatch Pointer
- OutBatch Pointer
- Keys Pointer
- Values Pointer
- Count uint32
- MapFd uint32
- ElemFlags uint64
- Flags uint64
-}
-
-func MapUpdateBatch(attr *MapUpdateBatchAttr) error {
- _, err := BPF(BPF_MAP_UPDATE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type MapUpdateElemAttr struct {
- MapFd uint32
- _ [4]byte
- Key Pointer
- Value Pointer
- Flags uint64
-}
-
-func MapUpdateElem(attr *MapUpdateElemAttr) error {
- _, err := BPF(BPF_MAP_UPDATE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type ObjGetAttr struct {
- Pathname Pointer
- BpfFd uint32
- FileFlags uint32
-}
-
-func ObjGet(attr *ObjGetAttr) (*FD, error) {
- fd, err := BPF(BPF_OBJ_GET, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type ObjGetInfoByFdAttr struct {
- BpfFd uint32
- InfoLen uint32
- Info Pointer
-}
-
-func ObjGetInfoByFd(attr *ObjGetInfoByFdAttr) error {
- _, err := BPF(BPF_OBJ_GET_INFO_BY_FD, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type ObjPinAttr struct {
- Pathname Pointer
- BpfFd uint32
- FileFlags uint32
-}
-
-func ObjPin(attr *ObjPinAttr) error {
- _, err := BPF(BPF_OBJ_PIN, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type ProgAttachAttr struct {
- TargetFd uint32
- AttachBpfFd uint32
- AttachType uint32
- AttachFlags uint32
- ReplaceBpfFd uint32
-}
-
-func ProgAttach(attr *ProgAttachAttr) error {
- _, err := BPF(BPF_PROG_ATTACH, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type ProgBindMapAttr struct {
- ProgFd uint32
- MapFd uint32
- Flags uint32
-}
-
-func ProgBindMap(attr *ProgBindMapAttr) error {
- _, err := BPF(BPF_PROG_BIND_MAP, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type ProgDetachAttr struct {
- TargetFd uint32
- AttachBpfFd uint32
- AttachType uint32
-}
-
-func ProgDetach(attr *ProgDetachAttr) error {
- _, err := BPF(BPF_PROG_DETACH, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type ProgGetFdByIdAttr struct{ Id uint32 }
-
-func ProgGetFdById(attr *ProgGetFdByIdAttr) (*FD, error) {
- fd, err := BPF(BPF_PROG_GET_FD_BY_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type ProgGetNextIdAttr struct {
- Id uint32
- NextId uint32
-}
-
-func ProgGetNextId(attr *ProgGetNextIdAttr) error {
- _, err := BPF(BPF_PROG_GET_NEXT_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type ProgLoadAttr struct {
- ProgType ProgType
- InsnCnt uint32
- Insns Pointer
- License Pointer
- LogLevel uint32
- LogSize uint32
- LogBuf Pointer
- KernVersion uint32
- ProgFlags uint32
- ProgName ObjName
- ProgIfindex uint32
- ExpectedAttachType AttachType
- ProgBtfFd uint32
- FuncInfoRecSize uint32
- FuncInfo Pointer
- FuncInfoCnt uint32
- LineInfoRecSize uint32
- LineInfo Pointer
- LineInfoCnt uint32
- AttachBtfId uint32
- AttachProgFd uint32
- CoreReloCnt uint32
- FdArray Pointer
- CoreRelos Pointer
- CoreReloRecSize uint32
- _ [4]byte
-}
-
-func ProgLoad(attr *ProgLoadAttr) (*FD, error) {
- fd, err := BPF(BPF_PROG_LOAD, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type ProgRunAttr struct {
- ProgFd uint32
- Retval uint32
- DataSizeIn uint32
- DataSizeOut uint32
- DataIn Pointer
- DataOut Pointer
- Repeat uint32
- Duration uint32
- CtxSizeIn uint32
- CtxSizeOut uint32
- CtxIn Pointer
- CtxOut Pointer
- Flags uint32
- Cpu uint32
- BatchSize uint32
- _ [4]byte
-}
-
-func ProgRun(attr *ProgRunAttr) error {
- _, err := BPF(BPF_PROG_TEST_RUN, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- return err
-}
-
-type RawTracepointOpenAttr struct {
- Name Pointer
- ProgFd uint32
- _ [4]byte
-}
-
-func RawTracepointOpen(attr *RawTracepointOpenAttr) (*FD, error) {
- fd, err := BPF(BPF_RAW_TRACEPOINT_OPEN, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
- if err != nil {
- return nil, err
- }
- return NewFD(int(fd))
-}
-
-type CgroupLinkInfo struct {
- CgroupId uint64
- AttachType AttachType
- _ [4]byte
-}
-
-type IterLinkInfo struct {
- TargetName Pointer
- TargetNameLen uint32
-}
-
-type NetNsLinkInfo struct {
- NetnsIno uint32
- AttachType AttachType
-}
-
-type RawTracepointLinkInfo struct {
- TpName Pointer
- TpNameLen uint32
- _ [4]byte
-}
-
-type TracingLinkInfo struct {
- AttachType AttachType
- TargetObjId uint32
- TargetBtfId uint32
-}
-
-type XDPLinkInfo struct{ Ifindex uint32 }