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