]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.h
Add IncompatiblePciDeviceSupportDxe module in IntelFrameworkModulePkg.
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / PciBusDxe / PciEnumeratorSupport.h
index 41d6efb1024d4b1e9b9dceea359e13ad091216dc..6f2f1e6ea50b5c6bf9df02b50f664d39ef50bf01 100644 (file)
-/*++\r
+/** @file\r
+  PCI emumeration support functions declaration for PCI Bus module.\r
 \r
-Copyright (c) 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
+Copyright (c) 2006 - 2009, 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
-Module Name:\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
-  PciEnumeratorSupport.h\r
-  \r
-Abstract:\r
+**/\r
 \r
-  PCI Bus Driver\r
+#ifndef _EFI_PCI_ENUMERATOR_SUPPORT_H_\r
+#define _EFI_PCI_ENUMERATOR_SUPPORT_H_\r
 \r
-Revision History\r
+/**\r
+  This routine is used to check whether the pci device is present.\r
 \r
---*/\r
+  @param PciRootBridgeIo   Pointer to instance of EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.\r
+  @param Pci               Output buffer for PCI device configuration space.\r
+  @param Bus               PCI bus NO.\r
+  @param Device            PCI device NO.\r
+  @param Func              PCI Func NO.\r
 \r
-#ifndef _EFI_PCI_ENUMERATOR_SUPPORT_H\r
-#define _EFI_PCI_ENUMERATOR_SUPPORT_H\r
+  @retval EFI_NOT_FOUND    PCI device not present.\r
+  @retval EFI_SUCCESS      PCI device is found.\r
 \r
+**/\r
 EFI_STATUS\r
 PciDevicePresent (\r
-  IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL  *PciRootBridgeIo,\r
-  PCI_TYPE00                          *Pci,\r
-  UINT8                               Bus,\r
-  UINT8                               Device,\r
-  UINT8                               Func\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL     *PciRootBridgeIo,\r
+  OUT PCI_TYPE00                          *Pci,\r
+  IN  UINT8                               Bus,\r
+  IN  UINT8                               Device,\r
+  IN  UINT8                               Func\r
+  );\r
 \r
-  PciRootBridgeIo - TODO: add argument description\r
-  Pci             - TODO: add argument description\r
-  Bus             - TODO: add argument description\r
-  Device          - TODO: add argument description\r
-  Func            - TODO: add argument description\r
+/**\r
+  Collect all the resource information under this root bridge.\r
 \r
-Returns:\r
+  A database that records all the information about pci device subject to this\r
+  root bridge will then be created.\r
 \r
-  TODO: add return values\r
+  @param Bridge         Parent bridge instance.\r
+  @param StartBusNumber Bus number of begining.\r
 \r
---*/\r
-;\r
+  @retval EFI_SUCCESS   PCI device is found.\r
+  @retval other         Some error occurred when reading PCI bridge information.\r
 \r
+**/\r
 EFI_STATUS\r
 PciPciDeviceInfoCollector (\r
   IN PCI_IO_DEVICE                      *Bridge,\r
-  UINT8                                 StartBusNumber\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  Bridge          - TODO: add argument description\r
-  StartBusNumber  - TODO: add argument description\r
+  IN UINT8                              StartBusNumber\r
+  );\r
 \r
-Returns:\r
+/**\r
+  Seach required device and create PCI device instance.\r
 \r
-  TODO: add return values\r
+  @param Bridge     Parent bridge instance.\r
+  @param Pci        Input PCI device information block.\r
+  @param Bus        PCI bus NO.\r
+  @param Device     PCI device NO.\r
+  @param Func       PCI func  NO.\r
+  @param PciDevice  Output of searched PCI device instance.\r
 \r
---*/\r
-;\r
+  @retval EFI_SUCCESS           Successfully created PCI device instance.\r
+  @retval EFI_OUT_OF_RESOURCES  Cannot get PCI device information.\r
 \r
