1 /**
2  @file  win32.h
3  @brief ENet Win32 header
4 */
5 #ifndef __ENET_WIN32_H__
6 #define __ENET_WIN32_H__
7 
8 #ifdef _MSC_VER
9 #ifdef ENET_BUILDING_LIB
10 #pragma warning (disable: 4267) // size_t to int conversion
11 #pragma warning (disable: 4244) // 64bit to 32bit int
12 #pragma warning (disable: 4018) // signed/unsigned mismatch
13 #pragma warning (disable: 4146) // unary minus operator applied to unsigned type
14 #define _CRT_SECURE_NO_DEPRECATE
15 #define _CRT_SECURE_NO_WARNINGS
16 #endif
17 #endif
18 
19 #include <stdlib.h>
20 #include <winsock2.h>
21 
22 typedef SOCKET ENetSocket;
23 
24 #define ENET_SOCKET_NULL INVALID_SOCKET
25 
26 #define ENET_HOST_TO_NET_16(value) (htons (value))
27 #define ENET_HOST_TO_NET_32(value) (htonl (value))
28 
29 #define ENET_NET_TO_HOST_16(value) (ntohs (value))
30 #define ENET_NET_TO_HOST_32(value) (ntohl (value))
31 
32 typedef struct
33 {
34     size_t dataLength;
35     void * data;
36 } ENetBuffer;
37 
38 #define ENET_CALLBACK __cdecl
39 
40 #ifdef ENET_DLL
41 #ifdef ENET_BUILDING_LIB
42 #define ENET_API __declspec( dllexport )
43 #else
44 #define ENET_API __declspec( dllimport )
45 #endif /* ENET_BUILDING_LIB */
46 #else /* !ENET_DLL */
47 #define ENET_API extern
48 #endif /* ENET_DLL */
49 
50 typedef fd_set ENetSocketSet;
51 
52 #define ENET_SOCKETSET_EMPTY(sockset)          FD_ZERO (& (sockset))
53 #define ENET_SOCKETSET_ADD(sockset, socket)    FD_SET (socket, & (sockset))
54 #define ENET_SOCKETSET_REMOVE(sockset, socket) FD_CLR (socket, & (sockset))
55 #define ENET_SOCKETSET_CHECK(sockset, socket)  FD_ISSET (socket, & (sockset))
56 
57 #endif /* __ENET_WIN32_H__ */
58 
59 
60