audk/EdkCompatibilityPkg/Foundation/Library/Dxe/Include/Ipf/EsalRuntimeLib.h

1306 lines
22 KiB
C

/*++
Copyright (c) 2004, 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.
Module Name:
EsalRuntimeLib.h
Abstract:
SAL Driver Lib
Revision History
--*/
#ifndef _ESAL_RUNTIME_LIB_H_
#define _ESAL_RUNTIME_LIB_H_
#include "SalApi.h"
#include "EfiFirmwareVolumeHeader.h"
#include EFI_PROTOCOL_DEFINITION (ExtendedSalBootService)
#include EFI_PROTOCOL_DEFINITION (ExtendedSalGuid)
#include EFI_PROTOCOL_DEFINITION (FirmwareVolumeBlock)
VOID
EsalRuntimeLibVirtualNotify (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EsalInitializeRuntimeDriverLib (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ImageHandle - Image Handle
SystemTable - the System Table
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
CallEsalService (
IN EFI_GUID *ClassGuid,
IN UINT64 FunctionId,
IN UINT64 Arg2,
IN UINT64 Arg3,
IN UINT64 Arg4,
IN UINT64 Arg5,
IN UINT64 Arg6,
IN UINT64 Arg7,
IN UINT64 Arg8
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ClassGuid - TODO: add argument description
FunctionId - TODO: add argument description
Arg2 - TODO: add argument description
Arg3 - TODO: add argument description
Arg4 - TODO: add argument description
Arg5 - TODO: add argument description
Arg6 - TODO: add argument description
Arg7 - TODO: add argument description
Arg8 - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// Assembly Functions
//
SAL_RETURN_REGS
EsalGetEntryPoint (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalSetPhysicalEntryPoint (
IN UINT64 EntryPoint,
IN UINT64 Gp
)
/*++
Routine Description:
TODO: Add function description
Arguments:
EntryPoint - TODO: add argument description
Gp - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalSetVirtualEntryPoint (
IN UINT64 EntryPoint,
IN UINT64 Gp
)
/*++
Routine Description:
TODO: Add function description
Arguments:
EntryPoint - TODO: add argument description
Gp - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalSetPhysicalModuleGlobal (
IN VOID *Global
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Global - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalSetVirtualModuleGlobal (
IN VOID *Global
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Global - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalGetModuleGlobal (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
GetIrrData (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
GetPsrData (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
GetProcIdData (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
VOID
SwitchCpuStack (
IN UINT64 NewBsp,
IN UINT64 OldBsp
)
/*++
Routine Description:
TODO: Add function description
Arguments:
NewBsp - TODO: add argument description
OldBsp - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// PAL PROC Class
//
SAL_RETURN_REGS
SalPalProc (
IN UINT64 Arg1,
IN UINT64 Arg2,
IN UINT64 Arg3,
IN UINT64 Arg4
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Arg1 - TODO: add argument description
Arg2 - TODO: add argument description
Arg3 - TODO: add argument description
Arg4 - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
SalRegisterNewPalEntry (
IN BOOLEAN PhysicalPalAddress,
IN EFI_PHYSICAL_ADDRESS NewPalAddress
)
/*++
Routine Description:
TODO: Add function description
Arguments:
PhysicalPalAddress - TODO: add argument description
NewPalAddress - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
SalGetPalEntryPointer (
IN BOOLEAN PhysicalPalAddress
)
/*++
Routine Description:
TODO: Add function description
Arguments:
PhysicalPalAddress - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// SAL BASE Class
//
SAL_RETURN_REGS
SalProcSetVectors (
IN UINT64 SalVectorType,
IN UINT64 PhyAddr1,
IN UINT64 Gp1,
IN UINT64 LengthCs1,
IN UINT64 PhyAddr2,
IN UINT64 Gp2,
IN UINT64 LengthCs2
)
/*++
Routine Description:
TODO: Add function description
Arguments:
SalVectorType - TODO: add argument description
PhyAddr1 - TODO: add argument description
Gp1 - TODO: add argument description
LengthCs1 - TODO: add argument description
PhyAddr2 - TODO: add argument description
Gp2 - TODO: add argument description
LengthCs2 - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
SalProcMcRendez (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
SalProcMcSetParams (
IN UINT64 ParamType,
IN UINT64 IntOrMem,
IN UINT64 IntOrMemVal,
IN UINT64 Timeout,
IN UINT64 McaOpt
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ParamType - TODO: add argument description
IntOrMem - TODO: add argument description
IntOrMemVal - TODO: add argument description
Timeout - TODO: add argument description
McaOpt - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalProcGetVectors (
IN UINT64 VectorType
)
/*++
Routine Description:
TODO: Add function description
Arguments:
VectorType - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalProcMcGetParams (
IN UINT64 ParamInfoType
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ParamInfoType - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalProcMcGetMcParams (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
EsalProcGetMcCheckinFlags (
IN UINT64 ProcessorUnit
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ProcessorUnit - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// Sal Base Class enums
//
typedef enum {
McaVector,
BspInitVector,
BootRendezVector,
ApInitVector
} ESAL_GET_VECTOR_TYPE;
SAL_RETURN_REGS
SalInitializeThreshold (
IN VOID *ThresholdStruct,
IN UINT64 Count,
IN UINT64 Duration
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ThresholdStruct - TODO: add argument description
Count - TODO: add argument description
Duration - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
SalBumpThresholdCount (
IN VOID *ThresholdStruct,
IN UINT64 Count,
IN UINT64 Duration
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ThresholdStruct - TODO: add argument description
Count - TODO: add argument description
Duration - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
SalGetThresholdCount (
IN VOID *ThresholdStruct,
IN UINT64 Count,
IN UINT64 Duration
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ThresholdStruct - TODO: add argument description
Count - TODO: add argument description
Duration - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// Common Lib Function
//
EFI_STATUS
RegisterEsalFunction (
IN UINT64 FunctionId,
IN EFI_GUID *ClassGuid,
IN SAL_INTERNAL_EXTENDED_SAL_PROC Function,
IN VOID *ModuleGlobal
)
/*++
Routine Description:
TODO: Add function description
Arguments:
FunctionId - TODO: add argument description
ClassGuid - TODO: add argument description
Function - TODO: add argument description
ModuleGlobal - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
RegisterEsalClass (
IN EFI_GUID *ClassGuid,
IN VOID *ModuleGlobal,
...
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ClassGuid - TODO: add argument description
ModuleGlobal - TODO: add argument description
... - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// MP Class Functions
//
SAL_RETURN_REGS
LibMpAddCpuData (
IN UINT64 CpuGlobalId,
IN BOOLEAN Enabled,
IN UINT64 PalCompatability
)
/*++
Routine Description:
TODO: Add function description
Arguments:
CpuGlobalId - TODO: add argument description
Enabled - TODO: add argument description
PalCompatability - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibMpRemoveCpuData (
IN UINT64 CpuGlobalId
)
/*++
Routine Description:
TODO: Add function description
Arguments:
CpuGlobalId - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibMpModifyCpuData (
IN UINT64 CpuGlobalId,
IN BOOLEAN Enabled,
IN UINT64 PalCompatability
)
/*++
Routine Description:
TODO: Add function description
Arguments:
CpuGlobalId - TODO: add argument description
Enabled - TODO: add argument description
PalCompatability - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibMpGetCpuDataByID (
IN UINT64 CpuGlobalId,
IN BOOLEAN IndexByEnabledCpu
)
/*++
Routine Description:
TODO: Add function description
Arguments:
CpuGlobalId - TODO: add argument description
IndexByEnabledCpu - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibMpGetCpuDataByIndex (
IN UINT64 Index,
IN BOOLEAN IndexByEnabledCpu
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Index - TODO: add argument description
IndexByEnabledCpu - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibMpSendIpi (
IN UINT64 ProcessorNumber,
IN UINT64 VectorNumber,
IN EFI_DELIVERY_MODE DeliveryMode,
IN BOOLEAN IRFlag
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ProcessorNumber - TODO: add argument description
VectorNumber - TODO: add argument description
DeliveryMode - TODO: add argument description
IRFlag - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibMpCurrentProcessor (
IN BOOLEAN IndexByEnabledCpu
)
/*++
Routine Description:
TODO: Add function description
Arguments:
IndexByEnabledCpu - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibGetNumProcessors (
VOID
)
/*++
Routine Description:
TODO: Add function description
Arguments:
None
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibMpSaveMinStatePointer (
IN UINT64 CpuGlobalId,
IN EFI_PHYSICAL_ADDRESS MinStatePointer
)
/*++
Routine Description:
TODO: Add function description
Arguments:
CpuGlobalId - TODO: add argument description
MinStatePointer - TODO: add argument description
Returns:
TODO: add return values
--*/
;
SAL_RETURN_REGS
LibMpRestoreMinStatePointer (
IN UINT64 CpuGlobalId
)
/*++
Routine Description:
TODO: Add function description
Arguments:
CpuGlobalId - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// MCA Class Functions
//
EFI_STATUS
LibMcaGetStateInfo (
IN UINT64 CpuId,
OUT EFI_PHYSICAL_ADDRESS *StateBufferPointer,
OUT UINT64 *RequiredStateBufferSize
)
/*++
Routine Description:
TODO: Add function description
Arguments:
CpuId - TODO: add argument description
StateBufferPointer - TODO: add argument description
RequiredStateBufferSize - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
LibMcaRegisterCpu (
IN UINT64 CpuId,
IN EFI_PHYSICAL_ADDRESS StateBufferAddress
)
/*++
Routine Description:
TODO: Add function description
Arguments:
CpuId - TODO: add argument description
StateBufferAddress - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// FVB Variables Class
//
EFI_STATUS
EsalReadBlock (
IN UINTN Instance,
IN EFI_LBA Lba,
IN UINTN Offset,
IN OUT UINTN *NumBytes,
IN UINT8 *Buffer
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Instance - TODO: add argument description
Lba - TODO: add argument description
Offset - TODO: add argument description
NumBytes - TODO: add argument description
Buffer - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EsalWriteBlock (
IN UINTN Instance,
IN EFI_LBA Lba,
IN UINTN Offset,
IN OUT UINTN *NumBytes,
IN UINT8 *Buffer
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Instance - TODO: add argument description
Lba - TODO: add argument description
Offset - TODO: add argument description
NumBytes - TODO: add argument description
Buffer - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EsalEraseBlock (
IN UINTN Instance,
IN UINTN Lba
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Instance - TODO: add argument description
Lba - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EsalGetVolumeAttributes (
IN UINTN Instance,
OUT EFI_FVB_ATTRIBUTES *Attributes
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Instance - TODO: add argument description
Attributes - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EsalSetVolumeAttributes (
IN UINTN Instance,
IN EFI_FVB_ATTRIBUTES Attributes
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Instance - TODO: add argument description
Attributes - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EsalGetPhysicalAddress (
IN UINTN Instance,
OUT EFI_PHYSICAL_ADDRESS *Address
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Instance - TODO: add argument description
Address - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EsalGetBlockSize (
IN UINTN Instance,
IN EFI_LBA Lba,
OUT UINTN *BlockSize,
OUT UINTN *NumOfBlocks
)
/*++
Routine Description:
TODO: Add function description
Arguments:
Instance - TODO: add argument description
Lba - TODO: add argument description
BlockSize - TODO: add argument description
NumOfBlocks - TODO: add argument description
Returns:
TODO: add return values
--*/
;
//
// SAL ELOG Functions
//
EFI_STATUS
LibSalGetStateInfo (
IN UINT64 McaType,
IN UINT8 *McaBuffer,
OUT UINTN *Size
)
/*++
Routine Description:
TODO: Add function description
Arguments:
McaType - TODO: add argument description
McaBuffer - TODO: add argument description
Size - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
LibSalGetStateInfoSize (
IN UINT64 McaType,
OUT UINTN *Size
)
/*++
Routine Description:
TODO: Add function description
Arguments:
McaType - TODO: add argument description
Size - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
LibSalClearStateInfo (
IN UINT64 McaType
)
/*++
Routine Description:
TODO: Add function description
Arguments:
McaType - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
LibEsalGetStateBuffer (
IN UINT64 McaType,
OUT UINT8 **McaBuffer,
OUT UINTN *Index
)
/*++
Routine Description:
TODO: Add function description
Arguments:
McaType - TODO: add argument description
McaBuffer - TODO: add argument description
Index - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
LibEsalSaveStateBuffer (
IN UINT64 McaType
)
/*++
Routine Description:
TODO: Add function description
Arguments:
McaType - TODO: add argument description
Returns:
TODO: add return values
--*/
;
#endif