Open Reality Reference Guide
arch.h
Go to the documentation of this file.
1
4
#ifndef KARCH_ARCH_H
5
#define KARCH_ARCH_H
6
7
/**************************************************************************************
8
9
Copyright (C) 2001 - 2009 Autodesk, Inc. and/or its licensors.
10
All Rights Reserved.
11
12
The coded instructions, statements, computer programs, and/or related material
13
(collectively the "Data") in these files contain unpublished information
14
proprietary to Autodesk, Inc. and/or its licensors, which is protected by
15
Canada and United States of America federal copyright law and by international
16
treaties.
17
18
The Data may not be disclosed or distributed to third parties, in whole or in
19
part, without the prior written consent of Autodesk, Inc. ("Autodesk").
20
21
THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
22
ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
23
WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR ARISING
24
BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE,
25
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR USE.
26
WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT WARRANT THAT THE OPERATION
27
OF THE DATA WILL BE UNINTERRUPTED OR ERROR FREE.
28
29
IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
30
OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR EXPENSES
31
OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE DAMAGES OR OTHER
32
SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS OF PROFITS, REVENUE
33
OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR DAMAGES OF ANY KIND),
34
HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF LIABILITY, WHETHER DERIVED
35
FROM CONTRACT, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE), OR OTHERWISE,
36
ARISING OUT OF OR RELATING TO THE DATA OR ITS USE OR ANY OTHER PERFORMANCE,
37
WHETHER OR NOT AUTODESK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS
38
OR DAMAGE.
39
40
**************************************************************************************/
41
42
/*
43
* Intel IA32 Architecture
44
*/
45
#define KARCH_ARCH_X86 600
46
47
/*
48
* AMD x64 Architecture
49
*/
50
#define KARCH_ARCH_AMD64_GENERIC 800
51
52
/*
53
* Intel IA64 Architecture
54
*/
55
#define KARCH_ARCH_ITANIUM 1000
56
57
#if defined(__linux__) || defined(__CYGWIN__)
58
#define KARCH_DEV_GNUC __GNUC__
59
#define KARCH_ENV_UNIX 1
60
#define KARCH_ENV_POSIX 1
61
62
#if defined(__linux__)
63
#define KARCH_ENV_LINUX 1
64
#elif defined(__CYGWIN__)
65
#define KARCH_ENV_CYGWIN 1
66
#endif
67
68
#if defined(__GNUC__)
69
#define KARCH_DEV_GNUC __GNUC__
70
71
#if (__GNUC__ < 4)
72
#error "Compiler is too old !!!"
73
#endif
74
75
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
76
77
// CPU Determination.
78
#if defined(__ia64__)
79
#define KARCH_CPU_IA64 KARCH_ARCH_ITANIUM
80
#elif defined(__x86_64)
81
#define KARCH_CPU_AMD64 KARCH_ARCH_AMD64_GENERIC
82
#elif defined(__i386__)
83
#define KARCH_CPU_IA32 KARCH_ARCH_X86
84
#else
85
#error "Architecture not supported"
86
#endif
87
88
// ARCH Determination.
89
#if defined(KARCH_CPU_AMD64)
90
#define KARCH_ARCH_AMD64 KARCH_CPU_AMD64
91
#define KARCH_ARCH_64 1
92
#elif defined(KARCH_CPU_IA32)
93
#define KARCH_ARCH_IA32 KARCH_CPU_IA32
94
#endif
95
#else
96
#error "Compiler not supported"
97
#endif
98
#elif defined(_XBOX)
99
#define KARCH_ENV_WIN 1
100
#define KARCH_ENV_WIN32 _WIN32
101
#define KARCH_ENV_XBOX _XBOX
102
#define KARCH_DEV_MSC _MSC_VER
103
#define KARCH_ARCH_IA32 _M_IX86
104
#define KARCH_CPU_IA32 KARCH_ARCH_X86
105
106
#elif defined(_WIN32) || defined(_WIN64)
107
#define KARCH_ENV_WIN 1
108
#define KARCH_ENV_WIN32 _WIN32
109
#if !defined(_WIN32_WINNT)
110
#define _WIN32_WINNT 0x0601 // _WIN32_WINNT_WIN7
111
#endif
112
#if !defined(WINVER)
113
#define WINVER 0x0601 // _WIN32_WINNT_WIN7
114
#endif
115
116
#ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
117
#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
118
#endif
119
#ifndef _CRT_NONSTDC_NO_WARNINGS
120
#define _CRT_NONSTDC_NO_WARNINGS 1
121
#endif
122
#ifndef _CRT_SECURE_NO_WARNINGS
123
#define _CRT_SECURE_NO_WARNINGS 1
124
#endif
125
#ifndef _CRT_SECURE_NO_DEPRECATE
126
#define _CRT_SECURE_NO_DEPRECATE 1
127
#endif
128
129
// Use a newer version of comctl32.dll tooltips for Sketchbook
130
#if defined _M_IX86
131
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
132
#elif defined _M_IA64
133
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
134
#elif defined _M_X64
135
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
136
#else
137
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
138
#endif
139
140
#if defined(__MINGW32__)
141
#define KARCH_ENV_MING32 __MINGW32__
142
#endif
143
#if defined(__ICL)
144
#define KARCH_DEV_INTEL __ICL
145
#endif
146
#if defined(_MSC_VER)
147
#define KARCH_DEV_MSC _MSC_VER
148
#elif defined(__GNUC__)
149
#define KARCH_DEV_GNUC __GNUC__
150
// CPU Determination.
151
#if defined(__ia64__)
152
#define KARCH_CPU_IA64 KARCH_ARCH_ITANIUM
153
#elif defined(__x86_64)
154
#define KARCH_CPU_AMD64 KARCH_ARCH_AMD64_GENERIC
155
#elif !defined(__i386__)
156
#define KARCH_CPU_IA32 KARCH_ARCH_X86
157
#else
158
#error "Architecture not supported"
159
#endif
160
#else
161
#error "Compiler not supported"
162
#endif
163
#if defined(_M_IX86)
164
#define KARCH_ARCH_IA32 _M_IX86
165
#define KARCH_CPU_IA32 KARCH_ARCH_X86
166
#elif defined(_M_X64)
167
#define KARCH_ARCH_X64 _M_X64
168
#define KARCH_CPU_X64 KARCH_ARCH_AMD64
169
#define KARCH_ENV_WIN64 _WIN64
170
#define KARCH_ARCH_64 1
171
#else
172
#error "Architecture not supported"
173
#endif
174
175
#elif defined(__MACH__)
176
177
#if defined(__i386__)
178
#define KARCH_CPU_IA32 KARCH_ARCH_X86
179
#define KARCH_ARCH_IA32 KARCH_CPU_IA32
180
#elif defined(__x86_64__)
181
#define KARCH_ARCH_X64 _M_X64
182
#define KARCH_ARCH_64 1
183
#elif defined(__arm__)
184
#define KARCH_ARCH_ARM
185
#define KARCH_CPU_ARM
186
#define K_REQUIRE_DATA_ALIGNMENT
187
#else
188
#error "Architecture not supported"
189
#endif
190
191
#define KARCH_DEV_MACOSX
192
#define KARCH_ENV_MACOSX
193
#define KARCH_DEV_GNUC __GNUC__
194
#define KARCH_ENV_UNIX 1
195
#define KARCH_ENV_POSIX 1
196
197
#else
198
#error "Environment not supported"
199
#endif
200
201
#endif
/* KARCH_ARCH_H */
Components
amKernel
kbaselib
karch
arch.h
Generated by
1.8.14