diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-12-29 17:24:21 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-12-29 17:24:21 +0100 |
| commit | c25d74ee514fe00f228a0cc7c158cf2906329ea8 (patch) | |
| tree | 033d67f675e37552a06ad0b3a63a42cdf3e8a173 /sys/linux | |
| parent | b888d0cf5c4db046eef7d5c259b41d7f0719ecfc (diff) | |
sys/linux: improve bpf descriptions
Diffstat (limited to 'sys/linux')
| -rw-r--r-- | sys/linux/386.go | 160 | ||||
| -rw-r--r-- | sys/linux/amd64.go | 160 | ||||
| -rw-r--r-- | sys/linux/arm.go | 160 | ||||
| -rw-r--r-- | sys/linux/arm64.go | 160 | ||||
| -rw-r--r-- | sys/linux/bpf.txt | 175 | ||||
| -rw-r--r-- | sys/linux/bpf_386.const | 59 | ||||
| -rw-r--r-- | sys/linux/bpf_amd64.const | 59 | ||||
| -rw-r--r-- | sys/linux/bpf_arm.const | 59 | ||||
| -rw-r--r-- | sys/linux/bpf_arm64.const | 59 | ||||
| -rw-r--r-- | sys/linux/bpf_ppc64le.const | 59 | ||||
| -rw-r--r-- | sys/linux/ppc64le.go | 160 |
11 files changed, 1173 insertions, 97 deletions
diff --git a/sys/linux/386.go b/sys/linux/386.go index 69c0784b5..55792fe23 100644 --- a/sys/linux/386.go +++ b/sys/linux/386.go @@ -366,12 +366,11 @@ var structDescs_386 = []*KeyedStruct{ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "cnum", TypeSize: 4}}, Buf: "ci"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ci", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}, Type: &StructType{Key: StructKey{Name: "bnep_conninfo", Dir: 1}}}}, }}}, - {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 20}, Fields: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target", TypeSize: 4}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, + {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 16}, Fields: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target_fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "attach_bpf_fd", TypeSize: 4}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog2", TypeSize: 4}}, }}}, {Key: StructKey{Name: "bpf_detach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_detach_arg", TypeSize: 20}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "target", TypeSize: 4}}}, @@ -380,6 +379,11 @@ var structDescs_386 = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_framed_program"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_framed_program"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "body"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, + &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, + }}}, {Key: StructKey{Name: "bpf_get_map_info_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_get_map_info_arg", TypeSize: 16}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "prog", TypeSize: 4}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, @@ -390,21 +394,86 @@ var structDescs_386 = []*KeyedStruct{ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "info", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "bpf_prog_info", Dir: 1}}}, }}}, - {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 8}, Fields: []Type{ + {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 16}, Fields: []Type{ &StructType{Key: StructKey{Name: "bpf_insn_generic"}, FldName: "generic"}, + &StructType{Key: StructKey{Name: "bpf_insn_ldst"}, FldName: "ldst"}, + &StructType{Key: StructKey{Name: "bpf_insn_alu"}, FldName: "alu"}, + &StructType{Key: StructKey{Name: "bpf_insn_jmp"}, FldName: "jmp"}, + &StructType{Key: StructKey{Name: "bpf_insn_call"}, FldName: "call"}, + &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"}, }}}, + {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}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_call"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_call", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 58}, + }}}, + {Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_insn_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_generic", TypeSize: 8}, Fields: []Type{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm", TypeSize: 4}}}, }}}, - {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", TypeSize: 8}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, + {Key: StructKey{Name: "bpf_insn_init_r0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_init_r0", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", 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_insn_jmp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_jmp", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Val: 5}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_jmp_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_ldst"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_ldst", TypeSize: 8}, Fields: []Type{ + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_size", FldName: "code_size", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 2, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_mode", FldName: "code_mode", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 3}, Vals: []uint64{0, 1, 2, 3, 6}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", 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}}, + &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}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, + }}}, + {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, }}}, {Key: StructKey{Name: "bpf_map_create_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_map_create_arg", TypeSize: 44}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_map_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 7, 8, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16}}, @@ -469,16 +538,16 @@ var structDescs_386 = []*KeyedStruct{ }}}, {Key: StructKey{Name: "bpf_prog"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog", TypeSize: 72}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}}, - &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "ninsn", TypeSize: 4}}, Buf: "insns"}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "ninsn", TypeSize: 4}}, ByteSize: 8, Buf: "insns"}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "bpf_instructions"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2, SubKind: "bpf_licenses", Values: []string{"GPL\x00", "syzkaller\x00"}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "loglev", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "logsize", TypeSize: 4}}, Buf: "log"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "log", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "kver", TypeSize: 4}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_kern_version", FldName: "kern_version", TypeSize: 4}}, Vals: []uint64{265984, 266240, 266496}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_load_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1}}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "prog_name", TypeSize: 16}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "prog_ifindex", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog_ifindex", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, }}}, {Key: StructKey{Name: "bpf_prog_info", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog_info", TypeSize: 80, ArgDir: 1}, Fields: []Type{ @@ -506,7 +575,7 @@ var structDescs_386 = []*KeyedStruct{ }, AlignAttr: 8}}, {Key: StructKey{Name: "bpf_test_prog_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_test_prog_arg", TypeSize: 40}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "retval", TypeSize: 4}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "retval", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "insize", TypeSize: 4}}, Buf: "indata"}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "outsize", TypeSize: 4}}, Buf: "outdata"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "indata", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}}, @@ -14078,13 +14147,25 @@ var consts_386 = []ConstValue{ {Name: "BNEPGETCONNINFO", Value: 2147762899}, {Name: "BNEPGETCONNLIST", Value: 2147762898}, {Name: "BNEPGETSUPPFEAT", Value: 2147762900}, + {Name: "BPF_ABS0", Value: 1}, + {Name: "BPF_ADD0"}, + {Name: "BPF_ALU", Value: 4}, + {Name: "BPF_ALU64", Value: 7}, + {Name: "BPF_AND0", Value: 5}, {Name: "BPF_ANY"}, + {Name: "BPF_ARSH0", Value: 12}, + {Name: "BPF_B0", Value: 2}, + {Name: "BPF_CALL0", Value: 8}, {Name: "BPF_CGROUP_DEVICE", Value: 6}, {Name: "BPF_CGROUP_INET_EGRESS", Value: 1}, {Name: "BPF_CGROUP_INET_INGRESS"}, {Name: "BPF_CGROUP_INET_SOCK_CREATE", Value: 2}, {Name: "BPF_CGROUP_SOCK_OPS", Value: 3}, + {Name: "BPF_DIV0", Value: 3}, + {Name: "BPF_DW0", Value: 3}, + {Name: "BPF_END0", Value: 13}, {Name: "BPF_EXIST", Value: 2}, + {Name: "BPF_EXIT0", Value: 9}, {Name: "BPF_F_ALLOW_MULTI", Value: 2}, {Name: "BPF_F_ALLOW_OVERRIDE", Value: 1}, {Name: "BPF_F_NO_COMMON_LRU", Value: 2}, @@ -14094,6 +14175,25 @@ var consts_386 = []ConstValue{ {Name: "BPF_F_RDONLY", Value: 8}, {Name: "BPF_F_STRICT_ALIGNMENT", Value: 1}, {Name: "BPF_F_WRONLY", Value: 16}, + {Name: "BPF_H0", Value: 1}, + {Name: "BPF_IMM0"}, + {Name: "BPF_IND0", Value: 2}, + {Name: "BPF_JA0"}, + {Name: "BPF_JEQ0", Value: 1}, + {Name: "BPF_JGE0", Value: 3}, + {Name: "BPF_JGT0", Value: 2}, + {Name: "BPF_JLE0", Value: 11}, + {Name: "BPF_JLT0", Value: 10}, + {Name: "BPF_JMP", Value: 5}, + {Name: "BPF_JNE0", Value: 5}, + {Name: "BPF_JSET0", Value: 4}, + {Name: "BPF_JSGE0", Value: 7}, + {Name: "BPF_JSGT0", Value: 6}, + {Name: "BPF_JSLE0", Value: 13}, + {Name: "BPF_JSLT0", Value: 12}, + {Name: "BPF_LD"}, + {Name: "BPF_LDX", Value: 1}, + {Name: "BPF_LSH0", Value: 6}, {Name: "BPF_MAP_CREATE"}, {Name: "BPF_MAP_DELETE_ELEM", Value: 3}, {Name: "BPF_MAP_GET_FD_BY_ID", Value: 14}, @@ -14117,11 +14217,17 @@ var consts_386 = []ConstValue{ {Name: "BPF_MAP_TYPE_SOCKMAP", Value: 15}, {Name: "BPF_MAP_TYPE_STACK_TRACE", Value: 7}, {Name: "BPF_MAP_UPDATE_ELEM", Value: 2}, + {Name: "BPF_MEM0", Value: 3}, + {Name: "BPF_MOD0", Value: 9}, + {Name: "BPF_MOV0", Value: 11}, + {Name: "BPF_MUL0", Value: 2}, + {Name: "BPF_NEG0", Value: 8}, {Name: "BPF_NOEXIST", Value: 1}, {Name: "BPF_OBJ_GET", Value: 7}, {Name: "BPF_OBJ_GET_INFO_BY_FD", Value: 15}, {Name: "BPF_OBJ_NAME_LEN", Value: 16}, {Name: "BPF_OBJ_PIN", Value: 6}, + {Name: "BPF_OR0", Value: 4}, {Name: "BPF_PROG_ATTACH", Value: 8}, {Name: "BPF_PROG_DETACH", Value: 9}, {Name: "BPF_PROG_GET_FD_BY_ID", Value: 13}, @@ -14145,8 +14251,26 @@ var consts_386 = []ConstValue{ {Name: "BPF_PROG_TYPE_TRACEPOINT", Value: 5}, {Name: "BPF_PROG_TYPE_XDP", Value: 6}, {Name: "BPF_PSEUDO_MAP_FD", Value: 1}, + {Name: "BPF_REG_0"}, + {Name: "BPF_REG_1", Value: 1}, + {Name: "BPF_REG_10", Value: 10}, + {Name: "BPF_REG_2", Value: 2}, + {Name: "BPF_REG_3", Value: 3}, + {Name: "BPF_REG_4", Value: 4}, + {Name: "BPF_REG_5", Value: 5}, + {Name: "BPF_REG_6", Value: 6}, + {Name: "BPF_REG_7", Value: 7}, + {Name: "BPF_REG_8", Value: 8}, + {Name: "BPF_REG_9", Value: 9}, + {Name: "BPF_RSH0", Value: 7}, {Name: "BPF_SK_SKB_STREAM_PARSER", Value: 4}, {Name: "BPF_SK_SKB_STREAM_VERDICT", Value: 5}, + {Name: "BPF_ST", Value: 2}, + {Name: "BPF_STX", Value: 3}, + {Name: "BPF_SUB0", Value: 1}, + {Name: "BPF_W0"}, + {Name: "BPF_XADD0", Value: 6}, + {Name: "BPF_XOR0", Value: 10}, {Name: "BRCTL_ADD_BRIDGE", Value: 2}, {Name: "BRCTL_DEL_BRIDGE", Value: 3}, {Name: "BRCTL_GET_BRIDGES", Value: 1}, @@ -16746,6 +16870,7 @@ var consts_386 = []ConstValue{ {Name: "_DRM_VBLANK_SECONDARY", Value: 536870912}, {Name: "_DRM_VBLANK_SIGNAL", Value: 1073741824}, {Name: "_DRM_WRITE_COMBINING", Value: 16}, + {Name: "__BPF_FUNC_MAX_ID", Value: 58}, {Name: "__NR_accept4", Value: 364}, {Name: "__NR_acct", Value: 51}, {Name: "__NR_add_key", Value: 286}, @@ -17033,6 +17158,9 @@ var consts_386 = []ConstValue{ {Name: "__WALL", Value: 1073741824}, {Name: "__WCLONE", Value: 2147483648}, {Name: "__WNOTHREAD", Value: 536870912}, + {Name: "bpf_call_code", Value: 133}, + {Name: "bpf_exit_code", Value: 149}, + {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_386 = "48f2821861160b3e84539ceaee5f047a51eec644" +const revision_386 = "3d3bad2b255454a8764b6f9d46f8b50bf481141f" diff --git a/sys/linux/amd64.go b/sys/linux/amd64.go index c5a119a41..62ab92515 100644 --- a/sys/linux/amd64.go +++ b/sys/linux/amd64.go @@ -375,12 +375,11 @@ var structDescs_amd64 = []*KeyedStruct{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ci", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}, Type: &StructType{Key: StructKey{Name: "bnep_conninfo", Dir: 1}}}}, }}}, - {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 20}, Fields: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target", TypeSize: 4}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, + {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 16}, Fields: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target_fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "attach_bpf_fd", TypeSize: 4}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog2", TypeSize: 4}}, }}}, {Key: StructKey{Name: "bpf_detach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_detach_arg", TypeSize: 20}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "target", TypeSize: 4}}}, @@ -389,6 +388,11 @@ var structDescs_amd64 = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_framed_program"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_framed_program"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "body"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, + &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, + }}}, {Key: StructKey{Name: "bpf_get_map_info_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_get_map_info_arg", TypeSize: 16}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "prog", TypeSize: 4}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, @@ -399,21 +403,86 @@ var structDescs_amd64 = []*KeyedStruct{ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "info", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "bpf_prog_info", Dir: 1}}}, }}}, - {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 8}, Fields: []Type{ + {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 16}, Fields: []Type{ &StructType{Key: StructKey{Name: "bpf_insn_generic"}, FldName: "generic"}, + &StructType{Key: StructKey{Name: "bpf_insn_ldst"}, FldName: "ldst"}, + &StructType{Key: StructKey{Name: "bpf_insn_alu"}, FldName: "alu"}, + &StructType{Key: StructKey{Name: "bpf_insn_jmp"}, FldName: "jmp"}, + &StructType{Key: StructKey{Name: "bpf_insn_call"}, FldName: "call"}, + &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"}, }}}, + {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}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_call"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_call", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 58}, + }}}, + {Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_insn_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_generic", TypeSize: 8}, Fields: []Type{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm", TypeSize: 4}}}, }}}, - {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", TypeSize: 8}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, + {Key: StructKey{Name: "bpf_insn_init_r0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_init_r0", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", 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_insn_jmp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_jmp", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Val: 5}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_jmp_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_ldst"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_ldst", TypeSize: 8}, Fields: []Type{ + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_size", FldName: "code_size", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 2, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_mode", FldName: "code_mode", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 3}, Vals: []uint64{0, 1, 2, 3, 6}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", 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}}, + &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}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, + }}}, + {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, }}}, {Key: StructKey{Name: "bpf_map_create_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_map_create_arg", TypeSize: 44}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_map_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 7, 8, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16}}, @@ -478,16 +547,16 @@ var structDescs_amd64 = []*KeyedStruct{ }}}, {Key: StructKey{Name: "bpf_prog"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog", TypeSize: 72}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}}, - &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "ninsn", TypeSize: 4}}, Buf: "insns"}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "ninsn", TypeSize: 4}}, ByteSize: 8, Buf: "insns"}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "bpf_instructions"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2, SubKind: "bpf_licenses", Values: []string{"GPL\x00", "syzkaller\x00"}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "loglev", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "logsize", TypeSize: 4}}, Buf: "log"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "log", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "kver", TypeSize: 4}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_kern_version", FldName: "kern_version", TypeSize: 4}}, Vals: []uint64{265984, 266240, 266496}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_load_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1}}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "prog_name", TypeSize: 16}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "prog_ifindex", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog_ifindex", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, }}}, {Key: StructKey{Name: "bpf_prog_info", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog_info", TypeSize: 80, ArgDir: 1}, Fields: []Type{ @@ -515,7 +584,7 @@ var structDescs_amd64 = []*KeyedStruct{ }, AlignAttr: 8}}, {Key: StructKey{Name: "bpf_test_prog_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_test_prog_arg", TypeSize: 40}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "retval", TypeSize: 4}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "retval", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "insize", TypeSize: 4}}, Buf: "indata"}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "outsize", TypeSize: 4}}, Buf: "outdata"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "indata", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}}, @@ -14573,13 +14642,25 @@ var consts_amd64 = []ConstValue{ {Name: "BNEPGETCONNINFO", Value: 2147762899}, {Name: "BNEPGETCONNLIST", Value: 2147762898}, {Name: "BNEPGETSUPPFEAT", Value: 2147762900}, + {Name: "BPF_ABS0", Value: 1}, + {Name: "BPF_ADD0"}, + {Name: "BPF_ALU", Value: 4}, + {Name: "BPF_ALU64", Value: 7}, + {Name: "BPF_AND0", Value: 5}, {Name: "BPF_ANY"}, + {Name: "BPF_ARSH0", Value: 12}, + {Name: "BPF_B0", Value: 2}, + {Name: "BPF_CALL0", Value: 8}, {Name: "BPF_CGROUP_DEVICE", Value: 6}, {Name: "BPF_CGROUP_INET_EGRESS", Value: 1}, {Name: "BPF_CGROUP_INET_INGRESS"}, {Name: "BPF_CGROUP_INET_SOCK_CREATE", Value: 2}, {Name: "BPF_CGROUP_SOCK_OPS", Value: 3}, + {Name: "BPF_DIV0", Value: 3}, + {Name: "BPF_DW0", Value: 3}, + {Name: "BPF_END0", Value: 13}, {Name: "BPF_EXIST", Value: 2}, + {Name: "BPF_EXIT0", Value: 9}, {Name: "BPF_F_ALLOW_MULTI", Value: 2}, {Name: "BPF_F_ALLOW_OVERRIDE", Value: 1}, {Name: "BPF_F_NO_COMMON_LRU", Value: 2}, @@ -14589,6 +14670,25 @@ var consts_amd64 = []ConstValue{ {Name: "BPF_F_RDONLY", Value: 8}, {Name: "BPF_F_STRICT_ALIGNMENT", Value: 1}, {Name: "BPF_F_WRONLY", Value: 16}, + {Name: "BPF_H0", Value: 1}, + {Name: "BPF_IMM0"}, + {Name: "BPF_IND0", Value: 2}, + {Name: "BPF_JA0"}, + {Name: "BPF_JEQ0", Value: 1}, + {Name: "BPF_JGE0", Value: 3}, + {Name: "BPF_JGT0", Value: 2}, + {Name: "BPF_JLE0", Value: 11}, + {Name: "BPF_JLT0", Value: 10}, + {Name: "BPF_JMP", Value: 5}, + {Name: "BPF_JNE0", Value: 5}, + {Name: "BPF_JSET0", Value: 4}, + {Name: "BPF_JSGE0", Value: 7}, + {Name: "BPF_JSGT0", Value: 6}, + {Name: "BPF_JSLE0", Value: 13}, + {Name: "BPF_JSLT0", Value: 12}, + {Name: "BPF_LD"}, + {Name: "BPF_LDX", Value: 1}, + {Name: "BPF_LSH0", Value: 6}, {Name: "BPF_MAP_CREATE"}, {Name: "BPF_MAP_DELETE_ELEM", Value: 3}, {Name: "BPF_MAP_GET_FD_BY_ID", Value: 14}, @@ -14612,11 +14712,17 @@ var consts_amd64 = []ConstValue{ {Name: "BPF_MAP_TYPE_SOCKMAP", Value: 15}, {Name: "BPF_MAP_TYPE_STACK_TRACE", Value: 7}, {Name: "BPF_MAP_UPDATE_ELEM", Value: 2}, + {Name: "BPF_MEM0", Value: 3}, + {Name: "BPF_MOD0", Value: 9}, + {Name: "BPF_MOV0", Value: 11}, + {Name: "BPF_MUL0", Value: 2}, + {Name: "BPF_NEG0", Value: 8}, {Name: "BPF_NOEXIST", Value: 1}, {Name: "BPF_OBJ_GET", Value: 7}, {Name: "BPF_OBJ_GET_INFO_BY_FD", Value: 15}, {Name: "BPF_OBJ_NAME_LEN", Value: 16}, {Name: "BPF_OBJ_PIN", Value: 6}, + {Name: "BPF_OR0", Value: 4}, {Name: "BPF_PROG_ATTACH", Value: 8}, {Name: "BPF_PROG_DETACH", Value: 9}, {Name: "BPF_PROG_GET_FD_BY_ID", Value: 13}, @@ -14640,8 +14746,26 @@ 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_REG_0"}, + {Name: "BPF_REG_1", Value: 1}, + {Name: "BPF_REG_10", Value: 10}, + {Name: "BPF_REG_2", Value: 2}, + {Name: "BPF_REG_3", Value: 3}, + {Name: "BPF_REG_4", Value: 4}, + {Name: "BPF_REG_5", Value: 5}, + {Name: "BPF_REG_6", Value: 6}, + {Name: "BPF_REG_7", Value: 7}, + {Name: "BPF_REG_8", Value: 8}, + {Name: "BPF_REG_9", Value: 9}, + {Name: "BPF_RSH0", Value: 7}, {Name: "BPF_SK_SKB_STREAM_PARSER", Value: 4}, {Name: "BPF_SK_SKB_STREAM_VERDICT", Value: 5}, + {Name: "BPF_ST", Value: 2}, + {Name: "BPF_STX", Value: 3}, + {Name: "BPF_SUB0", Value: 1}, + {Name: "BPF_W0"}, + {Name: "BPF_XADD0", Value: 6}, + {Name: "BPF_XOR0", Value: 10}, {Name: "BRCTL_ADD_BRIDGE", Value: 2}, {Name: "BRCTL_DEL_BRIDGE", Value: 3}, {Name: "BRCTL_GET_BRIDGES", Value: 1}, @@ -17262,6 +17386,7 @@ var consts_amd64 = []ConstValue{ {Name: "_DRM_VBLANK_SECONDARY", Value: 536870912}, {Name: "_DRM_VBLANK_SIGNAL", Value: 1073741824}, {Name: "_DRM_WRITE_COMBINING", Value: 16}, + {Name: "__BPF_FUNC_MAX_ID", Value: 58}, {Name: "__NR_accept", Value: 43}, {Name: "__NR_accept4", Value: 288}, {Name: "__NR_acct", Value: 163}, @@ -17560,6 +17685,9 @@ var consts_amd64 = []ConstValue{ {Name: "__WALL", Value: 1073741824}, {Name: "__WCLONE", Value: 2147483648}, {Name: "__WNOTHREAD", Value: 536870912}, + {Name: "bpf_call_code", Value: 133}, + {Name: "bpf_exit_code", Value: 149}, + {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_amd64 = "ebc3a29c7a5176330e23c3fd866a55abb9402f21" +const revision_amd64 = "4466758fabaf0b60e33956aa3f05f1cb8385d132" diff --git a/sys/linux/arm.go b/sys/linux/arm.go index f930d3bb9..17170d5c5 100644 --- a/sys/linux/arm.go +++ b/sys/linux/arm.go @@ -371,12 +371,11 @@ var structDescs_arm = []*KeyedStruct{ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "cnum", TypeSize: 4}}, Buf: "ci"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ci", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}, Type: &StructType{Key: StructKey{Name: "bnep_conninfo", Dir: 1}}}}, }}}, - {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 20}, Fields: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target", TypeSize: 4}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, + {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 16}, Fields: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target_fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "attach_bpf_fd", TypeSize: 4}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog2", TypeSize: 4}}, }}}, {Key: StructKey{Name: "bpf_detach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_detach_arg", TypeSize: 20}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "target", TypeSize: 4}}}, @@ -385,6 +384,11 @@ var structDescs_arm = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_framed_program"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_framed_program"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "body"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, + &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, + }}}, {Key: StructKey{Name: "bpf_get_map_info_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_get_map_info_arg", TypeSize: 16}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "prog", TypeSize: 4}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, @@ -395,21 +399,86 @@ var structDescs_arm = []*KeyedStruct{ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "info", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "bpf_prog_info", Dir: 1}}}, }}}, - {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 8}, Fields: []Type{ + {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 16}, Fields: []Type{ &StructType{Key: StructKey{Name: "bpf_insn_generic"}, FldName: "generic"}, + &StructType{Key: StructKey{Name: "bpf_insn_ldst"}, FldName: "ldst"}, + &StructType{Key: StructKey{Name: "bpf_insn_alu"}, FldName: "alu"}, + &StructType{Key: StructKey{Name: "bpf_insn_jmp"}, FldName: "jmp"}, + &StructType{Key: StructKey{Name: "bpf_insn_call"}, FldName: "call"}, + &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"}, }}}, + {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}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_call"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_call", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 58}, + }}}, + {Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_insn_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_generic", TypeSize: 8}, Fields: []Type{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm", TypeSize: 4}}}, }}}, - {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", TypeSize: 8}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, + {Key: StructKey{Name: "bpf_insn_init_r0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_init_r0", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", 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_insn_jmp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_jmp", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Val: 5}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_jmp_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_ldst"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_ldst", TypeSize: 8}, Fields: []Type{ + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_size", FldName: "code_size", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 2, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_mode", FldName: "code_mode", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 3}, Vals: []uint64{0, 1, 2, 3, 6}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", 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}}, + &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}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, + }}}, + {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, }}}, {Key: StructKey{Name: "bpf_map_create_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_map_create_arg", TypeSize: 44}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_map_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 7, 8, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16}}, @@ -474,16 +543,16 @@ var structDescs_arm = []*KeyedStruct{ }}}, {Key: StructKey{Name: "bpf_prog"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog", TypeSize: 72}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}}, - &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "ninsn", TypeSize: 4}}, Buf: "insns"}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "ninsn", TypeSize: 4}}, ByteSize: 8, Buf: "insns"}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "bpf_instructions"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2, SubKind: "bpf_licenses", Values: []string{"GPL\x00", "syzkaller\x00"}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "loglev", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "logsize", TypeSize: 4}}, Buf: "log"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "log", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "kver", TypeSize: 4}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_kern_version", FldName: "kern_version", TypeSize: 4}}, Vals: []uint64{265984, 266240, 266496}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_load_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1}}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "prog_name", TypeSize: 16}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "prog_ifindex", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog_ifindex", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, }}}, {Key: StructKey{Name: "bpf_prog_info", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog_info", TypeSize: 80, ArgDir: 1}, Fields: []Type{ @@ -511,7 +580,7 @@ var structDescs_arm = []*KeyedStruct{ }, AlignAttr: 8}}, {Key: StructKey{Name: "bpf_test_prog_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_test_prog_arg", TypeSize: 40}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "retval", TypeSize: 4}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "retval", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "insize", TypeSize: 4}}, Buf: "indata"}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "outsize", TypeSize: 4}}, Buf: "outdata"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "indata", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}}, @@ -13995,13 +14064,25 @@ var consts_arm = []ConstValue{ {Name: "BNEPGETCONNINFO", Value: 2147762899}, {Name: "BNEPGETCONNLIST", Value: 2147762898}, {Name: "BNEPGETSUPPFEAT", Value: 2147762900}, + {Name: "BPF_ABS0", Value: 1}, + {Name: "BPF_ADD0"}, + {Name: "BPF_ALU", Value: 4}, + {Name: "BPF_ALU64", Value: 7}, + {Name: "BPF_AND0", Value: 5}, {Name: "BPF_ANY"}, + {Name: "BPF_ARSH0", Value: 12}, + {Name: "BPF_B0", Value: 2}, + {Name: "BPF_CALL0", Value: 8}, {Name: "BPF_CGROUP_DEVICE", Value: 6}, {Name: "BPF_CGROUP_INET_EGRESS", Value: 1}, {Name: "BPF_CGROUP_INET_INGRESS"}, {Name: "BPF_CGROUP_INET_SOCK_CREATE", Value: 2}, {Name: "BPF_CGROUP_SOCK_OPS", Value: 3}, + {Name: "BPF_DIV0", Value: 3}, + {Name: "BPF_DW0", Value: 3}, + {Name: "BPF_END0", Value: 13}, {Name: "BPF_EXIST", Value: 2}, + {Name: "BPF_EXIT0", Value: 9}, {Name: "BPF_F_ALLOW_MULTI", Value: 2}, {Name: "BPF_F_ALLOW_OVERRIDE", Value: 1}, {Name: "BPF_F_NO_COMMON_LRU", Value: 2}, @@ -14011,6 +14092,25 @@ var consts_arm = []ConstValue{ {Name: "BPF_F_RDONLY", Value: 8}, {Name: "BPF_F_STRICT_ALIGNMENT", Value: 1}, {Name: "BPF_F_WRONLY", Value: 16}, + {Name: "BPF_H0", Value: 1}, + {Name: "BPF_IMM0"}, + {Name: "BPF_IND0", Value: 2}, + {Name: "BPF_JA0"}, + {Name: "BPF_JEQ0", Value: 1}, + {Name: "BPF_JGE0", Value: 3}, + {Name: "BPF_JGT0", Value: 2}, + {Name: "BPF_JLE0", Value: 11}, + {Name: "BPF_JLT0", Value: 10}, + {Name: "BPF_JMP", Value: 5}, + {Name: "BPF_JNE0", Value: 5}, + {Name: "BPF_JSET0", Value: 4}, + {Name: "BPF_JSGE0", Value: 7}, + {Name: "BPF_JSGT0", Value: 6}, + {Name: "BPF_JSLE0", Value: 13}, + {Name: "BPF_JSLT0", Value: 12}, + {Name: "BPF_LD"}, + {Name: "BPF_LDX", Value: 1}, + {Name: "BPF_LSH0", Value: 6}, {Name: "BPF_MAP_CREATE"}, {Name: "BPF_MAP_DELETE_ELEM", Value: 3}, {Name: "BPF_MAP_GET_FD_BY_ID", Value: 14}, @@ -14034,11 +14134,17 @@ var consts_arm = []ConstValue{ {Name: "BPF_MAP_TYPE_SOCKMAP", Value: 15}, {Name: "BPF_MAP_TYPE_STACK_TRACE", Value: 7}, {Name: "BPF_MAP_UPDATE_ELEM", Value: 2}, + {Name: "BPF_MEM0", Value: 3}, + {Name: "BPF_MOD0", Value: 9}, + {Name: "BPF_MOV0", Value: 11}, + {Name: "BPF_MUL0", Value: 2}, + {Name: "BPF_NEG0", Value: 8}, {Name: "BPF_NOEXIST", Value: 1}, {Name: "BPF_OBJ_GET", Value: 7}, {Name: "BPF_OBJ_GET_INFO_BY_FD", Value: 15}, {Name: "BPF_OBJ_NAME_LEN", Value: 16}, {Name: "BPF_OBJ_PIN", Value: 6}, + {Name: "BPF_OR0", Value: 4}, {Name: "BPF_PROG_ATTACH", Value: 8}, {Name: "BPF_PROG_DETACH", Value: 9}, {Name: "BPF_PROG_GET_FD_BY_ID", Value: 13}, @@ -14062,8 +14168,26 @@ var consts_arm = []ConstValue{ {Name: "BPF_PROG_TYPE_TRACEPOINT", Value: 5}, {Name: "BPF_PROG_TYPE_XDP", Value: 6}, {Name: "BPF_PSEUDO_MAP_FD", Value: 1}, + {Name: "BPF_REG_0"}, + {Name: "BPF_REG_1", Value: 1}, + {Name: "BPF_REG_10", Value: 10}, + {Name: "BPF_REG_2", Value: 2}, + {Name: "BPF_REG_3", Value: 3}, + {Name: "BPF_REG_4", Value: 4}, + {Name: "BPF_REG_5", Value: 5}, + {Name: "BPF_REG_6", Value: 6}, + {Name: "BPF_REG_7", Value: 7}, + {Name: "BPF_REG_8", Value: 8}, + {Name: "BPF_REG_9", Value: 9}, + {Name: "BPF_RSH0", Value: 7}, {Name: "BPF_SK_SKB_STREAM_PARSER", Value: 4}, {Name: "BPF_SK_SKB_STREAM_VERDICT", Value: 5}, + {Name: "BPF_ST", Value: 2}, + {Name: "BPF_STX", Value: 3}, + {Name: "BPF_SUB0", Value: 1}, + {Name: "BPF_W0"}, + {Name: "BPF_XADD0", Value: 6}, + {Name: "BPF_XOR0", Value: 10}, {Name: "BRCTL_ADD_BRIDGE", Value: 2}, {Name: "BRCTL_DEL_BRIDGE", Value: 3}, {Name: "BRCTL_GET_BRIDGES", Value: 1}, @@ -16615,6 +16739,7 @@ var consts_arm = []ConstValue{ {Name: "_DRM_VBLANK_SECONDARY", Value: 536870912}, {Name: "_DRM_VBLANK_SIGNAL", Value: 1073741824}, {Name: "_DRM_WRITE_COMBINING", Value: 16}, + {Name: "__BPF_FUNC_MAX_ID", Value: 58}, {Name: "__NR_accept", Value: 285}, {Name: "__NR_accept4", Value: 366}, {Name: "__NR_acct", Value: 51}, @@ -16901,6 +17026,9 @@ var consts_arm = []ConstValue{ {Name: "__WALL", Value: 1073741824}, {Name: "__WCLONE", Value: 2147483648}, {Name: "__WNOTHREAD", Value: 536870912}, + {Name: "bpf_call_code", Value: 133}, + {Name: "bpf_exit_code", Value: 149}, + {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm = "8febfc81b14bfa9b307cbda7ad4c6479a20cbb6b" +const revision_arm = "53bafa795203ec45b62cf141542793ae901f5f98" diff --git a/sys/linux/arm64.go b/sys/linux/arm64.go index df91c8167..d9db6a453 100644 --- a/sys/linux/arm64.go +++ b/sys/linux/arm64.go @@ -375,12 +375,11 @@ var structDescs_arm64 = []*KeyedStruct{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ci", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}, Type: &StructType{Key: StructKey{Name: "bnep_conninfo", Dir: 1}}}}, }}}, - {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 20}, Fields: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target", TypeSize: 4}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, + {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 16}, Fields: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target_fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "attach_bpf_fd", TypeSize: 4}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog2", TypeSize: 4}}, }}}, {Key: StructKey{Name: "bpf_detach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_detach_arg", TypeSize: 20}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "target", TypeSize: 4}}}, @@ -389,6 +388,11 @@ var structDescs_arm64 = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_framed_program"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_framed_program"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "body"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, + &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, + }}}, {Key: StructKey{Name: "bpf_get_map_info_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_get_map_info_arg", TypeSize: 16}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "prog", TypeSize: 4}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, @@ -399,21 +403,86 @@ var structDescs_arm64 = []*KeyedStruct{ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "info", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "bpf_prog_info", Dir: 1}}}, }}}, - {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 8}, Fields: []Type{ + {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 16}, Fields: []Type{ &StructType{Key: StructKey{Name: "bpf_insn_generic"}, FldName: "generic"}, + &StructType{Key: StructKey{Name: "bpf_insn_ldst"}, FldName: "ldst"}, + &StructType{Key: StructKey{Name: "bpf_insn_alu"}, FldName: "alu"}, + &StructType{Key: StructKey{Name: "bpf_insn_jmp"}, FldName: "jmp"}, + &StructType{Key: StructKey{Name: "bpf_insn_call"}, FldName: "call"}, + &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"}, }}}, + {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}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_call"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_call", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 58}, + }}}, + {Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_insn_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_generic", TypeSize: 8}, Fields: []Type{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm", TypeSize: 4}}}, }}}, - {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", TypeSize: 8}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, + {Key: StructKey{Name: "bpf_insn_init_r0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_init_r0", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", 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_insn_jmp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_jmp", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Val: 5}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_jmp_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_ldst"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_ldst", TypeSize: 8}, Fields: []Type{ + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_size", FldName: "code_size", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 2, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_mode", FldName: "code_mode", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 3}, Vals: []uint64{0, 1, 2, 3, 6}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", 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}}, + &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}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, + }}}, + {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, }}}, {Key: StructKey{Name: "bpf_map_create_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_map_create_arg", TypeSize: 44}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_map_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 7, 8, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16}}, @@ -478,16 +547,16 @@ var structDescs_arm64 = []*KeyedStruct{ }}}, {Key: StructKey{Name: "bpf_prog"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog", TypeSize: 72}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}}, - &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "ninsn", TypeSize: 4}}, Buf: "insns"}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "ninsn", TypeSize: 4}}, ByteSize: 8, Buf: "insns"}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "bpf_instructions"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2, SubKind: "bpf_licenses", Values: []string{"GPL\x00", "syzkaller\x00"}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "loglev", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "logsize", TypeSize: 4}}, Buf: "log"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "log", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "kver", TypeSize: 4}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_kern_version", FldName: "kern_version", TypeSize: 4}}, Vals: []uint64{265984, 266240, 266496}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_load_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1}}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "prog_name", TypeSize: 16}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "prog_ifindex", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog_ifindex", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, }}}, {Key: StructKey{Name: "bpf_prog_info", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog_info", TypeSize: 80, ArgDir: 1}, Fields: []Type{ @@ -515,7 +584,7 @@ var structDescs_arm64 = []*KeyedStruct{ }, AlignAttr: 8}}, {Key: StructKey{Name: "bpf_test_prog_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_test_prog_arg", TypeSize: 40}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "retval", TypeSize: 4}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "retval", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "insize", TypeSize: 4}}, Buf: "indata"}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "outsize", TypeSize: 4}}, Buf: "outdata"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "indata", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}}, @@ -14039,13 +14108,25 @@ var consts_arm64 = []ConstValue{ {Name: "BNEPGETCONNINFO", Value: 2147762899}, {Name: "BNEPGETCONNLIST", Value: 2147762898}, {Name: "BNEPGETSUPPFEAT", Value: 2147762900}, + {Name: "BPF_ABS0", Value: 1}, + {Name: "BPF_ADD0"}, + {Name: "BPF_ALU", Value: 4}, + {Name: "BPF_ALU64", Value: 7}, + {Name: "BPF_AND0", Value: 5}, {Name: "BPF_ANY"}, + {Name: "BPF_ARSH0", Value: 12}, + {Name: "BPF_B0", Value: 2}, + {Name: "BPF_CALL0", Value: 8}, {Name: "BPF_CGROUP_DEVICE", Value: 6}, {Name: "BPF_CGROUP_INET_EGRESS", Value: 1}, {Name: "BPF_CGROUP_INET_INGRESS"}, {Name: "BPF_CGROUP_INET_SOCK_CREATE", Value: 2}, {Name: "BPF_CGROUP_SOCK_OPS", Value: 3}, + {Name: "BPF_DIV0", Value: 3}, + {Name: "BPF_DW0", Value: 3}, + {Name: "BPF_END0", Value: 13}, {Name: "BPF_EXIST", Value: 2}, + {Name: "BPF_EXIT0", Value: 9}, {Name: "BPF_F_ALLOW_MULTI", Value: 2}, {Name: "BPF_F_ALLOW_OVERRIDE", Value: 1}, {Name: "BPF_F_NO_COMMON_LRU", Value: 2}, @@ -14055,6 +14136,25 @@ var consts_arm64 = []ConstValue{ {Name: "BPF_F_RDONLY", Value: 8}, {Name: "BPF_F_STRICT_ALIGNMENT", Value: 1}, {Name: "BPF_F_WRONLY", Value: 16}, + {Name: "BPF_H0", Value: 1}, + {Name: "BPF_IMM0"}, + {Name: "BPF_IND0", Value: 2}, + {Name: "BPF_JA0"}, + {Name: "BPF_JEQ0", Value: 1}, + {Name: "BPF_JGE0", Value: 3}, + {Name: "BPF_JGT0", Value: 2}, + {Name: "BPF_JLE0", Value: 11}, + {Name: "BPF_JLT0", Value: 10}, + {Name: "BPF_JMP", Value: 5}, + {Name: "BPF_JNE0", Value: 5}, + {Name: "BPF_JSET0", Value: 4}, + {Name: "BPF_JSGE0", Value: 7}, + {Name: "BPF_JSGT0", Value: 6}, + {Name: "BPF_JSLE0", Value: 13}, + {Name: "BPF_JSLT0", Value: 12}, + {Name: "BPF_LD"}, + {Name: "BPF_LDX", Value: 1}, + {Name: "BPF_LSH0", Value: 6}, {Name: "BPF_MAP_CREATE"}, {Name: "BPF_MAP_DELETE_ELEM", Value: 3}, {Name: "BPF_MAP_GET_FD_BY_ID", Value: 14}, @@ -14078,11 +14178,17 @@ var consts_arm64 = []ConstValue{ {Name: "BPF_MAP_TYPE_SOCKMAP", Value: 15}, {Name: "BPF_MAP_TYPE_STACK_TRACE", Value: 7}, {Name: "BPF_MAP_UPDATE_ELEM", Value: 2}, + {Name: "BPF_MEM0", Value: 3}, + {Name: "BPF_MOD0", Value: 9}, + {Name: "BPF_MOV0", Value: 11}, + {Name: "BPF_MUL0", Value: 2}, + {Name: "BPF_NEG0", Value: 8}, {Name: "BPF_NOEXIST", Value: 1}, {Name: "BPF_OBJ_GET", Value: 7}, {Name: "BPF_OBJ_GET_INFO_BY_FD", Value: 15}, {Name: "BPF_OBJ_NAME_LEN", Value: 16}, {Name: "BPF_OBJ_PIN", Value: 6}, + {Name: "BPF_OR0", Value: 4}, {Name: "BPF_PROG_ATTACH", Value: 8}, {Name: "BPF_PROG_DETACH", Value: 9}, {Name: "BPF_PROG_GET_FD_BY_ID", Value: 13}, @@ -14106,8 +14212,26 @@ 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_REG_0"}, + {Name: "BPF_REG_1", Value: 1}, + {Name: "BPF_REG_10", Value: 10}, + {Name: "BPF_REG_2", Value: 2}, + {Name: "BPF_REG_3", Value: 3}, + {Name: "BPF_REG_4", Value: 4}, + {Name: "BPF_REG_5", Value: 5}, + {Name: "BPF_REG_6", Value: 6}, + {Name: "BPF_REG_7", Value: 7}, + {Name: "BPF_REG_8", Value: 8}, + {Name: "BPF_REG_9", Value: 9}, + {Name: "BPF_RSH0", Value: 7}, {Name: "BPF_SK_SKB_STREAM_PARSER", Value: 4}, {Name: "BPF_SK_SKB_STREAM_VERDICT", Value: 5}, + {Name: "BPF_ST", Value: 2}, + {Name: "BPF_STX", Value: 3}, + {Name: "BPF_SUB0", Value: 1}, + {Name: "BPF_W0"}, + {Name: "BPF_XADD0", Value: 6}, + {Name: "BPF_XOR0", Value: 10}, {Name: "BRCTL_ADD_BRIDGE", Value: 2}, {Name: "BRCTL_DEL_BRIDGE", Value: 3}, {Name: "BRCTL_GET_BRIDGES", Value: 1}, @@ -16685,6 +16809,7 @@ var consts_arm64 = []ConstValue{ {Name: "_DRM_VBLANK_SECONDARY", Value: 536870912}, {Name: "_DRM_VBLANK_SIGNAL", Value: 1073741824}, {Name: "_DRM_WRITE_COMBINING", Value: 16}, + {Name: "__BPF_FUNC_MAX_ID", Value: 58}, {Name: "__NR_accept", Value: 202}, {Name: "__NR_accept4", Value: 242}, {Name: "__NR_acct", Value: 89}, @@ -16942,6 +17067,9 @@ var consts_arm64 = []ConstValue{ {Name: "__WALL", Value: 1073741824}, {Name: "__WCLONE", Value: 2147483648}, {Name: "__WNOTHREAD", Value: 536870912}, + {Name: "bpf_call_code", Value: 133}, + {Name: "bpf_exit_code", Value: 149}, + {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm64 = "bda7869f2724a7f0323b7ad38c64464d097b96c4" +const revision_arm64 = "88bc0e2f6cfc4b223275d48bde865611a84ef15d" diff --git a/sys/linux/bpf.txt b/sys/linux/bpf.txt index 90e0db334..312cb2c33 100644 --- a/sys/linux/bpf.txt +++ b/sys/linux/bpf.txt @@ -76,25 +76,44 @@ bpf_map_get_next_arg { bpf_prog { type flags[bpf_prog_type, int32] - ninsn len[insns, int32] - insns ptr64[in, array[bpf_insn]] - license ptr64[in, string] + ninsn bytesize8[insns, int32] + insns ptr64[in, bpf_instructions] + license ptr64[in, string[bpf_licenses]] loglev int32 logsize len[log, int32] log ptr64[out, array[int8]] - kver int32 + kern_version flags[bpf_kern_version, int32] flags flags[bpf_prog_load_flags, int32] prog_name array[const[0, int8], BPF_OBJ_NAME_LEN] - prog_ifindex ifindex +# TODO: should be ifindex + prog_ifindex const[0, int32] } +bpf_licenses = "GPL", "syzkaller" +bpf_kern_version = 0x40f00, 0x41000, 0x41100 + +bpf_instructions [ + framed bpf_framed_program + raw array[bpf_insn] +] [varlen] + +bpf_framed_program { + initr0 bpf_insn_init_r0 + body array[bpf_insn] + exit bpf_insn_exit +} [packed] + bpf_insn [ generic bpf_insn_generic + ldst bpf_insn_ldst + alu bpf_insn_alu + jmp bpf_insn_jmp + call bpf_insn_call + exit bpf_insn_exit + initr0 bpf_insn_init_r0 map bpf_insn_map ] -#TODO: consider providing specialized structs for all opcodes (or opcode groups) -# For example, for lots of opcodes some fields must be 0, otherwise verifier will bark bpf_insn_generic { code int8 regs int8 @@ -102,14 +121,136 @@ bpf_insn_generic { imm int32 } +bpf_insn_ldst { + code_class flags[bpf_ldst_insn, int8:3] + code_size flags[bpf_ldst_size, int8:2] + code_mode flags[bpf_ldst_mode, int8:3] + dst flags[bpf_reg, int8:4] + src flags[bpf_reg, int8:4] + off flags[bpf_insn_offsets, int16] + imm flags[bpf_insn_immediates, int32] +} + +bpf_ldst_insn = BPF_LD, BPF_LDX, BPF_ST, BPF_STX +bpf_ldst_size = BPF_W0, BPF_H0, BPF_B0, BPF_DW0 +bpf_ldst_mode = BPF_IMM0, BPF_ABS0, BPF_IND0, BPF_MEM0, BPF_XADD0 + +define BPF_W0 BPF_W >> 3 +define BPF_H0 BPF_H >> 3 +define BPF_B0 BPF_B >> 3 +define BPF_DW0 BPF_DW >> 3 + +define BPF_IMM0 BPF_IMM >> 5 +define BPF_ABS0 BPF_ABS >> 5 +define BPF_IND0 BPF_IND >> 5 +define BPF_MEM0 BPF_MEM >> 5 +define BPF_XADD0 BPF_XADD >> 5 + +bpf_insn_alu { + code_class flags[bpf_alu_insn, int8:3] + code_s int8:1 + code_op flags[bpf_alu_op, int8:4] + dst flags[bpf_reg, int8:4] + src flags[bpf_reg, int8:4] + off flags[bpf_insn_offsets, int16] + imm flags[bpf_insn_immediates, int32] +} + +bpf_alu_insn = BPF_ALU, BPF_ALU64 +bpf_alu_op = BPF_ADD0, BPF_SUB0, BPF_MUL0, BPF_DIV0, BPF_OR0, BPF_AND0, BPF_LSH0, BPF_RSH0, BPF_NEG0, BPF_MOD0, BPF_XOR0, BPF_MOV0, BPF_ARSH0, BPF_END0 + +define BPF_ADD0 BPF_ADD >> 4 +define BPF_SUB0 BPF_SUB >> 4 +define BPF_MUL0 BPF_MUL >> 4 +define BPF_DIV0 BPF_DIV >> 4 +define BPF_OR0 BPF_OR >> 4 +define BPF_AND0 BPF_AND >> 4 +define BPF_LSH0 BPF_LSH >> 4 +define BPF_RSH0 BPF_RSH >> 4 +define BPF_NEG0 BPF_NEG >> 4 +define BPF_MOD0 BPF_MOD >> 4 +define BPF_XOR0 BPF_XOR >> 4 +define BPF_MOV0 BPF_MOV >> 4 +define BPF_ARSH0 BPF_ARSH >> 4 +define BPF_END0 BPF_END >> 4 + +bpf_insn_jmp { + code_class const[BPF_JMP, int8:3] + code_s int8:1 + code_op flags[bpf_jmp_op, int8:4] + dst flags[bpf_reg, int8:4] + src flags[bpf_reg, int8:4] + off flags[bpf_insn_offsets, int16] + imm flags[bpf_insn_immediates, int32] +} + +bpf_jmp_op = BPF_JA0, BPF_JEQ0, BPF_JGT0, BPF_JGE0, BPF_JSET0, BPF_JNE0, BPF_JSGT0, BPF_JSGE0, BPF_CALL0, BPF_EXIT0, BPF_JLT0, BPF_JLE0, BPF_JSLT0, BPF_JSLE0 + +define BPF_JA0 BPF_JA >> 4 +define BPF_JEQ0 BPF_JEQ >> 4 +define BPF_JGT0 BPF_JGT >> 4 +define BPF_JGE0 BPF_JGE >> 4 +define BPF_JSET0 BPF_JSET >> 4 +define BPF_JNE0 BPF_JNE >> 4 +define BPF_JSGT0 BPF_JSGT >> 4 +define BPF_JSGE0 BPF_JSGE >> 4 +define BPF_CALL0 BPF_CALL >> 4 +define BPF_EXIT0 BPF_EXIT >> 4 +define BPF_JLT0 BPF_JLT >> 4 +define BPF_JLE0 BPF_JLE >> 4 +define BPF_JSLT0 BPF_JSLT >> 4 +define BPF_JSLE0 BPF_JSLE >> 4 + +bpf_insn_call { + code const[bpf_call_code, int8] + regs const[0, int8] + off const[0, int16] + func int32[0:__BPF_FUNC_MAX_ID] +} + +define bpf_call_code BPF_JMP | BPF_CALL + +bpf_insn_exit { + code const[bpf_exit_code, int8] + regs const[0, int8] + off const[0, int16] + imm const[0, int32] +} + +define bpf_exit_code BPF_JMP | BPF_EXIT + +bpf_insn_init_r0 { + code const[bpf_insn_load_imm_dw, int8] + dst const[BPF_REG_0, int8:4] + src const[0, int8:4] + off const[0, int16] + imm int32 + code2 const[0, int8] + regs2 const[0, int8] + off2 const[0, int16] + imm2 int32 +} + bpf_insn_map { - code int8 - regs int8 - off int16 + code const[bpf_insn_load_imm_dw, int8] + dst flags[bpf_reg, int8:4] + src const[BPF_PSEUDO_MAP_FD, int8:4] + off const[0, int16] imm fd_bpf_map + code2 const[0, int8] + regs2 const[0, int8] + off2 const[0, int16] + imm2 const[0, int32] } -# Note: these filenames must be on bpf filesystem +define bpf_insn_load_imm_dw BPF_LD | BPF_DW | BPF_IMM + +# Slightly prune state space, these values frequently must be 0. +bpf_insn_offsets = 0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 0xffffffff, 0xfffffffe, 0xfffffffc, 0xfffffff8, 0xfffffff4, 0xfffffff0, 0xffffffc0 +bpf_insn_immediates = 0, 1, 4, 8, 16, 0xffffffffffffffff, 0xfffffffffffffffc, 0xfffffffffffffff0 +bpf_reg = BPF_REG_0, BPF_REG_1, BPF_REG_2, BPF_REG_3, BPF_REG_4, BPF_REG_5, BPF_REG_6, BPF_REG_7, BPF_REG_8, BPF_REG_9, BPF_REG_10 + +# TODO: these filenames must be on bpf filesystem bpf_obj_pin_map { path ptr64[in, filename] fd fd_bpf_map @@ -127,11 +268,11 @@ bpf_obj_get { } bpf_attach_arg { - target fd - prog fd_bpf_prog - type flags[bpf_attach_type, int32] - flags flags[bpf_attach_flags, int32] - prog2 fd_bpf_prog +# TODO: this must be cgroup fd (obtained by opening cgroup dir) + target_fd fd + attach_bpf_fd fd_bpf_prog + type flags[bpf_attach_type, int32] + flags flags[bpf_attach_flags, int32] } bpf_detach_arg { @@ -144,7 +285,7 @@ bpf_detach_arg { bpf_test_prog_arg { prog fd_bpf_prog - retval int32 + retval const[0, int32] insize len[indata, int32] outsize len[outdata, int32] indata ptr64[in, array[int8]] diff --git a/sys/linux/bpf_386.const b/sys/linux/bpf_386.const index 2c6525c26..aafbc74b5 100644 --- a/sys/linux/bpf_386.const +++ b/sys/linux/bpf_386.const @@ -1,11 +1,23 @@ # AUTOGENERATED FILE +BPF_ABS0 = 1 +BPF_ADD0 = 0 +BPF_ALU = 4 +BPF_ALU64 = 7 +BPF_AND0 = 5 BPF_ANY = 0 +BPF_ARSH0 = 12 +BPF_B0 = 2 +BPF_CALL0 = 8 BPF_CGROUP_DEVICE = 6 BPF_CGROUP_INET_EGRESS = 1 BPF_CGROUP_INET_INGRESS = 0 BPF_CGROUP_INET_SOCK_CREATE = 2 BPF_CGROUP_SOCK_OPS = 3 +BPF_DIV0 = 3 +BPF_DW0 = 3 +BPF_END0 = 13 BPF_EXIST = 2 +BPF_EXIT0 = 9 BPF_F_ALLOW_MULTI = 2 BPF_F_ALLOW_OVERRIDE = 1 BPF_F_NO_COMMON_LRU = 2 @@ -15,6 +27,25 @@ BPF_F_QUERY_EFFECTIVE = 1 BPF_F_RDONLY = 8 BPF_F_STRICT_ALIGNMENT = 1 BPF_F_WRONLY = 16 +BPF_H0 = 1 +BPF_IMM0 = 0 +BPF_IND0 = 2 +BPF_JA0 = 0 +BPF_JEQ0 = 1 +BPF_JGE0 = 3 +BPF_JGT0 = 2 +BPF_JLE0 = 11 +BPF_JLT0 = 10 +BPF_JMP = 5 +BPF_JNE0 = 5 +BPF_JSET0 = 4 +BPF_JSGE0 = 7 +BPF_JSGT0 = 6 +BPF_JSLE0 = 13 +BPF_JSLT0 = 12 +BPF_LD = 0 +BPF_LDX = 1 +BPF_LSH0 = 6 BPF_MAP_CREATE = 0 BPF_MAP_DELETE_ELEM = 3 BPF_MAP_GET_FD_BY_ID = 14 @@ -38,11 +69,17 @@ BPF_MAP_TYPE_PROG_ARRAY = 3 BPF_MAP_TYPE_SOCKMAP = 15 BPF_MAP_TYPE_STACK_TRACE = 7 BPF_MAP_UPDATE_ELEM = 2 +BPF_MEM0 = 3 +BPF_MOD0 = 9 +BPF_MOV0 = 11 +BPF_MUL0 = 2 +BPF_NEG0 = 8 BPF_NOEXIST = 1 BPF_OBJ_GET = 7 BPF_OBJ_GET_INFO_BY_FD = 15 BPF_OBJ_NAME_LEN = 16 BPF_OBJ_PIN = 6 +BPF_OR0 = 4 BPF_PROG_ATTACH = 8 BPF_PROG_DETACH = 9 BPF_PROG_GET_FD_BY_ID = 13 @@ -66,6 +103,28 @@ BPF_PROG_TYPE_SOCK_OPS = 13 BPF_PROG_TYPE_TRACEPOINT = 5 BPF_PROG_TYPE_XDP = 6 BPF_PSEUDO_MAP_FD = 1 +BPF_REG_0 = 0 +BPF_REG_1 = 1 +BPF_REG_10 = 10 +BPF_REG_2 = 2 +BPF_REG_3 = 3 +BPF_REG_4 = 4 +BPF_REG_5 = 5 +BPF_REG_6 = 6 +BPF_REG_7 = 7 +BPF_REG_8 = 8 +BPF_REG_9 = 9 +BPF_RSH0 = 7 BPF_SK_SKB_STREAM_PARSER = 4 BPF_SK_SKB_STREAM_VERDICT = 5 +BPF_ST = 2 +BPF_STX = 3 +BPF_SUB0 = 1 +BPF_W0 = 0 +BPF_XADD0 = 6 +BPF_XOR0 = 10 +__BPF_FUNC_MAX_ID = 58 __NR_bpf = 357 +bpf_call_code = 133 +bpf_exit_code = 149 +bpf_insn_load_imm_dw = 24 diff --git a/sys/linux/bpf_amd64.const b/sys/linux/bpf_amd64.const index 46b02227a..2e0426766 100644 --- a/sys/linux/bpf_amd64.const +++ b/sys/linux/bpf_amd64.const @@ -1,11 +1,23 @@ # AUTOGENERATED FILE +BPF_ABS0 = 1 +BPF_ADD0 = 0 +BPF_ALU = 4 +BPF_ALU64 = 7 +BPF_AND0 = 5 BPF_ANY = 0 +BPF_ARSH0 = 12 +BPF_B0 = 2 +BPF_CALL0 = 8 BPF_CGROUP_DEVICE = 6 BPF_CGROUP_INET_EGRESS = 1 BPF_CGROUP_INET_INGRESS = 0 BPF_CGROUP_INET_SOCK_CREATE = 2 BPF_CGROUP_SOCK_OPS = 3 +BPF_DIV0 = 3 +BPF_DW0 = 3 +BPF_END0 = 13 BPF_EXIST = 2 +BPF_EXIT0 = 9 BPF_F_ALLOW_MULTI = 2 BPF_F_ALLOW_OVERRIDE = 1 BPF_F_NO_COMMON_LRU = 2 @@ -15,6 +27,25 @@ BPF_F_QUERY_EFFECTIVE = 1 BPF_F_RDONLY = 8 BPF_F_STRICT_ALIGNMENT = 1 BPF_F_WRONLY = 16 +BPF_H0 = 1 +BPF_IMM0 = 0 +BPF_IND0 = 2 +BPF_JA0 = 0 +BPF_JEQ0 = 1 +BPF_JGE0 = 3 +BPF_JGT0 = 2 +BPF_JLE0 = 11 +BPF_JLT0 = 10 +BPF_JMP = 5 +BPF_JNE0 = 5 +BPF_JSET0 = 4 +BPF_JSGE0 = 7 +BPF_JSGT0 = 6 +BPF_JSLE0 = 13 +BPF_JSLT0 = 12 +BPF_LD = 0 +BPF_LDX = 1 +BPF_LSH0 = 6 BPF_MAP_CREATE = 0 BPF_MAP_DELETE_ELEM = 3 BPF_MAP_GET_FD_BY_ID = 14 @@ -38,11 +69,17 @@ BPF_MAP_TYPE_PROG_ARRAY = 3 BPF_MAP_TYPE_SOCKMAP = 15 BPF_MAP_TYPE_STACK_TRACE = 7 BPF_MAP_UPDATE_ELEM = 2 +BPF_MEM0 = 3 +BPF_MOD0 = 9 +BPF_MOV0 = 11 +BPF_MUL0 = 2 +BPF_NEG0 = 8 BPF_NOEXIST = 1 BPF_OBJ_GET = 7 BPF_OBJ_GET_INFO_BY_FD = 15 BPF_OBJ_NAME_LEN = 16 BPF_OBJ_PIN = 6 +BPF_OR0 = 4 BPF_PROG_ATTACH = 8 BPF_PROG_DETACH = 9 BPF_PROG_GET_FD_BY_ID = 13 @@ -66,6 +103,28 @@ BPF_PROG_TYPE_SOCK_OPS = 13 BPF_PROG_TYPE_TRACEPOINT = 5 BPF_PROG_TYPE_XDP = 6 BPF_PSEUDO_MAP_FD = 1 +BPF_REG_0 = 0 +BPF_REG_1 = 1 +BPF_REG_10 = 10 +BPF_REG_2 = 2 +BPF_REG_3 = 3 +BPF_REG_4 = 4 +BPF_REG_5 = 5 +BPF_REG_6 = 6 +BPF_REG_7 = 7 +BPF_REG_8 = 8 +BPF_REG_9 = 9 +BPF_RSH0 = 7 BPF_SK_SKB_STREAM_PARSER = 4 BPF_SK_SKB_STREAM_VERDICT = 5 +BPF_ST = 2 +BPF_STX = 3 +BPF_SUB0 = 1 +BPF_W0 = 0 +BPF_XADD0 = 6 +BPF_XOR0 = 10 +__BPF_FUNC_MAX_ID = 58 __NR_bpf = 321 +bpf_call_code = 133 +bpf_exit_code = 149 +bpf_insn_load_imm_dw = 24 diff --git a/sys/linux/bpf_arm.const b/sys/linux/bpf_arm.const index efdd2b993..6e57645e5 100644 --- a/sys/linux/bpf_arm.const +++ b/sys/linux/bpf_arm.const @@ -1,11 +1,23 @@ # AUTOGENERATED FILE +BPF_ABS0 = 1 +BPF_ADD0 = 0 +BPF_ALU = 4 +BPF_ALU64 = 7 +BPF_AND0 = 5 BPF_ANY = 0 +BPF_ARSH0 = 12 +BPF_B0 = 2 +BPF_CALL0 = 8 BPF_CGROUP_DEVICE = 6 BPF_CGROUP_INET_EGRESS = 1 BPF_CGROUP_INET_INGRESS = 0 BPF_CGROUP_INET_SOCK_CREATE = 2 BPF_CGROUP_SOCK_OPS = 3 +BPF_DIV0 = 3 +BPF_DW0 = 3 +BPF_END0 = 13 BPF_EXIST = 2 +BPF_EXIT0 = 9 BPF_F_ALLOW_MULTI = 2 BPF_F_ALLOW_OVERRIDE = 1 BPF_F_NO_COMMON_LRU = 2 @@ -15,6 +27,25 @@ BPF_F_QUERY_EFFECTIVE = 1 BPF_F_RDONLY = 8 BPF_F_STRICT_ALIGNMENT = 1 BPF_F_WRONLY = 16 +BPF_H0 = 1 +BPF_IMM0 = 0 +BPF_IND0 = 2 +BPF_JA0 = 0 +BPF_JEQ0 = 1 +BPF_JGE0 = 3 +BPF_JGT0 = 2 +BPF_JLE0 = 11 +BPF_JLT0 = 10 +BPF_JMP = 5 +BPF_JNE0 = 5 +BPF_JSET0 = 4 +BPF_JSGE0 = 7 +BPF_JSGT0 = 6 +BPF_JSLE0 = 13 +BPF_JSLT0 = 12 +BPF_LD = 0 +BPF_LDX = 1 +BPF_LSH0 = 6 BPF_MAP_CREATE = 0 BPF_MAP_DELETE_ELEM = 3 BPF_MAP_GET_FD_BY_ID = 14 @@ -38,11 +69,17 @@ BPF_MAP_TYPE_PROG_ARRAY = 3 BPF_MAP_TYPE_SOCKMAP = 15 BPF_MAP_TYPE_STACK_TRACE = 7 BPF_MAP_UPDATE_ELEM = 2 +BPF_MEM0 = 3 +BPF_MOD0 = 9 +BPF_MOV0 = 11 +BPF_MUL0 = 2 +BPF_NEG0 = 8 BPF_NOEXIST = 1 BPF_OBJ_GET = 7 BPF_OBJ_GET_INFO_BY_FD = 15 BPF_OBJ_NAME_LEN = 16 BPF_OBJ_PIN = 6 +BPF_OR0 = 4 BPF_PROG_ATTACH = 8 BPF_PROG_DETACH = 9 BPF_PROG_GET_FD_BY_ID = 13 @@ -66,6 +103,28 @@ BPF_PROG_TYPE_SOCK_OPS = 13 BPF_PROG_TYPE_TRACEPOINT = 5 BPF_PROG_TYPE_XDP = 6 BPF_PSEUDO_MAP_FD = 1 +BPF_REG_0 = 0 +BPF_REG_1 = 1 +BPF_REG_10 = 10 +BPF_REG_2 = 2 +BPF_REG_3 = 3 +BPF_REG_4 = 4 +BPF_REG_5 = 5 +BPF_REG_6 = 6 +BPF_REG_7 = 7 +BPF_REG_8 = 8 +BPF_REG_9 = 9 +BPF_RSH0 = 7 BPF_SK_SKB_STREAM_PARSER = 4 BPF_SK_SKB_STREAM_VERDICT = 5 +BPF_ST = 2 +BPF_STX = 3 +BPF_SUB0 = 1 +BPF_W0 = 0 +BPF_XADD0 = 6 +BPF_XOR0 = 10 +__BPF_FUNC_MAX_ID = 58 __NR_bpf = 386 +bpf_call_code = 133 +bpf_exit_code = 149 +bpf_insn_load_imm_dw = 24 diff --git a/sys/linux/bpf_arm64.const b/sys/linux/bpf_arm64.const index 570b183e3..94b712f84 100644 --- a/sys/linux/bpf_arm64.const +++ b/sys/linux/bpf_arm64.const @@ -1,11 +1,23 @@ # AUTOGENERATED FILE +BPF_ABS0 = 1 +BPF_ADD0 = 0 +BPF_ALU = 4 +BPF_ALU64 = 7 +BPF_AND0 = 5 BPF_ANY = 0 +BPF_ARSH0 = 12 +BPF_B0 = 2 +BPF_CALL0 = 8 BPF_CGROUP_DEVICE = 6 BPF_CGROUP_INET_EGRESS = 1 BPF_CGROUP_INET_INGRESS = 0 BPF_CGROUP_INET_SOCK_CREATE = 2 BPF_CGROUP_SOCK_OPS = 3 +BPF_DIV0 = 3 +BPF_DW0 = 3 +BPF_END0 = 13 BPF_EXIST = 2 +BPF_EXIT0 = 9 BPF_F_ALLOW_MULTI = 2 BPF_F_ALLOW_OVERRIDE = 1 BPF_F_NO_COMMON_LRU = 2 @@ -15,6 +27,25 @@ BPF_F_QUERY_EFFECTIVE = 1 BPF_F_RDONLY = 8 BPF_F_STRICT_ALIGNMENT = 1 BPF_F_WRONLY = 16 +BPF_H0 = 1 +BPF_IMM0 = 0 +BPF_IND0 = 2 +BPF_JA0 = 0 +BPF_JEQ0 = 1 +BPF_JGE0 = 3 +BPF_JGT0 = 2 +BPF_JLE0 = 11 +BPF_JLT0 = 10 +BPF_JMP = 5 +BPF_JNE0 = 5 +BPF_JSET0 = 4 +BPF_JSGE0 = 7 +BPF_JSGT0 = 6 +BPF_JSLE0 = 13 +BPF_JSLT0 = 12 +BPF_LD = 0 +BPF_LDX = 1 +BPF_LSH0 = 6 BPF_MAP_CREATE = 0 BPF_MAP_DELETE_ELEM = 3 BPF_MAP_GET_FD_BY_ID = 14 @@ -38,11 +69,17 @@ BPF_MAP_TYPE_PROG_ARRAY = 3 BPF_MAP_TYPE_SOCKMAP = 15 BPF_MAP_TYPE_STACK_TRACE = 7 BPF_MAP_UPDATE_ELEM = 2 +BPF_MEM0 = 3 +BPF_MOD0 = 9 +BPF_MOV0 = 11 +BPF_MUL0 = 2 +BPF_NEG0 = 8 BPF_NOEXIST = 1 BPF_OBJ_GET = 7 BPF_OBJ_GET_INFO_BY_FD = 15 BPF_OBJ_NAME_LEN = 16 BPF_OBJ_PIN = 6 +BPF_OR0 = 4 BPF_PROG_ATTACH = 8 BPF_PROG_DETACH = 9 BPF_PROG_GET_FD_BY_ID = 13 @@ -66,6 +103,28 @@ BPF_PROG_TYPE_SOCK_OPS = 13 BPF_PROG_TYPE_TRACEPOINT = 5 BPF_PROG_TYPE_XDP = 6 BPF_PSEUDO_MAP_FD = 1 +BPF_REG_0 = 0 +BPF_REG_1 = 1 +BPF_REG_10 = 10 +BPF_REG_2 = 2 +BPF_REG_3 = 3 +BPF_REG_4 = 4 +BPF_REG_5 = 5 +BPF_REG_6 = 6 +BPF_REG_7 = 7 +BPF_REG_8 = 8 +BPF_REG_9 = 9 +BPF_RSH0 = 7 BPF_SK_SKB_STREAM_PARSER = 4 BPF_SK_SKB_STREAM_VERDICT = 5 +BPF_ST = 2 +BPF_STX = 3 +BPF_SUB0 = 1 +BPF_W0 = 0 +BPF_XADD0 = 6 +BPF_XOR0 = 10 +__BPF_FUNC_MAX_ID = 58 __NR_bpf = 280 +bpf_call_code = 133 +bpf_exit_code = 149 +bpf_insn_load_imm_dw = 24 diff --git a/sys/linux/bpf_ppc64le.const b/sys/linux/bpf_ppc64le.const index 8b61e8556..2ecddfe10 100644 --- a/sys/linux/bpf_ppc64le.const +++ b/sys/linux/bpf_ppc64le.const @@ -1,11 +1,23 @@ # AUTOGENERATED FILE +BPF_ABS0 = 1 +BPF_ADD0 = 0 +BPF_ALU = 4 +BPF_ALU64 = 7 +BPF_AND0 = 5 BPF_ANY = 0 +BPF_ARSH0 = 12 +BPF_B0 = 2 +BPF_CALL0 = 8 BPF_CGROUP_DEVICE = 6 BPF_CGROUP_INET_EGRESS = 1 BPF_CGROUP_INET_INGRESS = 0 BPF_CGROUP_INET_SOCK_CREATE = 2 BPF_CGROUP_SOCK_OPS = 3 +BPF_DIV0 = 3 +BPF_DW0 = 3 +BPF_END0 = 13 BPF_EXIST = 2 +BPF_EXIT0 = 9 BPF_F_ALLOW_MULTI = 2 BPF_F_ALLOW_OVERRIDE = 1 BPF_F_NO_COMMON_LRU = 2 @@ -15,6 +27,25 @@ BPF_F_QUERY_EFFECTIVE = 1 BPF_F_RDONLY = 8 BPF_F_STRICT_ALIGNMENT = 1 BPF_F_WRONLY = 16 +BPF_H0 = 1 +BPF_IMM0 = 0 +BPF_IND0 = 2 +BPF_JA0 = 0 +BPF_JEQ0 = 1 +BPF_JGE0 = 3 +BPF_JGT0 = 2 +BPF_JLE0 = 11 +BPF_JLT0 = 10 +BPF_JMP = 5 +BPF_JNE0 = 5 +BPF_JSET0 = 4 +BPF_JSGE0 = 7 +BPF_JSGT0 = 6 +BPF_JSLE0 = 13 +BPF_JSLT0 = 12 +BPF_LD = 0 +BPF_LDX = 1 +BPF_LSH0 = 6 BPF_MAP_CREATE = 0 BPF_MAP_DELETE_ELEM = 3 BPF_MAP_GET_FD_BY_ID = 14 @@ -38,11 +69,17 @@ BPF_MAP_TYPE_PROG_ARRAY = 3 BPF_MAP_TYPE_SOCKMAP = 15 BPF_MAP_TYPE_STACK_TRACE = 7 BPF_MAP_UPDATE_ELEM = 2 +BPF_MEM0 = 3 +BPF_MOD0 = 9 +BPF_MOV0 = 11 +BPF_MUL0 = 2 +BPF_NEG0 = 8 BPF_NOEXIST = 1 BPF_OBJ_GET = 7 BPF_OBJ_GET_INFO_BY_FD = 15 BPF_OBJ_NAME_LEN = 16 BPF_OBJ_PIN = 6 +BPF_OR0 = 4 BPF_PROG_ATTACH = 8 BPF_PROG_DETACH = 9 BPF_PROG_GET_FD_BY_ID = 13 @@ -66,6 +103,28 @@ BPF_PROG_TYPE_SOCK_OPS = 13 BPF_PROG_TYPE_TRACEPOINT = 5 BPF_PROG_TYPE_XDP = 6 BPF_PSEUDO_MAP_FD = 1 +BPF_REG_0 = 0 +BPF_REG_1 = 1 +BPF_REG_10 = 10 +BPF_REG_2 = 2 +BPF_REG_3 = 3 +BPF_REG_4 = 4 +BPF_REG_5 = 5 +BPF_REG_6 = 6 +BPF_REG_7 = 7 +BPF_REG_8 = 8 +BPF_REG_9 = 9 +BPF_RSH0 = 7 BPF_SK_SKB_STREAM_PARSER = 4 BPF_SK_SKB_STREAM_VERDICT = 5 +BPF_ST = 2 +BPF_STX = 3 +BPF_SUB0 = 1 +BPF_W0 = 0 +BPF_XADD0 = 6 +BPF_XOR0 = 10 +__BPF_FUNC_MAX_ID = 58 __NR_bpf = 361 +bpf_call_code = 133 +bpf_exit_code = 149 +bpf_insn_load_imm_dw = 24 diff --git a/sys/linux/ppc64le.go b/sys/linux/ppc64le.go index 913c9b5f3..744b47270 100644 --- a/sys/linux/ppc64le.go +++ b/sys/linux/ppc64le.go @@ -366,12 +366,11 @@ var structDescs_ppc64le = []*KeyedStruct{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ci", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}, Type: &StructType{Key: StructKey{Name: "bnep_conninfo", Dir: 1}}}}, }}}, - {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 20}, Fields: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target", TypeSize: 4}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, + {Key: StructKey{Name: "bpf_attach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_attach_arg", TypeSize: 16}, Fields: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "target_fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "attach_bpf_fd", TypeSize: 4}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog2", TypeSize: 4}}, }}}, {Key: StructKey{Name: "bpf_detach_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_detach_arg", TypeSize: 20}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "target", TypeSize: 4}}}, @@ -380,6 +379,11 @@ var structDescs_ppc64le = []*KeyedStruct{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_attach_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog2", TypeSize: 4}}}, }}}, + {Key: StructKey{Name: "bpf_framed_program"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_framed_program"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_insn_init_r0"}, FldName: "initr0"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "body"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, + &StructType{Key: StructKey{Name: "bpf_insn_exit"}, FldName: "exit"}, + }}}, {Key: StructKey{Name: "bpf_get_map_info_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_get_map_info_arg", TypeSize: 16}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_map", FldName: "prog", TypeSize: 4}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, @@ -390,21 +394,86 @@ var structDescs_ppc64le = []*KeyedStruct{ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "info"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "info", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "bpf_prog_info", Dir: 1}}}, }}}, - {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 8}, Fields: []Type{ + {Key: StructKey{Name: "bpf_insn"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn", TypeSize: 16}, Fields: []Type{ &StructType{Key: StructKey{Name: "bpf_insn_generic"}, FldName: "generic"}, + &StructType{Key: StructKey{Name: "bpf_insn_ldst"}, FldName: "ldst"}, + &StructType{Key: StructKey{Name: "bpf_insn_alu"}, FldName: "alu"}, + &StructType{Key: StructKey{Name: "bpf_insn_jmp"}, FldName: "jmp"}, + &StructType{Key: StructKey{Name: "bpf_insn_call"}, FldName: "call"}, + &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"}, }}}, + {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}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_alu_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_call"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_call", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 58}, + }}}, + {Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm", TypeSize: 4}}}, + }}}, {Key: StructKey{Name: "bpf_insn_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_generic", TypeSize: 8}, Fields: []Type{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "imm", TypeSize: 4}}}, }}}, - {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", TypeSize: 8}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "regs", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "off", TypeSize: 2}}}, + {Key: StructKey{Name: "bpf_insn_init_r0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_init_r0", TypeSize: 16}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 24}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dst", TypeSize: 1}, BitfieldLen: 4, BitfieldMdl: true}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", 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_insn_jmp"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_jmp", TypeSize: 8}, Fields: []Type{ + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Val: 5}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "code_s", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 1, BitfieldMdl: true}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_jmp_op", FldName: "code_op", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_ldst"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_ldst", TypeSize: 8}, Fields: []Type{ + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_insn", FldName: "code_class", TypeSize: 1}, BitfieldLen: 3, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_size", FldName: "code_size", TypeSize: 1}, BitfieldOff: 3, BitfieldLen: 2, BitfieldMdl: true}, Vals: []uint64{0, 1, 2, 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_ldst_mode", FldName: "code_mode", TypeSize: 1}, BitfieldOff: 5, BitfieldLen: 3}, Vals: []uint64{0, 1, 2, 3, 6}}, + &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}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_reg", FldName: "src", TypeSize: 1}, BitfieldOff: 4, BitfieldLen: 4}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_offsets", FldName: "off", TypeSize: 2}}, Vals: []uint64{0, 1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 80, 128, 256, 4294967295, 4294967294, 4294967292, 4294967288, 4294967284, 4294967280, 4294967232}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_insn_immediates", FldName: "imm", TypeSize: 4}}, Vals: []uint64{0, 1, 4, 8, 16, 18446744073709551615, 18446744073709551612, 18446744073709551600}}, + }}}, + {Key: StructKey{Name: "bpf_insn_map"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_map", 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}}, + &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}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "imm2", TypeSize: 4}}}, + }}}, + {Key: StructKey{Name: "bpf_instructions"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_instructions"}, Fields: []Type{ + &StructType{Key: StructKey{Name: "bpf_framed_program"}, FldName: "framed"}, + &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "raw"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}, }}}, {Key: StructKey{Name: "bpf_map_create_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_map_create_arg", TypeSize: 44}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_map_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 7, 8, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16}}, @@ -469,16 +538,16 @@ var structDescs_ppc64le = []*KeyedStruct{ }}}, {Key: StructKey{Name: "bpf_prog"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog", TypeSize: 72}, Fields: []Type{ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_type", FldName: "type", TypeSize: 4}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}}, - &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "ninsn", TypeSize: 4}}, Buf: "insns"}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array"}, Type: &UnionType{Key: StructKey{Name: "bpf_insn"}}}}, - &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2}}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize8", FldName: "ninsn", TypeSize: 4}}, ByteSize: 8, Buf: "insns"}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "insns", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "bpf_instructions"}}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "license", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string"}, Kind: 2, SubKind: "bpf_licenses", Values: []string{"GPL\x00", "syzkaller\x00"}}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "loglev", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "logsize", TypeSize: 4}}, Buf: "log"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "log", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "kver", TypeSize: 4}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_kern_version", FldName: "kern_version", TypeSize: 4}}, Vals: []uint64{265984, 266240, 266496}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bpf_prog_load_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1}}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "prog_name", TypeSize: 16}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 1}}}, Kind: 1, RangeBegin: 16, RangeEnd: 16}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "prog_ifindex", TypeSize: 4}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "prog_ifindex", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true}, }}}, {Key: StructKey{Name: "bpf_prog_info", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_prog_info", TypeSize: 80, ArgDir: 1}, Fields: []Type{ @@ -506,7 +575,7 @@ var structDescs_ppc64le = []*KeyedStruct{ }, AlignAttr: 8}}, {Key: StructKey{Name: "bpf_test_prog_arg"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_test_prog_arg", TypeSize: 40}, Fields: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_bpf_prog", FldName: "prog", TypeSize: 4}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "retval", TypeSize: 4}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "retval", TypeSize: 4}}}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "insize", TypeSize: 4}}, Buf: "indata"}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "outsize", TypeSize: 4}}, Buf: "outdata"}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "indata", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array"}}}, @@ -13735,13 +13804,25 @@ var consts_ppc64le = []ConstValue{ {Name: "BNEPGETCONNINFO", Value: 1074021075}, {Name: "BNEPGETCONNLIST", Value: 1074021074}, {Name: "BNEPGETSUPPFEAT", Value: 1074021076}, + {Name: "BPF_ABS0", Value: 1}, + {Name: "BPF_ADD0"}, + {Name: "BPF_ALU", Value: 4}, + {Name: "BPF_ALU64", Value: 7}, + {Name: "BPF_AND0", Value: 5}, {Name: "BPF_ANY"}, + {Name: "BPF_ARSH0", Value: 12}, + {Name: "BPF_B0", Value: 2}, + {Name: "BPF_CALL0", Value: 8}, {Name: "BPF_CGROUP_DEVICE", Value: 6}, {Name: "BPF_CGROUP_INET_EGRESS", Value: 1}, {Name: "BPF_CGROUP_INET_INGRESS"}, {Name: "BPF_CGROUP_INET_SOCK_CREATE", Value: 2}, {Name: "BPF_CGROUP_SOCK_OPS", Value: 3}, + {Name: "BPF_DIV0", Value: 3}, + {Name: "BPF_DW0", Value: 3}, + {Name: "BPF_END0", Value: 13}, {Name: "BPF_EXIST", Value: 2}, + {Name: "BPF_EXIT0", Value: 9}, {Name: "BPF_F_ALLOW_MULTI", Value: 2}, {Name: "BPF_F_ALLOW_OVERRIDE", Value: 1}, {Name: "BPF_F_NO_COMMON_LRU", Value: 2}, @@ -13751,6 +13832,25 @@ var consts_ppc64le = []ConstValue{ {Name: "BPF_F_RDONLY", Value: 8}, {Name: "BPF_F_STRICT_ALIGNMENT", Value: 1}, {Name: "BPF_F_WRONLY", Value: 16}, + {Name: "BPF_H0", Value: 1}, + {Name: "BPF_IMM0"}, + {Name: "BPF_IND0", Value: 2}, + {Name: "BPF_JA0"}, + {Name: "BPF_JEQ0", Value: 1}, + {Name: "BPF_JGE0", Value: 3}, + {Name: "BPF_JGT0", Value: 2}, + {Name: "BPF_JLE0", Value: 11}, + {Name: "BPF_JLT0", Value: 10}, + {Name: "BPF_JMP", Value: 5}, + {Name: "BPF_JNE0", Value: 5}, + {Name: "BPF_JSET0", Value: 4}, + {Name: "BPF_JSGE0", Value: 7}, + {Name: "BPF_JSGT0", Value: 6}, + {Name: "BPF_JSLE0", Value: 13}, + {Name: "BPF_JSLT0", Value: 12}, + {Name: "BPF_LD"}, + {Name: "BPF_LDX", Value: 1}, + {Name: "BPF_LSH0", Value: 6}, {Name: "BPF_MAP_CREATE"}, {Name: "BPF_MAP_DELETE_ELEM", Value: 3}, {Name: "BPF_MAP_GET_FD_BY_ID", Value: 14}, @@ -13774,11 +13874,17 @@ var consts_ppc64le = []ConstValue{ {Name: "BPF_MAP_TYPE_SOCKMAP", Value: 15}, {Name: "BPF_MAP_TYPE_STACK_TRACE", Value: 7}, {Name: "BPF_MAP_UPDATE_ELEM", Value: 2}, + {Name: "BPF_MEM0", Value: 3}, + {Name: "BPF_MOD0", Value: 9}, + {Name: "BPF_MOV0", Value: 11}, + {Name: "BPF_MUL0", Value: 2}, + {Name: "BPF_NEG0", Value: 8}, {Name: "BPF_NOEXIST", Value: 1}, {Name: "BPF_OBJ_GET", Value: 7}, {Name: "BPF_OBJ_GET_INFO_BY_FD", Value: 15}, {Name: "BPF_OBJ_NAME_LEN", Value: 16}, {Name: "BPF_OBJ_PIN", Value: 6}, + {Name: "BPF_OR0", Value: 4}, {Name: "BPF_PROG_ATTACH", Value: 8}, {Name: "BPF_PROG_DETACH", Value: 9}, {Name: "BPF_PROG_GET_FD_BY_ID", Value: 13}, @@ -13802,8 +13908,26 @@ 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_REG_0"}, + {Name: "BPF_REG_1", Value: 1}, + {Name: "BPF_REG_10", Value: 10}, + {Name: "BPF_REG_2", Value: 2}, + {Name: "BPF_REG_3", Value: 3}, + {Name: "BPF_REG_4", Value: 4}, + {Name: "BPF_REG_5", Value: 5}, + {Name: "BPF_REG_6", Value: 6}, + {Name: "BPF_REG_7", Value: 7}, + {Name: "BPF_REG_8", Value: 8}, + {Name: "BPF_REG_9", Value: 9}, + {Name: "BPF_RSH0", Value: 7}, {Name: "BPF_SK_SKB_STREAM_PARSER", Value: 4}, {Name: "BPF_SK_SKB_STREAM_VERDICT", Value: 5}, + {Name: "BPF_ST", Value: 2}, + {Name: "BPF_STX", Value: 3}, + {Name: "BPF_SUB0", Value: 1}, + {Name: "BPF_W0"}, + {Name: "BPF_XADD0", Value: 6}, + {Name: "BPF_XOR0", Value: 10}, {Name: "BRCTL_ADD_BRIDGE", Value: 2}, {Name: "BRCTL_DEL_BRIDGE", Value: 3}, {Name: "BRCTL_GET_BRIDGES", Value: 1}, @@ -16344,6 +16468,7 @@ var consts_ppc64le = []ConstValue{ {Name: "_DRM_VBLANK_SECONDARY", Value: 536870912}, {Name: "_DRM_VBLANK_SIGNAL", Value: 1073741824}, {Name: "_DRM_WRITE_COMBINING", Value: 16}, + {Name: "__BPF_FUNC_MAX_ID", Value: 58}, {Name: "__NR_accept", Value: 330}, {Name: "__NR_accept4", Value: 344}, {Name: "__NR_acct", Value: 51}, @@ -16623,6 +16748,9 @@ var consts_ppc64le = []ConstValue{ {Name: "__WALL", Value: 1073741824}, {Name: "__WCLONE", Value: 2147483648}, {Name: "__WNOTHREAD", Value: 536870912}, + {Name: "bpf_call_code", Value: 133}, + {Name: "bpf_exit_code", Value: 149}, + {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_ppc64le = "29228dcbab03c80074b4719c2dd75a6f186759de" +const revision_ppc64le = "582c76a6684cad8a0a355724a1fcb5179169b2f1" |
