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
@ -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…
Reference in New Issue
Block a user