.\" Copyright (C), 2022 Dylan Yudaken .\" .\" SPDX-License-Identifier: LGPL-2.0-or-later .\" .TH io_uring_recvmsg_out 3 "July 26, 2022" "liburing-2.2" "liburing Manual" .SH NAME io_uring_recvmsg_out - access data from multishot recvmsg .SH SYNOPSIS .nf .B #include .PP .BI "struct io_uring_recvmsg_out *io_uring_recvmsg_validate(void *" buf "," .BI " int " buf_len "," .BI " struct msghdr *" msgh ");" .PP .BI "void *io_uring_recvmsg_name(struct io_uring_recvmsg_out *" o ");" .PP .BI "struct cmsghdr *io_uring_recvmsg_cmsg_firsthdr(struct io_uring_recvmsg_out *" o "," .BI " struct msghdr *" msgh ");" .BI "struct cmsghdr *io_uring_recvmsg_cmsg_nexthdr(struct io_uring_recvmsg_out *" o "," .BI " struct msghdr *" msgh "," .BI " struct cmsghdr *" cmsg ");" .PP .BI "void *io_uring_recvmsg_payload(struct io_uring_recvmsg_out *" o "," .BI " struct msghdr *" msgh ");" .BI "unsigned int io_uring_recvmsg_payload_length(struct io_uring_recvmsg_out *" o "," .BI " int " buf_len "," .BI " struct msghdr *" msgh ");" .PP .fi .SH DESCRIPTION These functions are used to access data in the payload delivered by .BR io_uring_prep_recvmsg_multishot (3). .PP .I msgh should point to the .I struct msghdr submitted with the request. .PP .BR io_uring_recvmsg_validate (3) will validate a buffer delivered by .BR io_uring_prep_recvmsg_multishot (3) and extract the .I io_uring_recvmsg_out if it is valid, returning a pointer to it or else NULL. .PP The structure is defined as follows: .PP .in +4n .EX struct io_uring_recvmsg_out { __u32 namelen; /* Name byte count as would have been populated * by recvmsg(2) */ __u32 controllen; /* Control byte count */ __u32 payloadlen; /* Payload byte count as would have been returned * by recvmsg(2) */ __u32 flags; /* Flags result as would have been populated * by recvmsg(2) */ }; .IP * 3 .BR io_uring_recvmsg_name (3) returns a pointer to the name in the buffer. .IP * .BR io_uring_recvmsg_cmsg_firsthdr (3) returns a pointer to the first cmsg in the buffer, or NULL. .IP * .BR io_uring_recvmsg_cmsg_nexthdr (3) returns a pointer to the next cmsg in the buffer, or NULL. .IP * .BR io_uring_recvmsg_payload (3) returns a pointer to the payload in the buffer. .IP * .BR io_uring_recvmsg_payload_length (3) Calculates the usable payload length in bytes. .SH "SEE ALSO" .BR io_uring_prep_recvmsg_multishot (3)