]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/DxeRuntimePciExpressLib/PciExpressLib.c
Fix bug in UncachedMemoryAllocationLib, Assembler, make DefaultExceptionHandler lib...
[mirror_edk2.git] / MdePkg / Library / DxeRuntimePciExpressLib / PciExpressLib.c
index e6a3faa813ae0c9de44b06eb0ac222d8a49fab3b..4231614595b07efb37e9e4a0dec7156a85bc31e4 100644 (file)
@@ -5,7 +5,7 @@
   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
@@ -19,6 +19,8 @@
 \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
@@ -128,11 +130,12 @@ DxeRuntimePciExpressLibConstructor (
   //\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
@@ -214,7 +217,7 @@ GetPciExpressAddress (
   //\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
@@ -225,7 +228,7 @@ GetPciExpressAddress (
   // 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