From 2e04e9516e6e560e8c534e00df1d57eab6e6a174 Mon Sep 17 00:00:00 2001 From: midipix Date: Tue, 14 Aug 2018 19:59:20 -0400 Subject: socket interfaces: async i/o completion: mark nt_iosb as volatile. --- include/ntapi/nt_socket.h | 33 ++++++++++++----------- src/socket/ntapi_sc_accept.c | 2 +- src/socket/ntapi_sc_bind_v1.c | 4 +-- src/socket/ntapi_sc_bind_v2.c | 4 +-- src/socket/ntapi_sc_connect_v1.c | 4 +-- src/socket/ntapi_sc_connect_v2.c | 4 +-- src/socket/ntapi_sc_getpeername_v1.c | 4 +-- src/socket/ntapi_sc_getpeername_v2.c | 4 +-- src/socket/ntapi_sc_getsockname_v1.c | 4 +-- src/socket/ntapi_sc_getsockname_v2.c | 4 +-- src/socket/ntapi_sc_getsockopt.c | 2 +- src/socket/ntapi_sc_listen.c | 4 +-- src/socket/ntapi_sc_recv.c | 4 +-- src/socket/ntapi_sc_send.c | 4 +-- src/socket/ntapi_sc_server_accept_connection_v1.c | 4 +-- src/socket/ntapi_sc_server_accept_connection_v2.c | 4 +-- src/socket/ntapi_sc_server_duplicate_socket.c | 4 +-- src/socket/ntapi_sc_setsockopt.c | 4 +-- src/socket/ntapi_sc_shutdown.c | 4 +-- src/socket/ntapi_sc_wait.c | 7 +++-- 20 files changed, 57 insertions(+), 51 deletions(-) diff --git a/include/ntapi/nt_socket.h b/include/ntapi/nt_socket.h index 4c32132..b3a1f69 100644 --- a/include/ntapi/nt_socket.h +++ b/include/ntapi/nt_socket.h @@ -446,7 +446,7 @@ typedef int32_t __cdecl ntapi_sc_socket( __in uint32_t protocol, __in uint32_t desired_access __optional, __in nt_sqos * sqos __optional, - __out nt_io_status_block * iosb __optional); + __out nt_iosb * iosb __optional); typedef int32_t __cdecl ntapi_sc_bind( @@ -456,14 +456,14 @@ typedef int32_t __cdecl ntapi_sc_bind( __in uint32_t afdflags __optional, __in uint32_t srvflags __optional, __out nt_sockaddr * sockaddr __optional, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_listen( __in nt_socket * hssocket, __in uint32_t backlog, __in uint32_t afdflags __optional, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_accept( @@ -473,7 +473,7 @@ typedef int32_t __cdecl ntapi_sc_accept( __out nt_socket * hssock_dedicated, __in uintptr_t afdflags __optional, __in uintptr_t tdiflags __optional, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_connect( @@ -481,7 +481,7 @@ typedef int32_t __cdecl ntapi_sc_connect( __in nt_sockaddr * addr, __in uintptr_t addrlen, __in uintptr_t service_flags __optional, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_send( @@ -493,7 +493,7 @@ typedef int32_t __cdecl ntapi_sc_send( __in size_t addrlen __optional, __in uintptr_t afdflags __optional, __in uintptr_t tdiflags __optional, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_recv( @@ -504,38 +504,38 @@ typedef int32_t __cdecl ntapi_sc_recv( __in nt_sockaddr_reply * raddr __optional, __in uintptr_t afdflags __optional, __in uintptr_t tdiflags __optional, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_shutdown( __in nt_socket * hssocket, __in uint32_t afdhow, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_getsockname( __in nt_socket * hssocket, __in nt_sockaddr * addr, __in uint16_t * addrlen, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_getpeername( __in nt_socket * hssocket, __in nt_sockaddr * addr, __in uint16_t * addrlen, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_server_accept_connection( __in nt_socket * hssocket, __out nt_afd_accept_info * accept_info, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_server_duplicate_socket( __in nt_socket * hssock_listen, __in nt_socket * hssock_dedicated, __in nt_afd_accept_info * accept_info, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_setsockopt( @@ -544,7 +544,7 @@ typedef int32_t __cdecl ntapi_sc_setsockopt( __in int32_t optname, __in const void * optval, __in uint32_t optlen, - __out nt_io_status_block * iosb __optional); + __out nt_iosb volatile * iosb __optional); typedef int32_t __cdecl ntapi_sc_getsockopt( @@ -553,9 +553,12 @@ typedef int32_t __cdecl ntapi_sc_getsockopt( __in int32_t optname, __out void * optval, __in uint32_t optlen, - __out nt_io_status_block * iosb); + __out nt_iosb volatile * iosb); -typedef int32_t __cdecl ntapi_sc_wait(nt_socket * hssocket, nt_iosb * iosb, nt_timeout * timeout); +typedef int32_t __cdecl ntapi_sc_wait( + __in nt_socket * hssocket, + __out nt_iosb volatile * iosb, + __in nt_timeout * timeout); #endif diff --git a/src/socket/ntapi_sc_accept.c b/src/socket/ntapi_sc_accept.c index f4fa0d8..1920941 100644 --- a/src/socket/ntapi_sc_accept.c +++ b/src/socket/ntapi_sc_accept.c @@ -26,7 +26,7 @@ int32_t __cdecl __ntapi_sc_accept( __out nt_socket * hssock_dedicated, __in uintptr_t afdflags __optional, __in uintptr_t tdiflags __optional, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { int32_t status; diff --git a/src/socket/ntapi_sc_bind_v1.c b/src/socket/ntapi_sc_bind_v1.c index fd7abd5..3e38993 100644 --- a/src/socket/ntapi_sc_bind_v1.c +++ b/src/socket/ntapi_sc_bind_v1.c @@ -38,9 +38,9 @@ int32_t __cdecl __ntapi_sc_bind_v1( __in uint32_t afdflags __optional, __in uint32_t srvflags __optional, __out nt_sockaddr * sockaddr __optional, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_io_status_block siosb; + nt_iosb volatile siosb; nt_afd_bind_msg afd_bind_req; nt_afd_bind_msg afd_bind_rep; diff --git a/src/socket/ntapi_sc_bind_v2.c b/src/socket/ntapi_sc_bind_v2.c index 1014150..cf463c0 100644 --- a/src/socket/ntapi_sc_bind_v2.c +++ b/src/socket/ntapi_sc_bind_v2.c @@ -35,9 +35,9 @@ int32_t __cdecl __ntapi_sc_bind_v2( __in uint32_t afdflags __optional, __in uint32_t srvflags __optional, __out nt_sockaddr * sockaddr __optional, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_io_status_block siosb; + nt_iosb volatile siosb; nt_afd_bind_request afd_bind_req; nt_afd_bind_reply afd_bind_rep; diff --git a/src/socket/ntapi_sc_connect_v1.c b/src/socket/ntapi_sc_connect_v1.c index d61b45e..89050a5 100644 --- a/src/socket/ntapi_sc_connect_v1.c +++ b/src/socket/ntapi_sc_connect_v1.c @@ -39,9 +39,9 @@ int32_t __cdecl __ntapi_sc_connect_v1( __in nt_sockaddr * addr, __in uintptr_t addrlen, __in uintptr_t service_flags __optional, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_io_status_block siosb; + nt_iosb volatile siosb; nt_afd_connect_request afd_connect_req; _addr_memcpy * src; diff --git a/src/socket/ntapi_sc_connect_v2.c b/src/socket/ntapi_sc_connect_v2.c index e798661..18ac826 100644 --- a/src/socket/ntapi_sc_connect_v2.c +++ b/src/socket/ntapi_sc_connect_v2.c @@ -30,9 +30,9 @@ int32_t __cdecl __ntapi_sc_connect_v2( __in nt_sockaddr * addr, __in uintptr_t addrlen, __in uintptr_t service_flags __optional, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_io_status_block siosb; + nt_iosb volatile siosb; nt_afd_connect_request afd_connect_req; _addr_memcpy * src; diff --git a/src/socket/ntapi_sc_getpeername_v1.c b/src/socket/ntapi_sc_getpeername_v1.c index a560aec..676a74e 100644 --- a/src/socket/ntapi_sc_getpeername_v1.c +++ b/src/socket/ntapi_sc_getpeername_v1.c @@ -35,9 +35,9 @@ int32_t __cdecl __ntapi_sc_getpeername_v1( __in nt_socket * hssocket, __in nt_sockaddr * addr, __in uint16_t * addrlen, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_io_status_block siosb; + nt_iosb volatile siosb; nt_afd_server_socket_name_info sock_name_info; struct __addr_memcpy * asrc; diff --git a/src/socket/ntapi_sc_getpeername_v2.c b/src/socket/ntapi_sc_getpeername_v2.c index c91b3dd..9f383f9 100644 --- a/src/socket/ntapi_sc_getpeername_v2.c +++ b/src/socket/ntapi_sc_getpeername_v2.c @@ -15,9 +15,9 @@ int32_t __cdecl __ntapi_sc_getpeername_v2( __in nt_socket * hssocket, __in nt_sockaddr * addr, __in uint16_t * addrlen, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_iosb siosb; + nt_iosb volatile siosb; iosb = iosb ? iosb : &siosb; diff --git a/src/socket/ntapi_sc_getsockname_v1.c b/src/socket/ntapi_sc_getsockname_v1.c index c6bf330..bbc99d3 100644 --- a/src/socket/ntapi_sc_getsockname_v1.c +++ b/src/socket/ntapi_sc_getsockname_v1.c @@ -35,9 +35,9 @@ int32_t __cdecl __ntapi_sc_getsockname_v1( __in nt_socket * hssocket, __in nt_sockaddr * addr, __in uint16_t * addrlen, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_io_status_block siosb; + nt_iosb volatile siosb; nt_afd_server_socket_name_info sock_name_info; struct __addr_memcpy * asrc; diff --git a/src/socket/ntapi_sc_getsockname_v2.c b/src/socket/ntapi_sc_getsockname_v2.c index 25d867f..fe94e7e 100644 --- a/src/socket/ntapi_sc_getsockname_v2.c +++ b/src/socket/ntapi_sc_getsockname_v2.c @@ -15,9 +15,9 @@ int32_t __cdecl __ntapi_sc_getsockname_v2( __in nt_socket * hssocket, __in nt_sockaddr * addr, __in uint16_t * addrlen, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_iosb siosb; + nt_iosb volatile siosb; iosb = iosb ? iosb : &siosb; diff --git a/src/socket/ntapi_sc_getsockopt.c b/src/socket/ntapi_sc_getsockopt.c index d4e0a42..fa2233f 100644 --- a/src/socket/ntapi_sc_getsockopt.c +++ b/src/socket/ntapi_sc_getsockopt.c @@ -17,7 +17,7 @@ int32_t __cdecl __ntapi_sc_getsockopt( __in int32_t optname, __out void * optval, __in uint32_t optlen, - __out nt_io_status_block * iosb) + __out nt_iosb volatile * iosb) { nt_afd_sockopt_info afd_sockopt; diff --git a/src/socket/ntapi_sc_listen.c b/src/socket/ntapi_sc_listen.c index 8e68b6a..a8d437e 100644 --- a/src/socket/ntapi_sc_listen.c +++ b/src/socket/ntapi_sc_listen.c @@ -15,10 +15,10 @@ int32_t __cdecl __ntapi_sc_listen( __in nt_socket * hssocket, __in uint32_t backlog, __in uint32_t afdflags __optional, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { nt_afd_listen_info afd_listen; - nt_io_status_block siosb; + nt_iosb volatile siosb; iosb = iosb ? iosb : &siosb; diff --git a/src/socket/ntapi_sc_recv.c b/src/socket/ntapi_sc_recv.c index a45eb17..2566a6d 100644 --- a/src/socket/ntapi_sc_recv.c +++ b/src/socket/ntapi_sc_recv.c @@ -25,11 +25,11 @@ int32_t __cdecl __ntapi_sc_recv( __in nt_sockaddr_reply * raddr __optional, __in uintptr_t afdflags __optional, __in uintptr_t tdiflags __optional, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { nt_afd_buffer afd_buffer; nt_afd_recv_udp_info afd_recv; - nt_io_status_block siosb; + nt_iosb volatile siosb; iosb = iosb ? iosb : &siosb; diff --git a/src/socket/ntapi_sc_send.c b/src/socket/ntapi_sc_send.c index f987cad..10f5ab6 100644 --- a/src/socket/ntapi_sc_send.c +++ b/src/socket/ntapi_sc_send.c @@ -34,11 +34,11 @@ int32_t __cdecl __ntapi_sc_send( __in size_t addrlen __optional, __in uintptr_t afdflags __optional, __in uintptr_t tdiflags __optional, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { nt_afd_buffer afd_buffer; nt_afd_send_udp_info afd_send; - nt_io_status_block siosb; + nt_iosb volatile siosb; if (addrlen && (addrlen != sizeof(nt_sockaddr_in4)) && (addrlen != sizeof(nt_sockaddr_in6))) diff --git a/src/socket/ntapi_sc_server_accept_connection_v1.c b/src/socket/ntapi_sc_server_accept_connection_v1.c index 1dce7b5..6dd2931 100644 --- a/src/socket/ntapi_sc_server_accept_connection_v1.c +++ b/src/socket/ntapi_sc_server_accept_connection_v1.c @@ -32,9 +32,9 @@ typedef struct __addr_memcpy { int32_t __cdecl __ntapi_sc_server_accept_connection_v1( __in nt_socket * hssocket, __out nt_afd_accept_info * accept_info, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_io_status_block siosb; + nt_iosb volatile siosb; nt_afd_server_accept_info accept_info_buffer; _addr_memcpy * asrc; diff --git a/src/socket/ntapi_sc_server_accept_connection_v2.c b/src/socket/ntapi_sc_server_accept_connection_v2.c index 715e77e..36dfcaa 100644 --- a/src/socket/ntapi_sc_server_accept_connection_v2.c +++ b/src/socket/ntapi_sc_server_accept_connection_v2.c @@ -19,9 +19,9 @@ typedef struct _nt_afd_server_accept_info { int32_t __cdecl __ntapi_sc_server_accept_connection_v2( __in nt_socket * hssocket, __out nt_afd_accept_info * accept_info, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { - nt_io_status_block siosb; + nt_iosb volatile siosb; iosb = iosb ? iosb : &siosb; diff --git a/src/socket/ntapi_sc_server_duplicate_socket.c b/src/socket/ntapi_sc_server_duplicate_socket.c index b8f3e9f..6331be9 100644 --- a/src/socket/ntapi_sc_server_duplicate_socket.c +++ b/src/socket/ntapi_sc_server_duplicate_socket.c @@ -15,10 +15,10 @@ int32_t __cdecl __ntapi_sc_server_duplicate_socket( __in nt_socket * hssock_listen, __in nt_socket * hssock_dedicated, __in nt_afd_accept_info * accept_info, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { nt_afd_duplicate_info duplicate_info; - nt_io_status_block siosb; + nt_iosb volatile siosb; iosb = iosb ? iosb : &siosb; diff --git a/src/socket/ntapi_sc_setsockopt.c b/src/socket/ntapi_sc_setsockopt.c index 153a2a8..1e010bd 100644 --- a/src/socket/ntapi_sc_setsockopt.c +++ b/src/socket/ntapi_sc_setsockopt.c @@ -17,10 +17,10 @@ int32_t __cdecl __ntapi_sc_setsockopt( __in int32_t optname, __in const void * optval, __in uint32_t optlen, - __out nt_io_status_block * iosb) + __out nt_iosb volatile * iosb) { nt_afd_sockopt_info afd_sockopt; - nt_io_status_block siosb; + nt_iosb volatile siosb; iosb = iosb ? iosb : &siosb; diff --git a/src/socket/ntapi_sc_shutdown.c b/src/socket/ntapi_sc_shutdown.c index 51379d3..84370e0 100644 --- a/src/socket/ntapi_sc_shutdown.c +++ b/src/socket/ntapi_sc_shutdown.c @@ -14,10 +14,10 @@ int32_t __cdecl __ntapi_sc_shutdown( __in nt_socket * hssocket, __in uint32_t afdhow, - __out nt_io_status_block * iosb __optional) + __out nt_iosb volatile * iosb __optional) { nt_afd_disconnect_info afd_disconnect; - nt_io_status_block siosb; + nt_iosb volatile siosb; iosb = iosb ? iosb : &siosb; diff --git a/src/socket/ntapi_sc_wait.c b/src/socket/ntapi_sc_wait.c index d078121..5d207e2 100644 --- a/src/socket/ntapi_sc_wait.c +++ b/src/socket/ntapi_sc_wait.c @@ -10,9 +10,12 @@ #include #include "ntapi_impl.h" -int32_t __cdecl __ntapi_sc_wait(nt_socket * hssocket, nt_iosb * iosb, nt_timeout * timeout) +int32_t __cdecl __ntapi_sc_wait( + nt_socket * hssocket, + nt_iosb volatile * iosb, + nt_timeout * timeout) { - nt_iosb cancel; + nt_iosb cancel; timeout = (timeout && timeout->quad) ? timeout -- cgit v1.2.3