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_recv_multishot(3)
32
33       io_uring_recvmsg_validate(3) will validate a buffer delivered by io_ur‐
34       ing_prep_recv_multishot(3)  and  extract the io_uring_recvmsg_out if it
35       is valid, returning a pointer to it or else NULL.
36
37       The structure is defined as follows:
38
39           struct io_uring_recvmsg_out {
40                   __u32 namelen;    /* Name byte count as would have been populated
41                                      * by recvmsg(2) */
42                   __u32 controllen; /* Control byte count */
43                   __u32 payloadlen; /* Payload byte count as would have been returned
44                                      * by recvmsg(2) */
45                   __u32 flags;      /* Flags result as would have been populated
46                                      * by recvmsg(2) */
47           };
48
49
50       *  io_uring_recvmsg_name(3)
51          returns a pointer to the name in the buffer.
52
53       *  io_uring_recvmsg_cmsg_firsthdr(3)
54          returns a pointer to the first cmsg in the buffer, or NULL.
55
56       *  io_uring_recvmsg_cmsg_nexthdr(3)
57          returns a pointer to the next cmsg in the buffer, or NULL.
58
59       *  io_uring_recvmsg_payload(3)
60          returns a pointer to the payload in the buffer.
61
62       *  io_uring_recvmsg_payload_length(3)
63          Calculates the usable payload length in bytes.
64
65
66

SEE ALSO

68       io_uring_prep_recv_multishot(3)
69
70
71
72liburing-2.2                    Julyu 26, 2022         io_uring_recvmsg_out(3)
Impressum