test-bpf.c 927 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. * bwh: Don't use the bpf() syscall as we might be building on a
  35. * much older kernel. Do "use" the attr structure here to avoid
  36. * a "set but not used" warning.
  37. */
  38. (void)&attr;
  39. return 0;
  40. }