]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/PciHostBridgeDxe/PciHostBridge.c
OvmfPkg: PciHostBridgeDxe: embed device path in private root bridge struct
[mirror_edk2.git] / OvmfPkg / PciHostBridgeDxe / PciHostBridge.c
index 985290928d97b4e661037e271d556a81706f9b3b..c2277bfca352e745f80dd64bdc1c1de457e938f3 100644 (file)
 \r
 #include "PciHostBridge.h"\r
 \r
-//\r
-// Hard code: Root Bridge's device path\r
-//            Root Bridge's resource aperture\r
-//\r
-\r
-EFI_PCI_ROOT_BRIDGE_DEVICE_PATH mEfiPciRootBridgeDevicePath[1] = {\r
+STATIC\r
+CONST\r
+EFI_PCI_ROOT_BRIDGE_DEVICE_PATH mRootBridgeDevicePathTemplate = {\r
   {\r
     {\r
+      ACPI_DEVICE_PATH,\r
+      ACPI_DP,\r
       {\r
-        ACPI_DEVICE_PATH,\r
-        ACPI_DP,\r
-        {\r
-          (UINT8) (sizeof(ACPI_HID_DEVICE_PATH)),\r
-          (UINT8) ((sizeof(ACPI_HID_DEVICE_PATH)) >> 8)\r
-        }\r
-      },\r
-      EISA_PNP_ID(0x0A03),\r
-      0\r
+        (UINT8) (sizeof(ACPI_HID_DEVICE_PATH)),\r
+        (UINT8) ((sizeof(ACPI_HID_DEVICE_PATH)) >> 8)\r
+      }\r
     },\r
+    EISA_PNP_ID(0x0A03), // HID\r
+    0                    // UID\r
+  },\r
 \r
+  {\r
+    END_DEVICE_PATH_TYPE,\r
+    END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
     {\r
-      END_DEVICE_PATH_TYPE,\r
-      END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
-      {\r
-        END_DEVICE_PATH_LENGTH,\r
-        0\r
-      }\r
+      END_DEVICE_PATH_LENGTH,\r
+      0\r
     }\r
   }\r
 };\r
 \r
+//\r
+// Hard code: Root Bridge's resource aperture\r
+//\r
+\r
 PCI_ROOT_BRIDGE_RESOURCE_APERTURE  mResAperture[1] = {\r
   {0, 0xff, 0x80000000, 0xffffffff, 0, 0xffff}\r
 };\r
@@ -135,8 +134,10 @@ InitializePciHostBridge (
     }\r
 \r
     PrivateData->Signature = PCI_ROOT_BRIDGE_SIGNATURE;\r
-    PrivateData->DevicePath =\r
-      (EFI_DEVICE_PATH_PROTOCOL *)&mEfiPciRootBridgeDevicePath[Loop2];\r
+\r
+    CopyMem (&PrivateData->DevicePath, &mRootBridgeDevicePathTemplate,\r
+      sizeof mRootBridgeDevicePathTemplate);\r
+    PrivateData->DevicePath.AcpiDevicePath.UID = Loop2;\r
 \r
     RootBridgeConstructor (\r
       &PrivateData->Io,\r
@@ -148,7 +149,7 @@ InitializePciHostBridge (
     Status = gBS->InstallMultipleProtocolInterfaces(\r
                     &PrivateData->Handle,\r
                     &gEfiDevicePathProtocolGuid,\r
-                    PrivateData->DevicePath,\r
+                    &PrivateData->DevicePath,\r
                     &gEfiPciRootBridgeIoProtocolGuid,\r
                     &PrivateData->Io,\r
                     NULL\r