aboutsummaryrefslogtreecommitdiffstats
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
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.
-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]