f928f3e55f8f7ba0273ffa32c6a43fc19cd7d187
[ghc-hetmet.git] / ghc / lib / misc / cbits / initWinSock.c
1
2 #define NON_POSIX_SOURCE
3 #include "Rts.h"
4 #include "ghcSockets.h"
5 #include "stgio.h"
6
7
8 #if defined(HAVE_WINSOCK_H) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
9 #define USE_WINSOCK
10 #endif
11
12 #ifdef USE_WINSOCK
13
14 /* Initialising WinSock... */
15 StgInt
16 initWinSock ()
17 {
18   WORD wVersionRequested;
19   WSADATA wsaData;  
20   int err;
21
22   wVersionRequested = MAKEWORD( 1, 1 );
23
24   err = WSAStartup ( wVersionRequested, &wsaData );
25
26   if ( err != 0 ) {
27      return err;
28   }
29
30   if ( LOBYTE( wsaData.wVersion ) != 1 ||
31        HIBYTE( wsaData.wVersion ) != 1 ) {
32     WSACleanup();
33     return (-1);
34   }
35   return 0;
36 }
37
38 void
39 shutdownWinSock()
40 {
41  WSACleanup();
42 }
43
44 #endif