xref: /aosp_15_r20/external/curl/lib/setup-win32.h (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker #ifndef HEADER_CURL_SETUP_WIN32_H
2*6236dae4SAndroid Build Coastguard Worker #define HEADER_CURL_SETUP_WIN32_H
3*6236dae4SAndroid Build Coastguard Worker /***************************************************************************
4*6236dae4SAndroid Build Coastguard Worker  *                                  _   _ ____  _
5*6236dae4SAndroid Build Coastguard Worker  *  Project                     ___| | | |  _ \| |
6*6236dae4SAndroid Build Coastguard Worker  *                             / __| | | | |_) | |
7*6236dae4SAndroid Build Coastguard Worker  *                            | (__| |_| |  _ <| |___
8*6236dae4SAndroid Build Coastguard Worker  *                             \___|\___/|_| \_\_____|
9*6236dae4SAndroid Build Coastguard Worker  *
10*6236dae4SAndroid Build Coastguard Worker  * Copyright (C) Daniel Stenberg, <[email protected]>, et al.
11*6236dae4SAndroid Build Coastguard Worker  *
12*6236dae4SAndroid Build Coastguard Worker  * This software is licensed as described in the file COPYING, which
13*6236dae4SAndroid Build Coastguard Worker  * you should have received as part of this distribution. The terms
14*6236dae4SAndroid Build Coastguard Worker  * are also available at https://curl.se/docs/copyright.html.
15*6236dae4SAndroid Build Coastguard Worker  *
16*6236dae4SAndroid Build Coastguard Worker  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17*6236dae4SAndroid Build Coastguard Worker  * copies of the Software, and permit persons to whom the Software is
18*6236dae4SAndroid Build Coastguard Worker  * furnished to do so, under the terms of the COPYING file.
19*6236dae4SAndroid Build Coastguard Worker  *
20*6236dae4SAndroid Build Coastguard Worker  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21*6236dae4SAndroid Build Coastguard Worker  * KIND, either express or implied.
22*6236dae4SAndroid Build Coastguard Worker  *
23*6236dae4SAndroid Build Coastguard Worker  * SPDX-License-Identifier: curl
24*6236dae4SAndroid Build Coastguard Worker  *
25*6236dae4SAndroid Build Coastguard Worker  ***************************************************************************/
26*6236dae4SAndroid Build Coastguard Worker 
27*6236dae4SAndroid Build Coastguard Worker #undef USE_WINSOCK
28*6236dae4SAndroid Build Coastguard Worker /* ---------------------------------------------------------------- */
29*6236dae4SAndroid Build Coastguard Worker /*                     Watt-32 TCP/IP SPECIFIC                      */
30*6236dae4SAndroid Build Coastguard Worker /* ---------------------------------------------------------------- */
31*6236dae4SAndroid Build Coastguard Worker #ifdef USE_WATT32
32*6236dae4SAndroid Build Coastguard Worker #  include <tcp.h>
33*6236dae4SAndroid Build Coastguard Worker #  undef byte
34*6236dae4SAndroid Build Coastguard Worker #  undef word
35*6236dae4SAndroid Build Coastguard Worker #  define HAVE_SYS_IOCTL_H
36*6236dae4SAndroid Build Coastguard Worker #  define HAVE_SYS_SOCKET_H
37*6236dae4SAndroid Build Coastguard Worker #  define HAVE_NETINET_IN_H
38*6236dae4SAndroid Build Coastguard Worker #  define HAVE_NETDB_H
39*6236dae4SAndroid Build Coastguard Worker #  define HAVE_ARPA_INET_H
40*6236dae4SAndroid Build Coastguard Worker #  define SOCKET int
41*6236dae4SAndroid Build Coastguard Worker /* ---------------------------------------------------------------- */
42*6236dae4SAndroid Build Coastguard Worker /*               BSD-style lwIP TCP/IP stack SPECIFIC               */
43*6236dae4SAndroid Build Coastguard Worker /* ---------------------------------------------------------------- */
44*6236dae4SAndroid Build Coastguard Worker #elif defined(USE_LWIPSOCK)
45*6236dae4SAndroid Build Coastguard Worker   /* Define to use BSD-style lwIP TCP/IP stack. */
46*6236dae4SAndroid Build Coastguard Worker   /* #define USE_LWIPSOCK 1 */
47*6236dae4SAndroid Build Coastguard Worker #  undef HAVE_GETHOSTNAME
48*6236dae4SAndroid Build Coastguard Worker #  undef LWIP_POSIX_SOCKETS_IO_NAMES
49*6236dae4SAndroid Build Coastguard Worker #  undef RECV_TYPE_ARG1
50*6236dae4SAndroid Build Coastguard Worker #  undef RECV_TYPE_ARG3
51*6236dae4SAndroid Build Coastguard Worker #  undef SEND_TYPE_ARG1
52*6236dae4SAndroid Build Coastguard Worker #  undef SEND_TYPE_ARG3
53*6236dae4SAndroid Build Coastguard Worker #  define HAVE_GETHOSTBYNAME_R
54*6236dae4SAndroid Build Coastguard Worker #  define HAVE_GETHOSTBYNAME_R_6
55*6236dae4SAndroid Build Coastguard Worker #  define LWIP_POSIX_SOCKETS_IO_NAMES 0
56*6236dae4SAndroid Build Coastguard Worker #  define RECV_TYPE_ARG1 int
57*6236dae4SAndroid Build Coastguard Worker #  define RECV_TYPE_ARG3 size_t
58*6236dae4SAndroid Build Coastguard Worker #  define SEND_TYPE_ARG1 int
59*6236dae4SAndroid Build Coastguard Worker #  define SEND_TYPE_ARG3 size_t
60*6236dae4SAndroid Build Coastguard Worker #elif defined(_WIN32)
61*6236dae4SAndroid Build Coastguard Worker #  define USE_WINSOCK 2
62*6236dae4SAndroid Build Coastguard Worker #endif
63*6236dae4SAndroid Build Coastguard Worker 
64*6236dae4SAndroid Build Coastguard Worker /*
65*6236dae4SAndroid Build Coastguard Worker  * Include header files for Windows builds before redefining anything.
66*6236dae4SAndroid Build Coastguard Worker  * Use this preprocessor block only to include or exclude windows.h,
67*6236dae4SAndroid Build Coastguard Worker  * winsock2.h or ws2tcpip.h. Any other Windows thing belongs
68*6236dae4SAndroid Build Coastguard Worker  * to any other further and independent block. Under Cygwin things work
69*6236dae4SAndroid Build Coastguard Worker  * just as under Linux (e.g. <sys/socket.h>) and the Winsock headers should
70*6236dae4SAndroid Build Coastguard Worker  * never be included when __CYGWIN__ is defined.
71*6236dae4SAndroid Build Coastguard Worker  */
72*6236dae4SAndroid Build Coastguard Worker 
73*6236dae4SAndroid Build Coastguard Worker #ifdef _WIN32
74*6236dae4SAndroid Build Coastguard Worker #  if defined(UNICODE) && !defined(_UNICODE)
75*6236dae4SAndroid Build Coastguard Worker #    error "UNICODE is defined but _UNICODE is not defined"
76*6236dae4SAndroid Build Coastguard Worker #  endif
77*6236dae4SAndroid Build Coastguard Worker #  if defined(_UNICODE) && !defined(UNICODE)
78*6236dae4SAndroid Build Coastguard Worker #    error "_UNICODE is defined but UNICODE is not defined"
79*6236dae4SAndroid Build Coastguard Worker #  endif
80*6236dae4SAndroid Build Coastguard Worker /*
81*6236dae4SAndroid Build Coastguard Worker  * Do not include unneeded stuff in Windows headers to avoid compiler
82*6236dae4SAndroid Build Coastguard Worker  * warnings and macro clashes.
83*6236dae4SAndroid Build Coastguard Worker  * Make sure to define this macro before including any Windows headers.
84*6236dae4SAndroid Build Coastguard Worker  */
85*6236dae4SAndroid Build Coastguard Worker #  ifndef WIN32_LEAN_AND_MEAN
86*6236dae4SAndroid Build Coastguard Worker #    define WIN32_LEAN_AND_MEAN
87*6236dae4SAndroid Build Coastguard Worker #  endif
88*6236dae4SAndroid Build Coastguard Worker #  ifndef NOGDI
89*6236dae4SAndroid Build Coastguard Worker #    define NOGDI
90*6236dae4SAndroid Build Coastguard Worker #  endif
91*6236dae4SAndroid Build Coastguard Worker #  include <winsock2.h>
92*6236dae4SAndroid Build Coastguard Worker #  include <ws2tcpip.h>
93*6236dae4SAndroid Build Coastguard Worker #  include <windows.h>
94*6236dae4SAndroid Build Coastguard Worker #  include <winerror.h>
95*6236dae4SAndroid Build Coastguard Worker #  include <tchar.h>
96*6236dae4SAndroid Build Coastguard Worker #  ifdef UNICODE
97*6236dae4SAndroid Build Coastguard Worker      typedef wchar_t *(*curl_wcsdup_callback)(const wchar_t *str);
98*6236dae4SAndroid Build Coastguard Worker #  endif
99*6236dae4SAndroid Build Coastguard Worker #endif
100*6236dae4SAndroid Build Coastguard Worker 
101*6236dae4SAndroid Build Coastguard Worker /*
102*6236dae4SAndroid Build Coastguard Worker  * Define _WIN32_WINNT_[OS] symbols because not all Windows build systems have
103*6236dae4SAndroid Build Coastguard Worker  * those symbols to compare against, and even those that do may be missing
104*6236dae4SAndroid Build Coastguard Worker  * newer symbols.
105*6236dae4SAndroid Build Coastguard Worker  */
106*6236dae4SAndroid Build Coastguard Worker 
107*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_NT4
108*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_NT4            0x0400   /* Windows NT 4.0 */
109*6236dae4SAndroid Build Coastguard Worker #endif
110*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_WIN2K
111*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_WIN2K          0x0500   /* Windows 2000 */
112*6236dae4SAndroid Build Coastguard Worker #endif
113*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_WINXP
114*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_WINXP          0x0501   /* Windows XP */
115*6236dae4SAndroid Build Coastguard Worker #endif
116*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_WS03
117*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_WS03           0x0502   /* Windows Server 2003 */
118*6236dae4SAndroid Build Coastguard Worker #endif
119*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_VISTA
120*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_VISTA          0x0600   /* Windows Vista */
121*6236dae4SAndroid Build Coastguard Worker #endif
122*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_WS08
123*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_WS08           0x0600   /* Windows Server 2008 */
124*6236dae4SAndroid Build Coastguard Worker #endif
125*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_WIN7
126*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_WIN7           0x0601   /* Windows 7 */
127*6236dae4SAndroid Build Coastguard Worker #endif
128*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_WIN8
129*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_WIN8           0x0602   /* Windows 8 */
130*6236dae4SAndroid Build Coastguard Worker #endif
131*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_WINBLUE
132*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_WINBLUE        0x0603   /* Windows 8.1 */
133*6236dae4SAndroid Build Coastguard Worker #endif
134*6236dae4SAndroid Build Coastguard Worker #ifndef _WIN32_WINNT_WIN10
135*6236dae4SAndroid Build Coastguard Worker #define _WIN32_WINNT_WIN10          0x0A00   /* Windows 10 */
136*6236dae4SAndroid Build Coastguard Worker #endif
137*6236dae4SAndroid Build Coastguard Worker 
138*6236dae4SAndroid Build Coastguard Worker #endif /* HEADER_CURL_SETUP_WIN32_H */
139