| #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__ */ |