diff options
Diffstat (limited to 'examples/bpf/bpf_sys.h')
-rw-r--r-- | examples/bpf/bpf_sys.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/examples/bpf/bpf_sys.h b/examples/bpf/bpf_sys.h new file mode 100644 index 00000000..6e4f09e2 --- /dev/null +++ b/examples/bpf/bpf_sys.h @@ -0,0 +1,23 @@ +#ifndef __BPF_SYS__ +#define __BPF_SYS__ + +#include <sys/syscall.h> +#include <linux/bpf.h> + +static inline __u64 bpf_ptr_to_u64(const void *ptr) +{ + return (__u64) (unsigned long) ptr; +} + +static inline int bpf_lookup_elem(int fd, void *key, void *value) +{ + union bpf_attr attr = { + .map_fd = fd, + .key = bpf_ptr_to_u64(key), + .value = bpf_ptr_to_u64(value), + }; + + return syscall(__NR_bpf, BPF_MAP_LOOKUP_ELEM, &attr, sizeof(attr)); +} + +#endif /* __BPF_SYS__ */ |