.BR KEYCTL_INSTANTIATE ,
but the payload data is specified as an array of
.I iovec
-structures:
-.IP
-.in +4n
-.EX
-struct iovec {
- void *iov_base; /* Starting address of buffer */
- size_t iov_len; /* Size of buffer (in bytes) */
-};
-.EE
-.in
+structures (see
+.BR iovec (3type)).
.IP
The pointer to the payload vector is specified in
.I arg3
.I iovec
points to an array of
.I iovec
-structures, defined in
-.I <sys/uio.h>
-as:
+structures, described in
+.BR iovec (3type).
.PP
-.in +4n
-.EX
-struct iovec {
- void *iov_base; /* Starting address */
- size_t iov_len; /* Length of region */
-};
-.EE
-.in
-.PP
-The
-.I iovec
-structure describes address ranges beginning at
-.I iov_base
-address and with the size of
-.I iov_len
-bytes.
-.PP
-The
.I vlen
specifies the number of elements in the
.I iovec
.I remote_iov
arguments point to an array of
.I iovec
-structures, defined in
-.I <sys/uio.h>
-as:
-.PP
-.in +4n
-.EX
-struct iovec {
- void *iov_base; /* Starting address */
- size_t iov_len; /* Number of bytes to transfer */
-};
-.EE
-.in
+structures, described in
+.BR iovec (3type).
.PP
Buffers are processed in array order.
This means that
points to an array of
.I iovec
structures,
-defined in
-.I <sys/uio.h>
-as:
-.PP
-.in +4n
-.EX
-struct iovec {
- void *iov_base; /* Starting address */
- size_t iov_len; /* Number of bytes to transfer */
-};
-.EE
-.in
+described in
+.BR iovec (3type).
.PP
The
.BR readv ()
.PP
.in +4n
.EX
-struct iovec { /* Scatter/gather array items */
- void *iov_base; /* Starting address */
- size_t iov_len; /* Number of bytes to transfer */
-};
-
struct msghdr {
void *msg_name; /* Optional address */
socklen_t msg_namelen; /* Size of address */
.I iov
points to an array of
.I iovec
-structures as defined in
-.IR <sys/uio.h> :
-.PP
-.in +4n
-.EX
-struct iovec {
- void *iov_base; /* Starting address */
- size_t iov_len; /* Number of bytes */
-};
-.EE
-.in
+structures as described in
+.BR iovec (3type).
.PP
The
.I flags