+**/\r
 EFI_STATUS\r
 PciSearchDevice (\r
-  IN PCI_IO_DEVICE                      *Bridge,\r
-  PCI_TYPE00                            *Pci,\r
-  UINT8                                 Bus,\r
-  UINT8                                 Device,\r
-  UINT8                                 Func,\r
-  PCI_IO_DEVICE                         **PciDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  Bridge    - TODO: add argument description\r
-  Pci       - TODO: add argument description\r
-  Bus       - TODO: add argument description\r
-  Device    - TODO: add argument description\r
-  Func      - TODO: add argument description\r
-  PciDevice - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-PCI_IO_DEVICE             *\r
+  IN  PCI_IO_DEVICE                         *Bridge,\r
+  IN  PCI_TYPE00                            *Pci,\r
+  IN  UINT8                                 Bus,\r
+  IN  UINT8                                 Device,\r
+  IN  UINT8                                 Func,\r
+  OUT PCI_IO_DEVICE                         **PciDevice\r
+  );\r
+\r
+/**\r
+  Create PCI device instance for PCI device.\r
+\r
+  @param Bridge   Parent bridge instance.\r
+  @param Pci      Input PCI device information block.\r
+  @param Bus      PCI device Bus NO.\r
+  @param Device   PCI device Device NO.\r
+  @param Func     PCI device's func NO.\r
+\r
+  @return  Created PCI device instance.\r
+\r
+**/\r
+PCI_IO_DEVICE *\r
 GatherDeviceInfo (\r
   IN PCI_IO_DEVICE                    *Bridge,\r
   IN PCI_TYPE00                       *Pci,\r
-  UINT8                               Bus,\r
-  UINT8                               Device,\r
-  UINT8                               Func\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  IN UINT8                            Bus,\r
+  IN UINT8                            Device,\r
+  IN UINT8                            Func\r
+  );\r
 \r
-  Bridge  - TODO: add argument description\r
-  Pci     - TODO: add argument description\r
-  Bus     - TODO: add argument description\r
-  Device  - TODO: add argument description\r
-  Func    - TODO: add argument description\r
+/**\r
+  Create PCI device instance for PCI-PCI bridge.\r
 \r
-Returns:\r
+  @param Bridge   Parent bridge instance.\r
+  @param Pci      Input PCI device information block.\r
+  @param Bus      PCI device Bus NO.\r
+  @param Device   PCI device Device NO.\r
+  @param Func     PCI device's func NO.\r
 \r
-  TODO: add return values\r
+  @return  Created PCI device instance.\r
 \r
---*/\r
-;\r
-\r
-PCI_IO_DEVICE             *\r
+**/\r
+PCI_IO_DEVICE *\r
 GatherPpbInfo (\r
   IN PCI_IO_DEVICE                    *Bridge,\r
   IN PCI_TYPE00                       *Pci,\r
-  UINT8                               Bus,\r
-  UINT8                               Device,\r
-  UINT8                               Func\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  IN UINT8                            Bus,\r
+  IN UINT8                            Device,\r
+  IN UINT8                            Func\r
+  );\r
 \r
-  Bridge  - TODO: add argument description\r
-  Pci     - TODO: add argument description\r
-  Bus     - TODO: add argument description\r
-  Device  - TODO: add argument description\r
-  Func    - TODO: add argument description\r
+/**\r
+  Create PCI device instance for PCI Card bridge device.\r
 \r
-Returns:\r
+  @param Bridge   Parent bridge instance.\r
+  @param Pci      Input PCI device information block.\r
+  @param Bus      PCI device Bus NO.\r
+  @param Device   PCI device Device NO.\r
+  @param Func     PCI device's func NO.\r
 \r
-  TODO: add return values\r
+  @return  Created PCI device instance.\r
 \r
---*/\r
-;\r
-\r
-PCI_IO_DEVICE             *\r
+**/\r
+PCI_IO_DEVICE *\r
 GatherP2CInfo (\r
   IN PCI_IO_DEVICE                    *Bridge,\r
   IN PCI_TYPE00                       *Pci,\r
-  UINT8                               Bus,\r
-  UINT8                               Device,\r
-  UINT8                               Func\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  IN UINT8                            Bus,\r
+  IN UINT8                            Device,\r
+  IN UINT8                            Func\r
+  );\r
 \r
-  Bridge  - TODO: add argument description\r
-  Pci     - TODO: add argument description\r
-  Bus     - TODO: add argument description\r
-  Device  - TODO: add argument description\r
-  Func    - TODO: add argument description\r
+/**\r
+  Create device path for pci deivce.\r
 \r
-Returns:\r
+  @param ParentDevicePath  Parent bridge's path.\r
+  @param PciIoDevice       Pci device instance.\r
 \r
-  TODO: add return values\r
+  @return device path protocol instance for specific pci device.\r
 \r
---*/\r
-;\r
-\r
-EFI_DEVICE_PATH_PROTOCOL  *\r
+**/\r
+EFI_DEVICE_PATH_PROTOCOL *\r
 CreatePciDevicePath (\r
   IN  EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,\r
   IN  PCI_IO_DEVICE            *PciIoDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
+  );\r
 \r
