XenevaOS
Loading...
Searching...
No Matches
Functions
ExtendedSalLib.h File Reference
#include <IndustryStandard/Sal.h>
Include dependency graph for ExtendedSalLib.h:

Go to the source code of this file.

Functions

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)
 

Detailed Description

Library class definition of Extended SAL Library.

Copyright (c) 2007 - 2018, 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.

Function Documentation

◆ EsalAddCpuData()

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.

◆ EsalCall()

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 calls an Extended SAL Class service that was previously registered with RegisterEsalClass().

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_ERRORThe address of ExtendedSalProc() can not be determined for the current CPU execution mode.
OtherSee the return status from ExtendedSalProc() in the EXTENDED_SAL_BOOT_SERVICE_PROTOCOL.

◆ EsalGetCpuDataById()

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.

◆ EsalGetCpuDataByIndex()

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.

◆ EsalGetMcCheckinFlags()

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.

◆ EsalGetMinState()

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.

◆ EsalGetNewPalEntry()

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.

◆ EsalGetStateBuffer()

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

◆ EsalGetVectors()

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.

◆ EsalMcaGetStateInfo()

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.

◆ EsalMcaRegisterCpu()

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

◆ EsalMcGetMcParams()

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.

◆ EsalMcGetParams()

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.

◆ EsalModifyCpuData()

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.

◆ EsalNumProcessors()

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.

◆ EsalRemoveCpuData()

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.

◆ EsalSaveStateBuffer()

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.

◆ EsalSetMinState()

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.

◆ EsalSetNewPalEntry()

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.

◆ EsalStall()

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

◆ EsalWhoAmI()

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.

◆ RegisterEsalClass()

EFI_STATUS EFIAPI RegisterEsalClass ( IN CONST UINT64  ClassGuidLo,
IN CONST UINT64  ClassGuidHi,
IN VOID ModuleGlobal,
OPTIONAL ...   
)

Register ESAL Class and its 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 Function.
...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.