Register buffers for fixed buffer operations
# DESCRIPTION
The [io_uring_register_buffers] function registers *nr_iovecs*
number of buffers defined by the array *iovecs* belonging to the *ring*.
The [io_uring_register_buffers_tags] function behaves the same as
[io_uring_register_buffers] function but additionally takes *tags*
parameter. See **IORING_REGISTER_BUFFERS2** for the resource tagging
description.
The [io_uring_register_buffers_sparse] function registers
*nr_iovecs* empty buffers belonging to the *ring*. These buffers must be
updated before use, using eg
[io_uring_register_buffers_update_tag].
After the caller has registered the buffers, they can be used with one
of the fixed buffers functions.
The iovecs are only used by the kernel for registration purposes, and
may be freed (or passed on the stack) once registration has completed.
Registered buffers is an optimization that is useful in conjunction with
**O_DIRECT** reads and writes, where it maps the specified range into
the kernel once when the buffer is registered rather than doing a map
and unmap for each IO every time IO is performed to that region.
Additionally, it also avoids manipulating the page reference counts for
each IO.
The [io_uring_register_buffers_update_tag] function updates
registered buffers with new ones, either turning a sparse entry into a
real one, or replacing an existing entry. The *off* is offset on which
to start the update *nr* number of buffers defined by the array *iovecs*
belonging to the *ring*. The *tags* points to an array of tags. See
**IORING_REGISTER_BUFFERS2** for the resource tagging description.
# RETURN VALUE
On success [io_uring_register_buffers],
[io_uring_register_buffers_tags] and
[io_uring_register_buffers_sparse] return 0.
[io_uring_register_buffers_update_tag] return number of buffers
updated. On failure they return **-errno**.
# SEE ALSO
[io_uring_register], [io_uring_get_sqe],
[io_uring_unregister_buffers], [io_uring_clone_buffers()],
[io_uring_register_buf_ring], [io_uring_prep_read_fixed],
[io_uring_prep_write_fixed]