From e2d61622eb61b451cb2cc72684154fafa1977eef Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 4 Nov 2019 12:38:48 +0100 Subject: sys/linux: improve CAN descriptions --- sys/linux/gen/386.go | 21 ++++++++++++--------- sys/linux/gen/amd64.go | 21 ++++++++++++--------- sys/linux/gen/arm.go | 21 ++++++++++++--------- sys/linux/gen/arm64.go | 21 ++++++++++++--------- sys/linux/gen/ppc64le.go | 21 ++++++++++++--------- sys/linux/socket_can.txt | 19 +++++++++++-------- sys/linux/socket_can_386.const | 3 +++ sys/linux/socket_can_amd64.const | 3 +++ sys/linux/socket_can_arm.const | 3 +++ sys/linux/socket_can_arm64.const | 3 +++ sys/linux/socket_can_ppc64le.const | 3 +++ sys/linux/test/can | 9 +++++++++ 12 files changed, 95 insertions(+), 53 deletions(-) create mode 100644 sys/linux/test/can (limited to 'sys') diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go index 2acaacf76..75d0e66be 100644 --- a/sys/linux/gen/386.go +++ b/sys/linux/gen/386.go @@ -10147,12 +10147,12 @@ var structDescs_386 = []*KeyedStruct{ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "value"}, }}}, {Key: StructKey{Name: "j1939_filter"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "j1939_filter", TypeSize: 32}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn_mask"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_mask", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr_mask", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true}, }}}, {Key: StructKey{Name: "jfs_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "jfs_options", IsVarlen: true}, Fields: []Type{ @@ -23527,10 +23527,10 @@ var structDescs_386 = []*KeyedStruct{ {Key: StructKey{Name: "sockaddr_can_j1939"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_can_j1939", TypeSize: 24}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "can_family", TypeSize: 2}}, Val: 29}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4, IsOptional: true}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true}, }}}, {Key: StructKey{Name: "sockaddr_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_ethernet", TypeSize: 16}, Fields: []Type{ @@ -39655,7 +39655,7 @@ var syscalls_386 = []*Syscall{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"team0\", ifindex_team[opt]]", Dir: 2}}}, }}, {NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 35123}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}}, }}, @@ -50013,6 +50013,9 @@ var consts_386 = []ConstValue{ {Name: "ITIMER_PROF", Value: 2}, {Name: "ITIMER_REAL"}, {Name: "ITIMER_VIRTUAL", Value: 1}, + {Name: "J1939_IDLE_ADDR", Value: 254}, + {Name: "J1939_MAX_UNICAST_ADDR", Value: 253}, + {Name: "J1939_NO_ADDR", Value: 255}, {Name: "KCMPROTO_CONNECTED"}, {Name: "KCMP_EPOLL_TFD", Value: 7}, {Name: "KCMP_FILE"}, @@ -55618,4 +55621,4 @@ var consts_386 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_386 = "0ec7f090a895cf82ab41a46e65c69b4454e26ea2" +const revision_386 = "6b058858223f3db67f48deb07142fd25169570f3" diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go index 6f5b304e1..4faac8cad 100644 --- a/sys/linux/gen/amd64.go +++ b/sys/linux/gen/amd64.go @@ -10258,12 +10258,12 @@ var structDescs_amd64 = []*KeyedStruct{ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "value"}, }}}, {Key: StructKey{Name: "j1939_filter"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "j1939_filter", TypeSize: 32}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn_mask"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_mask", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr_mask", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true}, }}}, {Key: StructKey{Name: "jfs_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "jfs_options", IsVarlen: true}, Fields: []Type{ @@ -23858,10 +23858,10 @@ var structDescs_amd64 = []*KeyedStruct{ {Key: StructKey{Name: "sockaddr_can_j1939"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_can_j1939", TypeSize: 24}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "can_family", TypeSize: 2}}, Val: 29}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4, IsOptional: true}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true}, }}}, {Key: StructKey{Name: "sockaddr_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_ethernet", TypeSize: 16}, Fields: []Type{ @@ -40190,7 +40190,7 @@ var syscalls_amd64 = []*Syscall{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"team0\", ifindex_team[opt]]", Dir: 2}}}, }}, {NR: 16, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}}, }}, @@ -50553,6 +50553,9 @@ var consts_amd64 = []ConstValue{ {Name: "ITIMER_PROF", Value: 2}, {Name: "ITIMER_REAL"}, {Name: "ITIMER_VIRTUAL", Value: 1}, + {Name: "J1939_IDLE_ADDR", Value: 254}, + {Name: "J1939_MAX_UNICAST_ADDR", Value: 253}, + {Name: "J1939_NO_ADDR", Value: 255}, {Name: "KCMPROTO_CONNECTED"}, {Name: "KCMP_EPOLL_TFD", Value: 7}, {Name: "KCMP_FILE"}, @@ -56173,4 +56176,4 @@ var consts_amd64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_amd64 = "89d58cbf2acf0a284a5f6f4dc2c1f64cd035bee9" +const revision_amd64 = "2ed58ed122aa5c87b97d7db0caaa4995434d7938" diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go index 4fe8fa4ac..cec2e7a50 100644 --- a/sys/linux/gen/arm.go +++ b/sys/linux/gen/arm.go @@ -10147,12 +10147,12 @@ var structDescs_arm = []*KeyedStruct{ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "value"}, }}}, {Key: StructKey{Name: "j1939_filter"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "j1939_filter", TypeSize: 32}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn_mask"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_mask", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr_mask", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true}, }}}, {Key: StructKey{Name: "jfs_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "jfs_options", IsVarlen: true}, Fields: []Type{ @@ -23349,10 +23349,10 @@ var structDescs_arm = []*KeyedStruct{ {Key: StructKey{Name: "sockaddr_can_j1939"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_can_j1939", TypeSize: 24}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "can_family", TypeSize: 2}}, Val: 29}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4, IsOptional: true}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true}, }}}, {Key: StructKey{Name: "sockaddr_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_ethernet", TypeSize: 16}, Fields: []Type{ @@ -39344,7 +39344,7 @@ var syscalls_arm = []*Syscall{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"team0\", ifindex_team[opt]]", Dir: 2}}}, }}, {NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 35123}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}}, }}, @@ -49652,6 +49652,9 @@ var consts_arm = []ConstValue{ {Name: "ITIMER_PROF", Value: 2}, {Name: "ITIMER_REAL"}, {Name: "ITIMER_VIRTUAL", Value: 1}, + {Name: "J1939_IDLE_ADDR", Value: 254}, + {Name: "J1939_MAX_UNICAST_ADDR", Value: 253}, + {Name: "J1939_NO_ADDR", Value: 255}, {Name: "KCMPROTO_CONNECTED"}, {Name: "KCMP_EPOLL_TFD", Value: 7}, {Name: "KCMP_FILE"}, @@ -55195,4 +55198,4 @@ var consts_arm = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm = "24b24c9036bf2c83200993105d47e6e8d52824f1" +const revision_arm = "a36b21326a88d50dc38d2a8f1255c1c61bcfa5f8" diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go index de120cf96..38ea74f41 100644 --- a/sys/linux/gen/arm64.go +++ b/sys/linux/gen/arm64.go @@ -10258,12 +10258,12 @@ var structDescs_arm64 = []*KeyedStruct{ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "value"}, }}}, {Key: StructKey{Name: "j1939_filter"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "j1939_filter", TypeSize: 32}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn_mask"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_mask", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr_mask", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true}, }}}, {Key: StructKey{Name: "jfs_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "jfs_options", IsVarlen: true}, Fields: []Type{ @@ -23675,10 +23675,10 @@ var structDescs_arm64 = []*KeyedStruct{ {Key: StructKey{Name: "sockaddr_can_j1939"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_can_j1939", TypeSize: 24}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "can_family", TypeSize: 2}}, Val: 29}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4, IsOptional: true}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true}, }}}, {Key: StructKey{Name: "sockaddr_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_ethernet", TypeSize: 16}, Fields: []Type{ @@ -39787,7 +39787,7 @@ var syscalls_arm64 = []*Syscall{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"team0\", ifindex_team[opt]]", Dir: 2}}}, }}, {NR: 29, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}}, }}, @@ -49999,6 +49999,9 @@ var consts_arm64 = []ConstValue{ {Name: "ITIMER_PROF", Value: 2}, {Name: "ITIMER_REAL"}, {Name: "ITIMER_VIRTUAL", Value: 1}, + {Name: "J1939_IDLE_ADDR", Value: 254}, + {Name: "J1939_MAX_UNICAST_ADDR", Value: 253}, + {Name: "J1939_NO_ADDR", Value: 255}, {Name: "KCMPROTO_CONNECTED"}, {Name: "KCMP_EPOLL_TFD", Value: 7}, {Name: "KCMP_FILE"}, @@ -55525,4 +55528,4 @@ var consts_arm64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm64 = "0df8c4d230ccd81a645a3cda06fbe0fed41c416e" +const revision_arm64 = "6d66d902a31601e6b77a7dd025bbb1925b0e2a62" diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go index 7cbe1767f..3a51d137b 100644 --- a/sys/linux/gen/ppc64le.go +++ b/sys/linux/gen/ppc64le.go @@ -10257,12 +10257,12 @@ var structDescs_ppc64le = []*KeyedStruct{ &StructType{Key: StructKey{Name: "timeval", Dir: 1}, FldName: "value"}, }}}, {Key: StructKey{Name: "j1939_filter"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "j1939_filter", TypeSize: 32}, Fields: []Type{ - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name_mask", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn_mask"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr_mask", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr_mask", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 6}}, IsPad: true}, }}}, {Key: StructKey{Name: "jfs_options"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "jfs_options", IsVarlen: true}, Fields: []Type{ @@ -23627,10 +23627,10 @@ var structDescs_ppc64le = []*KeyedStruct{ {Key: StructKey{Name: "sockaddr_can_j1939"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_can_j1939", TypeSize: 24}, Fields: []Type{ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "can_family", TypeSize: 2}}, Val: 29}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 2}}, IsPad: true}, - &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4, IsOptional: true}}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "can_ifindex", TypeSize: 4}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "name", TypeSize: 8}}, Kind: 1, RangeEnd: 3}, &StructType{Key: StructKey{Name: "can_j1939_pgn"}, FldName: "pgn"}, - &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "addr", TypeSize: 1}}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "can_j1939_addrs", FldName: "addr", TypeSize: 1}}, Vals: []uint64{253, 254, 255, 0, 1, 2}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true}, }}}, {Key: StructKey{Name: "sockaddr_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_ethernet", TypeSize: 16}, Fields: []Type{ @@ -39653,7 +39653,7 @@ var syscalls_ppc64le = []*Syscall{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"team0\", ifindex_team[opt]]", Dir: 2}}}, }}, {NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{ - &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}}, + &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}}, }}, @@ -49992,6 +49992,9 @@ var consts_ppc64le = []ConstValue{ {Name: "ITIMER_PROF", Value: 2}, {Name: "ITIMER_REAL"}, {Name: "ITIMER_VIRTUAL", Value: 1}, + {Name: "J1939_IDLE_ADDR", Value: 254}, + {Name: "J1939_MAX_UNICAST_ADDR", Value: 253}, + {Name: "J1939_NO_ADDR", Value: 255}, {Name: "KCMPROTO_CONNECTED"}, {Name: "KCMP_EPOLL_TFD", Value: 7}, {Name: "KCMP_FILE"}, @@ -55490,4 +55493,4 @@ var consts_ppc64le = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_ppc64le = "c9dc2f5a65994c872d1ae9542e74f45d95396bde" +const revision_ppc64le = "3b9c22f67d46d12ae8050173f4b0dedebcea98f8" diff --git a/sys/linux/socket_can.txt b/sys/linux/socket_can.txt index 64ae27ad3..dadb3e24c 100644 --- a/sys/linux/socket_can.txt +++ b/sys/linux/socket_can.txt @@ -51,7 +51,7 @@ getsockopt$SO_J1939_PROMISC(fd sock_can_j1939, level const[SOL_CAN_J1939], opt c getsockopt$SO_J1939_ERRQUEUE(fd sock_can_j1939, level const[SOL_CAN_J1939], opt const[SO_J1939_ERRQUEUE], val ptr[out, int32], len ptr[inout, bytesize[val, int32]]) getsockopt$SO_J1939_SEND_PRIO(fd sock_can_j1939, level const[SOL_CAN_J1939], opt const[SO_J1939_SEND_PRIO], val ptr[out, int32], len ptr[inout, bytesize[val, int32]]) -ioctl$ifreq_SIOCGIFINDEX_vcan(fd sock_can, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[vcan_device_names, ifindex_vcan]]) +ioctl$ifreq_SIOCGIFINDEX_vcan(fd sock, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[vcan_device_names, ifindex_vcan]]) vcan_device_names = "vcan0", "vxcan0", "vxcan1" sockaddr_can { @@ -63,10 +63,10 @@ sockaddr_can { sockaddr_can_j1939 { can_family const[AF_CAN, int16] - can_ifindex ifindex_vcan[opt] - name int64 + can_ifindex ifindex_vcan + name can_j1939_name pgn can_j1939_pgn - addr int8 + addr can_j1939_addr } can_j1939_pgn { @@ -79,6 +79,9 @@ can_j1939_pgn { can_j1939_pgn_ps = 0, 1, 2 can_j1939_pgn_pf = 0, 1, 0xf0, 0xff can_j1939_pgn_flags = 0, 1, 2, 3, 4 +type can_j1939_name int64[0:3] +type can_j1939_addr flags[can_j1939_addrs, int8] +can_j1939_addrs = J1939_MAX_UNICAST_ADDR, J1939_IDLE_ADDR, J1939_NO_ADDR, 0, 1, 2 type msghdr_can[MSG] { addr ptr[in, sockaddr_can, opt] @@ -141,12 +144,12 @@ can_filter { } j1939_filter { - name int64 - name_mask int64 + name can_j1939_name + name_mask can_j1939_name pgn can_j1939_pgn pgn_mask can_j1939_pgn - addr int8 - addr_mask int8 + addr can_j1939_addr + addr_mask can_j1939_addr } can_bcm_opcodes = TX_SETUP, TX_DELETE, TX_READ, TX_SEND, RX_SETUP, RX_DELETE, RX_READ diff --git a/sys/linux/socket_can_386.const b/sys/linux/socket_can_386.const index 879df3f60..ef6e49768 100644 --- a/sys/linux/socket_can_386.const +++ b/sys/linux/socket_can_386.const @@ -14,6 +14,9 @@ CAN_RAW_FILTER = 1 CAN_RAW_JOIN_FILTERS = 6 CAN_RAW_LOOPBACK = 3 CAN_RAW_RECV_OWN_MSGS = 4 +J1939_IDLE_ADDR = 254 +J1939_MAX_UNICAST_ADDR = 253 +J1939_NO_ADDR = 255 RX_ANNOUNCE_RESUME = 256 RX_CHECK_DLC = 64 RX_DELETE = 6 diff --git a/sys/linux/socket_can_amd64.const b/sys/linux/socket_can_amd64.const index cd1f01775..a38ff874b 100644 --- a/sys/linux/socket_can_amd64.const +++ b/sys/linux/socket_can_amd64.const @@ -14,6 +14,9 @@ CAN_RAW_FILTER = 1 CAN_RAW_JOIN_FILTERS = 6 CAN_RAW_LOOPBACK = 3 CAN_RAW_RECV_OWN_MSGS = 4 +J1939_IDLE_ADDR = 254 +J1939_MAX_UNICAST_ADDR = 253 +J1939_NO_ADDR = 255 RX_ANNOUNCE_RESUME = 256 RX_CHECK_DLC = 64 RX_DELETE = 6 diff --git a/sys/linux/socket_can_arm.const b/sys/linux/socket_can_arm.const index 89a4c1b86..7b1f45f49 100644 --- a/sys/linux/socket_can_arm.const +++ b/sys/linux/socket_can_arm.const @@ -14,6 +14,9 @@ CAN_RAW_FILTER = 1 CAN_RAW_JOIN_FILTERS = 6 CAN_RAW_LOOPBACK = 3 CAN_RAW_RECV_OWN_MSGS = 4 +J1939_IDLE_ADDR = 254 +J1939_MAX_UNICAST_ADDR = 253 +J1939_NO_ADDR = 255 RX_ANNOUNCE_RESUME = 256 RX_CHECK_DLC = 64 RX_DELETE = 6 diff --git a/sys/linux/socket_can_arm64.const b/sys/linux/socket_can_arm64.const index a0731c853..682df8029 100644 --- a/sys/linux/socket_can_arm64.const +++ b/sys/linux/socket_can_arm64.const @@ -14,6 +14,9 @@ CAN_RAW_FILTER = 1 CAN_RAW_JOIN_FILTERS = 6 CAN_RAW_LOOPBACK = 3 CAN_RAW_RECV_OWN_MSGS = 4 +J1939_IDLE_ADDR = 254 +J1939_MAX_UNICAST_ADDR = 253 +J1939_NO_ADDR = 255 RX_ANNOUNCE_RESUME = 256 RX_CHECK_DLC = 64 RX_DELETE = 6 diff --git a/sys/linux/socket_can_ppc64le.const b/sys/linux/socket_can_ppc64le.const index b6af6be71..fadb3eb29 100644 --- a/sys/linux/socket_can_ppc64le.const +++ b/sys/linux/socket_can_ppc64le.const @@ -14,6 +14,9 @@ CAN_RAW_FILTER = 1 CAN_RAW_JOIN_FILTERS = 6 CAN_RAW_LOOPBACK = 3 CAN_RAW_RECV_OWN_MSGS = 4 +J1939_IDLE_ADDR = 254 +J1939_MAX_UNICAST_ADDR = 253 +J1939_NO_ADDR = 255 RX_ANNOUNCE_RESUME = 256 RX_CHECK_DLC = 64 RX_DELETE = 6 diff --git a/sys/linux/test/can b/sys/linux/test/can new file mode 100644 index 000000000..adaa6c271 --- /dev/null +++ b/sys/linux/test/can @@ -0,0 +1,9 @@ +r0 = socket$can_j1939(AUTO, AUTO, AUTO) +ioctl$ifreq_SIOCGIFINDEX_vcan(r0, AUTO, &AUTO={'vxcan0\x00', 0x0}) +bind$can_j1939(r0, &AUTO={AUTO, r1, 0x0, {0x0, 0x0, 0x0, 0x0}, 0x0}, AUTO) +r2 = socket$can_j1939(AUTO, AUTO, AUTO) +ioctl$ifreq_SIOCGIFINDEX_vcan(r2, AUTO, &AUTO={'vxcan1\x00', 0x0}) +bind$can_j1939(r2, &AUTO={AUTO, r3, 0x0, {0x0, 0x0, 0x0, 0x0}, 0x0}, AUTO) +connect$can_j1939(r2, &AUTO={AUTO, r3, 0x0, {0x0, 0x0, 0x0, 0x0}, 0x0}, AUTO) +sendmsg$can_j1939(r2, &AUTO={0x0, 0x0, &AUTO={'data', 0x4}, 0x1, 0x0, 0x0, 0x0}, 0x0) +recvmsg$can_j1939(r0, &AUTO={0x0, 0x0, &AUTO={'----', 0x4}, 0x1, 0x0, 0x0, 0x0}, 0x0) -- cgit mrf-deployment