bpf_load.h 858 B

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