test-bpf.c (1105B)
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# elif defined(__mips__) && defined(_ABIO32) 18# define __NR_bpf 4355 19# elif defined(__mips__) && defined(_ABIN32) 20# define __NR_bpf 6319 21# elif defined(__mips__) && defined(_ABI64) 22# define __NR_bpf 5315 23# else 24# error __NR_bpf not defined. libbpf does not support your arch. 25# endif 26#endif 27 28int main(void) 29{ 30 union bpf_attr attr; 31 32 /* Check fields in attr */ 33 attr.prog_type = BPF_PROG_TYPE_KPROBE; 34 attr.insn_cnt = 0; 35 attr.insns = 0; 36 attr.license = 0; 37 attr.log_buf = 0; 38 attr.log_size = 0; 39 attr.log_level = 0; 40 attr.kern_version = 0; 41 attr.prog_flags = 0; 42 43 /* 44 * Test existence of __NR_bpf and BPF_PROG_LOAD. 45 * This call should fail if we run the testcase. 46 */ 47 return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr)); 48}