]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Include/Library/ExtendedSalLib.h
changed the Esal call function ids all over the tree
[mirror_edk2.git] / EdkModulePkg / Include / Library / ExtendedSalLib.h
CommitLineData
644a3514 1/*++\r
2\r
3Copyright (c) 2007, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 ExtendedSalLib.h\r
15\r
16Abstract:\r
17\r
18--*/\r
19\r
20#ifndef _EXTENDED_SAL_LIB_H__\r
21#define _EXTENDED_SAL_LIB_H__\r
22\r
23/**\r
24 Register ESAL Class and it's asociated global.\r
25 \r
26 This function Registers one or more Extended SAL services in a given\r
27 class along with the associated global context.\r
28 This function is only available prior to ExitBootServices().\r
29\r
30 @param ClassGuid GUID of function class\r
31 @param ModuleGlobal Module global for Function.\r
32 \r
33 @retval EFI_SUCCESS The Extended SAL services were registered.\r
34 @retval EFI_UNSUPPORTED This function was called after ExitBootServices().\r
35 @retval EFI_OUT_OF_RESOURCES There are not enough resources available to register one or more of the specified services.\r
36 @retval Other ClassGuid could not be installed onto a new handle. \r
37\r
38**/\r
39EFI_STATUS\r
40EFIAPI\r
41RegisterEsalClass (\r
42 IN CONST EFI_GUID *ClassGuid,\r
43 IN VOID *ModuleGlobal, OPTIONAL\r
44 ...\r
45 )\r
46;\r
47\r
48/**\r
49 Calls an Extended SAL Class service that was previously registered with RegisterEsalClass().\r
50 \r
51 This function calls an Extended SAL Class service that was previously registered with RegisterEsalClass().\r
52\r
53 @param ClassGuid GUID of function\r
54 @param FunctionId Function in ClassGuid to call\r
55 @param Arg2 Argument 2 ClassGuid/FunctionId defined\r
56 @param Arg3 Argument 3 ClassGuid/FunctionId defined\r
57 @param Arg4 Argument 4 ClassGuid/FunctionId defined\r
58 @param Arg5 Argument 5 ClassGuid/FunctionId defined\r
59 @param Arg6 Argument 6 ClassGuid/FunctionId defined\r
60 @param Arg7 Argument 7 ClassGuid/FunctionId defined\r
61 @param Arg8 Argument 8 ClassGuid/FunctionId defined\r
62 \r
63 @retval EFI_SAL_ERROR The address of ExtendedSalProc() can not be determined\r
64 for the current CPU execution mode.\r
65 @retval Other See the return status from ExtendedSalProc() in the\r
66 EXTENDED_SAL_BOOT_SERVICE_PROTOCOL. \r
67\r
68**/\r
69SAL_RETURN_REGS\r
70EFIAPI\r
71EsalCall (\r
72 IN EFI_GUID *ClassGuid,\r
73 IN UINT64 FunctionId,\r
74 IN UINT64 Arg2,\r
75 IN UINT64 Arg3,\r
76 IN UINT64 Arg4,\r
77 IN UINT64 Arg5,\r
78 IN UINT64 Arg6,\r
79 IN UINT64 Arg7,\r
80 IN UINT64 Arg8\r
81 )\r
82;\r
83\r
84/**\r
85 Wrapper for the EsalStallFunctionId service in the Extended SAL Stall Services Class.\r
86 \r
87 This function is a wrapper for the EsalStallFunctionId service in the Extended SAL\r
88 Stall Services Class. See EsalStallFunctionId in the Extended SAL Specification.\r
89\r
90 @param Microseconds The number of microseconds to delay.\r
91\r
92**/\r
93SAL_RETURN_REGS\r
94EFIAPI\r
95EsalStall (\r
96 IN UINTN Microseconds\r
97 )\r
98;\r
99\r
100/**\r
101 Wrapper for the EsalSetNewPalEntryFunctionId service in the Extended SAL PAL Services Services Class.\r
102 \r
103 This function is a wrapper for the EsalSetNewPalEntryFunctionId service in the Extended SAL\r
104 PAL Services Services Class. See EsalSetNewPalEntryFunctionId in the Extended SAL Specification.\r
105\r
106 @param PhyicalAddress If TRUE, then PalEntryPoint is a physical address.\r
107 If FALSE, then PalEntryPoint is a virtual address.\r
108 @param PalEntryPoint The PAL Entry Point being set.\r
109\r
110**/\r
111SAL_RETURN_REGS\r
112EFIAPI\r
113EsalSetNewPalEntry (\r
114 IN BOOLEAN PhysicalAddress,\r
115 IN UINT64 PalEntryPoint\r
116 )\r
117;\r
118\r
119/**\r
120 Wrapper for the EsalGetStateBufferFunctionId service in the Extended SAL PAL Services Services Class.\r
121 \r
122 This function is a wrapper for the EsalGetStateBufferFunctionId service in the Extended SAL\r
123 PAL Services Services Class. See EsalGetStateBufferFunctionId in the Extended SAL Specification.\r
124\r
125 @param PhyicalAddress If TRUE, then PalEntryPoint is a physical address.\r
126 If FALSE, then PalEntryPoint is a virtual address.\r
127\r
128**/\r
129SAL_RETURN_REGS\r
130EFIAPI\r
131EsalGetNewPalEntry (\r
132 IN BOOLEAN PhysicalAddress\r
133 )\r
134;\r
135\r
136/**\r
137 Wrapper for the EsalGetStateBufferFunctionId service in the Extended SAL MCA Log Services Class.\r
138 \r
139 This function is a wrapper for the EsalGetStateBufferFunctionId service in the Extended SAL\r
140 MCA Log Services Class. See EsalGetStateBufferFunctionId in the Extended SAL Specification.\r
141\r
142 @param McaType See type parameter in the SAL Procedure SAL_GET_STATE_INFO.\r
143 @param McaBuffer A pointer to the base address of the returned buffer. Copied from SAL_RETURN_REGS.r9.\r
144 @param BufferSize A pointer to the size, in bytes, of the returned buffer. Copied from SAL_RETURN_REGS.r10.\r
145\r
146**/\r
147SAL_RETURN_REGS\r
148EFIAPI\r
b798426d 149EsalGetStateBuffer (\r
644a3514 150 IN UINT64 McaType,\r
151 OUT UINT8 **McaBuffer,\r
152 OUT UINTN *BufferSize\r
153 )\r
154;\r
155\r
156/**\r
157 Wrapper for the EsalSaveStateBufferFunctionId service in the Extended SAL MCA Log Services Class.\r
158 \r
159 This function is a wrapper for the EsalSaveStateBufferFunctionId service in the Extended SAL\r
160 MCA Log Services Class. See EsalSaveStateBufferFunctionId in the Extended SAL Specification.\r
161\r
162 @param McaType See type parameter in the SAL Procedure SAL_GET_STATE_INFO.\r
163\r
164**/\r
165SAL_RETURN_REGS\r
166EFIAPI\r
b798426d 167EsalSaveStateBuffer (\r
644a3514 168 IN UINT64 McaType\r
169 )\r
170;\r
171\r
172/**\r
173 Wrapper for the EsalGetVectorsFunctionId service in the Extended SAL MCA Log Services Class.\r
174 \r
175 This function is a wrapper for the EsalGetVectorsFunctionId service in the Extended SAL\r
176 MCA Log Services Class. See EsalGetVectorsFunctionId in the Extended SAL Specification.\r
177\r
178 @param VectorType The vector type to retrieve.\r
179