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 _ERRCODE_DEFINED	/* FIXME?  errno_t is no POSIX type. */
27#define _TIME_T_DEFINED
28
29/* _WIN64 is defined by the compiler specs when targeting Windows.
30   The Cygwin-targeting gcc does not define it by default, same as
31   with _WIN32.  Therefore we set it here.  The result is that _WIN64
32   is only defined if Windows headers are included. */
33#ifdef __x86_64__
34#define _WIN64
35#endif
36
37#endif /* _INC_CYGWIN */
38