aboutsummaryrefslogtreecommitdiffstats
path: root/sys/netbsd
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@freebsd.org>2018-12-09 15:00:18 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-12-09 15:31:32 +0100
commita320ef9292e89f02492cdbedacec6038aa7155a6 (patch)
treef5c8ecbc0f0745fe0ce7d791bbbbabd9dd91d9a8 /sys/netbsd
parent99fd96656f003745e4d1ee59ec590789b8ec9fbd (diff)
sys/netbsd: fix socketpair usage
Diffstat (limited to 'sys/netbsd')
-rw-r--r--sys/netbsd/gen/amd64.go8
-rw-r--r--sys/netbsd/socket.txt7
2 files changed, 12 insertions, 3 deletions
diff --git a/sys/netbsd/gen/amd64.go b/sys/netbsd/gen/amd64.go
index 07debfb7e..aea604c97 100644
--- a/sys/netbsd/gen/amd64.go
+++ b/sys/netbsd/gen/amd64.go
@@ -241,6 +241,10 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused1", TypeSize: 8}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "unused2", TypeSize: 8}}},
}}},
+ {Key: StructKey{Name: "sock_pair", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sock_pair", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd0", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd1", TypeSize: 4, ArgDir: 1}},
+ }}},
{Key: StructKey{Name: "sockaddr_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sockaddr_in", TypeSize: 12}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 2}}, Val: 2},
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "port", TypeSize: 2}, ArgFormat: 1}, ValuesStart: 20000, ValuesPerProc: 4},
@@ -1209,7 +1213,7 @@ var syscalls_amd64 = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_domain", FldName: "domain", TypeSize: 8}}, Vals: []uint64{1, 2, 24, 6, 31, 16}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_type", FldName: "type", TypeSize: 8}}, Vals: []uint64{1, 2, 3, 4, 5, 536870912, 268435456, 1073741824}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "proto", TypeSize: 1}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "pipefd", Dir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "fds", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sock_pair", Dir: 1}}},
}},
{NR: 135, Name: "socketpair$unix", CallName: "socketpair", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "domain", TypeSize: 8}}, Val: 1},
@@ -1636,4 +1640,4 @@ var consts_amd64 = []ConstValue{
{Name: "WUNTRACED", Value: 2},
}
-const revision_amd64 = "88e63f93914651c1b6409d03645968531cb2abda"
+const revision_amd64 = "700e6f258d2aab7d3f9dcbb0bf34ad24dc98b899"
diff --git a/sys/netbsd/socket.txt b/sys/netbsd/socket.txt
index d165fb1bf..abf39377f 100644
--- a/sys/netbsd/socket.txt
+++ b/sys/netbsd/socket.txt
@@ -15,7 +15,7 @@ type sock_port proc[20000, 4, int16be]
# TODO: describe socketcall syscall
socket(domain flags[socket_domain], type flags[socket_type], proto int8) sock
-socketpair(domain flags[socket_domain], type flags[socket_type], proto int8, fds ptr[out, pipefd])
+socketpair(domain flags[socket_domain], type flags[socket_type], proto int8, fds ptr[out, sock_pair])
bind(fd sock, addr ptr[in, sockaddr_storage], addrlen len[addr])
connect(fd sock, addr ptr[in, sockaddr_storage], addrlen len[addr])
accept(fd sock, peer ptr[out, sockaddr_storage, opt], peerlen ptr[inout, len[peer, int32]]) sock
@@ -42,6 +42,11 @@ send_flags = MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_EOR, MSG_NOSIGNAL
recv_flags = MSG_CMSG_CLOEXEC, MSG_OOB, MSG_PEEK, MSG_WAITALL
cmsg_levels = SOL_SOCKET, IPPROTO_ICMP, LINUX_SOL_IP, LINUX_SOL_TCP, LINUX_SOL_UDP, LINUX_SOL_IPV6, LINUX_SOL_IPX, LINUX_SOL_AX25
+sock_pair {
+ fd0 sock
+ fd1 sock
+}
+
# This sockaddr type corresponds to the sockaddr_storage type and is 128 bytes size.
sockaddr_storage [
un sockaddr_un