diff options
| author | Paul Chaignon <paul.chaignon@orange.com> | 2019-09-17 11:41:26 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-09-17 14:41:41 +0200 |
| commit | c9364a464803dee7c57da611a17d01b57b53ff7d (patch) | |
| tree | 443176872012ac3f63d8709ca007a64fb9f037bc /sys/linux | |
| parent | 13dcda9b39492dcd91150df7d867bbe2a44cc5e6 (diff) | |
sys/linux: support for loopkup-free map value accesses
A new BPF instruction that allows lookup-free map value accesses was added
in Linux v5.2, with commit d8eca5b ("bpf: implement lookup-free direct
value access for maps"). It enables direct access to map values without
having to call a BPF helper. It is currently used to implement global
variable support.
This commit adds support for that new instruction.
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
Diffstat (limited to 'sys/linux')
| -rw-r--r-- | sys/linux/bpf.txt | 13 | ||||
| -rw-r--r-- | sys/linux/bpf_amd64.const | 1 | ||||
| -rw-r--r-- | sys/linux/bpf_arm64.const | 1 | ||||
| -rw-r--r-- | sys/linux/bpf_ppc64le.const | 1 | ||||
| -rw-r--r-- | sys/linux/gen/386.go | 14 | ||||
| -rw-r--r-- | sys/linux/gen/amd64.go | 15 | ||||
| -rw-r--r-- | sys/linux/gen/arm.go | 14 | ||||
| -rw-r--r-- | sys/linux/gen/arm64.go | 15 | ||||
| -rw-r--r-- | sys/linux/gen/ppc64le.go | 15 |
9 files changed, 84 insertions, 5 deletions
diff --git a/sys/linux/bpf.txt b/sys/linux/bpf.txt index ead408d1d..f0b5ac964 100644 --- a/sys/linux/bpf.txt +++ b/sys/linux/bpf.txt @@ -160,6 +160,7 @@ bpf_insn [ exit bpf_insn_exit initr0 bpf_insn_init_r0 map bpf_insn_map + map_val bpf_insn_map_value ] [varlen] bpf_insn_generic { @@ -292,6 +293,18 @@ bpf_insn_map { imm2 const[0, int32] } +bpf_insn_map_value { + code const[bpf_insn_load_imm_dw, int8] + dst flags[bpf_reg, int8:4] + src const[BPF_PSEUDO_MAP_VALUE, int8:4] + off const[0, int16] + imm fd_bpf_map + code2 const[0, int8] + regs2 const[0, int8] + off2 const[0, int16] + imm2 int32 +} + define bpf_insn_load_imm_dw BPF_LD | BPF_DW | BPF_IMM # Slightly prune state space, these values frequently must be 0. diff --git a/sys/linux/bpf_amd64.const b/sys/linux/bpf_amd64.const index ceca22509..5dc99bcc3 100644 --- a/sys/linux/bpf_amd64.const +++ b/sys/linux/bpf_amd64.const @@ -149,6 +149,7 @@ BPF_PROG_TYPE_SOCK_OPS = 13 BPF_PROG_TYPE_TRACEPOINT = 5 BPF_PROG_TYPE_XDP = 6 BPF_PSEUDO_MAP_FD = 1 +BPF_PSEUDO_MAP_VALUE = 2 BPF_RAW_TRACEPOINT_OPEN = 17 BPF_REG_0 = 0 BPF_REG_1 = 1 diff --git a/sys/linux/bpf_arm64.const b/sys/linux/bpf_arm64.const index 29dd21c8a..e4573e690 100644 --- a/sys/linux/bpf_arm64.const +++ b/sys/linux/bpf_arm64.const @@ -149,6 +149,7 @@ BPF_PROG_TYPE_SOCK_OPS = 13 BPF_PROG_TYPE_TRACEPOINT = 5 BPF_PROG_TYPE_XDP = 6 BPF_PSEUDO_MAP_FD = 1 +BPF_PSEUDO_MAP_VALUE = 2 BPF_RAW_TRACEPOINT_OPEN = 17 BPF_REG_0 = 0 BPF_REG_1 = 1 diff --git a/sys/linux/bpf_ppc64le.const b/sys/linux/bpf_ppc64le.const index 29c541945..355ef459c 100644 --- a/sys/linux/bpf_ppc64le.const +++ b/sys/linux/bpf_ppc64le.const @@ -149,6 +149,7 @@ BPF_PROG_TYPE_SOCK_OPS = 13 BPF_PROG_TYPE_TRACEPOINT = 5 BPF_PROG_TYPE_XDP = 6 BPF_PSEUDO_MAP_FD = 1 +BPF_PSEUDO_MAP_VALUE = 2 BPF_RAW_TRACEPOINT_OPEN = 17 BPF_REG_0 = 0 BPF_REG_1 = 1 diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go index 6810b12f3..d48976d1f 100644 --- a/sys/linux/gen/386.go +++ b/sys/linux/gen/386.go @@ -1102,6 +1102,7 @@ var structDescs_386 = []*KeyedStruct{ &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, &StructType{Key: StructKey{Name: "bpf_insn_map"}, FldName: "map"}, + &StructType{Key: StructKey{Name: "bpf_insn_map_value"}, FldName: "map_val"}, }}}, {Key: StructKey{Name: "bpf_insn_alu"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_alu", TypeSize: 8}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{4, 7}}, @@ -1171,6 +1172,17 @@ var structDescs_386 = []*KeyedStruct{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_insn_map_value"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map_value", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 1}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "imm", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm2", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions", IsVarlen: true}, Fields: []Type{ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, @@ -52557,4 +52569,4 @@ var consts_386 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_386 = "6c600dc9e424904f3bf19b9e8ade5a7d397827a9" +const revision_386 = "0cf2e190168e6f07b1e6cf3b6e77c4ccd139c835" diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go index 00ec52fee..c4422b417 100644 --- a/sys/linux/gen/amd64.go +++ b/sys/linux/gen/amd64.go @@ -1105,6 +1105,7 @@ var structDescs_amd64 = []*KeyedStruct{ &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, &StructType{Key: StructKey{Name: "bpf_insn_map"}, FldName: "map"}, + &StructType{Key: StructKey{Name: "bpf_insn_map_value"}, FldName: "map_val"}, }}}, {Key: StructKey{Name: "bpf_insn_alu"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_alu", TypeSize: 8}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{4, 7}}, @@ -1174,6 +1175,17 @@ var structDescs_amd64 = []*KeyedStruct{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_insn_map_value"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map_value", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "imm", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm2", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions", IsVarlen: true}, Fields: []Type{ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, @@ -45661,6 +45673,7 @@ var consts_amd64 = []ConstValue{ {Name: "BPF_PROG_TYPE_TRACEPOINT", Value: 5}, {Name: "BPF_PROG_TYPE_XDP", Value: 6}, {Name: "BPF_PSEUDO_MAP_FD", Value: 1}, + {Name: "BPF_PSEUDO_MAP_VALUE", Value: 2}, {Name: "BPF_RAW_TRACEPOINT_OPEN", Value: 17}, {Name: "BPF_REG_0"}, {Name: "BPF_REG_1", Value: 1}, @@ -53094,4 +53107,4 @@ var consts_amd64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_amd64 = "e8d337b13b9ae8f911b772c9be47236bc8446da4" +const revision_amd64 = "aa246a28337c3712c3cb2b2da52b46f89c50ca77" diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go index fbbafa8ce..3edb6035b 100644 --- a/sys/linux/gen/arm.go +++ b/sys/linux/gen/arm.go @@ -1102,6 +1102,7 @@ var structDescs_arm = []*KeyedStruct{ &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, &StructType{Key: StructKey{Name: "bpf_insn_map"}, FldName: "map"}, + &StructType{Key: StructKey{Name: "bpf_insn_map_value"}, FldName: "map_val"}, }}}, {Key: StructKey{Name: "bpf_insn_alu"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_alu", TypeSize: 8}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{4, 7}}, @@ -1171,6 +1172,17 @@ var structDescs_arm = []*KeyedStruct{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_insn_map_value"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map_value", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 1}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "imm", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm2", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions", IsVarlen: true}, Fields: []Type{ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, @@ -52134,4 +52146,4 @@ var consts_arm = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm = "c0010b3d05cb5d0ca1af17dacf9349c9cdf38c9e" +const revision_arm = "d928c34e4aaf0fbd4da01cc7f5cdc97a4357a6ad" diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go index f36e0ef16..826fe61ab 100644 --- a/sys/linux/gen/arm64.go +++ b/sys/linux/gen/arm64.go @@ -1105,6 +1105,7 @@ var structDescs_arm64 = []*KeyedStruct{ &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, &StructType{Key: StructKey{Name: "bpf_insn_map"}, FldName: "map"}, + &StructType{Key: StructKey{Name: "bpf_insn_map_value"}, FldName: "map_val"}, }}}, {Key: StructKey{Name: "bpf_insn_alu"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_alu", TypeSize: 8}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{4, 7}}, @@ -1174,6 +1175,17 @@ var structDescs_arm64 = []*KeyedStruct{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_insn_map_value"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map_value", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "imm", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm2", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions", IsVarlen: true}, Fields: []Type{ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, @@ -45107,6 +45119,7 @@ var consts_arm64 = []ConstValue{ {Name: "BPF_PROG_TYPE_TRACEPOINT", Value: 5}, {Name: "BPF_PROG_TYPE_XDP", Value: 6}, {Name: "BPF_PSEUDO_MAP_FD", Value: 1}, + {Name: "BPF_PSEUDO_MAP_VALUE", Value: 2}, {Name: "BPF_RAW_TRACEPOINT_OPEN", Value: 17}, {Name: "BPF_REG_0"}, {Name: "BPF_REG_1", Value: 1}, @@ -52446,4 +52459,4 @@ var consts_arm64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm64 = "ace614dc3bdc1ab3e0dfe5514e2718cdd818e071" +const revision_arm64 = "54ef3e7068bd04e03a35bba1769b88d9f7a4c0c1" diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go index e2280d03c..61a6abee0 100644 --- a/sys/linux/gen/ppc64le.go +++ b/sys/linux/gen/ppc64le.go @@ -1104,6 +1104,7 @@ var structDescs_ppc64le = []*KeyedStruct{ &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, &StructType{Key: StructKey{Name: "bpf_insn_map"}, FldName: "map"}, + &StructType{Key: StructKey{Name: "bpf_insn_map_value"}, FldName: "map_val"}, }}}, {Key: StructKey{Name: "bpf_insn_alu"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_alu", TypeSize: 8}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{4, 7}}, @@ -1173,6 +1174,17 @@ var structDescs_ppc64le = []*KeyedStruct{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_insn_map_value"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map_value", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Val: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "imm", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs2", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off2", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm2", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions", IsVarlen: true}, Fields: []Type{ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, @@ -45101,6 +45113,7 @@ var consts_ppc64le = []ConstValue{ {Name: "BPF_PROG_TYPE_TRACEPOINT", Value: 5}, {Name: "BPF_PROG_TYPE_XDP", Value: 6}, {Name: "BPF_PSEUDO_MAP_FD", Value: 1}, + {Name: "BPF_PSEUDO_MAP_VALUE", Value: 2}, {Name: "BPF_RAW_TRACEPOINT_OPEN", Value: 17}, {Name: "BPF_REG_0"}, {Name: "BPF_REG_1", Value: 1}, @@ -52411,4 +52424,4 @@ var consts_ppc64le = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_ppc64le = "a3c972567317d3e84a2e833c05a73c8218815ee9" +const revision_ppc64le = "2e9bda0f72a72f64202eedacac148f06bb443e11" |
