3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
24 #ifndef _ESAL_RUNTIME_LIB_H_
25 #define _ESAL_RUNTIME_LIB_H_
28 #include "EfiFirmwareVolumeHeader.h"
30 #include EFI_PROTOCOL_DEFINITION (ExtendedSalBootService)
31 #include EFI_PROTOCOL_DEFINITION (ExtendedSalGuid)
32 #include EFI_PROTOCOL_DEFINITION (FirmwareVolumeBlock)
35 EsalRuntimeLibVirtualNotify (
42 TODO: Add function description
50 TODO: add return values
56 EsalInitializeRuntimeDriverLib (
57 IN EFI_HANDLE ImageHandle
,
58 IN EFI_SYSTEM_TABLE
*SystemTable
64 TODO: Add function description
68 ImageHandle - Image Handle
69 SystemTable - the System Table
73 TODO: add return values
79 IN EFI_GUID
*ClassGuid
,
93 TODO: Add function description
97 ClassGuid - TODO: add argument description
98 FunctionId - TODO: add argument description
99 Arg2 - TODO: add argument description
100 Arg3 - TODO: add argument description
101 Arg4 - TODO: add argument description
102 Arg5 - TODO: add argument description
103 Arg6 - TODO: add argument description
104 Arg7 - TODO: add argument description
105 Arg8 - TODO: add argument description
109 TODO: add return values
115 // Assembly Functions
126 TODO: Add function description
134 TODO: add return values
140 EsalSetPhysicalEntryPoint (
141 IN UINT64 EntryPoint
,
148 TODO: Add function description
152 EntryPoint - TODO: add argument description
153 Gp - TODO: add argument description
157 TODO: add return values
163 EsalSetVirtualEntryPoint (
164 IN UINT64 EntryPoint
,
171 TODO: Add function description
175 EntryPoint - TODO: add argument description
176 Gp - TODO: add argument description
180 TODO: add return values
186 EsalSetPhysicalModuleGlobal (
193 TODO: Add function description
197 Global - TODO: add argument description
201 TODO: add return values
207 EsalSetVirtualModuleGlobal (
214 TODO: Add function description
218 Global - TODO: add argument description
222 TODO: add return values
228 EsalGetModuleGlobal (
235 TODO: Add function description
243 TODO: add return values
256 TODO: Add function description
264 TODO: add return values
277 TODO: Add function description
285 TODO: add return values
298 TODO: Add function description
306 TODO: add return values
320 TODO: Add function description
324 NewBsp - TODO: add argument description
325 OldBsp - TODO: add argument description
329 TODO: add return values
349 TODO: Add function description
353 Arg1 - TODO: add argument description
354 Arg2 - TODO: add argument description
355 Arg3 - TODO: add argument description
356 Arg4 - TODO: add argument description
360 TODO: add return values
366 SalRegisterNewPalEntry (
367 IN BOOLEAN PhysicalPalAddress
,
368 IN EFI_PHYSICAL_ADDRESS NewPalAddress
374 TODO: Add function description
378 PhysicalPalAddress - TODO: add argument description
379 NewPalAddress - TODO: add argument description
383 TODO: add return values
389 SalGetPalEntryPointer (
390 IN BOOLEAN PhysicalPalAddress
396 TODO: Add function description
400 PhysicalPalAddress - TODO: add argument description
404 TODO: add return values
415 IN UINT64 SalVectorType
,
427 TODO: Add function description
431 SalVectorType - TODO: add argument description
432 PhyAddr1 - TODO: add argument description
433 Gp1 - TODO: add argument description
434 LengthCs1 - TODO: add argument description
435 PhyAddr2 - TODO: add argument description
436 Gp2 - TODO: add argument description
437 LengthCs2 - TODO: add argument description
441 TODO: add return values
454 TODO: Add function description
462 TODO: add return values
471 IN UINT64 IntOrMemVal
,
479 TODO: Add function description
483 ParamType - TODO: add argument description
484 IntOrMem - TODO: add argument description
485 IntOrMemVal - TODO: add argument description
486 Timeout - TODO: add argument description
487 McaOpt - TODO: add argument description
491 TODO: add return values
504 TODO: Add function description
508 VectorType - TODO: add argument description
512 TODO: add return values
518 EsalProcMcGetParams (
519 IN UINT64 ParamInfoType
525 TODO: Add function description
529 ParamInfoType - TODO: add argument description
533 TODO: add return values
539 EsalProcMcGetMcParams (
546 TODO: Add function description
554 TODO: add return values
560 EsalProcGetMcCheckinFlags (
561 IN UINT64 ProcessorUnit
567 TODO: Add function description
571 ProcessorUnit - TODO: add argument description
575 TODO: add return values
581 // Sal Base Class enums
589 } ESAL_GET_VECTOR_TYPE
;
592 SalInitializeThreshold (
593 IN VOID
*ThresholdStruct
,
601 TODO: Add function description
605 ThresholdStruct - TODO: add argument description
606 Count - TODO: add argument description
607 Duration - TODO: add argument description
611 TODO: add return values
617 SalBumpThresholdCount (
618 IN VOID
*ThresholdStruct
,
626 TODO: Add function description
630 ThresholdStruct - TODO: add argument description
631 Count - TODO: add argument description
632 Duration - TODO: add argument description
636 TODO: add return values
642 SalGetThresholdCount (
643 IN VOID
*ThresholdStruct
,
651 TODO: Add function description
655 ThresholdStruct - TODO: add argument description
656 Count - TODO: add argument description
657 Duration - TODO: add argument description
661 TODO: add return values
667 // Common Lib Function
671 RegisterEsalFunction (
672 IN UINT64 FunctionId
,
673 IN EFI_GUID
*ClassGuid
,
674 IN SAL_INTERNAL_EXTENDED_SAL_PROC Function
,
675 IN VOID
*ModuleGlobal
681 TODO: Add function description
685 FunctionId - TODO: add argument description
686 ClassGuid - TODO: add argument description
687 Function - TODO: add argument description
688 ModuleGlobal - TODO: add argument description
692 TODO: add return values
699 IN EFI_GUID
*ClassGuid
,
700 IN VOID
*ModuleGlobal
,
707 TODO: Add function description
711 ClassGuid - TODO: add argument description
712 ModuleGlobal - TODO: add argument description
713 ... - TODO: add argument description
717 TODO: add return values
723 // MP Class Functions
727 IN UINT64 CpuGlobalId
,
729 IN UINT64 PalCompatability
735 TODO: Add function description
739 CpuGlobalId - TODO: add argument description
740 Enabled - TODO: add argument description
741 PalCompatability - TODO: add argument description
745 TODO: add return values
752 IN UINT64 CpuGlobalId
758 TODO: Add function description
762 CpuGlobalId - TODO: add argument description
766 TODO: add return values
773 IN UINT64 CpuGlobalId
,
775 IN UINT64 PalCompatability
781 TODO: Add function description
785 CpuGlobalId - TODO: add argument description
786 Enabled - TODO: add argument description
787 PalCompatability - TODO: add argument description
791 TODO: add return values
797 LibMpGetCpuDataByID (
798 IN UINT64 CpuGlobalId
,
799 IN BOOLEAN IndexByEnabledCpu
805 TODO: Add function description
809 CpuGlobalId - TODO: add argument description
810 IndexByEnabledCpu - TODO: add argument description
814 TODO: add return values
820 LibMpGetCpuDataByIndex (
822 IN BOOLEAN IndexByEnabledCpu
828 TODO: Add function description
832 Index - TODO: add argument description
833 IndexByEnabledCpu - TODO: add argument description
837 TODO: add return values
844 IN UINT64 ProcessorNumber
,
845 IN UINT64 VectorNumber
,
846 IN EFI_DELIVERY_MODE DeliveryMode
,
853 TODO: Add function description
857 ProcessorNumber - TODO: add argument description
858 VectorNumber - TODO: add argument description
859 DeliveryMode - TODO: add argument description
860 IRFlag - TODO: add argument description
864 TODO: add return values
870 LibMpCurrentProcessor (
871 IN BOOLEAN IndexByEnabledCpu
877 TODO: Add function description
881 IndexByEnabledCpu - TODO: add argument description
885 TODO: add return values
891 LibGetNumProcessors (
898 TODO: Add function description
906 TODO: add return values
912 LibMpSaveMinStatePointer (
913 IN UINT64 CpuGlobalId
,
914 IN EFI_PHYSICAL_ADDRESS MinStatePointer
920 TODO: Add function description
924 CpuGlobalId - TODO: add argument description
925 MinStatePointer - TODO: add argument description
929 TODO: add return values
935 LibMpRestoreMinStatePointer (
936 IN UINT64 CpuGlobalId
942 TODO: Add function description
946 CpuGlobalId - TODO: add argument description
950 TODO: add return values
956 // MCA Class Functions
962 OUT EFI_PHYSICAL_ADDRESS
*StateBufferPointer
,
963 OUT UINT64
*RequiredStateBufferSize
969 TODO: Add function description
973 CpuId - TODO: add argument description
974 StateBufferPointer - TODO: add argument description
975 RequiredStateBufferSize - TODO: add argument description
979 TODO: add return values
987 IN EFI_PHYSICAL_ADDRESS StateBufferAddress
993 TODO: Add function description
997 CpuId - TODO: add argument description
998 StateBufferAddress - TODO: add argument description
1002 TODO: add return values
1008 // FVB Variables Class
1015 IN OUT UINTN
*NumBytes
,
1020 Routine Description:
1022 TODO: Add function description
1026 Instance - TODO: add argument description
1027 Lba - TODO: add argument description
1028 Offset - TODO: add argument description
1029 NumBytes - TODO: add argument description
1030 Buffer - TODO: add argument description
1034 TODO: add return values
1044 IN OUT UINTN
*NumBytes
,
1049 Routine Description:
1051 TODO: Add function description
1055 Instance - TODO: add argument description
1056 Lba - TODO: add argument description
1057 Offset - TODO: add argument description
1058 NumBytes - TODO: add argument description
1059 Buffer - TODO: add argument description
1063 TODO: add return values
1075 Routine Description:
1077 TODO: Add function description
1081 Instance - TODO: add argument description
1082 Lba - TODO: add argument description
1086 TODO: add return values
1092 EsalGetVolumeAttributes (
1094 OUT EFI_FVB_ATTRIBUTES
*Attributes
1098 Routine Description:
1100 TODO: Add function description
1104 Instance - TODO: add argument description
1105 Attributes - TODO: add argument description
1109 TODO: add return values
1115 EsalSetVolumeAttributes (
1117 IN EFI_FVB_ATTRIBUTES Attributes
1121 Routine Description:
1123 TODO: Add function description
1127 Instance - TODO: add argument description
1128 Attributes - TODO: add argument description
1132 TODO: add return values
1138 EsalGetPhysicalAddress (
1140 OUT EFI_PHYSICAL_ADDRESS
*Address
1144 Routine Description:
1146 TODO: Add function description
1150 Instance - TODO: add argument description
1151 Address - TODO: add argument description
1155 TODO: add return values
1164 OUT UINTN
*BlockSize
,
1165 OUT UINTN
*NumOfBlocks
1169 Routine Description:
1171 TODO: Add function description
1175 Instance - TODO: add argument description
1176 Lba - TODO: add argument description
1177 BlockSize - TODO: add argument description
1178 NumOfBlocks - TODO: add argument description
1182 TODO: add return values
1188 // SAL ELOG Functions
1191 LibSalGetStateInfo (
1193 IN UINT8
*McaBuffer
,
1198 Routine Description:
1200 TODO: Add function description
1204 McaType - TODO: add argument description
1205 McaBuffer - TODO: add argument description
1206 Size - TODO: add argument description
1210 TODO: add return values
1216 LibSalGetStateInfoSize (
1222 Routine Description:
1224 TODO: Add function description
1228 McaType - TODO: add argument description
1229 Size - TODO: add argument description
1233 TODO: add return values
1239 LibSalClearStateInfo (
1244 Routine Description:
1246 TODO: Add function description
1250 McaType - TODO: add argument description
1254 TODO: add return values
1260 LibEsalGetStateBuffer (
1262 OUT UINT8
**McaBuffer
,
1267 Routine Description:
1269 TODO: Add function description
1273 McaType - TODO: add argument description
1274 McaBuffer - TODO: add argument description
1275 Index - TODO: add argument description
1279 TODO: add return values
1285 LibEsalSaveStateBuffer (
1290 Routine Description:
1292 TODO: Add function description
1296 McaType - TODO: add argument description
1300 TODO: add return values