io_queue_init(3)

NAME
io_queue_init - Initialize asynchronous io state machine

SYNOPSIS
#include <errno.h>

#include <libaio.h>

int io_queue_init(int maxevents, io_context_t *ctx);

DESCRIPTION
io_queue_init() attempts to create an aio context capable of receiving at least maxevents events. ctx must point to an aio context that already exists and must be initialized to 0 before the call. If the operation is successful, *cxtp is filled with the resulting handle.

RETURN VALUES
On success, io_queue_init() returns 0. Otherwise, -error is return, where error is one of the Exxx values defined in the ERRORS section.

ERRORS

EFAULT
    iocbs referenced data outside of the program's accessible address space.

EINVAL
    maxevents is <= 0 or ctx is an invalid memory location.

ENOSYS
    Not implemented.

EAGAIN
    maxevents > max_aio_reqs where max_aio_reqs is a tunable value.

SEE ALSO
io(3), io_cancel(3), io_fsync(3), io_getevents(3), io_prep_fsync(3), io_prep_pread(3), io_prep_pwrite(3), io_queue_release(3), io_queue_run(3), io_queue_wait(3), io_set_callback(3), io_submit(3), errno(3).