]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/Common/WinNtInclude.h
1ad8ba261a9397d4c44aa7028fcd7b09687acf18
[mirror_edk2.git] / BaseTools / Source / C / Common / WinNtInclude.h
1 /** @file
2
3 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13 WinNtInclude.h
14
15 Abstract:
16 Include file for the WinNt Library
17
18 **/
19
20 #ifndef __WIN_NT_INCLUDE_H__
21 #define __WIN_NT_INCLUDE_H__
22
23 #define GUID _WINNT_DUP_GUID_____
24 #define _LIST_ENTRY _WINNT_DUP_LIST_ENTRY_FORWARD
25 #define LIST_ENTRY _WINNT_DUP_LIST_ENTRY
26
27 #if (_MSC_VER < 1800)
28 #define InterlockedIncrement _WINNT_DUP_InterlockedIncrement
29 #define InterlockedDecrement _WINNT_DUP_InterlockedDecrement
30 #define InterlockedCompareExchange64 _WINNT_DUP_InterlockedCompareExchange64
31 #endif
32
33 #undef UNALIGNED
34 #undef CONST
35 #undef VOID
36
37 #ifndef __GNUC__
38 #include "windows.h"
39
40 //
41 // Win32 include files do not compile clean with /W4, so we use the warning
42 // pragma to suppress the warnings for Win32 only. This way our code can stil
43 // compile at /W4 (highest warning level) with /WX (warnings cause build
44 // errors).
45 //
46 #pragma warning(disable : 4115)
47 #pragma warning(disable : 4201)
48 #pragma warning(disable : 4214)
49 #pragma warning(disable : 4028)
50 #pragma warning(disable : 4133)
51
52 //
53 // Set the warnings back on as the EFI code must be /W4.
54 //
55 #pragma warning(default : 4115)
56 #pragma warning(default : 4201)
57 #pragma warning(default : 4214)
58
59 #endif
60
61 #undef GUID
62 #undef _LIST_ENTRY
63 #undef LIST_ENTRY
64 #undef InterlockedIncrement
65 #undef InterlockedDecrement
66 #undef InterlockedCompareExchange64
67 #undef InterlockedCompareExchangePointer
68
69 #define VOID void
70
71 //
72 // Prevent collisions with Windows API name macros that deal with Unicode/Not issues
73 //
74 #undef LoadImage
75 #undef CreateEvent
76
77 #endif