Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygen_mingw.h
Go to the documentation of this file.
00001 00007 #ifndef _INC_MINGW 00008 #define _INC_MINGW 00009 00010 #define _INTEGRAL_MAX_BITS 64 00011 00012 #ifndef MINGW64 00013 #define MINGW64 00014 #define MINGW64_VERSION 1.0 00015 #define MINGW64_VERSION_MAJOR 1 00016 #define MINGW64_VERSION_MINOR 0 00017 #define MINGW64_VERSION_STATE "alpha" 00018 #endif 00019 00020 #ifdef _WIN64 00021 #ifdef __stdcall 00022 #undef __stdcall 00023 #endif 00024 #define __stdcall 00025 #endif 00026 00027 #ifdef __GNUC__ 00028 /* These compilers do support __declspec */ 00029 # if !defined(__MINGW32__) && !defined(__MINGW64__) && !defined(__CYGWIN32__) 00030 # define __declspec(x) __attribute__((x)) 00031 # endif 00032 #endif 00033 00034 #ifdef _MSC_VER 00035 #define __restrict__ /* nothing */ 00036 #endif 00037 00038 #if defined (__GNUC__) && defined (__GNUC_MINOR__) 00039 #define __MINGW_GNUC_PREREQ(major, minor) \ 00040 (__GNUC__ > (major) \ 00041 || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor))) 00042 #else 00043 #define __MINGW_GNUC_PREREQ(major, minor) 0 00044 #endif 00045 00046 #if defined (_MSC_VER) 00047 #define __MINGW_MSC_PREREQ(major, minor) (_MSC_VER >= (major * 100 + minor * 10)) 00048 #else 00049 #define __MINGW_MSC_PREREQ(major, minor) 0 00050 #endif 00051 00052 #define USE___UUIDOF 0 00053 00054 #ifdef __cplusplus 00055 # define __CRT_INLINE inline 00056 #elif defined(_MSC_VER) 00057 # define __CRT_INLINE __inline 00058 #elif defined(__GNUC__) 00059 # if ( __MINGW_GNUC_PREREQ(4, 3) && __STDC_VERSION__ >= 199901L) 00060 # define __CRT_INLINE extern inline __attribute__((__always_inline__,__gnu_inline__)) 00061 # else 00062 # define __CRT_INLINE extern __inline__ __attribute__((__always_inline__)) 00063 # endif 00064 #endif 00065 00066 #ifdef __cplusplus 00067 # define __UNUSED_PARAM(x) 00068 #else 00069 # ifdef __GNUC__ 00070 # define __UNUSED_PARAM(x) x __attribute__ ((__unused__)) 00071 # else 00072 # define __UNUSED_PARAM(x) x 00073 # endif 00074 #endif 00075 00076 #ifdef __cplusplus 00077 # define __unaligned 00078 #else 00079 # ifdef __GNUC__ 00080 # define __unaligned 00081 # elif defined(_MSC_VER) && !defined(_M_IA64) && !defined(_M_AMD64) 00082 # define __unaligned 00083 # else 00084 # define __unaligned 00085 # endif 00086 #endif 00087 00088 #ifdef __GNUC__ 00089 #define __MINGW_ATTRIB_NORETURN __attribute__ ((__noreturn__)) 00090 #define __MINGW_ATTRIB_CONST __attribute__ ((__const__)) 00091 #elif __MINGW_MSC_PREREQ(12, 0) 00092 #define __MINGW_ATTRIB_NORETURN __declspec(noreturn) 00093 #define __MINGW_ATTRIB_CONST 00094 #else 00095 #define __MINGW_ATTRIB_NORETURN 00096 #define __MINGW_ATTRIB_CONST 00097 #endif 00098 00099 #if __MINGW_GNUC_PREREQ (3, 0) 00100 #define __MINGW_ATTRIB_MALLOC __attribute__ ((__malloc__)) 00101 #define __MINGW_ATTRIB_PURE __attribute__ ((__pure__)) 00102 #elif __MINGW_MSC_PREREQ(14, 0) 00103 #define __MINGW_ATTRIB_MALLOC __declspec(noalias) __declspec(restrict) 00104 #define __MINGW_ATTRIB_PURE 00105 #else 00106 #define __MINGW_ATTRIB_MALLOC 00107 #define __MINGW_ATTRIB_PURE 00108 #endif 00109 00110 /* Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's 00111 variadiac macro facility, because variadic macros cause syntax 00112 errors with --traditional-cpp. */ 00113 #if __MINGW_GNUC_PREREQ (3, 3) 00114 #define __MINGW_ATTRIB_NONNULL(arg) __attribute__ ((__nonnull__ (arg))) 00115 #else 00116 #define __MINGW_ATTRIB_NONNULL(arg) 00117 #endif /* GNUC >= 3.3 */ 00118 00119 #ifdef __GNUC__ 00120 #define __MINGW_ATTRIB_UNUSED __attribute__ ((__unused__)) 00121 #else 00122 #define __MINGW_ATTRIB_UNUSED 00123 #endif /* ATTRIBUTE_UNUSED */ 00124 00125 #if __MINGW_GNUC_PREREQ (3, 1) 00126 #define __MINGW_ATTRIB_DEPRECATED __attribute__ ((__deprecated__)) 00127 #elif __MINGW_MSC_PREREQ(12, 0) 00128 #define __MINGW_ATTRIB_DEPRECATED __declspec(deprecated) 00129 #else 00130 #define __MINGW_ATTRIB_DEPRECATED 00131 #endif 00132 00133 #if __MINGW_GNUC_PREREQ (3, 3) 00134 #define __MINGW_NOTHROW __attribute__ ((__nothrow__)) 00135 #elif __MINGW_MSC_PREREQ(12, 0) && defined (__cplusplus) 00136 #define __MINGW_NOTHROW __declspec(nothrow) 00137 #else 00138 #define __MINGW_NOTHROW 00139 #endif 00140 00141 /* TODO: Mark (almost) all CRT functions as __MINGW_NOTHROW. This will 00142 allow GCC to optimize away some EH unwind code, at least in DW2 case. */ 00143 00144 #ifndef __MINGW_EXTENSION 00145 #if defined(__GNUC__) || defined(__GNUG__) 00146 #define __MINGW_EXTENSION __extension__ 00147 #else 00148 #define __MINGW_EXTENSION 00149 #endif 00150 #endif 00151 00152 #ifndef __MSVCRT_VERSION__ 00153 /* High byte is the major version, low byte is the minor. */ 00154 # define __MSVCRT_VERSION__ 0x0700 00155 #endif 00156 00157 //#ifndef WINVER 00158 //#define WINVER 0x0502 00159 //#endif 00160 00161 //#ifndef _WIN32_WINNT 00162 //#define _WIN32_WINNT 0x502 00163 //#endif 00164 00165 #ifdef __GNUC__ 00166 #define __int8 char 00167 #define __int16 short 00168 #define __int32 int 00169 #define __int64 long long 00170 #ifdef _WIN64 00171 typedef int __int128 __attribute__ ((mode (TI))); 00172 # endif 00173 # define __ptr32 00174 # define __ptr64 00175 # define __forceinline extern __inline __attribute((always_inline)) 00176 #endif 00177 00178 #ifdef __cplusplus 00179 #ifndef __nothrow 00180 #define __nothrow __declspec(nothrow) 00181 #endif 00182 #else 00183 #ifndef __nothrow 00184 #define __nothrow 00185 #endif 00186 #endif 00187 00188 #if defined(_WIN64) && !defined(_MSC_VER) 00189 #undef USE_MINGW_SETJMP_TWO_ARGS 00190 #define USE_MINGW_SETJMP_TWO_ARGS 00191 #endif 00192 00193 /* Disable deprecation for now! */ 00194 #define _CRT_SECURE_NO_DEPRECATE 00195 #define _CRT_SECURE_NO_DEPRECATE_CORE 00196 #ifdef __WINESRC__ 00197 #define _CRT_NONSTDC_NO_DEPRECATE 00198 #endif 00199 00200 #define __crt_typefix(ctype) 00201 00202 #ifndef _CRT_UNUSED 00203 #define _CRT_UNUSED(x) (void)x 00204 #endif 00205 00206 #ifdef _MSC_VER 00207 #define ATTRIB_NORETURN 00208 #define _DECLSPEC_INTRIN_TYPE __declspec(intrin_type) 00209 #else 00210 #define ATTRIB_NORETURN DECLSPEC_NORETURN 00211 #define _DECLSPEC_INTRIN_TYPE 00212 #endif 00213 00214 #include "_mingw_mac.h" 00215 00216 #endif /* !_INC_MINGW */ 00217 Generated on Sun May 27 2012 04:29:50 for ReactOS by
1.7.6.1
|