--- /dev/null
+/*++\r
+\r
+Copyright (c) 2005 - 2006, Intel Corporation \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
+http://opensource.org/licenses/bsd-license.php \r
+ \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+Module Name:\r
+ PcatPciRootBridgeDevicePath.c\r
+ \r
+Abstract:\r
+\r
+ EFI PCAT PCI Root Bridge Device Path Protocol\r
+\r
+Revision History\r
+\r
+--*/\r
+\r
+#include "PcatPciRootBridge.h"\r
+\r
+//\r
+// Static device path declarations for this driver.\r
+//\r
+\r
+typedef struct {\r
+ ACPI_HID_DEVICE_PATH AcpiDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} EFI_PCI_ROOT_BRIDGE_DEVICE_PATH;\r
+\r
+static EFI_PCI_ROOT_BRIDGE_DEVICE_PATH mEfiPciRootBridgeDevicePath = {\r
+ {\r
+ ACPI_DEVICE_PATH,\r
+ ACPI_DP,\r
+ (UINT8) (sizeof(ACPI_HID_DEVICE_PATH)),\r
+ (UINT8) ((sizeof(ACPI_HID_DEVICE_PATH)) >> 8),\r
+ EISA_PNP_ID(0x0A03),\r
+ 0\r
+ },\r
+ {\r
+ END_DEVICE_PATH_TYPE,\r
+ END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
+ END_DEVICE_PATH_LENGTH,\r
+ 0\r
+ }\r
+};\r
+\r
+EFI_STATUS\r
+PcatRootBridgeDevicePathConstructor (\r
+ IN EFI_DEVICE_PATH_PROTOCOL **Protocol,\r
+ IN UINTN RootBridgeNumber,\r
+ IN BOOLEAN IsPciExpress\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Construct the device path protocol\r
+\r
+Arguments:\r
+\r
+ Protocol - protocol to initialize\r
+ \r
+Returns:\r
+\r
+ None\r
+\r
+--*/\r
+{\r
+ ACPI_HID_DEVICE_PATH *AcpiDevicePath;\r
+ \r
+ *Protocol = DuplicateDevicePath((EFI_DEVICE_PATH_PROTOCOL *)(&mEfiPciRootBridgeDevicePath));\r
+\r
+ AcpiDevicePath = (ACPI_HID_DEVICE_PATH *)(*Protocol);\r
+ \r
+ AcpiDevicePath->UID = (UINT32)RootBridgeNumber;\r
+\r
+ if (IsPciExpress) {\r
+ AcpiDevicePath->HID = EISA_PNP_ID(0x0A08);\r
+ }\r
+\r
+ return EFI_SUCCESS;\r
+}\r
+\r