diff options
| author | Christian Resell <resell@google.com> | 2021-07-28 09:19:18 +0000 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2021-07-29 18:37:08 +0200 |
| commit | c585c7b0ea16dc4326bf5e8f2f00cc6638e2feb1 (patch) | |
| tree | 1fa1ce8fa529201efdf05f550121249be6364651 | |
| parent | 1dbdfe62e1f9e25b08e9ee62b1b58f8ab5793cdb (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.txt | 30 |
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] |
