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