mirror of
https://github.com/apache/nuttx.git
synced 2026-08-01 20:28:58 +00:00
libs/libc/aio: fix aio_cancel compatible issue
1. make the aio_cancel implementation can pass the ltp/open_posix_testsuite/aio_cancel testcases 2. the modification are referred to https://pubs.opengroup.org/onlinepubs/9699919799/functions/aio_cancel.html Signed-off-by: guoshichao <guoshichao@xiaomi.com>
This commit is contained in:
parent
cf6a134684
commit
d5f45dc33b
3 changed files with 19 additions and 4 deletions
|
|
@ -81,6 +81,12 @@
|
|||
|
||||
int aio_cancel(int fildes, FAR struct aiocb *aiocbp)
|
||||
{
|
||||
if (fildes < 0)
|
||||
{
|
||||
set_errno(EBADF);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
FAR struct aio_container_s *aioc;
|
||||
FAR struct aio_container_s *next;
|
||||
pid_t pid;
|
||||
|
|
@ -95,7 +101,7 @@ int aio_cancel(int fildes, FAR struct aiocb *aiocbp)
|
|||
|
||||
ret = AIO_ALLDONE;
|
||||
sched_lock();
|
||||
ret = aio_lock();
|
||||
aio_lock();
|
||||
|
||||
if (aiocbp)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -61,14 +61,15 @@
|
|||
#undef _POSIX_FSYNC
|
||||
#define _POSIX_SYNCHRONIZED_IO 1
|
||||
|
||||
#define _POSIX_VERSION 201712L
|
||||
#define _POSIX_PRIORITIZED_IO _POSIX_VERSION
|
||||
|
||||
#ifdef CONFIG_FS_AIO
|
||||
# define _POSIX_ASYNCHRONOUS_IO 1
|
||||
# define _POSIX_ASYNCHRONOUS_IO _POSIX_VERSION
|
||||
#else
|
||||
# undef _POSIX_ASYNCHRONOUS_IO
|
||||
#endif
|
||||
|
||||
#undef _POSIX_PRIORITIZED_IO
|
||||
|
||||
#ifdef CONFIG_SCHED_SPORADIC
|
||||
# define _POSIX_SPORADIC_SERVER 1
|
||||
# define _POSIX_THREAD_SPORADIC_SERVER 1
|
||||
|
|
|
|||
|
|
@ -215,6 +215,14 @@ long sysconf(int name)
|
|||
|
||||
switch (name)
|
||||
{
|
||||
#ifdef CONFIG_FS_AIO
|
||||
case _SC_ASYNCHRONOUS_IO:
|
||||
return _POSIX_ASYNCHRONOUS_IO;
|
||||
#endif
|
||||
case _SC_PRIORITIZED_IO:
|
||||
return _POSIX_PRIORITIZED_IO;
|
||||
case _SC_AIO_MAX:
|
||||
return _POSIX_AIO_MAX;
|
||||
case _SC_CLK_TCK:
|
||||
return CLOCKS_PER_SEC;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue