All assertions for I/O operations are handled in MMIO functions in the IoLib\r
Library.\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation<BR>\r
+ Copyright (c) 2006 - 2009, Intel Corporation<BR>\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
\r
#include <PiDxe.h>\r
\r
+#include <Guid/EventGroup.h>\r
+\r
#include <Library/BaseLib.h>\r
#include <Library/PciExpressLib.h>\r
#include <Library/IoLib.h>\r
//\r
// Register SetVirtualAddressMap () notify function\r
//\r
- Status = gBS->CreateEvent (\r
- EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE,\r
+ Status = gBS->CreateEventEx (\r
+ EVT_NOTIFY_SIGNAL,\r
TPL_NOTIFY,\r
DxeRuntimePciExpressLibVirtualNotify,\r
NULL,\r
+ &gEfiEventVirtualAddressChangeGuid,\r
&mDxeRuntimePciExpressLibVirtualNotifyEvent\r
);\r
ASSERT_EFI_ERROR (Status);\r
//\r
// See if there is a physical address match at the exact same index as the last address match\r
//\r
- if (mDxeRuntimePciExpressLibRegistrationTable[mDxeRuntimePciExpressLibLastRuntimeRange].PhysicalAddress == (Address & 0x0ffff000)) {\r
+ if (mDxeRuntimePciExpressLibRegistrationTable[mDxeRuntimePciExpressLibLastRuntimeRange].PhysicalAddress == (Address & (~0x00000fff))) {\r
//\r
// Convert the physical address to a virtual address and return the virtual address\r
//\r
// Search the entire table for a physical address match\r
//\r
for (Index = 0; Index < mDxeRuntimePciExpressLibNumberOfRuntimeRanges; Index++) {\r
- if (mDxeRuntimePciExpressLibRegistrationTable[Index].PhysicalAddress == (Address & 0x0ffff000)) {\r
+ if (mDxeRuntimePciExpressLibRegistrationTable[Index].PhysicalAddress == (Address & (~0x00000fff))) {\r
//\r
// Cache the matching index value\r
//\r