]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/ExtendedSalServiceClasses.h
Publish definition of MCA/INIT/PMI Protocol & ESAL, as introduced in PI 1.2.
[mirror_edk2.git] / MdePkg / Include / Protocol / ExtendedSalServiceClasses.h
diff --git a/MdePkg/Include/Protocol/ExtendedSalServiceClasses.h b/MdePkg/Include/Protocol/ExtendedSalServiceClasses.h
new file mode 100644 (file)
index 0000000..08a51ef
--- /dev/null
@@ -0,0 +1,275 @@
+/** @file\r
+  The standard set of Extended SAL service classes.\r
+\r
+  Copyright (c) 2009, Intel Corporation                                                         \r
+  All rights reserved. This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The full text of the license may be found at        \r
+  http://opensource.org/licenses/bsd-license.php                                            \r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+**/\r
+\r
+#ifndef _EXTENDED_SAL_SERVICE_CLASSES_H_\r
+#define _EXTENDED_SAL_SERVICE_CLASSES_H_\r
+\r
+///\r
+/// Extended SAL Base I/O Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_LO 0x451531e15aea42b5\r
+#define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_HI 0xa6657525d5b831bc\r
+#define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID \\r
+  { 0x5aea42b5, 0x31e1, 0x4515, {0xbc, 0x31, 0xb8, 0xd5, 0x25, 0x75, 0x65, 0xa6 } }\r
+\r
+typedef enum {\r
+  IoReadFunctionId,\r
+  IoWriteFunctionId,\r
+  MemReadFunctionId,\r
+  MemWriteFunctionId\r
+} EFI_EXTENDED_SAL_BASE_IO_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Stall Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID_LO 0x4d8cac2753a58d06\r
+#define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID_HI 0x704165808af0e9b5\r
+#define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID \\r
+  { 0x53a58d06, 0xac27, 0x4d8c, {0xb5, 0xe9, 0xf0, 0x8a, 0x80, 0x65, 0x41, 0x70 } }\r
+\r
+typedef enum {\r
+  StallFunctionId\r
+} EFI_EXTENDED_SAL_STALL_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Real Time Clock Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID_LO 0x4d02efdb7e97a470\r
+#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID_HI 0x96a27bd29061ce8f \r
+#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID  \\r
+  { 0x7e97a470, 0xefdb, 0x4d02, {0x8f, 0xce, 0x61, 0x90, 0xd2, 0x7b, 0xa2, 0x96 } }\r
+\r
+typedef enum {\r
+  GetTimeFunctionId,\r
+  SetTimeFunctionId,\r
+  GetWakeupTimeFunctionId,\r
+  SetWakeupTimeFunctionId,\r
+  GetRtcFreqFunctionId,\r
+  InitializeThresholdFunctionId,\r
+  BumpThresholdCountFunctionId,\r
+  GetThresholdCountFunctionId\r
+} EFI_EXTENDED_SAL_RTC_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Variable Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID_LO 0x4370c6414ecb6c53 \r
+#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID_HI 0x78836e490e3bb28c\r
+#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID  \\r
+  { 0x4ecb6c53, 0xc641, 0x4370, {0x8c, 0xb2, 0x3b, 0x0e, 0x49, 0x6e, 0x83, 0x78 } }\r
+\r
+typedef enum {\r
+  EsalGetVariableFunctionId,\r
+  EsalGetNextVariableNameFunctionId,\r
+  EsalSetVariableFunctionId,\r
+  EsalQueryVariableInfoFunctionId\r
+} EFI_EXTENDED_SAL_VARIABLE_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Monotonic Counter Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID_LO 0x408b75e8899afd18\r
+#define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID_HI 0x54f4cd7e2e6e1aa4\r
+#define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID  \\r
+  { 0x899afd18, 0x75e8, 0x408b, {0xa4, 0x1a, 0x6e, 0x2e, 0x7e, 0xcd, 0xf4, 0x54 } }\r
+\r
+typedef enum {\r
+  GetNextHighMonotonicCountFunctionId\r
+} EFI_EXTENDED_SAL_MTC_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Reset Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID_LO  0x46f58ce17d019990\r
+#define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID_HI  0xa06a6798513c76a7\r
+#define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID  \\r
+  { 0x7d019990, 0x8ce1, 0x46f5, {0xa7, 0x76, 0x3c, 0x51, 0x98, 0x67, 0x6a, 0xa0 } }\r
+\r
+typedef enum {\r
+  ResetSystemFunctionId\r
+} EFI_EXTENDED_SAL_RESET_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Status Code Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID_LO 0x420f55e9dbd91d\r
+#define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID_HI 0x4fb437849f5e3996\r
+#define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID  \\r
+  { 0xdbd91d, 0x55e9, 0x420f, {0x96, 0x39, 0x5e, 0x9f, 0x84, 0x37, 0xb4, 0x4f } }\r
+\r
+typedef enum {\r
+  ReportStatusCodeServiceFunctionId\r
+} EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Firmware Volume Block Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID_LO 0x4f1dbcbba2271df1\r
+#define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID_HI 0x1a072f17bc06a998\r
+#define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID \\r
+  { 0xa2271df1, 0xbcbb, 0x4f1d, {0x98, 0xa9, 0x06, 0xbc, 0x17, 0x2f, 0x07, 0x1a } }\r
+\r
+typedef enum {\r
+  ReadFunctionId,\r
+  WriteFunctionId,\r
+  EraseBlockFunctionId,\r
+  GetVolumeAttributesFunctionId,\r
+  SetVolumeAttributesFunctionId,\r
+  GetPhysicalAddressFunctionId,\r
+  GetBlockSizeFunctionId,\r
+} EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL MP Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID_LO 0x4dc0cf18697d81a2\r
+#define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID_HI 0x3f8a613b11060d9e\r
+#define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID \\r
+  { 0x697d81a2, 0xcf18, 0x4dc0, {0x9e, 0x0d, 0x06, 0x11, 0x3b, 0x61, 0x8a, 0x3f } }\r
+\r
+typedef enum {\r
+  AddCpuDataFunctionId,\r
+  RemoveCpuDataFunctionId,\r
+  ModifyCpuDataFunctionId,\r
+  GetCpuDataByIDFunctionId,\r
+  GetCpuDataByIndexFunctionId,\r
+  SendIpiFunctionId,\r
+  CurrentProcInfoFunctionId,\r
+  NumProcessorsFunctionId,\r
+  SetMinStateFunctionId,\r
+  GetMinStateFunctionId               \r
+} EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL PAL Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID_LO 0x438d0fc2e1cd9d21\r
+#define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID_HI 0x571e966de6040397\r
+#define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID \\r
+  { 0xe1cd9d21, 0x0fc2, 0x438d, {0x97, 0x03, 0x04, 0xe6, 0x6d, 0x96, 0x1e, 0x57 } }\r
+\r
+typedef enum {\r
+  PalProcFunctionId,\r
+  SetNewPalEntryFunctionId,\r
+  GetNewPalEntryFunctionId,\r
+  EsalUpdatePalFunctionId\r
+} EFI_EXTENDED_SAL_PAL_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Base Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_LO 0x41c30fe0d9e9fa06\r
+#define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID_HI 0xf894335a4283fb96\r
+#define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID \\r
+  { 0xd9e9fa06, 0x0fe0, 0x41c3, {0x96, 0xfb, 0x83, 0x42, 0x5a, 0x33, 0x94, 0xf8 } }\r
+\r
+typedef enum {\r
+  SalSetVectorsFunctionId,\r
+  SalMcRendezFunctionId,\r
+  SalMcSetParamsFunctionId,\r
+  EsalGetVectorsFunctionId,\r
+  EsalMcGetParamsFunctionId,\r
+  EsalMcGetMcParamsFunctionId,\r
+  EsalGetMcCheckinFlagsFunctionId,\r
+  EsalGetPlatformBaseFreqFunctionId,\r
+  EsalPhysicalIdInfoFunctionId, \r
+  EsalRegisterPhysicalAddrFunctionId\r
+} EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL MCA Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID_LO 0x42b16cc72a591128\r
+#define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID_HI 0xbb2d683b9358f08a\r
+#define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID \\r
+  { 0x2a591128, 0x6cc7, 0x42b1, {0x8a, 0xf0, 0x58, 0x93, 0x3b, 0x68, 0x2d, 0xbb } }\r
+\r
+typedef enum {\r
+  McaGetStateInfoFunctionId,\r
+  McaRegisterCpuFunctionId\r
+} EFI_EXTENDED_SAL_MCA_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL PCI Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_LO 0x4905ad66a46b1a31\r
+#define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID_HI 0x6330dc59462bf692\r
+#define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID \\r
+  { 0xa46b1a31, 0xad66, 0x4905, {0x92, 0xf6, 0x2b, 0x46, 0x59, 0xdc, 0x30, 0x63 } }\r
+\r
+typedef enum {\r
+  SalPciConfigReadFunctionId,\r
+  SalPciConfigWriteFunctionId\r
+} EFI_EXTENDED_SAL_PCI_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL Cache Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_LO 0x4ba52743edc9494\r
+#define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID_HI 0x88f11352ef0a1888\r
+#define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID \\r
+  { 0xedc9494, 0x2743, 0x4ba5, { 0x88, 0x18, 0x0a, 0xef, 0x52, 0x13, 0xf1, 0x88 } }\r
+\r
+typedef enum {\r
+  SalCacheInitFunctionId,\r
+  SalCacheFlushFunctionId\r
+} EFI_EXTENDED_SAL_CACHE_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+///\r
+/// Extended SAL MCA Log Services Class\r
+///\r
+///@{\r
+#define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_LO 0x4c0338a3cb3fd86e\r
+#define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID_HI 0x7aaba2a3cf905c9a\r
+#define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID \\r
+  { 0xcb3fd86e, 0x38a3, 0x4c03, {0x9a, 0x5c, 0x90, 0xcf, 0xa3, 0xa2, 0xab, 0x7a } }\r
+\r
+typedef enum {\r
+  SalGetStateInfoFunctionId,\r
+  SalGetStateInfoSizeFunctionId,\r
+  SalClearStateInfoFunctionId,\r
+  EsalGetStateBufferFunctionId,\r
+  EsalSaveStateBufferFunctionId\r
+} EFI_EXTENDED_SAL_MCA_LOG_SERVICES_FUNC_ID;\r
+///@}\r
+\r
+#endif\r