summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciDriverOverride.c
diff options
context:
space:
mode:
Diffstat (limited to 'IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciDriverOverride.c')
-rw-r--r--IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciDriverOverride.c67
1 files changed, 35 insertions, 32 deletions
diff --git a/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciDriverOverride.c b/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciDriverOverride.c
index d8faf8f7e4..119866b3c1 100644
--- a/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciDriverOverride.c
+++ b/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciDriverOverride.c
@@ -1,41 +1,49 @@
/** @file
+ Functions implementation for Bus Specific Driver Override protoocl.
-Copyright (c) 2006, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+Copyright (c) 2006 - 2009, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
-**/
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+**/
#include "PciBus.h"
/**
Initializes a PCI Driver Override Instance.
- @param PciIoDevice Device instance.
+ @param PciIoDevice PCI Device instance.
**/
VOID
InitializePciDriverOverrideInstance (
- PCI_IO_DEVICE *PciIoDevice
+ IN OUT PCI_IO_DEVICE *PciIoDevice
)
{
PciIoDevice->PciDriverOverride.GetDriver = GetDriver;
}
+
/**
- Get a overriding driver image.
- @param This Pointer to instance of EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL.
- @param DriverImageHandle Override driver image.
-
- @retval EFI_SUCCESS Success to get driver image handle.
- @retval EFI_NOT_FOUND can not find override driver image.
- @retval EFI_INVALID_PARAMETER Invalid parameter.
+ Uses a bus specific algorithm to retrieve a driver image handle for a controller.
+
+ @param This A pointer to the EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL instance.
+ @param DriverImageHandle On input, a pointer to the previous driver image handle returned
+ by GetDriver(). On output, a pointer to the next driver
+ image handle. Passing in a NULL, will return the first driver
+ image handle.
+
+ @retval EFI_SUCCESS A bus specific override driver is returned in DriverImageHandle.
+ @retval EFI_NOT_FOUND The end of the list of override drivers was reached.
+ A bus specific override driver is not returned in DriverImageHandle.
+ @retval EFI_INVALID_PARAMETER DriverImageHandle is not a handle that was returned on a
+ previous call to GetDriver().
+
**/
EFI_STATUS
EFIAPI
@@ -84,13 +92,15 @@ GetDriver (
}
/**
- Add an overriding driver image
-
+ Add an overriding driver image.
+
@param PciIoDevice Instance of PciIo device.
@param DriverImageHandle new added driver image.
-
- @retval EFI_OUT_OF_RESOURCES no memory resource for new driver instance.
- @retval EFI_SUCCESS Success add driver.
+
+ @retval EFI_SUCCESS Successfully added driver.
+ @retval EFI_OUT_OF_RESOURCES No memory resource for new driver instance.
+ @retval other Some error occurred when locating gEfiLoadedImageProtocolGuid.
+
**/
EFI_STATUS
AddDriver (
@@ -124,16 +134,9 @@ AddDriver (
ImageContext.ImageRead = PeCoffLoaderImageReadFromMemory;
//
- // Get information about the image
+ // Get information about the image
//
- Status = PeCoffLoaderGetImageInfo (&ImageContext);
- if (EFI_ERROR (Status)) {
- return EFI_SUCCESS;
- }
-
- if (ImageContext.Machine != EFI_IMAGE_MACHINE_EBC) {
- return EFI_SUCCESS;
- }
+ PeCoffLoaderGetImageInfo (&ImageContext);
return EFI_SUCCESS;
}