![]() |
RTXI 1.3
|
00001 /* 00002 osiPlatform.h 00003 */ 00004 00005 #ifndef ___osiPlatform_h___ 00006 #define ___osiPlatform_h___ 00007 00008 // Operating System defines 00009 00010 #define nOSINT100_kLinux 0 00011 #define nOSINT100_kMacOSX 0 00012 #define nOSINT100_kPharLap 0 00013 #define nOSINT100_kVenturComRTX 0 00014 #define nOSINT100_kWindows 0 00015 00016 // Processor defines 00017 00018 #define nOSINT100_kIntel86 0 00019 #define nOSINT100_kPowerPC 0 00020 00021 // Compiler defines 00022 00023 #define nOSINT100_kApple 0 00024 #define nOSINT100_kGNU 0 00025 #define nOSINT100_kMicrosoft 0 00026 00027 // OS, Processor and Compiler Detection 00028 00029 #if (defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_I86))) 00030 #undef nOSINT100_kIntel86 00031 #define nOSINT100_kIntel86 1 00032 00033 #undef nOSINT100_kMicrosoft 00034 #define nOSINT100_kMicrosoft _MSC_VER 00035 #elif ((defined(__GNUG__) || defined(__GNUC__)) && defined(__i386__)) 00036 #undef nOSINT100_kIntel86 00037 #define nOSINT100_kIntel86 1 00038 00039 #undef nOSINT100_kGNU 00040 #define nOSINT100_kGNU 1 00041 #elif ((defined(__GNUG__) || defined(__GNUC__)) && defined(__ppc__) && defined(__APPLE__)) 00042 #undef nOSINT100_kMacOSX 00043 #define nOSINT100_kMacOSX 1 00044 00045 #undef nOSINT100_kPowerPC 00046 #define nOSINT100_kPowerPC 1 00047 00048 #undef nOSINT100_kApple 00049 #define nOSINT100_kApple 1 00050 #else 00051 #error Unknown target; 00052 #endif 00053 00054 #if nOSINT100_kIntel86 00055 #if defined(__linux__) 00056 #undef nOSINT100_kLinux 00057 #define nOSINT100_kLinux 1 00058 #elif defined(PHARLAPOS) 00059 #undef nOSINT100_kPharLap 00060 #define nOSINT100_kPharLap 1 00061 #elif defined(RTXOS) 00062 #undef nOSINT100_kVenturComRTX 00063 #define nOSINT100_kVenturComRTX 1 00064 #elif defined(WINDOWSOS) 00065 #undef nOSINT100_kWindows 00066 #define nOSINT100_kWindows 1 00067 #elif defined(_WIN32) 00068 #undef nOSINT100_kWindows 00069 #define nOSINT100_kWindows 1 00070 #else 00071 #error Unknown target operating system; 00072 #endif 00073 #endif 00074 00075 // Define endianness 00076 00077 #if nOSINT100_kIntel86 00078 #define nOSINT100_kBigEndian 0 00079 #define nOSINT100_kLittleEndian 1 00080 #elif nOSINT100_kPowerPC 00081 #define nOSINT100_kBigEndian 1 00082 #define nOSINT100_kLittleEndian 0 00083 #else 00084 #error Unknown processor; 00085 #endif 00086 00087 // language defines 00088 00089 #if defined(__cplusplus) 00090 00091 #define nOSINT100_kC 0 00092 #define nOSINT100_kCpp 1 00093 #define nOSINT100_cppHeader extern "C" { 00094 #define nOSINT100_cppTrailer } 00095 #define nOSINT100_EXTERNC extern "C" 00096 00097 #else 00098 00099 #define nOSINT100_kC 1 00100 #define nOSINT100_kCpp 0 00101 #define nOSINT100_cppHeader 00102 #define nOSINT100_cppTrailer 00103 #define nOSINT100_EXTERNC 00104 00105 #endif 00106 00107 // OS-Specific Defines 00108 00109 #if nOSINT100_kLinux 00110 00111 #define nOSINT100_kImport 00112 #define nOSINT100_kExport __attribute__ ((section (".export"))) 00113 #define nOSINT100_kImportData 00114 #define nOSINT100_kExportData __attribute__ ((section (".exportData"))) 00115 #define nOSINT100_kCCall 00116 #define nOSINT100_kStdCall 00117 00118 #endif 00119 00120 #if nOSINT100_kMacOSX 00121 00122 #define nOSINT100_kImport 00123 #define nOSINT100_kExport __attribute__ ((section ("__TEXT,__export"))) 00124 #define nOSINT100_kImportData 00125 #define nOSINT100_kExportData __attribute__ ((section ("__DATA,__export"))) 00126 #define nOSINT100_kCCall 00127 #define nOSINT100_kStdCall 00128 00129 #endif 00130 00131 #if nOSINT100_kPharLap 00132 00133 #define nOSINT100_kImport __declspec(dllimport) 00134 #define nOSINT100_kExport __declspec(dllexport) 00135 #define nOSINT100_kImportData __declspec(dllimport) 00136 #define nOSINT100_kExportData __declspec(dllexport) 00137 #define nOSINT100_kCCall __cdecl 00138 #define nOSINT100_kStdCall __stdcall 00139 00140 #endif 00141 00142 #if nOSINT100_kVenturComRTX 00143 00144 #define nOSINT100_kImport __declspec(dllimport) 00145 #define nOSINT100_kExport __declspec(dllexport) 00146 #define nOSINT100_kImportData __declspec(dllimport) 00147 #define nOSINT100_kExportData __declspec(dllexport) 00148 #define nOSINT100_kCCall __cdecl 00149 #define nOSINT100_kStdCall __stdcall 00150 00151 #endif 00152 00153 #if nOSINT100_kWindows 00154 00155 #define nOSINT100_kImport __declspec(dllimport) 00156 #define nOSINT100_kExport __declspec(dllexport) 00157 #define nOSINT100_kImportData __declspec(dllimport) 00158 #define nOSINT100_kExportData __declspec(dllexport) 00159 #define nOSINT100_kCCall __cdecl 00160 #define nOSINT100_kStdCall __stdcall 00161 00162 #endif 00163 00164 // Sanity checks -- 00165 00166 // Operating Systems 00167 #if !(nOSINT100_kLinux || nOSINT100_kMacOSX || nOSINT100_kPharLap || nOSINT100_kVenturComRTX || nOSINT100_kWindows) 00168 #error Operating System unknown! 00169 #endif 00170 00171 // Processors 00172 #if !(nOSINT100_kIntel86 || nOSINT100_kPowerPC) 00173 #error Processor unknown! 00174 #endif 00175 00176 // Compilers 00177 #if !(nOSINT100_kApple || nOSINT100_kGNU || nOSINT100_kMicrosoft) 00178 #error Compiler unknown! 00179 #endif 00180 00181 // Global definitions 00182 00183 #ifndef nOSINT100_DisableGlobalDefines 00184 00185 #ifndef nOSINT100_DisableGlobalOSDefines 00186 #define kLinux nOSINT100_kLinux 00187 #define kMacOSX nOSINT100_kMacOSX 00188 #define kPharLap nOSINT100_kPharLap 00189 #define kkVenturComRTX nOSINT100_kVenturComRTX 00190 #define kWindows nOSINT100_kWindows 00191 #endif 00192 00193 #ifndef nOSINT100_DisableGlobalProcessorDefines 00194 #define kIntel86 nOSINT100_kIntel86 00195 #define kPowerPC nOSINT100_kPowerPC 00196 #endif 00197 00198 #ifndef nOSINT100_DisableGlobalCompilerDefines 00199 #define kApple nOSINT100_kApple 00200 #define kGNU nOSINT100_kGNU 00201 #define kMicrosoft nOSINT100_kMicrosoft 00202 #endif 00203 00204 #ifndef nOSINT100_DisableGlobalEXTERNCDefine 00205 #define EXTERNC nOSINT100_EXTERNC 00206 #endif 00207 00208 #ifndef nOSINT100_DisableGlobalLanguageDefines 00209 #define kC nOSINT100_kC 00210 #define kCpp nOSINT100_kCpp 00211 #define cppHeader nOSINT100_cppHeader 00212 #define cppTrailer nOSINT100_cppTrailer 00213 #endif 00214 00215 #ifndef nOSINT100_DisableGlobalEndiannessDefines 00216 #define kBigEndian nOSINT100_kBigEndian 00217 #define kLittleEndian nOSINT100_kLittleEndian 00218 #endif 00219 00220 #ifndef nOSINT100_DisableGlobalExportDefines 00221 #define kImport nOSINT100_kImport 00222 #define kExport nOSINT100_kExport 00223 #define kImportData nOSINT100_kImportData 00224 #define kExportData nOSINT100_kExportData 00225 #define kCCall nOSINT100_kCCall 00226 #define kStdCall nOSINT100_kStdCall 00227 #endif 00228 00229 #endif //nOSINT100_DisableGlobalDefines 00230 00231 00232 #endif //___osiPlatform_h___