summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorjasone <jasone@FreeBSD.org>2000-03-21 10:25:22 +0000
committerjasone <jasone@FreeBSD.org>2000-03-21 10:25:22 +0000
commitd7816647eff32abf1cc239b5db9d44b579c4de47 (patch)
treeb3982f1bfd059e7e2bdd6c47a0f6aa77c4675af2 /lib
parentd9acd189c2b97e0d82a5dc4bdd6edfae0315c852 (diff)
downloadFreeBSD-src-d7816647eff32abf1cc239b5db9d44b579c4de47.zip
FreeBSD-src-d7816647eff32abf1cc239b5db9d44b579c4de47.tar.gz
Add a man page for aio_waitcomplete(). Update the aio_cancel() man page to
reflect the fact that aio_cancel() works now. Submitted by: Christopher Sedore <cmsedore@maxwell.syr.edu>
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/sys/Makefile.inc2
-rw-r--r--lib/libc/sys/aio_cancel.267
-rw-r--r--lib/libc/sys/aio_waitcomplete.2129
3 files changed, 179 insertions, 19 deletions
diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc
index ebca7ed..37d42bb 100644
--- a/lib/libc/sys/Makefile.inc
+++ b/lib/libc/sys/Makefile.inc
@@ -75,7 +75,7 @@ ${SPSEUDOR}:
.if ${LIB} == "c"
MAN2+= _exit.2 accept.2 access.2 acct.2 adjtime.2 \
aio_cancel.2 aio_error.2 aio_read.2 aio_return.2 \
- aio_suspend.2 aio_write.2 \
+ aio_suspend.2 aio_waitcomplete.2 aio_write.2 \
bind.2 brk.2 chdir.2 chflags.2 \
chmod.2 chown.2 chroot.2 clock_gettime.2 close.2 \
connect.2 dup.2 execve.2 \
diff --git a/lib/libc/sys/aio_cancel.2 b/lib/libc/sys/aio_cancel.2
index 275c3eb..edec2e9 100644
--- a/lib/libc/sys/aio_cancel.2
+++ b/lib/libc/sys/aio_cancel.2
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 2, 1999
+.Dd January 19, 2000
.Dt AIO_CANCEL 2
.Os
.Sh NAME
@@ -33,21 +33,41 @@
.Sh SYNOPSIS
.Fd #include <aio.h>
.Ft int
-.Fn aio_cancel "int something" "struct aiocb * iocb"
+.Fn aio_cancel "int fildes" "struct aiocb * iocb"
.Sh DESCRIPTION
The
.Fn aio_cancel
-function is supposed to cancel the specified outstanding asynchronous
-I/O request.
+function cancels the outstanding asynchronous
+I/O request for the file descriptor specified in
+.Ar fildes .
+If
+.Ar iocb
+is specified, only that specific asynchronous I/O request is cancelled.
+.Pp
+Normal asynchronous notification occurs for cancelled requests. Requests
+complete with an error result of
+.Dv ECANCELED .
+.Sh RESTRICTIONS
+The
+.Fn aio_cancel
+function does not cancel asynchronous I/O requests for raw disk devices. The
.Fn aio_cancel
-is not implemented at this time, and always fails returning
-.Dv ENOSYS .
+function will always return
+.Dv AIO_NOTCANCELED
+for file descriptors associated with raw disk devices.
.Sh RETURN VALUES
-When
+The
.Fn aio_cancel
-inevitably fails, it returns
-.Dv ENOSYS
-to signify it is not supported.
+function returns -1 to indicate an error, or one of the following:
+.Bl -tag -width Dv
+.It Bq Dv AIO_CANCELED
+All outstanding requests meeting the criteria specified were cancelled.
+.It Bq Dv AIO_NOTCANCELED
+Some requests were not cancelled, status for the requests should be
+checked with aio_error(2).
+.It Bq Dv AIO_ALLDONE
+All of the requests meeting the criteria have finished.
+.El
.Sh SEE ALSO
.Xr aio_error 2 ,
.Xr aio_read 2 ,
@@ -55,24 +75,35 @@ to signify it is not supported.
.Xr aio_suspend 2 ,
.Xr aio_write 2 .
.Sh ERRORS
-The
+An error return from
.Fn aio_cancel
-function currently always fails, due to:
+indicates:
.Bl -tag -width Er
-.It Bq Er ENOSYS
-this operation is not implemented at this time.
+.It Bq Er EBADF
+.Ar fildes
+is an invalid file descriptor.
.El
.Sh STANDARDS
-.Nm
-fails to conform to the
+The
+.Fn aio_cancel
+function is expected to conform to the
.St -p1003.2
standard.
.Sh HISTORY
The
-.Nm
+.Fn aio_cancel
function first appeared in
.Fx 3.0 .
+The first functional implemenation of
+.Fn aio_cancel
+appeared in
+.Fx 4.0 .
.Sh AUTHORS
This
-manual page was written by
+manual page was originally written by
.An Wes Peters Aq wes@softweyr.com .
+.An Christopher M Sedore Aq cmsedore@maxwell.syr.edu
+updated it when
+.Fn aio_cancel
+was implemented for FreeBSD 4.0.
+
diff --git a/lib/libc/sys/aio_waitcomplete.2 b/lib/libc/sys/aio_waitcomplete.2
new file mode 100644
index 0000000..2447c90
--- /dev/null
+++ b/lib/libc/sys/aio_waitcomplete.2
@@ -0,0 +1,129 @@
+.\" Copyright (c) 1999 Christopher M Sedore.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd January 19, 2000
+.Dt AIO_WAITCOMPLETE 2
+.Os
+.Sh NAME
+.Nm aio_waitcomplete
+.Nd wait for the next completion of an aio request
+.Sh SYNOPSIS
+.Fd #include <aio.h>
+.Ft int
+.Fn aio_waitcomplete "struct aiocb **iocbp, struct timeval *timeout"
+.Sh DESCRIPTION
+The
+.Fn aio_waitcomplete
+function waits for completion of an asynchronous I/O request. Upon completion,
+.Fn aio_waitcomplete
+returns the result of the function and sets
+.Ar iocbp
+to point to the structure associated with the original request. If an
+asynchronous I/O request is completed before
+.Fn aio_waitcomplete
+is called, it returns immediately with the completed request.
+.Pp
+If
+.Ar timeout
+is a non-NULL pointer, it specifies a maximum interval to wait for a
+asynchronous I/O request to complete. If
+.Ar timeout
+is a NULL pointer,
+.Fn aio_waitcomplete
+waits indefinitely. To effect a poll, the
+.Ar timeout
+argument should be non-NULL, pointing to a zero-valued timeval structure.
+.Pp
+The
+.Fn aio_waitcomplete
+function also serves the function of
+.Fn aio_return ,
+thus
+.Fn aio_return
+should not be called for the control block returned in
+.Ar iocbp .
+.Sh RETURN VALUES
+If an asynchronous I/O request has completed,
+.Ar iocbp
+is set to point to the control block passed with the original request, and
+the status is returned as described in
+.Xr read 2 ,
+.Xr write 2 ,
+or
+.Xr fsync 2 .
+On failure,
+.Fn aio_waitcomplete
+returns
+.Dv -1 ,
+sets iocbp to
+.Dv NULL
+and
+.Dv errno
+to indicate the error condition.
+.Sh ERRORS
+The
+.Fn aio_waitcomplete
+function fails if:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The specified time limit is invalid.
+.It Bq Er EAGAIN
+The process has not yet called
+.Fn aio_read
+or
+.Fn aio_write .
+.It Bq Er EINTR
+A signal was delivered before the timeout expired and before any
+asynchronous I/O requests completed.
+.It Bq Er EWOULDBLOCK
+.It Bq Er EINPROGRESS
+The specified time limit expired before any asynchronous I/O requests
+completed.
+.El
+.Sh SEE ALSO
+.Xr aio_cancel 2 ,
+.Xr aio_error 2 ,
+.Xr aio_read 2 ,
+.Xr aio_return 2 ,
+.Xr aio_suspend 2 ,
+.Xr aio_write 2 ,
+.Xr fsync 2 ,
+.Xr read 2 ,
+.Xr write 2 .
+.Sh STANDARDS
+The
+.Fn aio_waitcomplete
+function is a FreeBSD-specific extension.
+.Sh HISTORY
+The
+.Fn aio_waitcomplete
+function first appeared in
+.Fx 4.0 .
+.Sh AUTHORS
+The
+.Fn aio_waitcomplete
+function and this manual page were written by
+.An Christopher M Sedore Aq cmsedore@maxwell.syr.edu .
OpenPOWER on IntegriCloud