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 /sys | |
| 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.
Diffstat (limited to 'sys')
| -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] |