-Arguments:\r
+/**\r
+  Check whether the bar is existed or not.\r
 \r
-  ParentDevicePath  - TODO: add argument description\r
-  PciIoDevice       - TODO: add argument description\r
+  @param PciIoDevice       A pointer to the PCI_IO_DEVICE.\r
+  @param Offset            The offset.\r
+  @param BarLengthValue    The bar length value returned.\r
+  @param OriginalBarValue  The original bar value returned.\r
 \r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @retval EFI_NOT_FOUND    The bar doesn't exist.\r
+  @retval EFI_SUCCESS      The bar exist.\r
 \r
+**/\r
 EFI_STATUS\r
 BarExisted (\r
-  IN PCI_IO_DEVICE *PciIoDevice,\r
-  IN UINTN         Offset,\r
-  OUT UINT32       *BarLengthValue,\r
-  OUT UINT32       *OriginalBarValue\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  PciIoDevice       - TODO: add argument description\r
-  Offset            - TODO: add argument description\r
-  BarLengthValue    - TODO: add argument description\r
-  OriginalBarValue  - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+  IN  PCI_IO_DEVICE *PciIoDevice,\r
+  IN  UINTN         Offset,\r
+  OUT UINT32        *BarLengthValue,\r
+  OUT UINT32        *OriginalBarValue\r
+  );\r
+\r
+/**\r
+  Test whether the device can support given attributes.\r
+\r
+  @param PciIoDevice      Pci device instance.\r
+  @param Command          Input command register value, and\r
+                          returned supported register value.\r
+  @param BridgeControl    Inout bridge control value for PPB or P2C, and\r
+                          returned supported bridge control value.\r
+  @param OldCommand       Returned and stored old command register offset.\r
+  @param OldBridgeControl Returned and stored old Bridge control value for PPB or P2C.\r
+\r
+**/\r
+VOID\r
 PciTestSupportedAttribute (\r
-  IN PCI_IO_DEVICE                      *PciIoDevice,\r
-  IN UINT16                             *Command,\r
-  IN UINT16                             *BridgeControl,\r
-  IN UINT16                             *OldCommand,\r
-  IN UINT16                             *OldBridgeControl\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  PciIoDevice       - TODO: add argument description\r
-  Command           - TODO: add argument description\r
-  BridgeControl     - TODO: add argument description\r
-  OldCommand        - TODO: add argument description\r
-  OldBridgeControl  - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+  IN     PCI_IO_DEVICE                      *PciIoDevice,\r
+  IN OUT UINT16                             *Command,\r
+  IN OUT UINT16                             *BridgeControl,\r
+     OUT UINT16                             *OldCommand,\r
+     OUT UINT16                             *OldBridgeControl\r
+  );\r
+\r
+/**\r
+  Set the supported or current attributes of a PCI device.\r
+\r
+  @param PciIoDevice    Structure pointer for PCI device.\r
+  @param Command        Command register value.\r
+  @param BridgeControl  Bridge control value for PPB or P2C.\r
+  @param Option         Make a choice of EFI_SET_SUPPORTS or EFI_SET_ATTRIBUTES.\r
+\r
+**/\r
+VOID\r
 PciSetDeviceAttribute (\r
   IN PCI_IO_DEVICE                      *PciIoDevice,\r
   IN UINT16                             Command,\r
   IN UINT16                             BridgeControl,\r
   IN UINTN                              Option\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
+  );\r
 \r
-  TODO: Add function description\r
+/**\r
+  Determine if the device can support Fast Back to Back attribute.\r
 \r
-Arguments:\r
+  @param PciIoDevice  Pci device instance.\r
+  @param StatusIndex  Status register value.\r
 \r
-  PciIoDevice   - TODO: add argument description\r
-  Command       - TODO: add argument description\r
-  BridgeControl - TODO: add argument description\r
-  Option        - TODO: add argument description\r
-\r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @retval EFI_SUCCESS       This device support Fast Back to Back attribute.\r
+  @retval EFI_UNSUPPORTED   This device doesn't support Fast Back to Back attribute.\r
 \r
+**/\r
 EFI_STATUS\r
 GetFastBackToBackSupport (\r
   IN PCI_IO_DEVICE                      *PciIoDevice,\r
   IN UINT8                              StatusIndex\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
-\r
-  PciIoDevice - TODO: add argument description\r
-  StatusIndex - TODO: add argument description\r
+  );\r
 \r
