linux/tools/build/feature/test-bpf.c
<<
>>
Prefs
   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