EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index
Functions | Variables

MdePkg/Library/DxeRuntimeExtendedSalLib/ExtendedSalLib.c File Reference

#include <PiDxe.h>
#include <Protocol/ExtendedSalBootService.h>
#include <Protocol/ExtendedSalServiceClasses.h>
#include <Guid/EventGroup.h>
#include <Library/ExtendedSalLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/UefiRuntimeLib.h>
#include <Library/DebugLib.h>

Go to the source code of this file.

Functions

SAL_RETURN_REGS EFIAPI SetEsalVirtualEntryPoint (IN UINT64 EntryPoint, IN UINT64 Gp)
SAL_RETURN_REGS EFIAPI SetEsalPhysicalEntryPoint (IN UINT64 EntryPoint, IN UINT64 Gp)
SAL_RETURN_REGS EFIAPI GetEsalEntryPoint (VOID)
VOID EFIAPI ExtendedSalVirtualNotifyEvent (IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS DxeSalLibInitialize (VOID)
EFI_STATUS EFIAPI DxeRuntimeExtendedSalLibConstruct (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI DxeRuntimeExtendedSalLibDeconstruct (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS RegisterEsalFunction (IN UINT64 FunctionId, IN UINT64 ClassGuidLo, IN UINT64 ClassGuidHi, IN SAL_INTERNAL_EXTENDED_SAL_PROC Function, IN VOID *ModuleGlobal)
EFI_STATUS EFIAPI RegisterEsalClass (IN CONST UINT64 ClassGuidLo, IN CONST UINT64 ClassGuidHi, IN VOID *ModuleGlobal, OPTIONAL...)
SAL_RETURN_REGS EFIAPI EsalCall (IN UINT64 ClassGuidLo, IN UINT64 ClassGuidHi, IN UINT64 FunctionId, IN UINT64 Arg2, IN UINT64 Arg3, IN UINT64 Arg4, IN UINT64 Arg5, IN UINT64 Arg6, IN UINT64 Arg7, IN UINT64 Arg8)
SAL_RETURN_REGS EFIAPI EsalStall (IN UINTN Microseconds)
SAL_RETURN_REGS EFIAPI EsalSetNewPalEntry (IN BOOLEAN PhysicalAddress, IN UINT64 PalEntryPoint)
SAL_RETURN_REGS EFIAPI EsalGetNewPalEntry (IN BOOLEAN PhysicalAddress)
SAL_RETURN_REGS EFIAPI EsalGetStateBuffer (IN UINT64 McaType, OUT UINT8 **McaBuffer, OUT UINTN *BufferSize)
SAL_RETURN_REGS EFIAPI EsalSaveStateBuffer (IN UINT64 McaType)
SAL_RETURN_REGS EFIAPI EsalGetVectors (IN UINT64 VectorType)
SAL_RETURN_REGS EFIAPI EsalMcGetParams (IN UINT64 ParamInfoType)
SAL_RETURN_REGS EFIAPI EsalMcGetMcParams (VOID)
SAL_RETURN_REGS EFIAPI EsalGetMcCheckinFlags (IN UINT64 CpuIndex)
SAL_RETURN_REGS EFIAPI EsalAddCpuData (IN UINT64 CpuGlobalId, IN BOOLEAN Enabled, IN UINT64 PalCompatibility)
SAL_RETURN_REGS EFIAPI EsalRemoveCpuData (IN UINT64 CpuGlobalId)
SAL_RETURN_REGS EFIAPI EsalModifyCpuData (IN UINT64 CpuGlobalId, IN BOOLEAN Enabled, IN UINT64 PalCompatibility)
SAL_RETURN_REGS EFIAPI EsalGetCpuDataById (IN UINT64 CpuGlobalId, IN BOOLEAN IndexByEnabledCpu)
SAL_RETURN_REGS EFIAPI EsalGetCpuDataByIndex (IN UINT64 Index, IN BOOLEAN IndexByEnabledCpu)
SAL_RETURN_REGS EFIAPI EsalWhoAmI (IN BOOLEAN IndexByEnabledCpu)
SAL_RETURN_REGS EFIAPI EsalNumProcessors (VOID)
SAL_RETURN_REGS EFIAPI EsalSetMinState (IN UINT64 CpuGlobalId, IN EFI_PHYSICAL_ADDRESS MinStatePointer)
SAL_RETURN_REGS EFIAPI EsalGetMinState (IN UINT64 CpuGlobalId)
SAL_RETURN_REGS EFIAPI EsalMcaGetStateInfo (IN UINT64 CpuGlobalId, OUT EFI_PHYSICAL_ADDRESS *StateBufferPointer, OUT UINT64 *RequiredStateBufferSize)
SAL_RETURN_REGS EFIAPI EsalMcaRegisterCpu (IN UINT64 CpuGlobalId, IN EFI_PHYSICAL_ADDRESS StateBufferPointer)

Variables

EXTENDED_SAL_BOOT_SERVICE_PROTOCOLmEsalBootService = NULL
EFI_PLABEL mPlabel
EFI_EVENT mEfiVirtualNotifyEvent

Detailed Description

This library implements the Extended SAL Library Class for use in boot services and runtime.

Copyright (c) 2006 - 2011, 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.

Definition in file ExtendedSalLib.c.


Function Documentation

EFI_STATUS EFIAPI DxeRuntimeExtendedSalLibConstruct ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

Constructor function to initializes physical plabel of ESAL entrypoint and register an event for initialization of virtual plabel of ESAL entrypoint.

This is the library constructor function to call a function to initialize physical plabel of ESAL entrypoint and to register notification function for EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE, which sets virtual plabel of ESAL entrypoint.

Parameters:
ImageHandleThe firmware allocated handle for the EFI image.
SystemTableA pointer to the EFI System Table.
Return values:
EFI_SUCCESSNotification function successfully registered.

Definition at line 174 of file ExtendedSalLib.c.

EFI_STATUS EFIAPI DxeRuntimeExtendedSalLibDeconstruct ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

Destructor function to close the event created by the library constructor

This is the library destructor function to close the event with type of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE, which is created by the library constructor.

Parameters:
ImageHandleThe firmware allocated handle for the EFI image.
SystemTableA pointer to the EFI System Table.
Return values:
EFI_SUCCESSEvent successfully closed.

Definition at line 216 of file ExtendedSalLib.c.

EFI_STATUS DxeSalLibInitialize ( VOID  )

Gets Extended SAL Boot Service Protocol, and initializes physical plabel of ESAL entrypoint.

This function first locates Extended SAL Boot Service Protocol and caches it in global variable. Then it initializes the physical plable of ESAL entrypoint, and stores it where GetEsalEntryPoint() can easily retrieve.

Return values:
EFI_SUCCESSPlable of ESAL entrypoint successfully stored.

Definition at line 129 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalAddCpuData ( IN UINT64  CpuGlobalId,
IN BOOLEAN  Enabled,
IN UINT64  PalCompatibility 
)

Wrapper for the EsalAddCpuDataFunctionId service of Extended SAL MP Services Class.

This function is a wrapper for the EsalAddCpuDataFunctionId service of Extended SAL MP Services Class. See EsalAddCpuDataFunctionId of Extended SAL Specification.

Parameters:
CpuGlobalIdThe Global ID for the CPU being added.
EnabledThe enable flag for the CPU being added. TRUE means the CPU is enabled. FALSE means the CPU is disabled.
PalCompatibilityThe PAL Compatibility value for the CPU being added.
Return values:
EFI_SAL_SUCCESSThe CPU was added to the database.
EFI_SAL_NOT_ENOUGH_SCRATCHThere are not enough resource available to add the CPU.

Definition at line 757 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalCall ( IN UINT64  ClassGuidLo,
IN UINT64  ClassGuidHi,
IN UINT64  FunctionId,
IN UINT64  Arg2,
IN UINT64  Arg3,
IN UINT64  Arg4,
IN UINT64  Arg5,
IN UINT64  Arg6,
IN UINT64  Arg7,
IN UINT64  Arg8 
)

Calls an Extended SAL Class service that was previously registered with RegisterEsalClass().

This function gets the entrypoint of Extended SAL, and calls an Extended SAL Class service that was previously registered with RegisterEsalClass() through this entrypoint.

Parameters:
ClassGuidLoGUID of function, lower 64-bits
ClassGuidHiGUID of function, upper 64-bits
FunctionIdFunction in ClassGuid to call
Arg2Argument 2 ClassGuid/FunctionId defined
Arg3Argument 3 ClassGuid/FunctionId defined
Arg4Argument 4 ClassGuid/FunctionId defined
Arg5Argument 5 ClassGuid/FunctionId defined
Arg6Argument 6 ClassGuid/FunctionId defined
Arg7Argument 7 ClassGuid/FunctionId defined
Arg8Argument 8 ClassGuid/FunctionId defined
Return values:
EFI_SAL_SUCCESSESAL procedure successfully called.
EFI_SAL_ERRORThe address of ExtendedSalProc() can not be correctly initialized.
OtherStatus returned from ExtendedSalProc() service of EXTENDED_SAL_BOOT_SERVICE_PROTOCOL.

Definition at line 363 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalGetCpuDataById ( IN UINT64  CpuGlobalId,
IN BOOLEAN  IndexByEnabledCpu 
)

Wrapper for the EsalGetCpuDataByIdFunctionId service of Extended SAL MP Services Class.

This function is a wrapper for the EsalGetCpuDataByIdFunctionId service of Extended SAL MP Services Class. See EsalGetCpuDataByIdFunctionId of Extended SAL Specification.

Parameters:
CpuGlobalIdThe Global ID for the CPU being looked up.
IndexByEnabledCpuIf TRUE, then the index of set of enabled CPUs of database is returned. If FALSE, then the index of set of all CPUs of database is returned.
Return values:
EFI_SAL_SUCCESSThe information on the specified CPU was returned.
EFI_SAL_NO_INFORMATIONThe specified CPU is not in the database.

Definition at line 863 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalGetCpuDataByIndex ( IN UINT64  Index,
IN BOOLEAN  IndexByEnabledCpu 
)

Wrapper for the EsalGetCpuDataByIndexFunctionId service of Extended SAL MP Services Class.

This function is a wrapper for the EsalGetCpuDataByIndexFunctionId service of Extended SAL MP Services Class. See EsalGetCpuDataByIndexFunctionId of Extended SAL Specification.

Parameters:
IndexThe Global ID for the CPU being modified.
IndexByEnabledCpuIf TRUE, then the index of set of enabled CPUs of database is returned. If FALSE, then the index of set of all CPUs of database is returned.
Return values:
EFI_SAL_SUCCESSThe information on the specified CPU was returned.
EFI_SAL_NO_INFORMATIONThe specified CPU is not in the database.

Definition at line 898 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalGetMcCheckinFlags ( IN UINT64  CpuIndex)

Wrapper for the EsalGetMcCheckinFlagsFunctionId service of Extended SAL Base Services Class.

This function is a wrapper for the EsalGetMcCheckinFlagsFunctionId service of Extended SAL Base Services Class. See EsalGetMcCheckinFlagsFunctionId of Extended SAL Specification.

Parameters:
CpuIndexThe index of the CPU of set of enabled CPUs to check.
Return values:
EFI_SAL_SUCCESSThe checkin status of the requested CPU was returned.

Definition at line 721 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalGetMinState ( IN UINT64  CpuGlobalId)

Wrapper for the EsalGetMinStateFunctionId service of Extended SAL MP Services Class.

This function is a wrapper for the EsalGetMinStateFunctionId service of Extended SAL MP Services Class. See EsalGetMinStateFunctionId of Extended SAL Specification.

Parameters:
CpuGlobalIdThe Global ID for the CPU whose MINSTATE pointer is being retrieved.
Return values:
EFI_SAL_SUCCESSThe MINSTATE pointer for the specified CPU was retrieved.
EFI_SAL_NO_INFORMATIONThe specified CPU is not in the database.

Definition at line 1029 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalGetNewPalEntry ( IN BOOLEAN  PhysicalAddress)

Wrapper for the EsalGetNewPalEntryFunctionId service of Extended SAL PAL Services Services Class.

This function is a wrapper for the EsalGetNewPalEntryFunctionId service of Extended SAL PAL Services Services Class. See EsalGetNewPalEntryFunctionId of Extended SAL Specification.

Parameters:
PhysicalAddressIf TRUE, then PalEntryPoint is a physical address. If FALSE, then PalEntryPoint is a virtual address.
Return values:
EFI_SAL_SUCCESSThe PAL Entry Point was retrieved and returned in SAL_RETURN_REGS.r9.
EFI_SAL_VIRTUAL_ADDRESS_ERRORThis function was called in virtual mode before virtual mappings for the specified Extended SAL Procedure are available.
Returns:
r9 PAL entry point retrieved.

Definition at line 509 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalGetStateBuffer ( IN UINT64  McaType,
OUT UINT8 **  McaBuffer,
OUT UINTN BufferSize 
)

Wrapper for the EsalGetStateBufferFunctionId service of Extended SAL MCA Log Services Class.

This function is a wrapper for the EsalGetStateBufferFunctionId service of Extended SAL MCA Log Services Class. See EsalGetStateBufferFunctionId of Extended SAL Specification.

Parameters:
McaTypeSee type parameter of SAL Procedure SAL_GET_STATE_INFO.
McaBufferA pointer to the base address of the returned buffer. Copied from SAL_RETURN_REGS.r9.
BufferSizeA pointer to the size, in bytes, of the returned buffer. Copied from SAL_RETURN_REGS.r10.
Return values:
EFI_SAL_SUCCESSThe memory buffer to store error records was returned in r9 and r10.
EFI_OUT_OF_RESOURCESA memory buffer for string error records in not available
Returns:
r9 Base address of the returned buffer
r10 Size of the returned buffer in bytes

Definition at line 547 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalGetVectors ( IN UINT64  VectorType)

Wrapper for the EsalGetVectorsFunctionId service of Extended SAL Base Services Class.

This function is a wrapper for the EsalGetVectorsFunctionId service of Extended SAL Base Services Class. See EsalGetVectorsFunctionId of Extended SAL Specification.

Parameters:
VectorTypeThe vector type to retrieve. 0 - MCA, 1 - BSP INIT, 2 - BOOT_RENDEZ, 3 - AP INIT.
Return values:
EFI_SAL_SUCCESSCall completed without error.
EFI_SAL_INVALID_ARGUMENTInvalid argument.
EFI_SAL_NO_INFORMATIONThe requested vector has not been registered with the SAL Procedure SAL_SET_VECTORS.

Definition at line 622 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalMcaGetStateInfo ( IN UINT64  CpuGlobalId,
OUT EFI_PHYSICAL_ADDRESS StateBufferPointer,
OUT UINT64 RequiredStateBufferSize 
)

Wrapper for the EsalMcsGetStateInfoFunctionId service of Extended SAL MCA Services Class.

This function is a wrapper for the EsalMcsGetStateInfoFunctionId service of Extended SAL MCA Services Class. See EsalMcsGetStateInfoFunctionId of Extended SAL Specification.

Parameters:
CpuGlobalIdThe Global ID for the CPU whose MCA state buffer is being retrieved.
StateBufferPointerA pointer to the returned MCA state buffer.
RequiredStateBufferSizeA pointer to the size, in bytes, of the returned MCA state buffer.
Return values:
EFI_SUCCESSMINSTATE successfully got and size calculated.
EFI_SAL_NO_INFORMATIONFail to get MINSTATE.

Definition at line 1063 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalMcaRegisterCpu ( IN UINT64  CpuGlobalId,
IN EFI_PHYSICAL_ADDRESS  StateBufferPointer 
)

Wrapper for the EsalMcaRegisterCpuFunctionId service of Extended SAL MCA Services Class.

This function is a wrapper for the EsalMcaRegisterCpuFunctionId service of Extended SAL MCA Services Class. See EsalMcaRegisterCpuFunctionId of Extended SAL Specification.

Parameters:
CpuGlobalIdThe Global ID for the CPU whose MCA state buffer is being set.
StateBufferPointerA pointer to the MCA state buffer.
Return values:
EFI_SAL_NO_INFORMATIONCannot get the processor info with the CpuId
EFI_SUCCESSSave the processor's state info successfully

Definition at line 1105 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalMcGetMcParams ( VOID  )

Wrapper for the EsalMcGetParamsFunctionId service of Extended SAL Base Services Class.

This function is a wrapper for the EsalMcGetParamsFunctionId service of Extended SAL Base Services Class. See EsalMcGetParamsFunctionId of Extended SAL Specification.

Return values:
EFI_SAL_SUCCESSCall completed without error.
EFI_SAL_NO_INFORMATIONThe requested vector has not been registered with the SAL Procedure SAL_MC_SET_PARAMS.

Definition at line 690 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalMcGetParams ( IN UINT64  ParamInfoType)

Wrapper for the EsalMcGetParamsFunctionId service of Extended SAL Base Services Class.

This function is a wrapper for the EsalMcGetParamsFunctionId service of Extended SAL Base Services Class. See EsalMcGetParamsFunctionId of Extended SAL Specification.

Parameters:
ParamInfoTypeThe parameter type to retrieve. 1 - rendezvous interrupt 2 - wake up 3 - Corrected Platform Error Vector.
Return values:
EFI_SAL_SUCCESSCall completed without error.
EFI_SAL_INVALID_ARGUMENTInvalid argument.
EFI_SAL_NO_INFORMATIONThe requested vector has not been registered with the SAL Procedure SAL_MC_SET_PARAMS.

Definition at line 659 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalModifyCpuData ( IN UINT64  CpuGlobalId,
IN BOOLEAN  Enabled,
IN UINT64  PalCompatibility 
)

Wrapper for the EsalModifyCpuDataFunctionId service of Extended SAL MP Services Class.

This function is a wrapper for the EsalModifyCpuDataFunctionId service of Extended SAL MP Services Class. See EsalModifyCpuDataFunctionId of Extended SAL Specification.

Parameters:
CpuGlobalIdThe Global ID for the CPU being modified.
EnabledThe enable flag for the CPU being modified. TRUE means the CPU is enabled. FALSE means the CPU is disabled.
PalCompatibilityThe PAL Compatibility value for the CPU being modified.
Return values:
EFI_SAL_SUCCESSThe CPU database was updated.
EFI_SAL_NO_INFORMATIONThe specified CPU is not in the database.

Definition at line 827 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalNumProcessors ( VOID  )

Wrapper for the EsalNumProcessors service of Extended SAL MP Services Class.

This function is a wrapper for the EsalNumProcessors service of Extended SAL MP Services Class. See EsalNumProcessors of Extended SAL Specification.

Return values:
EFI_SAL_SUCCESSThe information on the number of CPUs in the platform was returned.

Definition at line 962 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalRemoveCpuData ( IN UINT64  CpuGlobalId)

Wrapper for the EsalRemoveCpuDataFunctionId service of Extended SAL MP Services Class.

This function is a wrapper for the EsalRemoveCpuDataFunctionId service of Extended SAL MP Services Class. See EsalRemoveCpuDataFunctionId of Extended SAL Specification.

Parameters:
CpuGlobalIdThe Global ID for the CPU being removed.
Return values:
EFI_SAL_SUCCESSThe CPU was removed from the database.
EFI_SAL_NO_INFORMATIONThe specified CPU is not in the database.

Definition at line 791 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalSaveStateBuffer ( IN UINT64  McaType)

Wrapper for the EsalSaveStateBufferFunctionId service of Extended SAL MCA Log Services Class.

This function is a wrapper for the EsalSaveStateBufferFunctionId service of Extended SAL MCA Log Services Class. See EsalSaveStateBufferFunctionId of Extended SAL Specification.

Parameters:
McaTypeSee type parameter of SAL Procedure SAL_GET_STATE_INFO.
Return values:
EFI_SUCCESSThe memory buffer containing the error record was written to nonvolatile storage.

Definition at line 587 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalSetMinState ( IN UINT64  CpuGlobalId,
IN EFI_PHYSICAL_ADDRESS  MinStatePointer 
)

Wrapper for the EsalSetMinStateFnctionId service of Extended SAL MP Services Class.

This function is a wrapper for the EsalSetMinStateFnctionId service of Extended SAL MP Services Class. See EsalSetMinStateFnctionId of Extended SAL Specification.

Parameters:
CpuGlobalIdThe Global ID for the CPU whose MINSTATE pointer is being set.
MinStatePointerThe physical address of the MINSTATE buffer for the CPU specified by CpuGlobalId.
Return values:
EFI_SAL_SUCCESSThe MINSTATE pointer was set for the specified CPU.
EFI_SAL_NO_INFORMATIONThe specified CPU is not in the database.

Definition at line 996 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalSetNewPalEntry ( IN BOOLEAN  PhysicalAddress,
IN UINT64  PalEntryPoint 
)

Wrapper for the EsalSetNewPalEntryFunctionId service of Extended SAL PAL Services Services Class.

This function is a wrapper for the EsalSetNewPalEntryFunctionId service of Extended SAL PAL Services Services Class. See EsalSetNewPalEntryFunctionId of Extended SAL Specification.

Parameters:
PhysicalAddressIf TRUE, then PalEntryPoint is a physical address. If FALSE, then PalEntryPoint is a virtual address.
PalEntryPointThe PAL Entry Point being set.
Return values:
EFI_SAL_SUCCESSThe PAL Entry Point was set.
EFI_SAL_VIRTUAL_ADDRESS_ERRORThis function was called in virtual mode before virtual mappings for the specified Extended SAL Procedure are available.

Definition at line 471 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalStall ( IN UINTN  Microseconds)

Wrapper for the EsalStallFunctionId service of Extended SAL Stall Services Class.

This function is a wrapper for the EsalStallFunctionId service of Extended SAL Stall Services Class. See EsalStallFunctionId of Extended SAL Specification.

Parameters:
MicrosecondsThe number of microseconds to delay.
Return values:
EFI_SAL_SUCCESSCall completed without error.
EFI_SAL_INVALID_ARGUMENTInvalid argument.
EFI_SAL_VIRTUAL_ADDRESS_ERRORVirtual address not registered

Definition at line 435 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI EsalWhoAmI ( IN BOOLEAN  IndexByEnabledCpu)

Wrapper for the EsalWhoAmIFunctionId service of Extended SAL MP Services Class.

This function is a wrapper for the EsalWhoAmIFunctionId service of Extended SAL MP Services Class. See EsalWhoAmIFunctionId of Extended SAL Specification.

Parameters:
IndexByEnabledCpuIf TRUE, then the index of set of enabled CPUs of database is returned. If FALSE, then the index of set of all CPUs of database is returned.
Return values:
EFI_SAL_SUCCESSThe Global ID for the calling CPU was returned.
EFI_SAL_NO_INFORMATIONThe calling CPU is not in the database.

Definition at line 932 of file ExtendedSalLib.c.

VOID EFIAPI ExtendedSalVirtualNotifyEvent ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE to set virtual plabel of ESAL entrypoint.

This is a notification function registered on EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event. It converts physical plabel of ESAL entrypoint to virtual plabel and stores it where GetEsalEntryPoint() can easily retrieve.

Parameters:
EventEvent whose notification function is being invoked.
ContextPointer to the notification function's context

Definition at line 101 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI GetEsalEntryPoint ( VOID  )

Retrieves plabel of ESAL entrypoint.

This function retrives plabel of ESAL entrypoint stored by SetEsalPhysicalEntryPoint().

Returns:
r8 = EFI_SAL_SUCCESS r9 = Physical Plabel r10 = Virtual Plabel r11 = PSR
EFI_STATUS EFIAPI RegisterEsalClass ( IN CONST UINT64  ClassGuidLo,
IN CONST UINT64  ClassGuidHi,
IN VOID *  ModuleGlobal,
OPTIONAL...   
)

Registers ESAL Class and it's associated global.

This function registers one or more Extended SAL services in a given class along with the associated global context. This function is only available prior to ExitBootServices().

Parameters:
ClassGuidLoGUID of function class, lower 64-bits
ClassGuidHiGUID of function class, upper 64-bits
ModuleGlobalModule global for the class.
...List of Function/FunctionId pairs, ended by NULL
Return values:
EFI_SUCCESSThe Extended SAL services were registered.
EFI_UNSUPPORTEDThis function was called after ExitBootServices().
EFI_OUT_OF_RESOURCESThere are not enough resources available to register one or more of the specified services.
OtherClassGuid could not be installed onto a new handle.

Definition at line 288 of file ExtendedSalLib.c.

EFI_STATUS RegisterEsalFunction ( IN UINT64  FunctionId,
IN UINT64  ClassGuidLo,
IN UINT64  ClassGuidHi,
IN SAL_INTERNAL_EXTENDED_SAL_PROC  Function,
IN VOID *  ModuleGlobal 
)

Registers function of ESAL class and it's associated global.

This function registers function of ESAL class, together with its associated global. It is worker function for RegisterEsalClass(). It is only for boot time.

Parameters:
FunctionIdID of function to register
ClassGuidLoGUID of ESAL class, lower 64-bits
ClassGuidHiGUID of ESAL class, upper 64-bits
FunctionFunction to register with ClassGuid/FunctionId pair
ModuleGlobalModule global for the function.
Returns:
Status returned by RegisterExtendedSalProc() of Extended SAL Boot Service Protocol

Definition at line 250 of file ExtendedSalLib.c.

SAL_RETURN_REGS EFIAPI SetEsalPhysicalEntryPoint ( IN UINT64  EntryPoint,
IN UINT64  Gp 
)

Stores the physical plabel of ESAL entrypoint.

This assembly function stores the physical plabel of ESAL entrypoint where GetEsalEntryPoint() can easily retrieve.

Parameters:
EntryPointPhysical address of ESAL entrypoint
GpPhysical GP of ESAL entrypoint
Returns:
r8 = EFI_SAL_SUCCESS
SAL_RETURN_REGS EFIAPI SetEsalVirtualEntryPoint ( IN UINT64  EntryPoint,
IN UINT64  Gp 
)

Stores the virtual plabel of ESAL entrypoint.

This assembly function stores the virtual plabel of ESAL entrypoint where GetEsalEntryPoint() can easily retrieve.

Parameters:
EntryPointVirtual address of ESAL entrypoint
GpVirtual GP of ESAL entrypoint
Returns:
r8 = EFI_SAL_SUCCESS

Variable Documentation

Definition at line 85 of file ExtendedSalLib.c.

Definition at line 83 of file ExtendedSalLib.c.

Definition at line 84 of file ExtendedSalLib.c.

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines