Peter Atashian | 9861595 | 2015-06-08 02:20:33 | [diff] [blame] | 1 | // Copyright © 2015, Peter Atashian |
| 2 | // Licensed under the MIT License <LICENSE.md> |
| 3 | //! definitions to be used with the WinSock 2 DLL and WinSock 2 applications. |
| 4 | //! |
| 5 | //! This header file corresponds to version 2.2.x of the WinSock API specification. |
| 6 | pub const WINSOCK_VERSION: ::WORD = 2 | (2 << 8); |
| 7 | pub type u_char = ::c_uchar; |
| 8 | pub type u_short = ::c_ushort; |
| 9 | pub type u_int = ::c_uint; |
| 10 | pub type u_long = ::c_ulong; |
| 11 | pub type u_int64 = ::__uint64; |
| 12 | pub type SOCKET = ::UINT_PTR; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 13 | pub type GROUP = ::c_uint; |
Peter Atashian | 9861595 | 2015-06-08 02:20:33 | [diff] [blame] | 14 | pub const FD_SETSIZE: usize = 64; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 15 | pub const FD_MAX_EVENTS: usize = 10; |
Peter Atashian | 04c7978 | 2016-03-05 01:44:55 | [diff] [blame] | 16 | STRUCT!{nodebug struct fd_set { |
| 17 | fd_count: u_int, |
| 18 | fd_array: [SOCKET; FD_SETSIZE], |
| 19 | }} |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 20 | STRUCT!{struct timeval { |
| 21 | tv_sec: ::c_long, |
| 22 | tv_usec: ::c_long, |
| 23 | }} |
| 24 | STRUCT!{struct hostent { |
| 25 | h_name: *mut ::c_char, |
| 26 | h_aliases: *mut *mut ::c_char, |
| 27 | h_addrtype: ::c_short, |
| 28 | h_length: ::c_short, |
| 29 | h_addr_list: *mut *mut ::c_char, |
| 30 | }} |
| 31 | STRUCT!{struct netent { |
| 32 | n_name: *mut ::c_char, |
| 33 | n_aliases: *mut *mut ::c_char, |
| 34 | n_addrtype: ::c_short, |
| 35 | n_net: u_long, |
| 36 | }} |
Peter Atashian | 04c7978 | 2016-03-05 01:44:55 | [diff] [blame] | 37 | #[cfg(target_arch="x86")] |
| 38 | STRUCT!{struct servent { |
| 39 | s_name: *mut ::c_char, |
| 40 | s_aliases: *mut *mut ::c_char, |
| 41 | s_port: ::c_short, |
| 42 | s_proto: *mut ::c_char, |
| 43 | }} |
| 44 | #[cfg(target_arch="x86_64")] |
| 45 | STRUCT!{struct servent { |
| 46 | s_name: *mut ::c_char, |
| 47 | s_aliases: *mut *mut ::c_char, |
| 48 | s_proto: *mut ::c_char, |
| 49 | s_port: ::c_short, |
| 50 | }} |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 51 | STRUCT!{struct protoent { |
| 52 | p_name: *mut ::c_char, |
| 53 | p_aliases: *mut *mut ::c_char, |
| 54 | p_proto: ::c_short, |
| 55 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 56 | pub const WSADESCRIPTION_LEN: usize = 256; |
| 57 | pub const WSASYS_STATUS_LEN: usize = 128; |
Peter Atashian | 04c7978 | 2016-03-05 01:44:55 | [diff] [blame] | 58 | #[cfg(target_arch="x86")] |
| 59 | STRUCT!{nodebug struct WSADATA { |
| 60 | wVersion: ::WORD, |
| 61 | wHighVersion: ::WORD, |
| 62 | szDescription: [::c_char; WSADESCRIPTION_LEN + 1], |
| 63 | szSystemStatus: [::c_char; WSASYS_STATUS_LEN + 1], |
| 64 | iMaxSockets: ::c_ushort, |
| 65 | iMaxUdpDg: ::c_ushort, |
| 66 | lpVendorInfo: *mut ::c_char, |
| 67 | }} |
| 68 | #[cfg(target_arch="x86_64")] |
| 69 | STRUCT!{nodebug struct WSADATA { |
| 70 | wVersion: ::WORD, |
| 71 | wHighVersion: ::WORD, |
| 72 | iMaxSockets: ::c_ushort, |
| 73 | iMaxUdpDg: ::c_ushort, |
| 74 | lpVendorInfo: *mut ::c_char, |
| 75 | szDescription: [::c_char; WSADESCRIPTION_LEN + 1], |
| 76 | szSystemStatus: [::c_char; WSASYS_STATUS_LEN + 1], |
| 77 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 78 | pub type LPWSADATA = *mut WSADATA; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 79 | //391 |
| 80 | pub const INVALID_SOCKET: SOCKET = !0; |
| 81 | pub const SOCKET_ERROR: ::c_int = -1; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 82 | STRUCT!{struct sockproto { |
| 83 | sp_family: u_short, |
| 84 | sp_protocol: u_short, |
| 85 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 86 | pub const PF_UNSPEC: ::c_int = ::AF_UNSPEC; |
| 87 | pub const PF_UNIX: ::c_int = ::AF_UNIX; |
| 88 | pub const PF_INET: ::c_int = ::AF_INET; |
| 89 | pub const PF_IMPLINK: ::c_int = ::AF_IMPLINK; |
| 90 | pub const PF_PUP: ::c_int = ::AF_PUP; |
| 91 | pub const PF_CHAOS: ::c_int = ::AF_CHAOS; |
| 92 | pub const PF_NS: ::c_int = ::AF_NS; |
| 93 | pub const PF_IPX: ::c_int = ::AF_IPX; |
| 94 | pub const PF_ISO: ::c_int = ::AF_ISO; |
| 95 | pub const PF_OSI: ::c_int = ::AF_OSI; |
| 96 | pub const PF_ECMA: ::c_int = ::AF_ECMA; |
| 97 | pub const PF_DATAKIT: ::c_int = ::AF_DATAKIT; |
| 98 | pub const PF_CCITT: ::c_int = ::AF_CCITT; |
| 99 | pub const PF_SNA: ::c_int = ::AF_SNA; |
| 100 | pub const PF_DECnet: ::c_int = ::AF_DECnet; |
| 101 | pub const PF_DLI: ::c_int = ::AF_DLI; |
| 102 | pub const PF_LAT: ::c_int = ::AF_LAT; |
| 103 | pub const PF_HYLINK: ::c_int = ::AF_HYLINK; |
| 104 | pub const PF_APPLETALK: ::c_int = ::AF_APPLETALK; |
| 105 | pub const PF_VOICEVIEW: ::c_int = ::AF_VOICEVIEW; |
| 106 | pub const PF_FIREFOX: ::c_int = ::AF_FIREFOX; |
| 107 | pub const PF_UNKNOWN1: ::c_int = ::AF_UNKNOWN1; |
| 108 | pub const PF_BAN: ::c_int = ::AF_BAN; |
| 109 | pub const PF_ATM: ::c_int = ::AF_ATM; |
| 110 | pub const PF_INET6: ::c_int = ::AF_INET6; |
| 111 | pub const PF_BTH: ::c_int = ::AF_BTH; |
| 112 | pub const PF_MAX: ::c_int = ::AF_MAX; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 113 | STRUCT!{struct linger { |
| 114 | l_onoff: u_short, |
| 115 | l_linger: u_short, |
| 116 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 117 | pub const SOMAXCONN: ::c_int = 0x7fffffff; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 118 | pub type WSAEVENT = ::HANDLE; |
| 119 | pub type LPWSAEVENT = ::LPHANDLE; |
| 120 | pub type WSAOVERLAPPED = ::OVERLAPPED; |
| 121 | pub type LPWSAOVERLAPPED = *mut ::OVERLAPPED; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 122 | pub const WSA_IO_PENDING: ::DWORD = ::ERROR_IO_PENDING; |
| 123 | pub const WSA_IO_INCOMPLETE: ::DWORD = ::ERROR_IO_INCOMPLETE; |
| 124 | pub const WSA_INVALID_HANDLE: ::DWORD = ::ERROR_INVALID_HANDLE; |
| 125 | pub const WSA_INVALID_PARAMETER: ::DWORD = ::ERROR_INVALID_PARAMETER; |
| 126 | pub const WSA_NOT_ENOUGH_MEMORY: ::DWORD = ::ERROR_NOT_ENOUGH_MEMORY; |
| 127 | pub const WSA_OPERATION_ABORTED: ::DWORD = ::ERROR_OPERATION_ABORTED; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 128 | STRUCT!{struct QOS { |
| 129 | SendingFlowspec: ::FLOWSPEC, |
| 130 | FLOWSPEC: ::FLOWSPEC, |
| 131 | ProviderSpecific: ::WSABUF, |
| 132 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 133 | pub type LPQOS = *mut QOS; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 134 | STRUCT!{struct WSANETWORKEVENTS { |
| 135 | lNetworkEvents: ::c_long, |
| 136 | iErrorCode: [::c_int; FD_MAX_EVENTS], |
| 137 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 138 | pub type LPWSANETWORKEVENTS = *mut WSANETWORKEVENTS; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 139 | pub const MAX_PROTOCOL_CHAIN: usize = 7; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 140 | STRUCT!{struct WSAPROTOCOLCHAIN { |
| 141 | ChainLen: ::c_int, |
| 142 | ChainEntries: [::DWORD; MAX_PROTOCOL_CHAIN], |
| 143 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 144 | pub type LPWSAPROTOCOLCHAIN = *mut WSAPROTOCOLCHAIN; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 145 | pub const WSAPROTOCOL_LEN: usize = 255; |
Peter Atashian | 04c7978 | 2016-03-05 01:44:55 | [diff] [blame] | 146 | STRUCT!{nodebug struct WSAPROTOCOL_INFOA { |
| 147 | dwServiceFlags1: ::DWORD, |
| 148 | dwServiceFlags2: ::DWORD, |
| 149 | dwServiceFlags3: ::DWORD, |
| 150 | dwServiceFlags4: ::DWORD, |
| 151 | dwServiceFlags5: ::DWORD, |
| 152 | ProviderId: ::GUID, |
| 153 | dwCatalogEntryId: ::DWORD, |
| 154 | ProtocolChain: WSAPROTOCOLCHAIN, |
| 155 | iVersion: ::c_int, |
| 156 | iAddressFamily: ::c_int, |
| 157 | iMaxSockAddr: ::c_int, |
| 158 | iMinSockAddr: ::c_int, |
| 159 | iSocketType: ::c_int, |
| 160 | iProtocol: ::c_int, |
| 161 | iProtocolMaxOffset: ::c_int, |
| 162 | iNetworkByteOrder: ::c_int, |
| 163 | iSecurityScheme: ::c_int, |
| 164 | dwMessageSize: ::DWORD, |
| 165 | dwProviderReserved: ::DWORD, |
| 166 | szProtocol: [::CHAR; WSAPROTOCOL_LEN + 1], |
| 167 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 168 | pub type LPWSAPROTOCOL_INFOA = *mut WSAPROTOCOL_INFOA; |
Peter Atashian | 04c7978 | 2016-03-05 01:44:55 | [diff] [blame] | 169 | STRUCT!{nodebug struct WSAPROTOCOL_INFOW { |
| 170 | dwServiceFlags1: ::DWORD, |
| 171 | dwServiceFlags2: ::DWORD, |
| 172 | dwServiceFlags3: ::DWORD, |
| 173 | dwServiceFlags4: ::DWORD, |
| 174 | dwServiceFlags5: ::DWORD, |
| 175 | ProviderId: ::GUID, |
| 176 | dwCatalogEntryId: ::DWORD, |
| 177 | ProtocolChain: WSAPROTOCOLCHAIN, |
| 178 | iVersion: ::c_int, |
| 179 | iAddressFamily: ::c_int, |
| 180 | iMaxSockAddr: ::c_int, |
| 181 | iMinSockAddr: ::c_int, |
| 182 | iSocketType: ::c_int, |
| 183 | iProtocol: ::c_int, |
| 184 | iProtocolMaxOffset: ::c_int, |
| 185 | iNetworkByteOrder: ::c_int, |
| 186 | iSecurityScheme: ::c_int, |
| 187 | dwMessageSize: ::DWORD, |
| 188 | dwProviderReserved: ::DWORD, |
| 189 | szProtocol: [::WCHAR; WSAPROTOCOL_LEN + 1], |
| 190 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 191 | pub type LPWSAPROTOCOL_INFOW = *mut WSAPROTOCOL_INFOW; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 192 | pub type LPCONDITIONPROC = Option<unsafe extern "system" fn( |
| 193 | lpCallerId: ::LPWSABUF, lpCallerData: ::LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS, |
| 194 | lpCalleeId: ::LPWSABUF, lpCalleeData: ::LPWSABUF, g: *mut GROUP, dwCallbackData: ::DWORD, |
| 195 | ) -> ::c_int>; |
Peter Atashian | d8e8820 | 2015-10-06 19:40:30 | [diff] [blame] | 196 | pub type LPWSAOVERLAPPED_COMPLETION_ROUTINE = Option<unsafe extern "system" fn( |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 197 | dwError: ::DWORD, cbTransferred: ::DWORD, lpOverlapped: LPWSAOVERLAPPED, dwFlags: ::DWORD, |
| 198 | )>; |
Eh2406 | 1573ab8 | 2015-10-31 19:59:55 | [diff] [blame] | 199 | ENUM!{enum WSACOMPLETIONTYPE { |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 200 | NSP_NOTIFY_IMMEDIATELY = 0, |
| 201 | NSP_NOTIFY_HWND, |
| 202 | NSP_NOTIFY_EVENT, |
| 203 | NSP_NOTIFY_PORT, |
| 204 | NSP_NOTIFY_APC, |
Eh2406 | 1573ab8 | 2015-10-31 19:59:55 | [diff] [blame] | 205 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 206 | pub type PWSACOMPLETIONTYPE = *mut WSACOMPLETIONTYPE; |
| 207 | pub type LPWSACOMPLETIONTYPE = *mut WSACOMPLETIONTYPE; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 208 | STRUCT!{struct WSACOMPLETION_WindowMessage { |
| 209 | hWnd: ::HWND, |
| 210 | uMsg: ::UINT, |
| 211 | context: ::WPARAM, |
| 212 | }} |
| 213 | STRUCT!{struct WSACOMPLETION_Event { |
| 214 | lpOverlapped: LPWSAOVERLAPPED, |
| 215 | }} |
Peter Atashian | 04c7978 | 2016-03-05 01:44:55 | [diff] [blame] | 216 | STRUCT!{nodebug struct WSACOMPLETION_Apc { |
| 217 | lpOverlapped: LPWSAOVERLAPPED, |
| 218 | lpfnCompletionProc: LPWSAOVERLAPPED_COMPLETION_ROUTINE, |
| 219 | }} |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 220 | STRUCT!{struct WSACOMPLETION_Port { |
| 221 | lpOverlapped: LPWSAOVERLAPPED, |
| 222 | hPort: ::HANDLE, |
| 223 | Key: ::ULONG_PTR, |
| 224 | }} |
Peter Atashian | 04c7978 | 2016-03-05 01:44:55 | [diff] [blame] | 225 | #[cfg(target_arch="x86")] |
| 226 | STRUCT!{struct WSACOMPLETION { |
| 227 | Type: WSACOMPLETIONTYPE, |
| 228 | Parameters: [u8; 12], |
| 229 | }} |
| 230 | #[cfg(target_arch="x86_64")] |
| 231 | STRUCT!{struct WSACOMPLETION { |
| 232 | Type: WSACOMPLETIONTYPE, |
| 233 | Parameters: [u8; 24], |
| 234 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 235 | UNION!(WSACOMPLETION, Parameters, WindowMessage, WindowMessage_mut, WSACOMPLETION_WindowMessage); |
| 236 | UNION!(WSACOMPLETION, Parameters, Event, Event_mut, WSACOMPLETION_Event); |
| 237 | UNION!(WSACOMPLETION, Parameters, Apc, Apc_mut, WSACOMPLETION_Apc); |
| 238 | UNION!(WSACOMPLETION, Parameters, Port, Port_mut, WSACOMPLETION_Port); |
| 239 | pub type PWSACOMPLETION = *mut WSACOMPLETION; |
| 240 | pub type LPWSACOMPLETION = *mut WSACOMPLETION; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 241 | STRUCT!{struct AFPROTOCOLS { |
| 242 | iAddressFamily: ::INT, |
| 243 | iProtocol: ::INT, |
| 244 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 245 | pub type PAFPROTOCOLS = *mut AFPROTOCOLS; |
| 246 | pub type LPAFPROTOCOLS = *mut AFPROTOCOLS; |
Eh2406 | 1573ab8 | 2015-10-31 19:59:55 | [diff] [blame] | 247 | ENUM!{enum WSAECOMPARATOR { |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 248 | COMP_EQUAL = 0, |
| 249 | COMP_NOTLESS, |
Eh2406 | 1573ab8 | 2015-10-31 19:59:55 | [diff] [blame] | 250 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 251 | pub type PWSAECOMPARATOR = *mut WSAECOMPARATOR; |
| 252 | pub type LPWSAECOMPARATOR = *mut WSAECOMPARATOR; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 253 | STRUCT!{struct WSAVERSION { |
| 254 | dwVersion: ::DWORD, |
| 255 | ecHow: WSAECOMPARATOR, |
| 256 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 257 | pub type PWSAVERSION = *mut WSAVERSION; |
| 258 | pub type LPWSAVERSION = *mut WSAVERSION; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 259 | STRUCT!{struct WSAQUERYSETA { |
| 260 | dwSize: ::DWORD, |
| 261 | lpszServiceInstanceName: ::LPSTR, |
| 262 | lpServiceClassId: ::LPGUID, |
| 263 | lpVersion: LPWSAVERSION, |
| 264 | lpszComment: ::LPSTR, |
| 265 | dwNameSpace: ::DWORD, |
| 266 | lpNSProviderId: ::LPGUID, |
| 267 | lpszContext: ::LPSTR, |
| 268 | dwNumberOfProtocols: ::DWORD, |
| 269 | lpafpProtocols: LPAFPROTOCOLS, |
| 270 | lpszQueryString: ::LPSTR, |
| 271 | dwNumberOfCsAddrs: ::DWORD, |
| 272 | lpcsaBuffer: ::LPCSADDR_INFO, |
| 273 | dwOutputFlags: ::DWORD, |
| 274 | lpBlob: ::LPBLOB, |
| 275 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 276 | pub type PWSAQUERYSETA = *mut WSAQUERYSETA; |
| 277 | pub type LPWSAQUERYSETA = *mut WSAQUERYSETA; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 278 | STRUCT!{struct WSAQUERYSETW { |
| 279 | dwSize: ::DWORD, |
| 280 | lpszServiceInstanceName: ::LPWSTR, |
| 281 | lpServiceClassId: ::LPGUID, |
| 282 | lpVersion: LPWSAVERSION, |
| 283 | lpszComment: ::LPWSTR, |
| 284 | dwNameSpace: ::DWORD, |
| 285 | lpNSProviderId: ::LPGUID, |
| 286 | lpszContext: ::LPWSTR, |
| 287 | dwNumberOfProtocols: ::DWORD, |
| 288 | lpafpProtocols: LPAFPROTOCOLS, |
| 289 | lpszQueryString: ::LPWSTR, |
| 290 | dwNumberOfCsAddrs: ::DWORD, |
| 291 | lpcsaBuffer: ::LPCSADDR_INFO, |
| 292 | dwOutputFlags: ::DWORD, |
| 293 | lpBlob: ::LPBLOB, |
| 294 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 295 | pub type PWSAQUERYSETW = *mut WSAQUERYSETW; |
| 296 | pub type LPWSAQUERYSETW = *mut WSAQUERYSETW; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 297 | STRUCT!{struct WSAQUERYSET2A { |
| 298 | dwSize: ::DWORD, |
| 299 | lpszServiceInstanceName: ::LPSTR, |
| 300 | lpVersion: LPWSAVERSION, |
| 301 | lpszComment: ::LPSTR, |
| 302 | dwNameSpace: ::DWORD, |
| 303 | lpNSProviderId: ::LPGUID, |
| 304 | lpszContext: ::LPSTR, |
| 305 | dwNumberOfProtocols: ::DWORD, |
| 306 | lpafpProtocols: LPAFPROTOCOLS, |
| 307 | lpszQueryString: ::LPSTR, |
| 308 | dwNumberOfCsAddrs: ::DWORD, |
| 309 | lpcsaBuffer: ::LPCSADDR_INFO, |
| 310 | dwOutputFlags: ::DWORD, |
| 311 | lpBlob: ::LPBLOB, |
| 312 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 313 | pub type PWSAQUERYSET2A = *mut WSAQUERYSET2A; |
| 314 | pub type LPWSAQUERYSET2A = *mut WSAQUERYSET2A; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 315 | STRUCT!{struct WSAQUERYSET2W { |
| 316 | dwSize: ::DWORD, |
| 317 | lpszServiceInstanceName: ::LPWSTR, |
| 318 | lpVersion: LPWSAVERSION, |
| 319 | lpszComment: ::LPWSTR, |
| 320 | dwNameSpace: ::DWORD, |
| 321 | lpNSProviderId: ::LPGUID, |
| 322 | lpszContext: ::LPWSTR, |
| 323 | dwNumberOfProtocols: ::DWORD, |
| 324 | lpafpProtocols: LPAFPROTOCOLS, |
| 325 | lpszQueryString: ::LPWSTR, |
| 326 | dwNumberOfCsAddrs: ::DWORD, |
| 327 | lpcsaBuffer: ::LPCSADDR_INFO, |
| 328 | dwOutputFlags: ::DWORD, |
| 329 | lpBlob: ::LPBLOB, |
| 330 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 331 | pub type PWSAQUERYSET2W = *mut WSAQUERYSET2W; |
| 332 | pub type LPWSAQUERYSET2W = *mut WSAQUERYSET2W; |
Eh2406 | 1573ab8 | 2015-10-31 19:59:55 | [diff] [blame] | 333 | ENUM!{enum WSAESETSERVICEOP { |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 334 | RNRSERVICE_REGISTER = 0, |
| 335 | RNRSERVICE_DEREGISTER, |
| 336 | RNRSERVICE_DELETE, |
Eh2406 | 1573ab8 | 2015-10-31 19:59:55 | [diff] [blame] | 337 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 338 | pub type PWSAESETSERVICEOP = *mut WSAESETSERVICEOP; |
| 339 | pub type LPWSAESETSERVICEOP = *mut WSAESETSERVICEOP; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 340 | STRUCT!{struct WSANSCLASSINFOA { |
| 341 | lpszName: ::LPSTR, |
| 342 | dwNameSpace: ::DWORD, |
| 343 | dwValueType: ::DWORD, |
| 344 | dwValueSize: ::DWORD, |
| 345 | lpValue: ::LPVOID, |
| 346 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 347 | pub type PWSANSCLASSINFOA = *mut WSANSCLASSINFOA; |
| 348 | pub type LPWSANSCLASSINFOA = *mut WSANSCLASSINFOA; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 349 | STRUCT!{struct WSANSCLASSINFOW { |
| 350 | lpszName: ::LPWSTR, |
| 351 | dwNameSpace: ::DWORD, |
| 352 | dwValueType: ::DWORD, |
| 353 | dwValueSize: ::DWORD, |
| 354 | lpValue: ::LPVOID, |
| 355 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 356 | pub type PWSANSCLASSINFOW = *mut WSANSCLASSINFOW; |
| 357 | pub type LPWSANSCLASSINFOW = *mut WSANSCLASSINFOW; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 358 | STRUCT!{struct WSASERVICECLASSINFOA { |
| 359 | lpServiceClassId: ::LPGUID, |
| 360 | lpszServiceClassName: ::LPSTR, |
| 361 | dwCount: ::DWORD, |
| 362 | lpClassInfos: LPWSANSCLASSINFOA, |
| 363 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 364 | pub type PWSASERVICECLASSINFOA = *mut WSASERVICECLASSINFOA; |
| 365 | pub type LPWSASERVICECLASSINFOA = *mut WSASERVICECLASSINFOA; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 366 | STRUCT!{struct WSASERVICECLASSINFOW { |
| 367 | lpServiceClassId: ::LPGUID, |
| 368 | lpszServiceClassName: ::LPWSTR, |
| 369 | dwCount: ::DWORD, |
| 370 | lpClassInfos: LPWSANSCLASSINFOW, |
| 371 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 372 | pub type PWSASERVICECLASSINFOW = *mut WSASERVICECLASSINFOW; |
| 373 | pub type LPWSASERVICECLASSINFOW = *mut WSASERVICECLASSINFOW; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 374 | STRUCT!{struct WSANAMESPACE_INFOA { |
| 375 | NSProviderId: ::GUID, |
| 376 | dwNameSpace: ::DWORD, |
| 377 | fActive: ::BOOL, |
| 378 | dwVersion: ::DWORD, |
| 379 | lpszIdentifier: ::LPSTR, |
| 380 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 381 | pub type PWSANAMESPACE_INFOA = *mut WSANAMESPACE_INFOA; |
| 382 | pub type LPWSANAMESPACE_INFOA = *mut WSANAMESPACE_INFOA; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 383 | STRUCT!{struct WSANAMESPACE_INFOW { |
| 384 | NSProviderId: ::GUID, |
| 385 | dwNameSpace: ::DWORD, |
| 386 | fActive: ::BOOL, |
| 387 | dwVersion: ::DWORD, |
| 388 | lpszIdentifier: ::LPWSTR, |
| 389 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 390 | pub type PWSANAMESPACE_INFOW = *mut WSANAMESPACE_INFOW; |
| 391 | pub type LPWSANAMESPACE_INFOW = *mut WSANAMESPACE_INFOW; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 392 | STRUCT!{struct WSANAMESPACE_INFOEXA { |
| 393 | NSProviderId: ::GUID, |
| 394 | dwNameSpace: ::DWORD, |
| 395 | fActive: ::BOOL, |
| 396 | dwVersion: ::DWORD, |
| 397 | lpszIdentifier: ::LPSTR, |
| 398 | ProviderSpecific: ::BLOB, |
| 399 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 400 | pub type PWSANAMESPACE_INFOEXA = *mut WSANAMESPACE_INFOEXA; |
| 401 | pub type LPWSANAMESPACE_INFOEXA = *mut WSANAMESPACE_INFOEXA; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 402 | STRUCT!{struct WSANAMESPACE_INFOEXW { |
| 403 | NSProviderId: ::GUID, |
| 404 | dwNameSpace: ::DWORD, |
| 405 | fActive: ::BOOL, |
| 406 | dwVersion: ::DWORD, |
| 407 | lpszIdentifier: ::LPWSTR, |
| 408 | ProviderSpecific: ::BLOB, |
| 409 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 410 | pub type PWSANAMESPACE_INFOEXW = *mut WSANAMESPACE_INFOEXW; |
| 411 | pub type LPWSANAMESPACE_INFOEXW = *mut WSANAMESPACE_INFOEXW; |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 412 | pub const POLLRDNORM: ::SHORT = 0x0100; |
| 413 | pub const POLLRDBAND: ::SHORT = 0x0200; |
| 414 | pub const POLLIN: ::SHORT = POLLRDNORM | POLLRDBAND; |
| 415 | pub const POLLPRI: ::SHORT = 0x0400; |
| 416 | pub const POLLWRNORM: ::SHORT = 0x0010; |
| 417 | pub const POLLOUT: ::SHORT = POLLWRNORM; |
| 418 | pub const POLLWRBAND: ::SHORT = 0x0020; |
| 419 | pub const POLLERR: ::SHORT = 0x0001; |
| 420 | pub const POLLHUP: ::SHORT = 0x0002; |
| 421 | pub const POLLNVAL: ::SHORT = 0x0004; |
Eh2406 | df60d5f | 2015-10-25 14:22:53 | [diff] [blame] | 422 | STRUCT!{struct WSAPOLLFD { |
| 423 | fd: ::SOCKET, |
| 424 | events: ::SHORT, |
| 425 | revents: ::SHORT, |
| 426 | }} |
skdltmxn | fa2cf4f | 2015-07-23 02:54:30 | [diff] [blame] | 427 | pub type PWSAPOLLFD = *mut WSAPOLLFD; |
| 428 | pub type LPWSAPOLLFD = *mut WSAPOLLFD; |
Alex Crichton | f810a0e | 2015-11-04 00:19:01 | [diff] [blame] | 429 | pub const FIONBIO: ::c_ulong = 0x8004667e; |