1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _INC_CYGWIN
7 #define _INC_CYGWIN
8 
9 #ifndef __CYGWIN__
10 #error Only Cygwin target is supported!
11 #endif
12 
13 /* This includes the Cygwin gcc definitions for types like wchar_t or size_t. */
14 #include <stddef.h>
15 
16 /* Make sure that POSIX types are not defined by _mingw.h if we're building
17    for a Cygwin target.  In this case we have to make sure to use the types
18    defined by the Cygwin/newlib headers. */
19 #define _SIZE_T_DEFINED
20 #define _SSIZE_T_DEFINED
21 #define _INTPTR_T_DEFINED
22 #define _UINTPTR_T_DEFINED
23 #define _PTRDIFF_T_DEFINED
24 #define _WCHAR_T_DEFINED
25 #define _WCTYPE_T_DEFINED
26 #define _TIME_T_DEFINED
27 
28 /* _WIN64 is defined by the compiler specs when targeting Windows.
29    The Cygwin-targeting gcc does not define it by default, same as
30    with _WIN32.  Therefore we set it here.  The result is that _WIN64
31    is only defined if Windows headers are included. */
32 #ifdef __x86_64__
33 #define _WIN64
34 #endif
35 
36 #endif /* _INC_CYGWIN */
37