]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Protocol / ExtendedSalBootService / ExtendedSalBootService.h
diff --git a/EdkCompatibilityPkg/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h b/EdkCompatibilityPkg/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h
new file mode 100644 (file)
index 0000000..8c7e105
--- /dev/null
@@ -0,0 +1,118 @@
+/*++\r
+\r
+Copyright (c) 2004, 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
+Module Name:\r
+\r
+  ExtendedSalBootService.h\r
+\r
+Abstract:\r
+\r
+--*/\r
+\r
+#ifndef _EXTENDED_SAL_PROTOCOL_H_\r
+#define _EXTENDED_SAL_PROTOCOL_H_\r
+\r
+#include "SalApi.h"\r
+#include "LinkedList.h"\r
+#include EFI_PROTOCOL_CONSUMER (CpuIo)\r
+\r
+\r
+#define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID   \\r
+  {0xde0ee9a4,0x3c7a,0x44f2,0xb7,0x8b,0xe3,0xcc,0xd6,0x9c,0x3a,0xf7}\r
+\r
+#define EXTENDED_SAL_SIGNATURE  EFI_SIGNATURE_32('e', 's', 'a', 'l')\r
+\r
+#define SAL_MIN_STATE_SIZE    0x400 * 1\r
+#define PAL_SCARTCH_SIZE      0x400 * 3\r
+#define ALIGN_MINSTATE_SIZE   512\r
+#define MAX_SAL_RECORD_SIZE   8*1024\r
+\r
+#define SAL_RUNTIMESERVICE\r
+\r
+typedef UINT16    EFI_SAL_PROCESSOR_ID;\r
+\r
+EFI_FORWARD_DECLARATION (EXTENDED_SAL_BOOT_SERVICE_PROTOCOL);\r
+\r
+typedef\r
+SAL_RUNTIMESERVICE\r
+SAL_RETURN_REGS\r
+(EFIAPI *SAL_EXTENDED_SAL_PROC) (\r
+  IN  EFI_GUID                                    *ClassGuid,\r
+  IN   UINT64                                      FunctionId,\r
+  IN  UINT64                                      Arg2,\r
+  IN  UINT64                                      Arg3,\r
+  IN  UINT64                                      Arg4,\r
+  IN  UINT64                                      Arg5,\r
+  IN  UINT64                                      Arg6,\r
+  IN  UINT64                                      Arg7,\r
+  IN  UINT64                                      Arg8\r
+  );\r
+\r
+typedef\r
+SAL_RUNTIMESERVICE\r
+SAL_RETURN_REGS\r
+(EFIAPI *SAL_INTERNAL_EXTENDED_SAL_PROC) (\r
+  IN  UINT64                                      FunctionId,\r
+  IN  UINT64                                      Arg2,\r
+  IN  UINT64                                      Arg3,\r
+  IN  UINT64                                      Arg4,\r
+  IN  UINT64                                      Arg5,\r
+  IN  UINT64                                      Arg6,\r
+  IN  UINT64                                      Arg7,\r
+  IN  UINT64                                      Arg8,\r
+  IN  SAL_EXTENDED_SAL_PROC                       ExtendedSalProc,\r
+  IN   BOOLEAN                                     VirtualMode,\r
+  IN  VOID                                        *ModuleGlobal\r
+  ); \r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EXTENDED_SAL_ADD_SST_INFO) (\r
+  IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL  *This,\r
+  IN  UINT16                                      SalAVersion,\r
+  IN   UINT16                                      SalBVersion,\r
+  IN  CHAR8                                        *OemId,\r
+  IN  CHAR8                                        *ProductId\r
+  );\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY) (\r
+  IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL  *This,\r
+  IN  UINT8                                        EntryType,\r
+  IN   UINT8                                        *TableEntry,\r
+  IN  UINTN                                        EntrySize\r
+  );\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC) (\r
+  IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL  *This,\r
+  IN  EFI_GUID                                    *ClassGuid,\r
+  IN   UINT64                                      FunctionId,\r
+  IN  SAL_INTERNAL_EXTENDED_SAL_PROC              InternalSalProc,\r
+  IN  VOID                                        *PhysicalModuleGlobal\r
+  );\r
+\r
+//\r
+// Extended Sal Boot Service Protocol Interface\r
+//\r
+typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL{\r
+  EXTENDED_SAL_ADD_SST_INFO                       AddSalSystemTableInfo;\r
+  EXTENDED_SAL_ADD_SST_ENTRY                      AddSalSystemTableEntry;\r
+  EXTENDED_SAL_REGISTER_INTERNAL_PROC             AddExtendedSalProc;   \r
+  SAL_EXTENDED_SAL_PROC                           ExtendedSalProc;\r
+  SAL_PROC                                        SalProc;\r
+} EXTENDED_SAL_BOOT_SERVICE_PROTOCOL;\r
+\r
+extern EFI_GUID   gEfiExtendedSalBootServiceProtocolGuid;\r
+\r
+#endif\r