Alexei Starovoitov | 249b812 | 2014-12-01 15:06:37 -0800 | [diff] [blame] | 1 | #ifndef __BPF_LOAD_H |
| 2 | #define __BPF_LOAD_H |
| 3 | |
Joe Stringer | d40fc18 | 2016-12-14 14:43:38 -0800 | [diff] [blame^] | 4 | #include "libbpf.h" |
| 5 | |
Alexei Starovoitov | 249b812 | 2014-12-01 15:06:37 -0800 | [diff] [blame] | 6 | #define MAX_MAPS 32 |
| 7 | #define MAX_PROGS 32 |
| 8 | |
| 9 | extern int map_fd[MAX_MAPS]; |
| 10 | extern int prog_fd[MAX_PROGS]; |
Alexei Starovoitov | b896c4f | 2015-03-25 12:49:23 -0700 | [diff] [blame] | 11 | extern int event_fd[MAX_PROGS]; |
Joe Stringer | d40fc18 | 2016-12-14 14:43:38 -0800 | [diff] [blame^] | 12 | extern char bpf_log_buf[BPF_LOG_BUF_SIZE]; |
David Ahern | 4f2e7ae | 2016-12-01 08:48:07 -0800 | [diff] [blame] | 13 | extern int prog_cnt; |
Alexei Starovoitov | 249b812 | 2014-12-01 15:06:37 -0800 | [diff] [blame] | 14 | |
| 15 | /* parses elf file compiled by llvm .c->.o |
| 16 | * . parses 'maps' section and creates maps via BPF syscall |
| 17 | * . parses 'license' section and passes it to syscall |
| 18 | * . parses elf relocations for BPF maps and adjusts BPF_LD_IMM64 insns by |
| 19 | * storing map_fd into insn->imm and marking such insns as BPF_PSEUDO_MAP_FD |
| 20 | * . loads eBPF programs via BPF syscall |
| 21 | * |
| 22 | * One ELF file can contain multiple BPF programs which will be loaded |
| 23 | * and their FDs stored stored in prog_fd array |
| 24 | * |
| 25 | * returns zero on success |
| 26 | */ |
| 27 | int load_bpf_file(char *path); |
| 28 | |
Alexei Starovoitov | b896c4f | 2015-03-25 12:49:23 -0700 | [diff] [blame] | 29 | void read_trace_pipe(void); |
Alexei Starovoitov | 3622e7e | 2016-03-07 21:57:19 -0800 | [diff] [blame] | 30 | struct ksym { |
| 31 | long addr; |
| 32 | char *name; |
| 33 | }; |
Alexei Starovoitov | b896c4f | 2015-03-25 12:49:23 -0700 | [diff] [blame] | 34 | |
Alexei Starovoitov | 3622e7e | 2016-03-07 21:57:19 -0800 | [diff] [blame] | 35 | int load_kallsyms(void); |
| 36 | struct ksym *ksym_search(long key); |
Martin KaFai Lau | 12d8bb6 | 2016-12-07 15:53:14 -0800 | [diff] [blame] | 37 | int set_link_xdp_fd(int ifindex, int fd); |
Alexei Starovoitov | 249b812 | 2014-12-01 15:06:37 -0800 | [diff] [blame] | 38 | #endif |