aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/bpf.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sys/linux/bpf.txt')
-rw-r--r--sys/linux/bpf.txt22
1 files changed, 22 insertions, 0 deletions
diff --git a/sys/linux/bpf.txt b/sys/linux/bpf.txt
index 974106867..eb1c2761b 100644
--- a/sys/linux/bpf.txt
+++ b/sys/linux/bpf.txt
@@ -387,6 +387,7 @@ bpf_core_relo {
bpf_instructions [
raw array[bpf_insn]
framed bpf_framed_program
+ ringbuf bpf_program_ringbuf
] [varlen]
bpf_framed_program {
@@ -395,6 +396,13 @@ bpf_framed_program {
exit bpf_insn_exit
} [packed]
+bpf_program_ringbuf {
+ initr0 bpf_insn_init_r0
+ reserve bpf_insn_ringbuf_reserve
+ body array[bpf_insn]
+ exit bpf_insn_exit
+} [packed]
+
bpf_insn [
generic bpf_insn_generic
ldst bpf_insn_ldst
@@ -593,6 +601,7 @@ type bpf_insn_map_fd_t[DST, MAP_FD] {
type bpf_insn_map_fd bpf_insn_map_fd_t[flags[bpf_reg, int8:4], fd_bpf_map]
type bpf_insn_tail_call_map_fd[DST] bpf_insn_map_fd_t[const[DST, int8:4], tail_call_map]
+type bpf_insn_ringbuf_fd[DST] bpf_insn_map_fd_t[const[DST, int8:4], ringbuf_map_fd]
bpf_insn_map_idx {
code const[bpf_insn_load_imm_dw, int8]
@@ -727,6 +736,19 @@ bpf_insn_tail_call {
insn4 bpf_insn_mov_imm[BPF_REG_0, 0]
}
+# (18) r1 = map[id:16]
+# (b7) r2 = 8
+# (b7) r3 = 0
+# (85) call bpf_ringbuf_reserve#320112
+# (bf) r9 = r0
+bpf_insn_ringbuf_reserve {
+ insn1 bpf_insn_ringbuf_fd[BPF_REG_1]
+ insn2 bpf_insn_mov_imm[BPF_REG_2, 20]
+ insn3 bpf_insn_mov_imm[BPF_REG_3, 0]
+ insn4 bpf_insn_call_helper_t[const[BPF_FUNC_ringbuf_reserve, int32]]
+ insn5 bpf_insn_mov_reg[BPF_REG_0, BPF_REG_9]
+}
+
define MAX_BPF_REG __MAX_BPF_REG
bpf_obj_pin_map [