// Copyright 2012 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. #ifndef RUST_GLOBALS_H #define RUST_GLOBALS_H #if defined(__cplusplus) #define INLINE inline #elif defined(_MSC_VER) || defined(__GNUC__) #define INLINE __inline__ #else #define INLINE inline #endif #if defined(__GNUC__) #define ALWAYS_INLINE __attribute__((always_inline)) INLINE #elif defined(_MSC_VER) #define ALWAYS_INLINE __forceinline #else #define ALWAYS_INLINE INLINE #endif #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #ifndef __STDC_CONSTANT_MACROS #define __STDC_CONSTANT_MACROS 1 #endif #ifndef __STDC_FORMAT_MACROS #define __STDC_FORMAT_MACROS 1 #endif #define ERROR 0 #include #include #include #include #include #include #include #include #include #include #include #if defined(__WIN32__) extern "C" { #include #include #include } #elif defined(__GNUC__) #include #include #include #include #include #define GCC_VERSION (__GNUC__ * 10000 \ + __GNUC_MINOR__ * 100 \ + __GNUC_PATCHLEVEL__) #else #error "Platform not supported." #endif #ifdef __i386__ // 'cdecl' ABI only means anything on i386 #ifdef __WIN32__ #ifndef CDECL #define CDECL __cdecl #endif #ifndef FASTCALL #endif #else #define CDECL __attribute__((cdecl)) #endif #else #define CDECL #endif #define CHECKED(call) \ { \ int res = (call); \ if(0 != res) { \ fprintf(stderr, \ #call " failed in %s at line %d, result = %d " \ "(%s) \n", \ __FILE__, __LINE__, res, strerror(res)); \ abort(); \ } \ } #endif /* RUST_GLOBALS_H */