#include <linux/aio_abi.h> /* Defines needed types */int io_setup(unsigned nr_events, aio_context_t *ctx_idp);
Note: There is no glibc wrapper for this system call; see NOTES.
The io_setup() system call creates an asynchronous I/O context suitable for concurrently processing nr_events operations. The ctx_idp argument 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, *ctx_idp is filled in with the resulting handle.
The asynchronous I/O system calls first appeared in Linux 2.5.
io_setup() is Linux-specific and should not be used in programs that are intended to be portable.
Note that the libaio wrapper function uses a different type (io_context_t *) for the ctx_idp argument. Note also that the libaio wrapper does not follow the usual C library conventions for indicating errors: on error it returns a negated error number (the negative of one of the values listed in ERRORS). If the system call is invoked via syscall(2) , then the return value follows the usual conventions for indicating an error: -1, with errno set to a (positive) value that indicates the error.