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 22int 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