1 #include <asm/unistd.h> 2 #include <linux/bpf.h> 3 #include <unistd.h> 4 5 #ifndef __NR_bpf 6 # if defined(__i386__) 7 # define __NR_bpf 357 8 # elif defined(__x86_64__) 9 # define __NR_bpf 321 10 # elif defined(__aarch64__) 11 # define __NR_bpf 280 12 # elif defined(__sparc__) 13 # define __NR_bpf 349 14 # elif defined(__s390__) 15 # define __NR_bpf 351 16 # else 17 # error __NR_bpf not defined. libbpf does not support your arch. 18 # endif 19 #endif 20 21 int main(void) 22 { 23 union bpf_attr attr; 24 25 /* Check fields in attr */ 26 attr.prog_type = BPF_PROG_TYPE_KPROBE; 27 attr.insn_cnt = 0; 28 attr.insns = 0; 29 attr.license = 0; 30 attr.log_buf = 0; 31 attr.log_size = 0; 32 attr.log_level = 0; 33 attr.kern_version = 0; 34 attr.prog_flags = 0; 35 36 /* 37 * Test existence of __NR_bpf and BPF_PROG_LOAD. 38 * This call should fail if we run the testcase. 39 */ 40 return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr)); 41 } 42