aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorPaul Chaignon <paul.chaignon@orange.com>2019-09-17 11:41:26 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-09-17 14:41:41 +0200
commitc9364a464803dee7c57da611a17d01b57b53ff7d (patch)
tree443176872012ac3f63d8709ca007a64fb9f037bc /sys/linux
parent13dcda9b39492dcd91150df7d867bbe2a44cc5e6 (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.txt13
-rw-r--r--sys/linux/bpf_amd64.const1
-rw-r--r--sys/linux/bpf_arm64.const1
-rw-r--r--sys/linux/bpf_ppc64le.const1
-rw-r--r--sys/linux/gen/386.go14
-rw-r--r--sys/linux/gen/amd64.go15
-rw-r--r--sys/linux/gen/arm.go14
-rw-r--r--sys/linux/gen/arm64.go15
-rw-r--r--sys/linux/gen/ppc64le.go15
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"