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

NAME

6       io_uring_register_buffers  -  register  buffers for fixed buffer opera‐
7       tions
8

SYNOPSIS

10       #include <liburing.h>
11
12       int io_uring_register_buffers(struct io_uring *ring,
13                                     const struct iovec *iovecs,
14                                     unsigned nr_iovecs);
15
16       int io_uring_register_buffers_sparse(struct io_uring *ring,
17                                     unsigned nr_iovecs);
18

DESCRIPTION

20       The io_uring_register_buffers(3) function registers nr_iovecs number of
21       buffers defined by the array iovecs belonging to the ring.
22
23       The  io_uring_register_buffers_sparse(3)  function  registers nr_iovecs
24       empty buffers belonging to the ring.  These buffers must be updated be‐
25       fore use, using eg io_uring_register_buffers_update_tag(3).
26
27       After  the caller has registered the buffers, they can be used with one
28       of the fixed buffers functions.
29
30       Registered buffers is an optimization that  is  useful  in  conjunction
31       with  O_DIRECT reads and writes, where it maps the specified range into
32       the kernel once when the buffer is registered rather than doing  a  map
33       and  unmap for each IO every time IO is performed to that region. Addi‐
34       tionally, it also avoids manipulating the  page  reference  counts  for
35       each IO.
36
37

RETURN VALUE

39       On   success  io_uring_register_buffers(3)  and  io_uring_register_buf‐
40       fers_sparse(3) return 0. On failure they return -errno.
41

SEE ALSO

43       io_uring_get_sqe(3),  io_uring_unregister_buffers(3),   io_uring_regis‐
44       ter_buf_ring(3),           io_uring_prep_read_fixed(3),          io_ur‐
45       ing_prep_write_fixed(3)
46
47
48
49liburing-2.1                   November 15, 2021  io_uring_register_buffers(3)
Impressum