-Returns:\r
+/**\r
+  Determine the related attributes of all devices under a Root Bridge.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @param PciIoDevice   PCI device instance.\r
 \r
+**/\r
 EFI_STATUS\r
 DetermineDeviceAttribute (\r
   IN PCI_IO_DEVICE                      *PciIoDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  );\r
 \r
-  PciIoDevice - TODO: add argument description\r
+/**\r
+  This routine is used to update the bar information for those incompatible PCI device.\r
 \r
-Returns:\r
+  @param PciIoDevice      Input Pci device instance. Output Pci device instance with updated\r
+                          Bar information.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @retval EFI_SUCCESS     Successfully updated bar information.\r
+  @retval EFI_UNSUPPORTED Given PCI device doesn't belong to incompatible PCI device list.\r
 \r
+**/\r
 EFI_STATUS\r
 UpdatePciInfo (\r
-  IN PCI_IO_DEVICE  *PciIoDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  IN OUT PCI_IO_DEVICE    *PciIoDevice\r
+  );\r
 \r
-  PciIoDevice - TODO: add argument description\r
+/**\r
+  This routine will update the alignment with the new alignment.\r
 \r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @param Alignment    Input Old alignment. Output updated alignment.\r
+  @param NewAlignment New alignment.\r
 \r
+**/\r
 VOID\r
 SetNewAlign (\r
-  IN UINT64 *Alignment,\r
-  IN UINT64 NewAlignment\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
+  IN OUT UINT64     *Alignment,\r
+  IN     UINT64     NewAlignment\r
+  );\r
 \r
-Arguments:\r
+/**\r
+  Parse PCI bar information and fill them into PCI device instance.\r
 \r
-  Alignment     - TODO: add argument description\r
-  NewAlignment  - TODO: add argument description\r
+  @param PciIoDevice  Pci device instance.\r
+  @param Offset       Bar offset.\r
+  @param BarIndex     Bar index.\r
 \r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @return Next bar offset.\r
 \r
+**/\r
 UINTN\r
 PciParseBar (\r
   IN PCI_IO_DEVICE  *PciIoDevice,\r
   IN UINTN          Offset,\r
   IN UINTN          BarIndex\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
+  );\r
 \r
-Arguments:\r
+/**\r
+  This routine is used to initialize the bar of a PCI device.\r
 \r
-  PciIoDevice - TODO: add argument description\r
-  Offset      - TODO: add argument description\r
-  BarIndex    - TODO: add argument description\r
+  @param PciIoDevice Pci device instance.\r
 \r
-Returns:\r
+  @note It can be called typically when a device is going to be rejected.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
 InitializePciDevice (\r
-  IN PCI_IO_DEVICE *PciIoDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  IN PCI_IO_DEVICE    *PciIoDevice\r
+  );\r
 \r
-  PciIoDevice - TODO: add argument description\r
+/**\r
+  This routine is used to initialize the bar of a PCI-PCI Bridge device.\r
 \r
-Returns:\r
+  @param  PciIoDevice PCI-PCI bridge device instance.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
 InitializePpb (\r
-  IN PCI_IO_DEVICE *PciIoDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
+  IN PCI_IO_DEVICE    *PciIoDevice\r
+  );\r
 \r
-Arguments:\r
+/**\r
+  This routine is used to initialize the bar of a PCI Card Bridge device.\r
 \r
-  PciIoDevice - TODO: add argument description\r
+  @param PciIoDevice  PCI Card bridge device.\r
 \r
-Returns:\r
-\r
-  TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
 InitializeP2C (\r
-  IN PCI_IO_DEVICE *PciIoDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
+  IN PCI_IO_DEVICE    *PciIoDevice\r
+  );\r
 \r
-Arguments:\r
+/**\r
+  Create and initiliaze general PCI I/O device instance for\r
+  PCI device/bridge device/hotplug bridge device.\r
 \r
-  PciIoDevice - TODO: add argument description\r
+  @param PciRootBridgeIo   Pointer to instance of EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.\r
+  @param Pci               Input Pci information block.\r
+  @param Bus               Device Bus NO.\r
+  @param Device            Device device NO.\r
+  @param Func              Device func NO.\r
 \r
-Returns:\r
+  @return Instance of PCI device. NULL means no instance created.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-PCI_IO_DEVICE             *\r
+**/\r
+PCI_IO_DEVICE *\r
 CreatePciIoDevice (\r
   IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL  *PciRootBridgeIo,\r
   IN PCI_TYPE00                       *Pci,\r
-  UINT8                               Bus,\r
-  UINT8                               Device,\r
-  UINT8                               Func\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
+  IN UINT8                            Bus,\r
+  IN UINT8                            Device,\r
+  IN UINT8                            Func\r
+  );\r
 \r
