]> git.proxmox.com Git - mirror_iproute2.git/blob - examples/bpf/bpf_sys.h
tc, bpf: finalize eBPF support for cls and act front-end
[mirror_iproute2.git] / examples / bpf / bpf_sys.h
1 #ifndef __BPF_SYS__
2 #define __BPF_SYS__
3
4 #include <sys/syscall.h>
5 #include <linux/bpf.h>
6
7 static inline __u64 bpf_ptr_to_u64(const void *ptr)
8 {
9 return (__u64) (unsigned long) ptr;
10 }
11
12 static inline int bpf_lookup_elem(int fd, void *key, void *value)
13 {
14 union bpf_attr attr = {
15 .map_fd = fd,
16 .key = bpf_ptr_to_u64(key),
17 .value = bpf_ptr_to_u64(value),
18 };
19
20 return syscall(__NR_bpf, BPF_MAP_LOOKUP_ELEM, &attr, sizeof(attr));
21 }
22
23 #endif /* __BPF_SYS__ */