@@ -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
pub struct WSADATA {
@@ -40,6 +48,16 @@ pub struct WSADATA {
40
48
41
49
pub type LPWSADATA = * mut WSADATA ;
42
50
51
+ #[ repr( C ) ]
52
+ pub struct WSANETWORKEVENTS {
53
+ pub lNetworkEvents : libc:: c_long ,
54
+ pub iErrorCode : [ libc:: c_int , ..FD_MAX_EVENTS ] ,
55
+ }
56
+
57
+ pub type LPWSANETWORKEVENTS = * mut WSANETWORKEVENTS ;
58
+
59
+ pub type WSAEVENT = libc:: HANDLE ;
60
+
43
61
#[ repr( C ) ]
44
62
pub struct fd_set {
45
63
fd_count : libc:: c_uint ,
@@ -56,6 +74,21 @@ extern "system" {
56
74
pub fn WSAStartup ( wVersionRequested : libc:: WORD ,
57
75
lpWSAData : LPWSADATA ) -> libc:: c_int ;
58
76
pub fn WSAGetLastError ( ) -> libc:: c_int ;
77
+ pub fn WSACloseEvent ( hEvent : WSAEVENT ) -> libc:: BOOL ;
78
+ pub fn WSACreateEvent ( ) -> WSAEVENT ;
79
+ pub fn WSAEventSelect ( s : libc:: SOCKET ,
80
+ hEventObject : WSAEVENT ,
81
+ lNetworkEvents : libc:: c_long ) -> libc:: c_int ;
82
+ pub fn WSASetEvent ( hEvent : WSAEVENT ) -> libc:: BOOL ;
83
+ pub fn WSAWaitForMultipleEvents ( cEvents : libc:: DWORD ,
84
+ lphEvents : * const WSAEVENT ,
85
+ fWaitAll : libc:: BOOL ,
86
+ dwTimeout : libc:: DWORD ,
87
+ fAltertable : libc:: BOOL ) -> libc:: DWORD ;
88
+ pub fn WSAEnumNetworkEvents ( s : libc:: SOCKET ,
89
+ hEventObject : WSAEVENT ,
90
+ lpNetworkEvents : LPWSANETWORKEVENTS )
91
+ -> libc:: c_int ;
59
92
60
93
pub fn ioctlsocket ( s : libc:: SOCKET , cmd : libc:: c_long ,
61
94
argp : * mut libc:: c_ulong ) -> libc:: c_int ;
0 commit comments