diff options
Diffstat (limited to 'upstream/debian-bookworm/man2/io_setup.2')
-rw-r--r-- | upstream/debian-bookworm/man2/io_setup.2 | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/upstream/debian-bookworm/man2/io_setup.2 b/upstream/debian-bookworm/man2/io_setup.2 new file mode 100644 index 00000000..cf591725 --- /dev/null +++ b/upstream/debian-bookworm/man2/io_setup.2 @@ -0,0 +1,116 @@ +.\" Copyright (C) 2003 Free Software Foundation, Inc. +.\" +.\" SPDX-License-Identifier: GPL-1.0-or-later +.\" +.TH io_setup 2 2023-02-05 "Linux man-pages 6.03" +.SH NAME +io_setup \- create an asynchronous I/O context +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.PP +Alternatively, Asynchronous I/O library +.RI ( libaio ", " \-laio ); +see NOTES. +.SH SYNOPSIS +.nf +.BR "#include <linux/aio_abi.h>" " /* Defines needed types */" +.PP +.BI "long io_setup(unsigned int " nr_events ", aio_context_t *" ctx_idp ); +.fi +.PP +.IR Note : +There is no glibc wrapper for this system call; see NOTES. +.SH DESCRIPTION +.IR Note : +this page describes the raw Linux system call interface. +The wrapper function provided by +.I libaio +uses a different type for the +.I ctx_idp +argument. +See NOTES. +.PP +The +.BR io_setup () +system call +creates an asynchronous I/O context suitable for concurrently processing +\fInr_events\fP operations. +The +.I 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, \fI*ctx_idp\fP is filled in +with the resulting handle. +.SH RETURN VALUE +On success, +.BR io_setup () +returns 0. +For the failure return, see NOTES. +.SH ERRORS +.TP +.B EAGAIN +The specified \fInr_events\fP exceeds the limit of available events, +as defined in +.I /proc/sys/fs/aio\-max\-nr +(see +.BR proc (5)). +.TP +.B EFAULT +An invalid pointer is passed for \fIctx_idp\fP. +.TP +.B EINVAL +\fIctx_idp\fP is not initialized, or the specified \fInr_events\fP +exceeds internal limits. +\fInr_events\fP should be greater than 0. +.TP +.B ENOMEM +Insufficient kernel resources are available. +.TP +.B ENOSYS +.BR io_setup () +is not implemented on this architecture. +.SH VERSIONS +The asynchronous I/O system calls first appeared in Linux 2.5. +.SH STANDARDS +.BR io_setup () +is Linux-specific and should not be used in programs +that are intended to be portable. +.SH NOTES +glibc does not provide a wrapper for this system call. +You could invoke it using +.BR syscall (2). +But instead, you probably want to use the +.BR io_setup () +wrapper function provided by +.\" http://git.fedorahosted.org/git/?p=libaio.git +.IR libaio . +.PP +Note that the +.I libaio +wrapper function uses a different type +.RI ( "io_context_t\ *" ) +.\" But glibc is confused, since <libaio.h> uses 'io_context_t' to declare +.\" the system call. +for the +.I ctx_idp +argument. +Note also that the +.I 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 +.BR syscall (2), +then the return value follows the usual conventions for +indicating an error: \-1, with +.I errno +set to a (positive) value that indicates the error. +.SH SEE ALSO +.BR io_cancel (2), +.BR io_destroy (2), +.BR io_getevents (2), +.BR io_submit (2), +.BR aio (7) +.\" .SH AUTHOR +.\" Kent Yoder. |