IO_SETUP(2)

NAME
io_setup - Create an asynchronous I/O context

SYNOPSIS
#include <libaio.h>

int io_setup (int maxevents, io_context_t *ctxp);

DESCRIPTION

io_setup creates an asynchronous I/O context capable of receiving at least maxevents. ctxp must not point to an AIO context that already exists, and must be initialized to 0 prior to the call. On successful creation of the AIO context, *ctxp is filled in with the resulting handle.

RETURN VALUE

io_setup returns 0 on success; otherwise, one of the errors listed in the "Errors" section is returned.

ERRORS

EINVAL
    ctxp is not initialized, or the specified maxevents exceeds internal limits. maxevents should be greater than 0.

EFAULT
    An invalid pointer is passed for ctxp.

ENOMEM
    Insufficient kernel resources are available.

EAGAIN
    The specified maxevents exceeds the user's limit of available events.

ENOSYS
    io_setup is not implemented on this architecture.

CONFORMING TO

io_setup is Linux specific and should not be used in programs that are intended to be portable.

VERSIONS

The asynchronous I/O system calls first appeared in Linux 2.5, August 2002.

SEE ALSO

io_destroy(2), io_getevents(2), io_submit(2), io_cancel(2).

NOTES

The asynchronous I/O system calls were written by Benjamin LaHaise.

AUTHOR
Kent Yoder.