POSIX Asynchronous I/O support: other files

Updates to misc files to integrate AIO into the Cygwin source tree.
Much of it has to be done when adding any new syscalls.  There are
some updates to limits.h for AIO-specific limits.  And some doc mods.
This commit is contained in:
Mark Geisert 2018-07-23 22:31:59 -07:00 committed by Corinna Vinschen
parent 87253cbe38
commit 7f32efbf73
10 changed files with 44 additions and 26 deletions

View File

@ -249,6 +249,7 @@ MATH_OFILES:= \
DLL_OFILES:= \ DLL_OFILES:= \
advapi32.o \ advapi32.o \
aio.o \
arc4random_stir.o \ arc4random_stir.o \
assert.o \ assert.o \
autoload.o \ autoload.o \

View File

@ -195,6 +195,13 @@ acosh NOSIGFE
acoshf NOSIGFE acoshf NOSIGFE
acoshl NOSIGFE acoshl NOSIGFE
acosl NOSIGFE acosl NOSIGFE
aio_cancel SIGFE
aio_error NOSIGFE
aio_fsync SIGFE
aio_read SIGFE
aio_return NOSIGFE
aio_suspend SIGFE
aio_write SIGFE
alarm SIGFE alarm SIGFE
aligned_alloc SIGFE aligned_alloc SIGFE
alphasort NOSIGFE alphasort NOSIGFE
@ -843,6 +850,7 @@ lgammal_r NOSIGFE
lgetxattr SIGFE lgetxattr SIGFE
link SIGFE link SIGFE
linkat SIGFE linkat SIGFE
lio_listio SIGFE
listen = cygwin_listen SIGFE listen = cygwin_listen SIGFE
listxattr SIGFE listxattr SIGFE
llabs NOSIGFE llabs NOSIGFE

View File

