bpf_load.h 985 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef __BPF_LOAD_H
  2. #define __BPF_LOAD_H
  3. #include "libbpf.h"
  4. #define MAX_MAPS 32
  5. #define MAX_PROGS 32
  6. extern int map_fd[MAX_MAPS];
  7. extern int prog_fd[MAX_PROGS];
  8. extern int event_fd[MAX_PROGS];
  9. extern char bpf_log_buf[BPF_LOG_BUF_SIZE];
  10. extern int prog_cnt;
  11. /* parses elf file compiled by llvm .c->.o
  12. * . parses 'maps' section and creates maps via BPF syscall
  13. * . parses 'license' section and passes it to syscall
  14. * . parses elf relocations for BPF maps and adjusts BPF_LD_IMM64 insns by
  15. * storing map_fd into insn->imm and marking such insns as BPF_PSEUDO_MAP_FD
  16. * . loads eBPF programs via BPF syscall
  17. *
  18. * One ELF file can contain multiple BPF programs which will be loaded
  19. * and their FDs stored stored in prog_fd array
  20. *
  21. * returns zero on success
  22. */
  23. int load_bpf_file(char *path);
  24. void read_trace_pipe(void);
  25. struct ksym {
  26. long addr;
  27. char *name;
  28. };
  29. int load_kallsyms(void);
  30. struct ksym *ksym_search(long key);
  31. int set_link_xdp_fd(int ifindex, int fd);
  32. #endif