-Arguments:\r
+/**\r
+  This routine is used to enumerate entire pci bus system\r
+  in a given platform.\r
 \r
-  PciRootBridgeIo - TODO: add argument description\r
-  Pci             - TODO: add argument description\r
-  Bus             - TODO: add argument description\r
-  Device          - TODO: add argument description\r
-  Func            - TODO: add argument description\r
+  It is only called on the second start on the same Root Bridge.\r
 \r
-Returns:\r
+  @param  Controller     Parent bridge handler.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @retval EFI_SUCCESS    PCI enumeration finished successfully.\r
+  @retval other          Some error occurred when enumerating the pci bus system.\r
 \r
+**/\r
 EFI_STATUS\r
 PciEnumeratorLight (\r
   IN EFI_HANDLE                    Controller\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  );\r
 \r
-  Controller  - TODO: add argument description\r
+/**\r
+  Get bus range from PCI resource descriptor list.\r
 \r
-Returns:\r
+  @param Descriptors  A pointer to the address space descriptor.\r
+  @param MinBus       The min bus returned.\r
+  @param MaxBus       The max bus returned.\r
+  @param BusRange     The bus range returned.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @retval EFI_SUCCESS    Successfully got bus range.\r
+  @retval EFI_NOT_FOUND  Can not find the specific bus.\r
 \r
+**/\r
 EFI_STATUS\r
 PciGetBusRange (\r
   IN     EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR  **Descriptors,\r
   OUT    UINT16                             *MinBus,\r
   OUT    UINT16                             *MaxBus,\r
   OUT    UINT16                             *BusRange\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  );\r
 \r
-  Descriptors - TODO: add argument description\r
-  MinBus      - TODO: add argument description\r
-  MaxBus      - TODO: add argument description\r
-  BusRange    - TODO: add argument description\r
+/**\r
+  This routine can be used to start the root bridge.\r
 \r
-Returns:\r
+  @param RootBridgeDev     Pci device instance.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @retval EFI_SUCCESS      This device started.\r
+  @retval other            Failed to get PCI Root Bridge I/O protocol.\r
 \r
+**/\r
 EFI_STATUS\r
 StartManagingRootBridge (\r
   IN PCI_IO_DEVICE *RootBridgeDev\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  );\r
 \r
-  RootBridgeDev - TODO: add argument description\r
+/**\r
+  This routine can be used to check whether a PCI device should be rejected when light enumeration.\r
 \r
-Returns:\r
+  @param PciIoDevice  Pci device instance.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+  @retval TRUE      This device should be rejected.\r
+  @retval FALSE     This device shouldn't be rejected.\r
 \r
+**/\r
 BOOLEAN\r
 IsPciDeviceRejected (\r
   IN PCI_IO_DEVICE *PciIoDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  TODO: Add function description\r
-\r
-Arguments:\r
+  );\r
 \r
-  PciIoDevice - TODO: add argument description\r
+/**\r
+  Reset all bus number from specific bridge.\r
 \r
-Returns:\r
+  @param Bridge           Parent specific bridge.\r
+  @param StartBusNumber   Start bus number.\r
 \r
-  TODO: add return values\r
-\r
---*/\r
-;\r
+**/\r
+VOID\r
+ResetAllPpbBusNumber (\r
+  IN PCI_IO_DEVICE                      *Bridge,\r
+  IN UINT8                              StartBusNumber\r
+  );\r
 \r
 #endif\r