Page MenuHomeFreeBSD

aio_*(2): mention ENOSYS under ERRORS
ClosedPublic

Authored by ngie on Mar 25 2025, 10:00 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Sep 26, 2:31 PM
Unknown Object (File)
Fri, Sep 26, 7:27 AM
Unknown Object (File)
Thu, Sep 18, 8:48 PM
Unknown Object (File)
Sat, Sep 13, 1:53 PM
Unknown Object (File)
Wed, Sep 10, 2:27 AM
Unknown Object (File)
Mon, Sep 8, 9:56 AM
Unknown Object (File)
Aug 30 2025, 3:41 AM
Unknown Object (File)
Aug 29 2025, 7:27 PM
Subscribers

Details

Summary

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.

PR: 190942

Test Plan
  • igor/manlint pass with the changes (ignore the .Dd complaints):
% for i in aio_cancel.2 aio_error.2 aio_fsync.2 aio_mlock.2 aio_read.2 aio_return.2 aio_suspend.2 aio_waitcomplete.2 aio_write.2 ; do mandoc -Tlint  $PWD/$i; done
% for i in aio_cancel.2 aio_error.2 aio_fsync.2 aio_mlock.2 aio_read.2 aio_return.2 aio_suspend.2 aio_waitcomplete.2 aio_write.2 ; do igor $PWD/$i; done
aio_cancel.2:25:date not today, March 25, 2025:.Dd [January 19, 2000]
aio_error.2:25:date not today, March 25, 2025:.Dd [January 2, 2021]
aio_fsync.2:25:date not today, March 25, 2025:.Dd [November 15, 2023]
aio_mlock.2:25:date not today, March 25, 2025:.Dd [August 19, 2016]
aio_read.2:25:date not today, March 25, 2025:.Dd [February 1, 2024]
aio_return.2:25:date not today, March 25, 2025:.Dd [January 11, 2021]
aio_suspend.2:25:date not today, March 25, 2025:.Dd [October 23, 2017]
aio_waitcomplete.2:25:date not today, March 25, 2025:.Dd [March 21, 2016]
aio_write.2:25:date not today, March 25, 2025:.Dd [February 1, 2024]
  • The rendered output looks good after the change.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 63119
Build 60003: arc lint + arc unit

Event Timeline

ngie requested review of this revision.Mar 25 2025, 10:00 PM
ngie added a reviewer: ziaee.
ngie edited subscribers, added: linimon; removed: ziaee.

Thank you so much for doing this!

This revision is now accepted and ready to land.Mar 25 2025, 10:20 PM

Do you need to mention the SIGSYS issue? Unless you have blocked SIGSYS, any system call that returns ENOSYS will generate that signal.

In D49502#1128871, @imp wrote:

Do you need to mention the SIGSYS issue? Unless you have blocked SIGSYS, any system call that returns ENOSYS will generate that signal.

Good question. It looks like ENOSYS without SIGSYS is the standard in libsys:

% rg -l SIGSYS lib/libsys/*.2 | wc -l
       1
% rg -l ENOSYS lib/libsys/*.2 | wc -l
      24
In D49502#1128871, @imp wrote:

Do you need to mention the SIGSYS issue? Unless you have blocked SIGSYS, any system call that returns ENOSYS will generate that signal.

Good question. It looks like ENOSYS without SIGSYS is the standard in libsys:

% rg -l SIGSYS lib/libsys/*.2 | wc -l
       1
% rg -l ENOSYS lib/libsys/*.2 | wc -l
      24

Ok looks like intro covers it

In D49502#1128880, @imp wrote:
In D49502#1128871, @imp wrote:

Do you need to mention the SIGSYS issue? Unless you have blocked SIGSYS, any system call that returns ENOSYS will generate that signal.

Good question. It looks like ENOSYS without SIGSYS is the standard in libsys:

% rg -l SIGSYS lib/libsys/*.2 | wc -l
       1
% rg -l ENOSYS lib/libsys/*.2 | wc -l
      24

Ok looks like intro covers it

👍

This revision was automatically updated to reflect the committed changes.