Refine code for BasePalCallLibNull & PeiPalCallLib.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5506 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
xli24
2008-07-16 14:36:38 +00:00
parent 9c8eefab05
commit 4cb0344efe
2 changed files with 30 additions and 38 deletions

View File

@@ -1,7 +1,7 @@
/** @file
PAL Call Services Function.
Copyright (c) 2006 - 2007 Intel Corporation. All rights reserved
Copyright (c) 2006 - 2008 Intel Corporation. All rights reserved
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by such
@@ -26,8 +26,8 @@
#include <Library/DebugLib.h>
/**
Makes a PAL procedure call.
This is a wrapper function to make a PAL procedure call. Based on the Index value,
this API will make static or stacked PAL call. Architected procedures may be designated
as required or optional. If a PAL procedure is specified as optional, a unique return
@@ -42,12 +42,12 @@
returned or undefined result may occur during the execution of the procedure.
This function is only available on IPF.
@param Index - The PAL procedure Index number.
@param Arg2 - The 2nd parameter for PAL procedure calls.
@param Arg3 - The 3rd parameter for PAL procedure calls.
@param Arg4 - The 4th parameter for PAL procedure calls.
@param Index The PAL procedure Index number.
@param Arg2 The 2nd parameter for PAL procedure calls.
@param Arg3 The 3rd parameter for PAL procedure calls.
@param Arg4 The 4th parameter for PAL procedure calls.
@return structure returned from the PAL Call procedure, including the status and return value.
@return Structure returned from the PAL Call procedure, including the status and return value.
**/
PAL_CALL_RETURN
@@ -68,28 +68,30 @@ PalCall (
UINT64 RecordSize;
//
// Get Pei Service Table Pointer
// Get PEI Service Table Pointer
//
PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();
//
// Locate SEC Ppi
// Locate SEC Platform Information PPI
//
Status = PeiServicesLocatePpi (
&gEfiSecPlatformInformationPpiGuid,
0,
NULL,
(VOID **)&SecPlatformPpi
);
&gEfiSecPlatformInformationPpiGuid,
0,
NULL,
(VOID **)&SecPlatformPpi
);
ASSERT_EFI_ERROR (Status);
//
// Retrieve PAL call address from platform information reported by the PPI
//
RecordSize = sizeof (IpfStatus);
SecPlatformPpi->PlatformInformation (
PeiServices,
&RecordSize,
(EFI_SEC_PLATFORM_INFORMATION_RECORD *) &IpfStatus
);
PeiServices,
&RecordSize,
(EFI_SEC_PLATFORM_INFORMATION_RECORD *) &IpfStatus
);
PalCallAddress = IpfStatus.PalCallAddress;
ReturnVal = AsmPalCall (PalCallAddress, Index, Arg2, Arg3, Arg4);