@@ -26,6 +26,14 @@ pub static ENABLE_INSERT_MODE: libc::DWORD = 0x20;
26
26
pub static ENABLE_LINE_INPUT : libc:: DWORD = 0x2 ;
27
27
pub static ENABLE_PROCESSED_INPUT : libc:: DWORD = 0x1 ;
28
28
pub static ENABLE_QUICK_EDIT_MODE : libc:: DWORD = 0x40 ;
29
+ pub static WSA_INVALID_EVENT : WSAEVENT = 0 as WSAEVENT ;
30
+
31
+ pub static FD_ACCEPT : libc:: c_long = 0x08 ;
32
+ pub static FD_MAX_EVENTS : uint = 10 ;
33
+ pub static WSA_INFINITE : libc:: DWORD = libc:: INFINITE ;
34
+ pub static WSA_WAIT_TIMEOUT : libc:: DWORD = libc:: consts:: os:: extra:: WAIT_TIMEOUT ;
35
+ pub static WSA_WAIT_EVENT_0 : libc:: DWORD = libc:: consts:: os:: extra:: WAIT_OBJECT_0 ;
36
+ pub static WSA_WAIT_FAILED : libc:: DWORD = libc:: consts:: os:: extra:: WAIT_FAILED ;
29
37
30
38
#[ repr( C ) ]
31
39
#[ cfg( target_arch = "x86" ) ]
@@ -52,6 +60,16 @@ pub struct WSADATA {
52
60
53
61
pub type LPWSADATA = * mut WSADATA ;
54
62
63
+ #[ repr( C ) ]
64
+ pub struct WSANETWORKEVENTS {
65
+ pub lNetworkEvents : libc:: c_long ,
66
+ pub iErrorCode : [ libc:: c_int , ..FD_MAX_EVENTS ] ,
67
+ }
68
+
69
+ pub type LPWSANETWORKEVENTS = * mut WSANETWORKEVENTS ;
70
+
71
+ pub type WSAEVENT = libc:: HANDLE ;
72
+
55
73
#[ repr( C ) ]
56
74
pub struct fd_set {
57
75
fd_count : libc:: c_uint ,
@@ -68,6 +86,21 @@ extern "system" {
68
86
pub fn WSAStartup ( wVersionRequested : libc:: WORD ,
69
87
lpWSAData : LPWSADATA ) -> libc:: c_int ;
70
88
pub fn WSAGetLastError ( ) -> libc:: c_int ;
89
+ pub fn WSACloseEvent ( hEvent : WSAEVENT ) -> libc:: BOOL ;
90
+ pub fn WSACreateEvent ( ) -> WSAEVENT ;
91
+ pub fn WSAEventSelect ( s : libc:: SOCKET ,
92
+ hEventObject : WSAEVENT ,
93
+ lNetworkEvents : libc:: c_long ) -> libc:: c_int ;
94
+ pub fn WSASetEvent ( hEvent : WSAEVENT ) -> libc:: BOOL ;
95
+ pub fn WSAWaitForMultipleEvents ( cEvents : libc:: DWORD ,
96
+ lphEvents : * const WSAEVENT ,
97
+ fWaitAll : libc:: BOOL ,
98
+ dwTimeout : libc:: DWORD ,
99
+ fAltertable : libc:: BOOL ) -> libc:: DWORD ;
100
+ pub fn WSAEnumNetworkEvents ( s : libc:: SOCKET ,
101
+ hEventObject : WSAEVENT ,
102
+ lpNetworkEvents : LPWSANETWORKEVENTS )
103
+ -> libc:: c_int ;
71
104
72
105
pub fn ioctlsocket ( s : libc:: SOCKET , cmd : libc:: c_long ,
73
106
argp : * mut libc:: c_ulong ) -> libc:: c_int ;
0 commit comments