ReactOS 0.4.15-dev-7660-g0086d05
ProcessorBind.h
Go to the documentation of this file.
1
15#ifndef __PROCESSOR_BIND_H__
16#define __PROCESSOR_BIND_H__
17
21#define MDE_CPU_IA32
22
23//
24// Make sure we are using the correct packing rules per EFI specification
25//
26#if !defined(__GNUC__)
27#pragma pack()
28#endif
29
30#if defined(__INTEL_COMPILER)
31//
32// Disable ICC's remark #869: "Parameter" was never referenced warning.
33// This is legal ANSI C code so we disable the remark that is turned on with -Wall
34//
35#pragma warning ( disable : 869 )
36
37//
38// Disable ICC's remark #1418: external function definition with no prior declaration.
39// This is legal ANSI C code so we disable the remark that is turned on with /W4
40//
41#pragma warning ( disable : 1418 )
42
43//
44// Disable ICC's remark #1419: external declaration in primary source file
45// This is legal ANSI C code so we disable the remark that is turned on with /W4
46//
47#pragma warning ( disable : 1419 )
48
49//
50// Disable ICC's remark #593: "Variable" was set but never used.
51// This is legal ANSI C code so we disable the remark that is turned on with /W4
52//
53#pragma warning ( disable : 593 )
54
55#endif
56
57
58#if defined(_MSC_EXTENSIONS)
59
60//
61// Disable warning that make it impossible to compile at /W4
62// This only works for Microsoft* tools
63//
64
65//
66// Disabling bitfield type checking warnings.
67//
68#pragma warning ( disable : 4214 )
69
70//
71// Disabling the unreferenced formal parameter warnings.
72//
73#pragma warning ( disable : 4100 )
74
75//
76// Disable slightly different base types warning as CHAR8 * can not be set
77// to a constant string.
78//
79#pragma warning ( disable : 4057 )
80
81//
82// ASSERT(FALSE) or while (TRUE) are legal constructes so supress this warning
83//
84#pragma warning ( disable : 4127 )
85
86//
87// This warning is caused by functions defined but not used. For precompiled header only.
88//
89#pragma warning ( disable : 4505 )
90
91//
92// This warning is caused by empty (after preprocessing) source file. For precompiled header only.
93//
94#pragma warning ( disable : 4206 )
95
96#endif
97
98
99#if defined(_MSC_EXTENSIONS)
100
101//
102// use Microsoft C complier dependent integer width types
103//
104
108typedef unsigned __int64 UINT64;
112typedef __int64 INT64;
116typedef unsigned __int32 UINT32;
120typedef __int32 INT32;
124typedef unsigned short UINT16;
129typedef unsigned short CHAR16;
133typedef short INT16;
138typedef unsigned char BOOLEAN;
142typedef unsigned char UINT8;
146typedef char CHAR8;
150typedef signed char INT8;
151#else
155typedef unsigned long long UINT64;
159typedef signed long long INT64;
163typedef unsigned int UINT32;
167typedef signed int INT32;
171typedef unsigned short UINT16;
176typedef unsigned short CHAR16;
180typedef signed short INT16;
185typedef unsigned char BOOLEAN;
189typedef unsigned char UINT8;
193typedef signed char CHAR8;
197typedef signed char INT8;
198#endif
199
200#ifndef _WIN64
205typedef UINT32 UINTN;
210typedef INT32 INTN;
211#else
216typedef UINT64 UINTN;
221typedef INT64 INTN;
222#endif
223
224//
225// Processor specific defines
226//
227
231#define MAX_BIT 0x80000000
235#define MAX_2_BITS 0xC0000000
236
240#define MAX_ADDRESS 0xFFFFFFFF
241
245#define CPU_STACK_ALIGNMENT sizeof(UINTN)
246
247//
248// Modifier to ensure that all protocol member functions and EFI intrinsics
249// use the correct C calling convention. All protocol member functions and
250// EFI intrinsics are required to modify their member functions with EFIAPI.
251//
252#ifdef EFIAPI
256#elif defined(_MSC_EXTENSIONS)
260#define EFIAPI __cdecl
261#elif defined(__GNUC__)
265#define EFIAPI __attribute__((cdecl))
266#else
271#define EFIAPI
272#endif
273
274#if defined(__GNUC__)
279#define ASM_GLOBAL .globl
280#endif
281
292#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer)
293
294#endif
295
unsigned short UINT16
signed int INT32
unsigned char BOOLEAN
signed short INT16
unsigned long long UINT64
INT32 INTN
unsigned short CHAR16
signed char INT8
signed char CHAR8
unsigned char UINT8
UINT32 UINTN
unsigned int UINT32
signed long long INT64
#define __int64
Definition: basetyps.h:16
#define __int32
Definition: basetyps.h:19