aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-11-04 12:38:48 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-11-04 12:39:39 +0100
commite2d61622eb61b451cb2cc72684154fafa1977eef (patch)
tree9e07e887e8fd276da1486a0c12f975dfdc2dcc5d /sys
parentb35fad31e9c2d4a970d051deff80ec7cc4c3e459 (diff)
sys/linux: improve CAN descriptions
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/gen/386.go21
-rw-r--r--sys/linux/gen/amd64.go21
-rw-r--r--sys/linux/gen/arm.go21
-rw-r--r--sys/linux/gen/arm64.go21
-rw-r--r--sys/linux/gen/ppc64le.go21
-rw-r--r--sys/linux/socket_can.txt19
-rw-r--r--sys/linux/socket_can_386.const3
-rw-r--r--sys/linux/socket_can_amd64.const3
-rw-r--r--sys/linux/socket_can_arm.const3
-rw-r--r--sys/linux/socket_can_arm64.const3
-rw-r--r--sys/linux/socket_can_ppc64le.const3
-rw-r--r--sys/linux/test/can9
12 files changed, 95 insertions, 53 deletions
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', <r1=>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', <r3=>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)