diff options
Diffstat (limited to 'samples/bpf/libbpf.h')
| -rw-r--r-- | samples/bpf/libbpf.h | 17 | 
1 files changed, 15 insertions, 2 deletions
diff --git a/samples/bpf/libbpf.h b/samples/bpf/libbpf.h index 8a31babeca5d..58c5fe1bdba1 100644 --- a/samples/bpf/libbpf.h +++ b/samples/bpf/libbpf.h @@ -6,7 +6,7 @@ struct bpf_insn;  int bpf_create_map(enum bpf_map_type map_type, int key_size, int value_size,  		   int max_entries); -int bpf_update_elem(int fd, void *key, void *value); +int bpf_update_elem(int fd, void *key, void *value, unsigned long long flags);  int bpf_lookup_elem(int fd, void *key, void *value);  int bpf_delete_elem(int fd, void *key);  int bpf_get_next_key(int fd, void *key, void *next_key); @@ -15,7 +15,7 @@ int bpf_prog_load(enum bpf_prog_type prog_type,  		  const struct bpf_insn *insns, int insn_len,  		  const char *license); -#define LOG_BUF_SIZE 8192 +#define LOG_BUF_SIZE 65536  extern char bpf_log_buf[LOG_BUF_SIZE];  /* ALU ops on registers, bpf_add|sub|...: dst_reg += src_reg */ @@ -99,6 +99,16 @@ extern char bpf_log_buf[LOG_BUF_SIZE];  	BPF_LD_IMM64_RAW(DST, BPF_PSEUDO_MAP_FD, MAP_FD) +/* Direct packet access, R0 = *(uint *) (skb->data + imm32) */ + +#define BPF_LD_ABS(SIZE, IMM)					\ +	((struct bpf_insn) {					\ +		.code  = BPF_LD | BPF_SIZE(SIZE) | BPF_ABS,	\ +		.dst_reg = 0,					\ +		.src_reg = 0,					\ +		.off   = 0,					\ +		.imm   = IMM }) +  /* Memory load, dst_reg = *(uint *) (src_reg + off16) */  #define BPF_LDX_MEM(SIZE, DST, SRC, OFF)			\ @@ -169,4 +179,7 @@ extern char bpf_log_buf[LOG_BUF_SIZE];  		.off   = 0,					\  		.imm   = 0 }) +/* create RAW socket and bind to interface 'name' */ +int open_raw_sock(const char *name); +  #endif  |