io_uring_clone_buffers - Man Page

Clones registered buffers between rings

Synopsis

#include <liburing.h>

int io_uring_clone_buffers(struct io_uring *dst,
                           struct io_uring * src);

Description

The io_uring_clone_buffers(3) function clones registered buffers from the ring indicated by src to the ring indicated by dst . Upon successful completion of this operation, src and dst will have the same set of registered buffers. This operation is identical to performing a io_uring_register_buffers(3) operation on the dst ring, if the src ring previously had that same buffer registration operating done.

The dst ring must not have any buffers currently registered. If buffers are currently registered on the destination ring, they must be unregistered with io_uring_unregister_buffers(3) first.

On success io_uring_clone_buffers(3) returns 0. On failure, it returns -errno, specifically

-EBUSY

The destination ring already has buffers registered.

-ENOMEM

The kernel ran out of memory.

-ENXIO

The source ring doesn't have any buffers registered.

See Also

io_uring_register(2), io_uring_unregister_buffers(3), io_uring_register_buffers(3), io_uring_prep_read_fixed(3), io_uring_prep_write_fixed(3)

Referenced By

io_uring_clone_buffers(3), io_uring_register_buffers(3).

September 12, 2024 liburing-2.8 liburing Manual