1 /** @file
2   The standard set of Extended SAL service classes.
3 
4   Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef _EXTENDED_SAL_SERVICE_CLASSES_H_
16 #define _EXTENDED_SAL_SERVICE_CLASSES_H_
17 
18 ///
19 /// Extended SAL Base I/O Services Class
20 ///
21 ///@{
22 #define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_LO 0x451531e15aea42b5
23 #define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_HI 0xa6657525d5b831bc
24 #define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID \
25   { 0x5aea42b5, 0x31e1, 0x4515, {0xbc, 0x31, 0xb8, 0xd5, 0x25, 0x75, 0x65, 0xa6 } }
26 
27 typedef enum {
28   IoReadFunctionId,
29   IoWriteFunctionId,
30   MemReadFunctionId,
31   MemWriteFunctionId
32 } EFI_EXTENDED_SAL_BASE_IO_SERVICES_FUNC_ID;
33 ///@}
34 
35 ///
36 /// Extended SAL Stall Services Class
37 ///
38 ///@{
39 #define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID_LO 0x4d8cac2753a58d06
40 #define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID_HI 0x704165808af0e9b5
41 #define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID \
42   { 0x53a58d06, 0xac27, 0x4d8c, {0xb5, 0xe9, 0xf0, 0x8a, 0x80, 0x65, 0x41, 0x70 } }
43 
44 typedef enum {
45   StallFunctionId
46 } EFI_EXTENDED_SAL_STALL_FUNC_ID;
47 ///@}
48 
49 ///
50 /// Extended SAL Real Time Clock Services Class
51 ///
52 ///@{
53 #define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID_LO 0x4d02efdb7e97a470
54 #define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID_HI 0x96a27bd29061ce8f
55 #define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID  \
56   { 0x7e97a470, 0xefdb, 0x4d02, {0x8f, 0xce, 0x61, 0x90, 0xd2, 0x7b, 0xa2, 0x96 } }
57 
58 typedef enum {
59   GetTimeFunctionId,
60   SetTimeFunctionId,
61   GetWakeupTimeFunctionId,
62   SetWakeupTimeFunctionId,
63   GetRtcFreqFunctionId,
64   InitializeThresholdFunctionId,
65   BumpThresholdCountFunctionId,
66   GetThresholdCountFunctionId
67 } EFI_EXTENDED_SAL_RTC_SERVICES_FUNC_ID;
68 ///@}
69 
70 ///
71 /// Extended SAL Variable Services Class
72 ///
73 ///@{
74 #define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID_LO 0x4370c6414ecb6c53
75 #define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID_HI 0x78836e490e3bb28c
76 #define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID  \
77   { 0x4ecb6c53, 0xc641, 0x4370, {0x8c, 0xb2, 0x3b, 0x0e, 0x49, 0x6e, 0x83, 0x78 } }
78 
79 typedef enum {
80   EsalGetVariableFunctionId,
81   EsalGetNextVariableNameFunctionId,
82   EsalSetVariableFunctionId,
83   EsalQueryVariableInfoFunctionId
84 } EFI_EXTENDED_SAL_VARIABLE_SERVICES_FUNC_ID;
85 ///@}
86 
87 ///
88 /// Extended SAL Monotonic Counter Services Class
89 ///
90 ///@{
91 #define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID_LO 0x408b75e8899afd18
92 #define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID_HI 0x54f4cd7e2e6e1aa4
93 #define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID  \
94   { 0x899afd18, 0x75e8, 0x408b, {0xa4, 0x1a, 0x6e, 0x2e, 0x7e, 0xcd, 0xf4, 0x54 } }
95 
96 typedef enum {
97   GetNextHighMonotonicCountFunctionId
98 } EFI_EXTENDED_SAL_MTC_SERVICES_FUNC_ID;
99 ///@}
100 
101 ///
102 /// Extended SAL Reset Services Class
103 ///
104 ///@{
105 #define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID_LO  0x46f58ce17d019990
106 #define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID_HI  0xa06a6798513c76a7
107 #define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID  \
108   { 0x7d019990, 0x8ce1, 0x46f5, {0xa7, 0x76, 0x3c, 0x51, 0x98, 0x67, 0x6a, 0xa0 } }
109 
110 typedef enum {
111   ResetSystemFunctionId
112 } EFI_EXTENDED_SAL_RESET_SERVICES_FUNC_ID;
113 ///@}
114 
115 ///
116 /// Extended SAL Status Code Services Class
117 ///
118 ///@{
119 #define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID_LO 0x420f55e9dbd91d
120 #define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID_HI 0x4fb437849f5e3996
121 #define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID  \
122   { 0xdbd91d, 0x55e9, 0x420f, {0x96, 0x39, 0x5e, 0x9f, 0x84, 0x37, 0xb4, 0x4f } }
123 
124 typedef enum {
125   ReportStatusCodeServiceFunctionId
126 } EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_FUNC_ID;
127 ///@}
128 
129 ///
130 /// Extended SAL Firmware Volume Block Services Class
131 ///
132 ///@{
133 #define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID_LO 0x4f1dbcbba2271df1
134 #define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID_HI 0x1a072f17bc06a998
135 #define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID \
136   { 0xa2271df1, 0xbcbb, 0x4f1d, {0x98, 0xa9, 0x06, 0xbc, 0x17, 0x2f, 0x07, 0x1a } }
137 
138 typedef enum {
139   ReadFunctionId,
140   WriteFunctionId,
141   EraseBlockFunctionId,
142   GetVolumeAttributesFunctionId,
143   SetVolumeAttributesFunctionId,
144   GetPhysicalAddressFunctionId,
145   GetBlockSizeFunctionId,
146 } EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_FUNC_ID;
147 ///@}
148 
149 ///
150 /// Extended SAL MP Services Class
151 ///
152 ///@{
153 #define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID_LO 0x4dc0cf18697d81a2
154 #define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID_HI 0x3f8a613b11060d9e
155 #define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID \
156   { 0x697d81a2, 0xcf18, 0x4dc0, {0x9e, 0x0d, 0x06, 0x11, 0x3b, 0x61, 0x8a, 0x3f } }
157 
158 typedef enum {
159   AddCpuDataFunctionId,
160   RemoveCpuDataFunctionId,
161   ModifyCpuDataFunctionId,
162   GetCpuDataByIDFunctionId,
163   GetCpuDataByIndexFunctionId,
164   SendIpiFunctionId,
165   CurrentProcInfoFunctionId,
166   NumProcessorsFunctionId,
167   SetMinStateFunctionId,
168   GetMinStateFunctionId
169 } EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID;
170 ///@}
171 
172 ///
173 /// Extended SAL PAL Services Class
174 ///
175 ///@{
176 #define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID_LO 0x438d0fc2e1cd9d21
177 #define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID_HI 0x571e966de6040397
178 #define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID \
179   { 0xe1cd9d21, 0x0fc2, 0x438d, {0x97, 0x03, 0x04, 0xe6, 0x6d, 0x96, 0x1e, 0x57 } }
180 
181 typedef enum {
182   PalProcFunctionId,
183   SetNewPalEntryFunctionId,
184   GetNewPalEntryFunctionId,
185   EsalUpdatePalFunctionId
186 } EFI_EXTENDED_SAL_PAL_SERVICES_FUNC_ID;
187 ///@}
188 
189 ///
190 /// Extended SAL Base Services Class
191 ///
192 ///@{
193 #define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO 0x41c30fe0d9e9fa06
194 #define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI 0xf894335a4283fb96
195 #define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID \
196   { 0xd9e9fa06, 0x0fe0, 0x41c3, {0x96, 0xfb, 0x83, 0x42, 0x5a, 0x33, 0x94, 0xf8 } }
197 
198 typedef enum {
199   SalSetVectorsFunctionId,
200   SalMcRendezFunctionId,
201   SalMcSetParamsFunctionId,
202   EsalGetVectorsFunctionId,
203   EsalMcGetParamsFunctionId,
204   EsalMcGetMcParamsFunctionId,
205   EsalGetMcCheckinFlagsFunctionId,
206   EsalGetPlatformBaseFreqFunctionId,
207   EsalPhysicalIdInfoFunctionId,
208   EsalRegisterPhysicalAddrFunctionId
209 } EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID;
210 ///@}
211 
212 ///
213 /// Extended SAL MCA Services Class
214 ///
215 ///@{
216 #define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID_LO 0x42b16cc72a591128
217 #define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID_HI 0xbb2d683b9358f08a
218 #define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID \
219   { 0x2a591128, 0x6cc7, 0x42b1, {0x8a, 0xf0, 0x58, 0x93, 0x3b, 0x68, 0x2d, 0xbb } }
220 
221 typedef enum {
222   McaGetStateInfoFunctionId,
223   McaRegisterCpuFunctionId
224 } EFI_EXTENDED_SAL_MCA_SERVICES_FUNC_ID;
225 ///@}
226 
227 ///
228 /// Extended SAL PCI Services Class
229 ///
230 ///@{
231 #define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_LO 0x4905ad66a46b1a31
232 #define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_HI 0x6330dc59462bf692
233 #define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID \
234   { 0xa46b1a31, 0xad66, 0x4905, {0x92, 0xf6, 0x2b, 0x46, 0x59, 0xdc, 0x30, 0x63 } }
235 
236 typedef enum {
237   SalPciConfigReadFunctionId,
238   SalPciConfigWriteFunctionId
239 } EFI_EXTENDED_SAL_PCI_SERVICES_FUNC_ID;
240 ///@}
241 
242 ///
243 /// Extended SAL Cache Services Class
244 ///
245 ///@{
246 #define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_LO 0x4ba52743edc9494
247 #define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_HI 0x88f11352ef0a1888
248 #define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID \
249   { 0xedc9494, 0x2743, 0x4ba5, { 0x88, 0x18, 0x0a, 0xef, 0x52, 0x13, 0xf1, 0x88 } }
250 
251 typedef enum {
252   SalCacheInitFunctionId,
253   SalCacheFlushFunctionId
254 } EFI_EXTENDED_SAL_CACHE_SERVICES_FUNC_ID;
255 ///@}
256 
257 ///
258 /// Extended SAL MCA Log Services Class
259 ///
260 ///@{
261 #define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_LO 0x4c0338a3cb3fd86e
262 #define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_HI 0x7aaba2a3cf905c9a
263 #define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID \
264   { 0xcb3fd86e, 0x38a3, 0x4c03, {0x9a, 0x5c, 0x90, 0xcf, 0xa3, 0xa2, 0xab, 0x7a } }
265 
266 typedef enum {
267   SalGetStateInfoFunctionId,
268   SalGetStateInfoSizeFunctionId,
269   SalClearStateInfoFunctionId,
270   EsalGetStateBufferFunctionId,
271   EsalSaveStateBufferFunctionId
272 } EFI_EXTENDED_SAL_MCA_LOG_SERVICES_FUNC_ID;
273 ///@}
274 
275 #endif
276