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 # error __NR_bpf not defined. libbpf does not support your arch. 13 # endif 14 #endif 15 16 int main(void) 17 { 18 union bpf_attr attr; 19 20 /* Check fields in attr */ 21 attr.prog_type = BPF_PROG_TYPE_KPROBE; 22 attr.insn_cnt = 0; 23 attr.insns = 0; 24 attr.license = 0; 25 attr.log_buf = 0; 26 attr.log_size = 0; 27 attr.log_level = 0; 28 attr.kern_version = 0; 29 30 /* 31 * Test existence of __NR_bpf and BPF_PROG_LOAD. 32 * This call should fail if we run the testcase. 33 */ 34 return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr)); 35 } 36