156 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * _mingw.h
 | |
|  *
 | |
|  * Mingw specific macros included by ALL include files. 
 | |
|  *
 | |
|  * This file is part of the Mingw32 package.
 | |
|  *
 | |
|  * Contributors:
 | |
|  *  Created by Mumit Khan  <khan@xraylith.wisc.edu>
 | |
|  *
 | |
|  *  THIS SOFTWARE IS NOT COPYRIGHTED
 | |
|  *
 | |
|  *  This source code is offered for use in the public domain. You may
 | |
|  *  use, modify or distribute it freely.
 | |
|  *
 | |
|  *  This code is distributed in the hope that it will be useful but
 | |
|  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 | |
|  *  DISCLAIMED. This includes but is not limited to warranties of
 | |
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef __MINGW_H
 | |
| #define __MINGW_H
 | |
| 
 | |
| /* These are defined by the user (or the compiler)
 | |
|    to specify how identifiers are imported from a DLL.
 | |
| 
 | |
|    __DECLSPEC_SUPPORTED    Defined if dllimport attribute is supported.
 | |
|    __MINGW_IMPORT          The attribute definition to specify imported
 | |
|                            variables/functions. 
 | |
|    _CRTIMP                 As above.  For MS compatibility.  
 | |
|    __MINGW32_VERSION       Runtime version.
 | |
|    __MINGW32_MAJOR_VERSION Runtime major version.
 | |
|    __MINGW32_MINOR_VERSION Runtime minor version.
 | |
|    __MINGW32_BUILD_DATE    Runtime build date.
 | |
|    
 | |
|    Other macros:
 | |
| 
 | |
|    __int64                 define to be long long. Using a typedef doesn't
 | |
|                            work for "unsigned __int64"
 | |
|   
 | |
|    All headers should include this first, and then use __DECLSPEC_SUPPORTED
 | |
|    to choose between the old ``__imp__name'' style or __MINGW_IMPORT
 | |
|    style declarations.  */
 | |
| 
 | |
| /* Try to avoid problems with outdated checks for GCC __attribute__ support.  */ 
 | |
| #undef __attribute__
 | |
| 
 | |
| #ifndef __GNUC__
 | |
| # ifndef __MINGW_IMPORT
 | |
| #  define __MINGW_IMPORT  __declspec(dllimport)
 | |
| # endif
 | |
| # ifndef _CRTIMP
 | |
| #  define _CRTIMP  __declspec(dllimport)
 | |
| # endif
 | |
| # define __DECLSPEC_SUPPORTED
 | |
| # define __attribute__(x) /* nothing */
 | |
| #else /* __GNUC__ */
 | |
| # ifdef __declspec
 | |
| #  ifndef __MINGW_IMPORT
 | |
|    /* Note the extern. This is needed to work around GCC's
 | |
|       limitations in handling dllimport attribute.  */
 | |
| #   define __MINGW_IMPORT  extern __attribute__ ((dllimport))
 | |
| #  endif
 | |
| #  ifndef _CRTIMP
 | |
| #   ifdef __USE_CRTIMP
 | |
| #    define _CRTIMP  __attribute__ ((dllimport))
 | |
| #   else  
 | |
| #    define _CRTIMP
 | |
| #   endif
 | |
| #  endif
 | |
| #  define __DECLSPEC_SUPPORTED
 | |
| # else /* __declspec */
 | |
| #  undef __DECLSPEC_SUPPORTED
 | |
| #  undef __MINGW_IMPORT
 | |
| #  ifndef _CRTIMP
 | |
| #   define _CRTIMP
 | |
| #  endif
 | |
| # endif /* __declspec */
 | |
| # ifndef __cdecl
 | |
| #  define __cdecl __attribute__ ((__cdecl__))
 | |
| # endif
 | |
| # ifndef __stdcall
 | |
| #  define __stdcall __attribute__ ((__stdcall__))
 | |
| # endif
 | |
| # ifndef __int64
 | |
| #  define __int64 long long
 | |
| # endif
 | |
| # ifndef __int32
 | |
| #  define __int32 long
 | |
| # endif
 | |
| # ifndef __int16
 | |
| #  define __int16 short
 | |
| # endif
 | |
| # ifndef __int8
 | |
| #  define __int8 char
 | |
| # endif
 | |
| # ifndef __small
 | |
| #  define __small char
 | |
| # endif
 | |
| # ifndef __hyper
 | |
| #  define __hyper long long
 | |
| # endif
 | |
| #endif /* __GNUC__ */
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| #define __CRT_INLINE inline
 | |
| #else
 | |
| #define __CRT_INLINE extern __inline__
 | |
| #endif
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| # define __UNUSED_PARAM(x) 
 | |
| #else 
 | |
| # ifdef __GNUC__
 | |
| #  define __UNUSED_PARAM(x) x __attribute__ ((__unused__))
 | |
| # else
 | |
| #  define __UNUSED_PARAM(x) x
 | |
| # endif
 | |
| #endif
 | |
| 
 | |
| #ifdef __GNUC__
 | |
| #define __MINGW_ATTRIB_NORETURN __attribute__ ((__noreturn__))
 | |
| #define __MINGW_ATTRIB_CONST __attribute__ ((__const__))
 | |
| #else
 | |
| #define __MINGW_ATTRIB_NORETURN
 | |
| #define __MINGW_ATTRIB_CONST
 | |
| #endif
 | |
| 
 | |
| #if ( __GNUC__ >= 3)
 | |
| #define __MINGW_ATTRIB_MALLOC __attribute__ ((__malloc__))
 | |
| #define __MINGW_ATTRIB_PURE __attribute__ ((__pure__))
 | |
| #else
 | |
| #define __MINGW_ATTRIB_MALLOC
 | |
| #define __MINGW_ATTRIB_PURE
 | |
| #endif
 | |
| 
 | |
| /* Attribute `nonnull' was valid as of gcc 3.3.  */
 | |
| #if (__GNUC__ > 3 ||( __GNUC__ == 3 &&  __GNUC_MINOR >= 3))
 | |
| #define __MINGW_ATTRIB_NONNULL(args...) __attribute__ ((__nonnull__ (args)))
 | |
| #else
 | |
| #define __MINGW_ATTRIB_NONNULL(args...)
 | |
| #endif /* GNUC >= 3.3 */
 | |
| 
 | |
| #ifndef __MSVCRT_VERSION__
 | |
| /*  High byte is the major version, low byte is the minor. */
 | |
| # define __MSVCRT_VERSION__ 0x0600
 | |
| #endif
 | |
| 
 | |
| #define __MINGW32_VERSION 3.7
 | |
| #define __MINGW32_MAJOR_VERSION 3
 | |
| #define __MINGW32_MINOR_VERSION 7
 | |
| 
 | |
| #endif /* __MINGW_H */
 |