@ -494,14 +494,16 @@ details. */
323: scanf %l[ conversion. 323: scanf %l[ conversion.
324: Export sigtimedwait. 324: Export sigtimedwait.
325: Export catclose, catgets, catopen. 325: Export catclose, catgets, catopen.
326: Export clearenv 326: Export clearenv.
327: Export pthread_tryjoin_np, pthread_timedjoin_np. 327: Export pthread_tryjoin_np, pthread_timedjoin_np.
328: Export aio_cancel, aio_error, aio_fsync, aio_read, aio_return,
aio_suspend, aio_write, lio_listio.
Note that we forgot to bump the api for ualarm, strtoll, strtoull, Note that we forgot to bump the api for ualarm, strtoll, strtoull,
sigaltstack, sethostname. */ sigaltstack, sethostname. */
#define CYGWIN_VERSION_API_MAJOR 0 #define CYGWIN_VERSION_API_MAJOR 0
#define CYGWIN_VERSION_API_MINOR 327 #define CYGWIN_VERSION_API_MINOR 328
/* There is also a compatibity version number associated with the shared memory /* There is also a compatibity version number associated with the shared memory
regions. It is incremented when incompatible changes are made to the shared regions. It is incremented when incompatible changes are made to the shared

View File

@ -147,7 +147,7 @@ details. */
/* Runtime Invariant Values */ /* Runtime Invariant Values */
/* Please note that symbolic names shall be ommited, on specific /* Please note that symbolic names shall be omitted, on specific
implementations where the corresponding value is equal to or greater implementations where the corresponding value is equal to or greater
than the stated minimum, but is unspecified. This indetermination than the stated minimum, but is unspecified. This indetermination
might depend on the amount of available memory space on a specific might depend on the amount of available memory space on a specific
@ -155,19 +155,16 @@ details. */
a specific instance shall be provided by the sysconf() function. */ a specific instance shall be provided by the sysconf() function. */
/* Maximum number of I/O operations in a single list I/O call supported by /* Maximum number of I/O operations in a single list I/O call supported by
the implementation. Not yet implemented. */ the implementation. */
#undef AIO_LISTIO_MAX #define AIO_LISTIO_MAX 32
/* #define AIO_LISTIO_MAX >= _POSIX_AIO_LISTIO_MAX */
/* Maximum number of outstanding asynchronous I/O operations supported by /* Maximum number of outstanding asynchronous I/O operations supported by
the implementation. Not yet implemented. */ the implementation. */
#undef AIO_MAX #define AIO_MAX 8
/* #define AIO_MAX >= _POSIX_AIO_MAX */
/* The maximum amount by which a process can decrease its asynchronous I/O /* The maximum amount by which a process can decrease its asynchronous I/O
priority level from its own scheduling priority. */ priority level from its own scheduling priority. Not yet implemented. */
#undef AIO_PRIO_DELTA_MAX #define AIO_PRIO_DELTA_MAX 0
/* #define AIO_PRIO_DELTA_MAX >= 0 */
/* Maximum number of bytes in arguments and environment passed in an exec /* Maximum number of bytes in arguments and environment passed in an exec
call. 32000 is the safe value used for Windows processes when called call. 32000 is the safe value used for Windows processes when called

View File

@ -3,6 +3,10 @@ What's new:
- New API: clearenv, pthread_tryjoin_np, pthread_timedjoin_np. - New API: clearenv, pthread_tryjoin_np, pthread_timedjoin_np.
- New APIs: aio_cancel, aio_error, aio_fsync, aio_read, aio_return,
aio_suspend, aio_write, lio_listio.
New header: <aio.h>.
What changed: What changed:
------------- -------------

View File

@ -541,9 +541,9 @@ static struct
{cons, {c:_POSIX_SHARED_MEMORY_OBJECTS}}, /* 31, _SC_SHARED_MEMORY_OBJECTS */ {cons, {c:_POSIX_SHARED_MEMORY_OBJECTS}}, /* 31, _SC_SHARED_MEMORY_OBJECTS */
{cons, {c:_POSIX_SYNCHRONIZED_IO}}, /* 32, _SC_SYNCHRONIZED_IO */ {cons, {c:_POSIX_SYNCHRONIZED_IO}}, /* 32, _SC_SYNCHRONIZED_IO */
{cons, {c:_POSIX_TIMERS}}, /* 33, _SC_TIMERS */ {cons, {c:_POSIX_TIMERS}}, /* 33, _SC_TIMERS */
{nsup, {c:0}}, /* 34, _SC_AIO_LISTIO_MAX */ {cons, {c:AIO_LISTIO_MAX}}, /* 34, _SC_AIO_LISTIO_MAX */
{nsup, {c:0}}, /* 35, _SC_AIO_MAX */ {cons, {c:AIO_MAX}}, /* 35, _SC_AIO_MAX */
{nsup, {c:0}}, /* 36, _SC_AIO_PRIO_DELTA_MAX */ {cons, {c:AIO_PRIO_DELTA_MAX}}, /* 36, _SC_AIO_PRIO_DELTA_MAX */
{nsup, {c:0}}, /* 37, _SC_DELAYTIMER_MAX */ {nsup, {c:0}}, /* 37, _SC_DELAYTIMER_MAX */
{cons, {c:PTHREAD_KEYS_MAX}}, /* 38, _SC_THREAD_KEYS_MAX */ {cons, {c:PTHREAD_KEYS_MAX}}, /* 38, _SC_THREAD_KEYS_MAX */
{cons, {c:PTHREAD_STACK_MIN}}, /* 39, _SC_THREAD_STACK_MIN */ {cons, {c:PTHREAD_STACK_MIN}}, /* 39, _SC_THREAD_STACK_MIN */

View File

@ -663,7 +663,7 @@ pthread::cancel ()
Required cancellation points: Required cancellation points:
* accept () * accept ()
o aio_suspend () * aio_suspend ()
* clock_nanosleep () * clock_nanosleep ()
* close () * close ()
* connect () * connect ()
@ -839,7 +839,7 @@ pthread::cancel ()
ioctl () ioctl ()
link () link ()
linkat () linkat ()
o lio_listio () * lio_listio ()
localtime () localtime ()
localtime_r () localtime_r ()
* lockf () * lockf ()

View File

@ -20,6 +20,12 @@ SO_RCVTIMEO and SO_SNDTIMEO socket options are now honored.
New API: clearenv, pthread_tryjoin_np, pthread_timedjoin_np. New API: clearenv, pthread_tryjoin_np, pthread_timedjoin_np.
</para></listitem> </para></listitem>
<listitem><para>
New APIs for POSIX Asynchronous I/O: aio_cancel, aio_error, aio_fsync,
aio_read, aio_return, aio_suspend, aio_write, lio_listio.
New Header: &lt;aio.h&gt;.
</para></listitem>
</itemizedlist> </itemizedlist>
</sect2> </sect2>

View File

@ -32,6 +32,13 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
acoshf acoshf
acoshl acoshl
acosl acosl
aio_cancel
aio_error
aio_fsync
aio_read
aio_return
aio_suspend
aio_write
alarm alarm
alphasort alphasort
asctime asctime
@ -491,6 +498,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
lgammal lgammal
link link
linkat linkat
lio_listio
listen listen
llabs llabs
lldiv lldiv
@ -1556,13 +1564,6 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
<sect1 id="std-notimpl"><title>NOT implemented system interfaces from the Single Unix Specification, Volume 4:</title> <sect1 id="std-notimpl"><title>NOT implemented system interfaces from the Single Unix Specification, Volume 4:</title>
<screen> <screen>
aio_cancel
aio_error
aio_fsync
aio_read
aio_return
aio_suspend
aio_write
endnetent endnetent
fattach fattach
fmtmsg fmtmsg
@ -1575,7 +1576,6 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
getnetent getnetent
getpmsg getpmsg
isastream isastream
lio_listio
mlockall mlockall
munlockall munlockall
posix_mem_offset posix_mem_offset

View File

@ -985,7 +985,7 @@ Trace system calls and signals\n\
wm 0x000400 (_STRACE_WM) Trace Windows msgs (enable _strace_wm).\n\ wm 0x000400 (_STRACE_WM) Trace Windows msgs (enable _strace_wm).\n\
sigp 0x000800 (_STRACE_SIGP) Trace signal and process handling.\n\ sigp 0x000800 (_STRACE_SIGP) Trace signal and process handling.\n\
minimal 0x001000 (_STRACE_MINIMAL) Very minimal strace output.\n\ minimal 0x001000 (_STRACE_MINIMAL) Very minimal strace output.\n\
pthread 0x002000 (_STRACE_PTHREAD) Pthread calls.\n\ pthread 0x002000 (_STRACE_PTHREAD) Pthread calls.\n\
exitdump 0x004000 (_STRACE_EXITDUMP) Dump strace cache on exit.\n\ exitdump 0x004000 (_STRACE_EXITDUMP) Dump strace cache on exit.\n\
system 0x008000 (_STRACE_SYSTEM) Serious error; goes to console and log.\n\ system 0x008000 (_STRACE_SYSTEM) Serious error; goes to console and log.\n\
nomutex 0x010000 (_STRACE_NOMUTEX) Don't use mutex for synchronization.\n\ nomutex 0x010000 (_STRACE_NOMUTEX) Don't use mutex for synchronization.\n\