1io_uring_recvmsg_out(3)         liburing Manual        io_uring_recvmsg_out(3)
2
3
4

NAME

6       io_uring_recvmsg_out - access data from multishot recvmsg
7

SYNOPSIS

9       #include <liburing.h>
10
11       struct io_uring_recvmsg_out *io_uring_recvmsg_validate(void *buf,
12                                                              int buf_len,
13                                                              struct msghdr *msgh);
14
15       void *io_uring_recvmsg_name(struct io_uring_recvmsg_out *o);
16
17       struct cmsghdr *io_uring_recvmsg_cmsg_firsthdr(struct io_uring_recvmsg_out *o,
18                                                      struct msghdr *msgh);
19       struct cmsghdr *io_uring_recvmsg_cmsg_nexthdr(struct io_uring_recvmsg_out *o,
20                                                     struct msghdr *msgh,
21                                                     struct cmsghdr *cmsg);
22
23       void *io_uring_recvmsg_payload(struct io_uring_recvmsg_out *o,
24                                      struct msghdr *msgh);
25       unsigned int io_uring_recvmsg_payload_length(struct io_uring_recvmsg_out *o,
26                                                    int buf_len,
27                                                    struct msghdr *msgh);
28

DESCRIPTION

30       These  functions  are  used  to access data in the payload delivered by
31       io_uring_prep_recvmsg_multishot(3).
32
33       msgh should point to the struct msghdr submitted with the request.
34
35       io_uring_recvmsg_validate(3) will validate a buffer delivered by io_ur‐
36       ing_prep_recvmsg_multishot(3)  and  extract the io_uring_recvmsg_out if
37       it is valid, returning a pointer to it or else NULL.
38
39       The structure is defined as follows:
40
41           struct io_uring_recvmsg_out {
42                   __u32 namelen;    /* Name byte count as would have been populated
43                                      * by recvmsg(2) */
44                   __u32 controllen; /* Control byte count */
45                   __u32 payloadlen; /* Payload byte count as would have been returned
46                                      * by recvmsg(2) */
47                   __u32 flags;      /* Flags result as would have been populated
48                                      * by recvmsg(2) */
49           };
50
51
52       *  io_uring_recvmsg_name(3)
53          returns a pointer to the name in the buffer.
54
55       *  io_uring_recvmsg_cmsg_firsthdr(3)
56          returns a pointer to the first cmsg in the buffer, or NULL.
57
58       *  io_uring_recvmsg_cmsg_nexthdr(3)
59          returns a pointer to the next cmsg in the buffer, or NULL.
60
61       *  io_uring_recvmsg_payload(3)
62          returns a pointer to the payload in the buffer.
63
64       *  io_uring_recvmsg_payload_length(3)
65          Calculates the usable payload length in bytes.
66
67
68

SEE ALSO

70       io_uring_prep_recvmsg_multishot(3)
71
72
73
74liburing-2.2                     July 26, 2022         io_uring_recvmsg_out(3)
Impressum