/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos72Q src/bos/kernext/iocp/iocp.h 1.7.1.1 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* Restricted Materials of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 1999,2019 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ #define IOCP_H_SCCSID "@(#)86 1.7.1.1 src/bos/kernext/iocp/iocp.h, sysxiocp, bos72Q, q2019_13A4 2/6/19 00:42:40" #include #ifndef _iocp_types #define _iocp_types #ifdef __cplusplus extern "C" { #endif typedef int DWORD; typedef int SOCKET; typedef DWORD * LPDWORD; typedef int HANDLE; typedef void * PVOID; typedef void * LPVOID; typedef const void * LPCVOID; typedef boolean_t BOOL; #endif #define INVALID_HANDLE_VALUE ((HANDLE)(-1)) #define INFINITE (-1) typedef struct __ovl { DWORD Internal; DWORD InternalHigh; DWORD Offset; DWORD OffsetHigh; HANDLE hEvent; } OVERLAPPED; typedef OVERLAPPED * LPOVERLAPPED; struct gmcs { DWORD transfer_count; DWORD completion_key; LPOVERLAPPED overlapped; DWORD errorno; }; #ifdef _KERNEL struct gmcs32 { DWORD transfer_count; DWORD completion_key; DWORD overlapped; DWORD errorno; }; struct gmcs64 { DWORD transfer_count; DWORD completion_key; ptr64 overlapped; DWORD errorno; }; #endif #define GMCS_NMAX 4096 /* max for nmax below */ /* beware: stack space allocation */ int GetMultipleCompletionStatus ( HANDLE completion_port, DWORD nmin, DWORD nmax, DWORD timeout, struct gmcs results[] ); #ifdef __FULL_PROTO HANDLE CreateIoCompletionPort ( HANDLE fd, HANDLE completion_port, DWORD completion_key, DWORD thread_count ); BOOL GetQueuedCompletionStatus ( HANDLE completion_port, LPDWORD transfer_count, LPDWORD completion_key, LPOVERLAPPED * overlapped, DWORD timeout ); BOOL PostQueuedCompletionStatus ( HANDLE completion_port, DWORD transfer_count, DWORD completion_key, LPOVERLAPPED overlapped ); BOOL ReadFile ( HANDLE fd, LPVOID buf, DWORD read_count, LPDWORD amount_read, LPOVERLAPPED overlapped ); BOOL WriteFile ( HANDLE fd, LPCVOID buf, DWORD write_count, LPDWORD amount_written, LPOVERLAPPED overlapped ); HANDLE AcceptIOCP( SOCKET lis_fd, SOCKET acc_fd, PVOID buf, DWORD read_count, HANDLE completion_port, DWORD completion_key, LPDWORD amount_read, LPOVERLAPPED overlapped ); #ifdef __cplusplus } #endif #endif /* __FULL_PROTO */