aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorChristian Resell <resell@google.com>2021-07-28 09:19:18 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2021-07-29 18:37:08 +0200
commitc585c7b0ea16dc4326bf5e8f2f00cc6638e2feb1 (patch)
tree1fa1ce8fa529201efdf05f550121249be6364651 /sys
parent1dbdfe62e1f9e25b08e9ee62b1b58f8ab5793cdb (diff)
sys/linux: update unix socket syscall descriptions
Add recvmsg$unix() and recvmmsg$unix(). Update sendmmsg$unix to use the correct type, the old description was using an array of struct msghdr instead of struct mmsghdr. Set addr field of msghdr structs to optional.
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/socket_unix.txt30
1 files changed, 26 insertions, 4 deletions
diff --git a/sys/linux/socket_unix.txt b/sys/linux/socket_unix.txt
index dc49f69e2..85445aecb 100644
--- a/sys/linux/socket_unix.txt
+++ b/sys/linux/socket_unix.txt
@@ -18,9 +18,11 @@ accept$unix(fd sock_unix, peer ptr[out, sockaddr_un, opt], peerlen ptr[inout, le
accept4$unix(fd sock_unix, peer ptr[out, sockaddr_un, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_unix
sendto$unix(fd sock_unix, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_un, opt], addrlen len[addr])
-sendmsg$unix(fd sock_unix, msg ptr[in, msghdr_un], f flags[send_flags])
-sendmmsg$unix(fd sock_unix, mmsg ptr[in, array[msghdr_un]], vlen len[mmsg], f flags[send_flags])
+sendmsg$unix(fd sock_unix, msg ptr[in, send_msghdr_un], f flags[send_flags])
+sendmmsg$unix(fd sock_unix, mmsg ptr[in, array[send_mmsghdr_un]], vlen len[mmsg], f flags[send_flags])
recvfrom$unix(fd sock_unix, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_un, opt], addrlen len[addr])
+recvmsg$unix(fd sock_unix, msg ptr[inout, recv_msghdr_un], f flags[recv_flags])
+recvmmsg$unix(fd sock_unix, mmsg ptr[in, array[recv_mmsghdr_un]], vlen len[mmsg], f flags[recv_flags], timeout ptr[in, timespec, opt])
getsockname$unix(fd sock_unix, addr ptr[out, sockaddr_un], addrlen ptr[inout, len[addr, int32]])
getpeername$unix(fd sock_unix, peer ptr[out, sockaddr_un], peerlen ptr[inout, len[peer, int32]])
@@ -48,8 +50,8 @@ sockaddr_un_abstract {
id int32[20000:20004]
}
-msghdr_un {
- addr ptr[in, sockaddr_un]
+send_msghdr_un {
+ addr ptr[in, sockaddr_un, opt]
addrlen len[addr, int32]
vec ptr[in, array[iovec_in]]
vlen len[vec, intptr]
@@ -58,6 +60,26 @@ msghdr_un {
f flags[send_flags, int32]
}
+send_mmsghdr_un {
+ msg_hdr send_msghdr_un
+ msg_len const[0, int32]
+}
+
+recv_msghdr_un {
+ addr ptr[out, sockaddr_un, opt]
+ addrlen len[addr, int32]
+ vec ptr[in, array[iovec_out]]
+ vlen len[vec, intptr]
+ ctrl ptr[out, array[cmsghdr_un], opt]
+ ctrllen bytesize[ctrl, intptr]
+ f const[0, int32]
+}
+
+recv_mmsghdr_un {
+ msg_hdr recv_msghdr_un
+ msg_len const[0, int32]
+}
+
cmsghdr_un [
rights cmsghdr_t[SOL_SOCKET, SCM_RIGHTS, array[fd]]
cred cmsghdr_t[SOL_SOCKET, SCM_CREDENTIALS, cmsg_un_cred]