2 #ifndef GAUDIKERNEL_KERNEL_H
3 #define GAUDIKERNEL_KERNEL_H
8 #pragma warning ( disable : 4786 )
10 #pragma warning ( disable : 4291 )
12 #pragma warning ( disable : 4250 )
18 #ifndef NO_LONGLONG_TYPEDEF
24 #define LONGLONG_MAX 0x7FFFFFFFFFFFFFFFLL
27 #define LONGLONG_MIN 0x8000000000000000LL
31 #define ULONGLONG_MAX 0xFFFFFFFFFFFFFFFFLL
34 #define ULONGLONG_MIN 0x0000000000000000LL
36 #elif defined(__linux) || defined(__APPLE__)
37 #ifndef NO_LONGLONG_TYPEDEF
43 #define LONGLONG_MAX 0x7FFFFFFFFFFFFFFFLL
46 #define LONGLONG_MIN 0x8000000000000000LL
50 #define ULONGLONG_MAX 0xfFFFFFFFFFFFFFFFLL
53 #define ULONGLONG_MIN 0x0000000000000000LL
60 static const __longlong LONGLONG_MAX = {0x7FFFFFFF, 0xFFFFFFFF};
61 static const __longlong LONGLONG_MIN = {0x80000000, 0x00000000};
62 static const __ulonglong ULONGLONG_MAX = {0xFFFFFFFF, 0xFFFFFFFF};
63 static const __ulonglong ULONGLONG_MIN = {0x00000000, 0x00000000};
67 #define TEMPLATE_SPECIALIZATION template <>
68 #elif defined(__linux) || defined(__APPLE__)
69 #define TEMPLATE_SPECIALIZATION
74 #if !defined(GAUDI_V20_COMPAT) || defined(G21_HIDE_SYMBOLS)
77 #if __GNUC__ >= 4 && ! defined(__CINT__)
78 # define GAUDI_HASCLASSVISIBILITY
93 # if defined(GAUDI_HASCLASSVISIBILITY)
94 # define GAUDI_IMPORT __attribute__((visibility("default")))
95 # define GAUDI_EXPORT __attribute__((visibility("default")))
96 # define GAUDI_LOCAL __attribute__((visibility("hidden")))
105 #ifdef GAUDI_LINKER_LIBRARY
106 #define GAUDI_API GAUDI_EXPORT
108 #define GAUDI_API GAUDI_IMPORT
116 #endif // GAUDI_V20_COMPAT
123 # define LIKELY(x) __builtin_expect((x),1)
124 # define UNLIKELY(x) __builtin_expect((x),0)
127 # define UNLIKELY(x) x
131 #endif // GAUDIKERNEL_KERNEL_H