win32: wincon.h: support more console mode flags
[tinycc.git] / win32 / include / _mingw.h
blob3f227f227ad337f97c30e3cd02f9fce2659bc05e
1 /*
2 * _mingw.h
4 * This file is for TinyCC and not part of the Mingw32 package.
6 * THIS SOFTWARE IS NOT COPYRIGHTED
8 * This source code is offered for use in the public domain. You may
9 * use, modify or distribute it freely.
11 * This code is distributed in the hope that it will be useful but
12 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13 * DISCLAIMED. This includes but is not limited to warranties of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 #ifndef __MINGW_H
19 #define __MINGW_H
21 /* some winapi files define these before including _mingw.h --> */
22 #undef __cdecl
23 #undef _X86_
24 #undef WIN32
25 /* <-- */
27 #include <stddef.h>
28 #include <stdarg.h>
30 #define __int8 char
31 #define __int16 short
32 #define __int32 int
33 #define __int64 long long
34 #define _HAVE_INT64
36 #define __cdecl
37 #define __declspec(x) __attribute__((x))
38 #define __unaligned __attribute__((packed))
39 #define __fastcall __attribute__((fastcall))
41 #define __MSVCRT__ 1
42 #undef _MSVCRT_
43 #define __MINGW_IMPORT extern __declspec(dllimport)
44 #define __MINGW_ATTRIB_NORETURN __declspec(noreturn)
45 #define __MINGW_ATTRIB_CONST
46 #define __MINGW_ATTRIB_DEPRECATED
47 #define __MINGW_ATTRIB_MALLOC
48 #define __MINGW_ATTRIB_PURE
49 #define __MINGW_ATTRIB_NONNULL(arg)
50 #define __MINGW_NOTHROW
51 #define __GNUC_VA_LIST
53 #define _CRTIMP extern
54 #define __CRT_INLINE static __inline__
56 #define _CRT_ALIGN(x) __attribute__((aligned(x)))
57 #define DECLSPEC_ALIGN(x) __attribute__((aligned(x)))
58 #define _CRT_PACKING 8
59 #define __CRT_UNALIGNED
60 #define _CONST_RETURN
62 #ifndef _TRUNCATE
63 #define _TRUNCATE ((size_t)-1)
64 #endif
66 #define __CRT_STRINGIZE(_Value) #_Value
67 #define _CRT_STRINGIZE(_Value) __CRT_STRINGIZE(_Value)
68 #define __CRT_WIDE(_String) L ## _String
69 #define _CRT_WIDE(_String) __CRT_WIDE(_String)
71 #ifdef _WIN64
72 #define __stdcall
73 #define _AMD64_ 1
74 #define __x86_64 1
75 #define _M_X64 100 /* Visual Studio */
76 #define _M_AMD64 100 /* Visual Studio */
77 #define USE_MINGW_SETJMP_TWO_ARGS
78 #define mingw_getsp tinyc_getbp
79 #else
80 #define __stdcall __attribute__((__stdcall__))
81 #define _X86_ 1
82 #define _M_IX86 300 /* Visual Studio */
83 #define _USE_32BIT_TIME_T
84 #endif
86 /* in stddef.h */
87 #define _SIZE_T_DEFINED
88 #define _SSIZE_T_DEFINED
89 #define _PTRDIFF_T_DEFINED
90 #define _WCHAR_T_DEFINED
91 #define _UINTPTR_T_DEFINED
92 #define _INTPTR_T_DEFINED
93 #define _INTEGRAL_MAX_BITS 64
95 #ifndef _TIME32_T_DEFINED
96 #define _TIME32_T_DEFINED
97 typedef long __time32_t;
98 #endif
100 #ifndef _TIME64_T_DEFINED
101 #define _TIME64_T_DEFINED
102 typedef long long __time64_t;
103 #endif
105 #ifndef _TIME_T_DEFINED
106 #define _TIME_T_DEFINED
107 #ifdef _USE_32BIT_TIME_T
108 typedef __time32_t time_t;
109 #else
110 typedef __time64_t time_t;
111 #endif
112 #endif
114 #ifndef _WCTYPE_T_DEFINED
115 #define _WCTYPE_T_DEFINED
116 typedef wchar_t wctype_t;
117 #endif
119 #ifndef _WINT_T
120 #define _WINT_T
121 typedef __WINT_TYPE__ wint_t;
122 #endif
124 typedef int errno_t;
125 #define _ERRCODE_DEFINED
127 typedef struct threadlocaleinfostruct *pthreadlocinfo;
128 typedef struct threadmbcinfostruct *pthreadmbcinfo;
129 typedef struct localeinfo_struct _locale_tstruct,*_locale_t;
131 /* for winapi */
132 #define _ANONYMOUS_UNION
133 #define _ANONYMOUS_STRUCT
134 #define DECLSPEC_NORETURN __declspec(noreturn)
135 #define DECLARE_STDCALL_P(type) __stdcall type
136 #define NOSERVICE 1
137 #define NOMCX 1
138 #define NOIME 1
139 #define __INTRIN_H_
140 #ifndef DUMMYUNIONNAME
141 # define DUMMYUNIONNAME
142 # define DUMMYUNIONNAME1
143 # define DUMMYUNIONNAME2
144 # define DUMMYUNIONNAME3
145 # define DUMMYUNIONNAME4
146 # define DUMMYUNIONNAME5
147 #endif
148 #ifndef DUMMYSTRUCTNAME
149 # define DUMMYSTRUCTNAME
150 #endif
151 #ifndef WINVER
152 # define WINVER 0x0502
153 #endif
154 #ifndef _WIN32_WINNT
155 # define _WIN32_WINNT 0x502
156 #endif
158 #define __C89_NAMELESS
159 #define __MINGW_EXTENSION
160 #define WINAPI_FAMILY_PARTITION(X) 1
161 #define MINGW_HAS_SECURE_API
162 #define WIN32 1
164 #endif /* __MINGW_H */