Initial import.
[people/mcb30/edk2.git] / edk2 / EdkModulePkg / Include / Guid / ExtendedSalGuid.h
1 /*++\r
2 \r
3 Copyright (c) 2006, Intel Corporation                                                         \r
4 All rights reserved. This program and the accompanying materials                          \r
5 are licensed and made available under the terms and conditions of the BSD License         \r
6 which accompanies this distribution.  The full text of the license may be found at        \r
7 http://opensource.org/licenses/bsd-license.php                                            \r
8                                                                                           \r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
11 \r
12 Module Name:\r
13 \r
14   ExtendedSalGuid.h\r
15 \r
16 Abstract:\r
17 \r
18                   \r
19 --*/\r
20 \r
21 #ifndef _EXTENDED_SAL_GUID_H_\r
22 #define _EXTENDED_SAL_GUID_H_\r
23 \r
24 //\r
25 // Extended SAL Services protocol GUIDs\r
26 //\r
27 \r
28 #define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID \\r
29   { 0x5aea42b5, 0x31e1, 0x4515, {0xbc, 0x31, 0xb8, 0xd5, 0x25, 0x75, 0x65, 0xa6 } }\r
30 \r
31 #define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID \\r
32   { 0x53a58d06, 0xac27, 0x4d8c, {0xb5, 0xe9, 0xf0, 0x8a, 0x80, 0x65, 0x41, 0x70 } }\r
33 \r
34 #define EFI_EXTENDED_SAL_LOCK_SERVICES_PROTOCOL_GUID  \\r
35   { 0x76b75c23, 0xfe4f, 0x4e17, {0xa2, 0xad, 0x1a, 0x65, 0x3d, 0xbb, 0x49, 0x4a } }\r
36 \r
37 #define EFI_EXTENDED_SAL_VIRTUAL_SERVICES_PROTOCOL_GUID  \\r
38   { 0xc1a74056, 0x260e, 0x4871, {0xa0, 0x31, 0xe6, 0x45, 0xa6, 0x5b, 0x6e, 0x11 } }\r
39 \r
40 #define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID  \\r
41   { 0x7e97a470, 0xefdb, 0x4d02, {0x8f, 0xce, 0x61, 0x90, 0xd2, 0x7b, 0xa2, 0x96 } }\r
42 \r
43 #define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID  \\r
44   { 0x4ecb6c53, 0xc641, 0x4370, {0x8c, 0xb2, 0x3b, 0x0e, 0x49, 0x6e, 0x83, 0x78 } }\r
45 \r
46 #define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID  \\r
47   { 0x899afd18, 0x75e8, 0x408b, {0xa4, 0x1a, 0x6e, 0x2e, 0x7e, 0xcd, 0xf4, 0x54 } }\r
48 \r
49 #define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID  \\r
50   { 0x7d019990, 0x8ce1, 0x46f5, {0xa7, 0x76, 0x3c, 0x51, 0x98, 0x67, 0x6a, 0xa0 } }\r
51 \r
52 #define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID  \\r
53   { 0xdbd91d, 0x55e9, 0x420f, {0x96, 0x39, 0x5e, 0x9f, 0x84, 0x37, 0xb4, 0x4f } }\r
54 \r
55 #define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID \\r
56   { 0xa2271df1, 0xbcbb, 0x4f1d, {0x98, 0xa9, 0x06, 0xbc, 0x17, 0x2f, 0x07, 0x1a } }\r
57 \r
58 #define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID \\r
59   { 0x697d81a2, 0xcf18, 0x4dc0, {0x9e, 0x0d, 0x06, 0x11, 0x3b, 0x61, 0x8a, 0x3f } }\r
60 \r
61 #define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID \\r
62   { 0xe1cd9d21, 0x0fc2, 0x438d, {0x97, 0x03, 0x04, 0xe6, 0x6d, 0x96, 0x1e, 0x57 } }\r
63 \r
64 #define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID \\r
65   { 0xd9e9fa06, 0x0fe0, 0x41c3, {0x96, 0xfb, 0x83, 0x42, 0x5a, 0x33, 0x94, 0xf8 } }\r
66 \r
67 #define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID \\r
68   { 0x2a591128, 0x6cc7, 0x42b1, {0x8a, 0xf0, 0x58, 0x93, 0x3b, 0x68, 0x2d, 0xbb } }\r
69 \r
70 #define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID \\r
71   { 0xa46b1a31, 0xad66, 0x4905, {0x92, 0xf6, 0x2b, 0x46, 0x59, 0xdc, 0x30, 0x63 } }\r
72 \r
73 #define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID \\r
74   { 0xedc9494, 0x2743, 0x4ba5, { 0x88, 0x18, 0x0a, 0xef, 0x52, 0x13, 0xf1, 0x88 } }\r
75 \r
76 #define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID \\r
77   { 0xcb3fd86e, 0x38a3, 0x4c03, {0x9a, 0x5c, 0x90, 0xcf, 0xa3, 0xa2, 0xab, 0x7a } }\r
78 \r
79 #define EFI_EXTENDED_SAL_ELOG_SERVICES_PROTOCOL_GUID \\r
80   { 0xd5e4ee5f, 0x3e0a, 0x453c, {0xa7, 0x25, 0xb6, 0x92, 0xbb, 0x6, 0x36, 0x5a } }\r
81 \r
82 #define EFI_EXTENDED_SAL_SENSOR_SERVICES_PROTOCOL_GUID \\r
83   { 0x4a153b6e, 0x85a1, 0x4982, {0x98, 0xf4, 0x6a, 0x8c, 0xfc, 0xa4, 0xab, 0xa1 } }\r
84 \r
85 #define EFI_EXTENDED_SAL_SM_COM_LAYER_SERVICES_PROTOCOL_GUID \\r
86   { 0x4356799, 0x81b7, 0x4e08, { 0xa3, 0x8d, 0xd9, 0x78, 0xfa, 0x47, 0xba, 0x42 } }\r
87 \r
88 #define EFI_EXTENDED_SAL_SST_GUID \\r
89   { 0x38802700, 0x868a, 0x4b4e, {0x81, 0xd4, 0x4f, 0x1b, 0xdc, 0xcf, 0xb4, 0x6f } }\r
90 \r
91 //\r
92 // Extended Sal Proc Function IDs.\r
93 //\r
94 \r
95 //\r
96 // BugBug: These enums are name colisions waiting to happen. They should all be\r
97 //         prefixed with Esal! It might be better to just make them #define, so\r
98 //         they would be all caps.\r
99 //\r
100 \r
101 typedef enum {\r
102   IoRead,\r
103   IoWrite,\r
104   MemRead,\r
105   MemWrite\r
106 } EFI_EXTENDED_SAL_BASE_IO_SERVICES_FUNC_ID;\r
107 \r
108 typedef enum {\r
109   Stall\r
110 } EFI_EXTENDED_SAL_STALL_FUNC_ID;\r
111 \r
112 \r
113 typedef enum {\r
114   InitializeLockService,\r
115   AcquireLockService,\r
116   ReleaseLockService,\r
117   MaxLockServiceFunctionId\r
118 } EFI_EXTENDED_SAL_LOCK_SERVICES_FUNC_ID;\r
119 \r
120 //\r
121 // BugBug : Covert the first 3 functions into a lib functions\r
122 // and move SalRegisterPhysicalAddress to SAL BASE Class\r
123 //\r
124 typedef enum {\r
125   SetVirtualAddress,\r
126   IsVirtual,\r
127   IsEfiRuntime,\r
128   SalRegisterPhysicalAddress\r
129 } EFI_EXTENDED_SAL_VIRTUAL_SERVICES_FUNC_ID;\r
130 \r
131 typedef enum {\r
132   GetTime,\r
133   SetTime,\r
134   GetWakeupTime,\r
135   SetWakeupTime,\r
136   GetRtcFreq,\r
137   InitializeThreshold,\r
138   BumpThresholdCount,\r
139   GetThresholdCount\r
140 } EFI_EXTENDED_SAL_RTC_SERVICES_FUNC_ID;\r
141 \r
142 typedef enum {\r
143   EsalGetVariable,\r
144   EsalGetNextVariableName,\r
145   EsalSetVariable\r
146 } EFI_EXTENDED_SAL_VARIABLE_SERVICES_FUNC_ID;\r
147 \r
148 typedef enum {\r
149   GetNextHighMonotonicCount\r
150 } EFI_EXTENDED_SAL_MTC_SERVICES_FUNC_ID;\r
151 \r
152 typedef enum {\r
153   ResetSystem\r
154 } EFI_EXTENDED_SAL_RESET_SERVICES_FUNC_ID;\r
155 \r
156 typedef enum {\r
157   StatusCode\r
158 } EFI_EXTENDED_SAL_STATUS_CODE_FUNC_ID;\r
159 \r
160 typedef enum {\r
161   ReportStatusCodeService\r
162 } EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_FUNC_ID;\r
163 \r
164 typedef enum {\r
165   Read,\r
166   Write,\r
167   EraseBlock,\r
168   GetVolumeAttributes,\r
169   SetVolumeAttributes,\r
170   GetPhysicalAddress,\r
171   GetBlockSize,\r
172   EraseCustomBlockRange,\r
173 } EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_FUNC_ID;\r
174 \r
175 typedef enum {\r
176   AddCpuData,\r
177   RemoveCpuData,\r
178   ModifyCpuData,\r
179   GetCpuDataByID,\r
180   GetCpuDataByIndex,\r
181   SendIpi,\r
182   CurrentProcInfo,\r
183   NumProcessors,\r
184   SetMinState,\r
185   GetMinState\r
186 } EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID;\r
187 \r
188 typedef enum {\r
189   PalProc,\r
190   SetNewPalEntry,\r
191   GetNewPalEntry\r
192 } EFI_EXTENDED_SAL_PAL_SERVICES_FUNC_ID;\r
193 \r
194 typedef enum {\r
195   SalSetVectors,\r
196   SalMcRendez,\r
197   SalMcSetParams,\r
198   EsalGetVectors,\r
199   EsalMcGetParams,\r
200   EsalMcGetMcParams,\r
201   EsalGetMcCheckinFlags,\r
202   EsalGetPlatformBaseFreq\r
203 } EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID;\r
204 \r
205 typedef enum {\r
206   McaGetStateInfo,\r
207   McaRegisterCpu\r
208 } EFI_EXTENDED_SAL_MCA_SERVICES_FUNC_ID;\r
209 \r
210 typedef enum {\r
211   SalPciConfigRead,\r
212   SalPciConfigWrite\r
213 } EFI_EXTENDED_SAL_PCI_SERVICES_FUNC_ID;\r
214 \r
215 typedef enum {\r
216   SalCacheInit,\r
217   SalCacheFlush\r
218 } EFI_EXTENDED_SAL_CACHE_SERVICES_FUNC_ID;\r
219 \r
220 typedef enum {\r
221   SalGetStateInfo,\r
222   SalGetStateInfoSize,\r
223   SalClearStateInfo,\r
224   EsalGetStateBuffer,\r
225   EsalSaveStateBuffer\r
226 } EFI_EXTENDED_SAL_MCA_LOG_SERVICES_FUNC_ID;\r
227 \r
228 typedef enum {\r
229   SalSetEventLogData,\r
230   SalGetEventLogData,\r
231   SalEraseEventLogData,\r
232   SalActivateEventLogData\r
233 } EFI_EXTENDED_SAL_ELOG_SERVICES_FUNC_ID;\r
234 \r
235 typedef enum {\r
236   EsalGetComControllerInfo,\r
237   EsalSendComData,\r
238   EsalReceiveComData \r
239 } EFI_EXTENDED_SAL_SM_COM_LAYER_SERVICES_FUNC_ID;\r
240 \r
241 typedef enum {\r
242   SalUpdatePal\r
243 } EFI_EXTENDED_SAL_UPDATE_PAL_SERVICES_FUNC_ID;\r
244 \r
245 typedef enum {\r
246   EsalReadSensorInfo,   \r
247   EsalReadSensorStatus,\r
248   EsalRearmSensor,\r
249   EsalReadSensorData  \r
250 } EFI_EXTENDED_SAL_SENSOR_SERVICES_FUNC_ID;\r
251 \r
252 typedef struct {\r
253   UINT64      ProtoData;       \r
254 } ESAL_GUID_DUMMY_PROTOCOL;\r
255 \r
256 extern EFI_GUID gEfiExtendedSalBaseIoServicesProtocolGuid;\r
257 extern EFI_GUID gEfiExtendedSalStallServicesProtocolGuid;\r
258 extern EFI_GUID gEfiExtendedSalLockServicesProtocolGuid;\r
259 extern EFI_GUID gEfiExtendedSalVirtualServicesProtocolGuid;\r
260 extern EFI_GUID gEfiExtendedSalRtcServicesProtocolGuid;\r
261 extern EFI_GUID gEfiExtendedSalVariableServicesProtocolGuid;\r
262 extern EFI_GUID gEfiExtendedSalMtcServicesProtocolGuid;\r
263 extern EFI_GUID gEfiExtendedSalResetServicesProtocolGuid;\r
264 extern EFI_GUID gEfiExtendedSalStatusCodeServicesProtocolGuid;\r
265 extern EFI_GUID gEfiExtendedSalFvBlockServicesProtocolGuid;\r
266 extern EFI_GUID gEfiExtendedSalMpServicesProtocolGuid;\r
267 extern EFI_GUID gEfiExtendedSalPalServicesProtocolGuid;\r
268 extern EFI_GUID gEfiExtendedSalBaseServicesProtocolGuid;\r
269 extern EFI_GUID gEfiExtendedSalMcaServicesProtocolGuid;\r
270 extern EFI_GUID gEfiExtendedSalPciServicesProtocolGuid;\r
271 extern EFI_GUID gEfiExtendedSalCacheServicesProtocolGuid;\r
272 extern EFI_GUID gEfiExtendedSalMcaLogServicesProtocolGuid;\r
273 extern EFI_GUID gEfiExtendedSalElogServicesProtocolGuid;\r
274 extern EFI_GUID gEfiExtendedSalSensorServicesProtocolGuid;\r
275 extern EFI_GUID gEfiExtendedSalSmComLayerServicesProtocolGuid;\r
276 extern EFI_GUID gEfiExtendedSalSstGuid;\r
277 \r
278 \r
279 #endif\r