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