nuttx/libs/libc/aio
Xiang Xiao 4cec501584 fs/aio: fix aio_read/aio_write return values per POSIX
Per POSIX, aio_read() and aio_write() must return -1 and set errno to
EINVAL when the request cannot be queued (aio_reqprio < 0,
aio_offset < 0), and the error must also be retrievable via
aio_error().  Conversely, when queuing fails with a bad file
descriptor, the error belongs to the asynchronous operation: the
functions must return 0 and report EBADF through aio_error().

- Merge the offset/reqprio checks and return ERROR with errno set,
  after storing the result in aio_result for aio_error().
- Drop the aio_fildes < 0 early return: a closed descriptor is now
  caught by fcntl()/aio_queue() and reported through aio_result with
  the function returning OK.
- aio_error(): report -EINVAL (failed validation) through errno
  instead of returning it as an error value.

Signed-off-by: tengshuangshuang <tengshuangshuang@xiaomi.com>
2026-09-14 17:12:49 -03:00
..
aio.h
aio_error.c fs/aio: fix aio_read/aio_write return values per POSIX 2026-09-14 17:12:49 -03:00
aio_return.c
aio_suspend.c
CMakeLists.txt fs/aio: move lio_listio() to fs/aio 2026-09-14 17:12:49 -03:00
Make.defs fs/aio: move lio_listio() to fs/aio 2026-09-14 17:12:49 -03:00