1, Add <Library/DevicePathLib.h> for all source that use device path utility macros

2, Add DevicePathLib library class to module's INF that use device path utility macros

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6457 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2 2008-11-11 15:43:50 +00:00
parent 1232b21473
commit 2067710de0
8 changed files with 23 additions and 50 deletions

View File

@ -612,8 +612,8 @@ StartPciDevicesOnBridge (
// //
// Get the next device path // Get the next device path
// //
CurrentDevicePath = EfiNextDevicePathNode (RemainingDevicePath); CurrentDevicePath = NextDevicePathNode (RemainingDevicePath);
if (EfiIsDevicePathEnd (CurrentDevicePath)) { if (IsDevicePathEnd (CurrentDevicePath)) {
return EFI_SUCCESS; return EFI_SUCCESS;
} }
@ -1015,7 +1015,7 @@ GetHpcPciAddress (
// //
// Get the remaining device path for this PCI device, if it is a PCI device // Get the remaining device path for this PCI device, if it is a PCI device
// //
while (!EfiIsDevicePathEnd (CurrentDevicePath)) { while (!IsDevicePathEnd (CurrentDevicePath)) {
Node.DevPath = CurrentDevicePath; Node.DevPath = CurrentDevicePath;
@ -1025,7 +1025,7 @@ GetHpcPciAddress (
if ((Node.DevPath->Type != HARDWARE_DEVICE_PATH) || if ((Node.DevPath->Type != HARDWARE_DEVICE_PATH) ||
((Node.DevPath->SubType != HW_PCI_DP) && ((Node.DevPath->SubType != HW_PCI_DP) &&
(DevicePathNodeLength (Node.DevPath) != sizeof (PCI_DEVICE_PATH)))) { (DevicePathNodeLength (Node.DevPath) != sizeof (PCI_DEVICE_PATH)))) {
CurrentDevicePath = EfiNextDevicePathNode (CurrentDevicePath); CurrentDevicePath = NextDevicePathNode (CurrentDevicePath);
continue; continue;
} }
@ -1035,7 +1035,7 @@ GetHpcPciAddress (
// //
// Check if it is not PCI device path // Check if it is not PCI device path
// //
if (EfiIsDevicePathEnd (CurrentDevicePath)) { if (IsDevicePathEnd (CurrentDevicePath)) {
return EFI_NOT_FOUND; return EFI_NOT_FOUND;
} }
@ -1094,7 +1094,7 @@ GetHpcPciAddressFromRootBridge (
Node.DevPath = CurrentDevicePath; Node.DevPath = CurrentDevicePath;
Temp = NULL; Temp = NULL;
while (!EfiIsDevicePathEnd (CurrentDevicePath)) { while (!IsDevicePathEnd (CurrentDevicePath)) {
CurrentLink = RootBridge->ChildList.ForwardLink; CurrentLink = RootBridge->ChildList.ForwardLink;
Node.DevPath = CurrentDevicePath; Node.DevPath = CurrentDevicePath;
@ -1121,14 +1121,14 @@ GetHpcPciAddressFromRootBridge (
} }
CurrentDevicePath = EfiNextDevicePathNode (CurrentDevicePath); CurrentDevicePath = NextDevicePathNode (CurrentDevicePath);
} }
if (MisMatch) { if (MisMatch) {
CurrentDevicePath = EfiNextDevicePathNode (CurrentDevicePath); CurrentDevicePath = NextDevicePathNode (CurrentDevicePath);
if (EfiIsDevicePathEnd (CurrentDevicePath)) { if (IsDevicePathEnd (CurrentDevicePath)) {
*PciAddress = EFI_PCI_ADDRESS (RootBridge->BusNumber, Node.Pci->Device, Node.Pci->Function, 0); *PciAddress = EFI_PCI_ADDRESS (RootBridge->BusNumber, Node.Pci->Device, Node.Pci->Function, 0);
return EFI_SUCCESS; return EFI_SUCCESS;
} }

View File

@ -55,6 +55,7 @@
SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
S3Lib|IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf S3Lib|IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf
RecoveryLib|IntelFrameworkModulePkg/Library/PeiRecoveryLib/PeiRecoveryLib.inf RecoveryLib|IntelFrameworkModulePkg/Library/PeiRecoveryLib/PeiRecoveryLib.inf
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
[LibraryClasses.common.PEIM] [LibraryClasses.common.PEIM]
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf

View File

@ -60,36 +60,6 @@ InternalReportStatusCode (
} }
/**
Computes and returns the size, in bytes, of a device path.
@param DevicePath A pointer to a device path.
@return The size, in bytes, of DevicePath.
**/
UINTN
InternalReportStatusCodeDevicePathSize (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
CONST EFI_DEVICE_PATH_PROTOCOL *Start;
//
// Search for the end of the device path structure
//
Start = DevicePath;
while (!EfiIsDevicePathEnd (DevicePath)) {
DevicePath = EfiNextDevicePathNode (DevicePath);
}
//
// Subtract the start node from the end node and add in the size of the end node
//
return ((UINTN) DevicePath - (UINTN) Start) + DevicePathNodeLength (DevicePath);
}
/** /**
Converts a status code to an 8-bit POST code value. Converts a status code to an 8-bit POST code value.
@ -340,12 +310,12 @@ ReportStatusCodeWithDevicePath (
) )
{ {
ASSERT (DevicePath != NULL); ASSERT (DevicePath != NULL);
return ReportStatusCodeWithExtendedData (
Type, //
Value, // this function can *not* be implemented for BASE library.
(VOID *)DevicePath, //
InternalReportStatusCodeDevicePathSize (DevicePath) ASSERT (FALSE);
); return EFI_UNSUPPORTED;
} }

View File

@ -49,7 +49,7 @@
UefiBootServicesTableLib UefiBootServicesTableLib
DebugLib DebugLib
UefiRuntimeServicesTableLib UefiRuntimeServicesTableLib
DevicePathLib
[Guids] [Guids]
gEfiStatusCodeSpecificDataGuid # ALWAYS_CONSUMED gEfiStatusCodeSpecificDataGuid # ALWAYS_CONSUMED

View File

@ -86,8 +86,8 @@ InternalReportStatusCodeDevicePathSize (
// Search for the end of the device path structure // Search for the end of the device path structure
// //
Start = DevicePath; Start = DevicePath;
while (!EfiIsDevicePathEnd (DevicePath)) { while (!IsDevicePathEnd (DevicePath)) {
DevicePath = EfiNextDevicePathNode (DevicePath); DevicePath = NextDevicePathNode (DevicePath);
} }
// //

View File

@ -24,6 +24,7 @@
#include <Library/BaseMemoryLib.h> #include <Library/BaseMemoryLib.h>
#include <Library/PcdLib.h> #include <Library/PcdLib.h>
#include <Library/UefiRuntimeServicesTableLib.h> #include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/DevicePathLib.h>
#include <Guid/StatusCodeDataTypeId.h> #include <Guid/StatusCodeDataTypeId.h>
#include <Protocol/StatusCode.h> #include <Protocol/StatusCode.h>

View File

@ -88,8 +88,8 @@ InternalReportStatusCodeDevicePathSize (
// Search for the end of the device path structure // Search for the end of the device path structure
// //
Start = DevicePath; Start = DevicePath;
while (!EfiIsDevicePathEnd (DevicePath)) { while (!IsDevicePathEnd (DevicePath)) {
DevicePath = EfiNextDevicePathNode (DevicePath); DevicePath = NextDevicePathNode (DevicePath);
} }
// //

View File

@ -24,6 +24,7 @@
#include <Library/PcdLib.h> #include <Library/PcdLib.h>
#include <Library/UefiRuntimeServicesTableLib.h> #include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/UefiBootServicesTableLib.h> #include <Library/UefiBootServicesTableLib.h>
#include <Library/DevicePathLib.h>
#include <Guid/StatusCodeDataTypeId.h> #include <Guid/StatusCodeDataTypeId.h>
#include <Protocol/StatusCode.h> #include <Protocol/StatusCode.h>