git: d97e44784bb5 - main - aio_*(2): mention ENOSYS under ERRORS
Date: Wed, 26 Mar 2025 04:50:46 UTC
The branch main has been updated by ngie: URL: https://cgit.FreeBSD.org/src/commit/?id=d97e44784bb5a510b7af7593c86cfbcff73855c4 commit d97e44784bb5a510b7af7593c86cfbcff73855c4 Author: Enji Cooper <ngie@FreeBSD.org> AuthorDate: 2025-03-25 21:57:52 +0000 Commit: Enji Cooper <ngie@FreeBSD.org> CommitDate: 2025-03-26 04:49:33 +0000 aio_*(2): mention ENOSYS under ERRORS ENOSYS can occur if aio(4) is not loaded in the kernel. Document this behavior so consumers on FreeBSD can better understand that this is a possible scenario. Clean up the manpages slightly while here: - Sort `ERRORS` by errno(3). - Use `.Fx` instead of `FreeBSD`. MFC after: 2 weeks Reviewed by: ziaee PR: 190942 Differential Revision: https://reviews.freebsd.org/D49502 --- lib/libsys/aio_cancel.2 | 7 +++++++ lib/libsys/aio_error.2 | 7 +++++++ lib/libsys/aio_fsync.2 | 7 +++++++ lib/libsys/aio_mlock.2 | 7 +++++++ lib/libsys/aio_read.2 | 11 ++++++++++- lib/libsys/aio_return.2 | 7 +++++++ lib/libsys/aio_suspend.2 | 7 +++++++ lib/libsys/aio_waitcomplete.2 | 11 +++++++++-- lib/libsys/aio_write.2 | 11 ++++++++++- 9 files changed, 71 insertions(+), 4 deletions(-) diff --git a/lib/libsys/aio_cancel.2 b/lib/libsys/aio_cancel.2 index 42d074054716..928a8b325e5f 100644 --- a/lib/libsys/aio_cancel.2 +++ b/lib/libsys/aio_cancel.2 @@ -80,6 +80,13 @@ The .Fa fildes argument is an invalid file descriptor. +.It Bq Er ENOSYS +The +.Fn aio_cancel +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .El .Sh SEE ALSO .Xr aio_error 2 , diff --git a/lib/libsys/aio_error.2 b/lib/libsys/aio_error.2 index 69eb7cd90ee2..2579d2f33052 100644 --- a/lib/libsys/aio_error.2 +++ b/lib/libsys/aio_error.2 @@ -72,6 +72,13 @@ The .Fa iocb argument does not reference an outstanding asynchronous I/O request. +.It Bq Er ENOSYS +The +.Fn aio_error +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .El .Sh SEE ALSO .Xr aio_cancel 2 , diff --git a/lib/libsys/aio_fsync.2 b/lib/libsys/aio_fsync.2 index 46fc5d95bcfd..0b863773eaf2 100644 --- a/lib/libsys/aio_fsync.2 +++ b/lib/libsys/aio_fsync.2 @@ -136,6 +136,13 @@ argument is not a valid descriptor. .It Bq Er EINVAL This implementation does not support synchronized I/O for this file. +.It Bq Er ENOSYS +The +.Fn aio_fsync +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .El .Pp If the request is successfully enqueued, but subsequently cancelled diff --git a/lib/libsys/aio_mlock.2 b/lib/libsys/aio_mlock.2 index 02d54304c631..f89ad10936aa 100644 --- a/lib/libsys/aio_mlock.2 +++ b/lib/libsys/aio_mlock.2 @@ -98,6 +98,13 @@ The request was not queued because of system resource limitations. The asynchronous notification method in .Fa iocb->aio_sigevent.sigev_notify is invalid or not supported. +.It Bq Er ENOSYS +The +.Fn aio_mlock +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .El .Pp If the request is successfully enqueued, but subsequently cancelled diff --git a/lib/libsys/aio_read.2 b/lib/libsys/aio_read.2 index 3a9601754c06..811d0b234168 100644 --- a/lib/libsys/aio_read.2 +++ b/lib/libsys/aio_read.2 @@ -173,6 +173,13 @@ points outside the process's allocated address space. The asynchronous notification method in .Fa iocb->aio_sigevent.sigev_notify is invalid or not supported. +.It Bq Er ENOSYS +The +.Fn aio_read +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .It Bq Er EOPNOTSUPP Asynchronous read operations on the file descriptor .Fa iocb->aio_fildes @@ -263,7 +270,9 @@ The .Fn aio_read2 and .Fn aio_readv -system calls are FreeBSD extensions, +system calls are +.Fx +extensions, and should not be used in portable code. .Sh HISTORY The diff --git a/lib/libsys/aio_return.2 b/lib/libsys/aio_return.2 index 499b85ef20d8..49e1abf201ec 100644 --- a/lib/libsys/aio_return.2 +++ b/lib/libsys/aio_return.2 @@ -79,6 +79,13 @@ The I/O operation was submitted with and the value of the .Fa aio_lio_opcode is invalid. +.It Bq Er ENOSYS +The +.Fn aio_return +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .El .Sh SEE ALSO .Xr aio_cancel 2 , diff --git a/lib/libsys/aio_suspend.2 b/lib/libsys/aio_suspend.2 index c46b0292c34e..ebc3c15d059f 100644 --- a/lib/libsys/aio_suspend.2 +++ b/lib/libsys/aio_suspend.2 @@ -89,6 +89,13 @@ contains more asynchronous I/O requests than the variable, or at least one of the requests is not valid. .It Bq Er EINTR the suspend was interrupted by a signal. +.It Bq Er ENOSYS +The +.Fn aio_suspend +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .El .Sh SEE ALSO .Xr aio_cancel 2 , diff --git a/lib/libsys/aio_waitcomplete.2 b/lib/libsys/aio_waitcomplete.2 index 1f20eca942ab..0a38155d7c75 100644 --- a/lib/libsys/aio_waitcomplete.2 +++ b/lib/libsys/aio_waitcomplete.2 @@ -91,8 +91,6 @@ The .Fn aio_waitcomplete system call 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 @@ -101,6 +99,15 @@ or .It Bq Er EINTR A signal was delivered before the timeout expired and before any asynchronous I/O requests completed. +.It Bq Er EINVAL +The specified time limit is invalid. +.It Bq Er ENOSYS +The +.Fn aio_waitcomplete +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .It Bq Er EWOULDBLOCK .It Bq Er EINPROGRESS The specified time limit expired before any asynchronous I/O requests diff --git a/lib/libsys/aio_write.2 b/lib/libsys/aio_write.2 index f59406b8ab36..a7108a87e378 100644 --- a/lib/libsys/aio_write.2 +++ b/lib/libsys/aio_write.2 @@ -182,6 +182,13 @@ points outside the process's allocated address space. The asynchronous notification method in .Fa iocb->aio_sigevent.sigev_notify is invalid or not supported. +.It Bq Er ENOSYS +The +.Fn aio_write +system call is not supported. +This can occur if +.Xr aio 4 +support is not present. .It Bq Er EOPNOTSUPP Asynchronous write operations on the file descriptor .Fa iocb->aio_fildes @@ -265,7 +272,9 @@ The .Fn aio_write2 and .Fn aio_writev -system calls are FreeBSD extensions, +system calls are +.Fx +extensions, and should not be used in portable code. .Sh HISTORY The