test-bpf.c 899 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // SPDX-License-Identifier: GPL-2.0
  2. #include <asm/unistd.h>
  3. #include <linux/bpf.h>
  4. #include <unistd.h>
  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. # elif defined(__s390__)
  15. # define __NR_bpf 351
  16. # else
  17. # error __NR_bpf not defined. libbpf does not support your arch.
  18. # endif
  19. #endif
  20. int main(void)
  21. {
  22. union bpf_attr attr;
  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. attr.prog_flags = 0;
  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. }