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