cdad474e538ef0673458b3c59fa0ea6d479ee23a
[platform/upstream/coreclr.git] / src / pal / src / safecrt / cruntime.h
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4
5 /***
6 *cruntime.h - definitions specific to the target operating system and hardware
7 *
8
9 *
10 *Purpose:
11 *       This header file contains widely used definitions specific to the
12 *       host operating system and hardware. It is included by every C source
13 *       and most every other header file.
14 *
15 *       [Internal]
16 *
17 ****/
18
19 #if _MSC_VER > 1000
20 #pragma once
21 #endif  /* _MSC_VER > 1000 */
22
23 #ifndef _INC_CRUNTIME
24 #define _INC_CRUNTIME
25
26 #ifndef _CRTBLD
27 /*
28  * This is an internal C runtime header file. It is used when building
29  * the C runtimes only. It is not to be used as a public header file.
30  */
31 #error ERROR: Use of C runtime library internal header file.
32 #endif  /* _CRTBLD */
33
34 #if defined (_SYSCRT) && defined (_WIN64)
35 #define _USE_OLD_STDCPP 1
36 #endif  /* defined (_SYSCRT) && defined (_WIN64) */
37
38 #if !defined (UNALIGNED)
39 #if defined (_M_IA64) || defined (_M_AMD64)
40 #define UNALIGNED __unaligned
41 #else  /* defined (_M_IA64) || defined (_M_AMD64) */
42 #define UNALIGNED
43 #endif  /* defined (_M_IA64) || defined (_M_AMD64) */
44 #endif  /* !defined (UNALIGNED) */
45
46 #ifdef _M_IX86
47 /*
48  * 386/486
49  */
50 #define REG1    register
51 #define REG2    register
52 #define REG3    register
53 #define REG4
54 #define REG5
55 #define REG6
56 #define REG7
57 #define REG8
58 #define REG9
59
60 #elif defined (_M_IA64) || defined (_M_AMD64)
61 /*
62  * IA64
63  */
64 #define REG1    register
65 #define REG2    register
66 #define REG3    register
67 #define REG4    register
68 #define REG5    register
69 #define REG6    register
70 #define REG7    register
71 #define REG8    register
72 #define REG9    register
73
74 #else  /* defined (_M_IA64) || defined (_M_AMD64) */
75
76 #pragma message ("Machine register set not defined")
77
78 /*
79  * Unknown machine
80  */
81
82 #define REG1
83 #define REG2
84 #define REG3
85 #define REG4
86 #define REG5
87 #define REG6
88 #define REG7
89 #define REG8
90 #define REG9
91
92 #endif  /* defined (_M_IA64) || defined (_M_AMD64) */
93
94 /*
95  * Are the macro definitions below still needed in this file?
96  */
97
98 #endif  /* _INC_CRUNTIME */