summaryrefslogtreecommitdiff
path: root/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h
diff options
context:
space:
mode:
Diffstat (limited to 'EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h')
-rw-r--r--EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h b/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h
new file mode 100644
index 0000000..af35700
--- /dev/null
+++ b/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h
@@ -0,0 +1,118 @@
+/*++
+
+Copyright (c) 2004, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+
+ ExtendedSalBootService.h
+
+Abstract:
+
+--*/
+
+#ifndef _EXTENDED_SAL_PROTOCOL_H_
+#define _EXTENDED_SAL_PROTOCOL_H_
+
+#include "SalApi.h"
+#include "LinkedList.h"
+#include EFI_PROTOCOL_CONSUMER (CpuIo)
+
+
+#define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID \
+ {0xde0ee9a4,0x3c7a,0x44f2,0xb7,0x8b,0xe3,0xcc,0xd6,0x9c,0x3a,0xf7}
+
+#define EXTENDED_SAL_SIGNATURE EFI_SIGNATURE_32('e', 's', 'a', 'l')
+
+#define SAL_MIN_STATE_SIZE 0x400 * 1
+#define PAL_SCARTCH_SIZE 0x400 * 3
+#define ALIGN_MINSTATE_SIZE 512
+#define MAX_SAL_RECORD_SIZE 8*1024
+
+#define SAL_RUNTIMESERVICE
+
+typedef UINT16 EFI_SAL_PROCESSOR_ID;
+
+EFI_FORWARD_DECLARATION (EXTENDED_SAL_BOOT_SERVICE_PROTOCOL);
+
+typedef
+SAL_RUNTIMESERVICE
+SAL_RETURN_REGS
+(EFIAPI *SAL_EXTENDED_SAL_PROC) (
+ IN EFI_GUID *ClassGuid,
+ IN UINT64 FunctionId,
+ IN UINT64 Arg2,
+ IN UINT64 Arg3,
+ IN UINT64 Arg4,
+ IN UINT64 Arg5,
+ IN UINT64 Arg6,
+ IN UINT64 Arg7,
+ IN UINT64 Arg8
+ );
+
+typedef
+SAL_RUNTIMESERVICE
+SAL_RETURN_REGS
+(EFIAPI *SAL_INTERNAL_EXTENDED_SAL_PROC) (
+ IN UINT64 FunctionId,
+ IN UINT64 Arg2,
+ IN UINT64 Arg3,
+ IN UINT64 Arg4,
+ IN UINT64 Arg5,
+ IN UINT64 Arg6,
+ IN UINT64 Arg7,
+ IN UINT64 Arg8,
+ IN SAL_EXTENDED_SAL_PROC ExtendedSalProc,
+ IN BOOLEAN VirtualMode,
+ IN VOID *ModuleGlobal
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EXTENDED_SAL_ADD_SST_INFO) (
+ IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
+ IN UINT16 SalAVersion,
+ IN UINT16 SalBVersion,
+ IN CHAR8 *OemId,
+ IN CHAR8 *ProductId
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY) (
+ IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
+ IN UINT8 EntryType,
+ IN UINT8 *TableEntry,
+ IN UINTN EntrySize
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC) (
+ IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
+ IN EFI_GUID *ClassGuid,
+ IN UINT64 FunctionId,
+ IN SAL_INTERNAL_EXTENDED_SAL_PROC InternalSalProc,
+ IN VOID *PhysicalModuleGlobal
+ );
+
+//
+// Extended Sal Boot Service Protocol Interface
+//
+typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL{
+ EXTENDED_SAL_ADD_SST_INFO AddSalSystemTableInfo;
+ EXTENDED_SAL_ADD_SST_ENTRY AddSalSystemTableEntry;
+ EXTENDED_SAL_REGISTER_INTERNAL_PROC AddExtendedSalProc;
+ SAL_EXTENDED_SAL_PROC ExtendedSalProc;
+ SAL_PROC SalProc;
+} EXTENDED_SAL_BOOT_SERVICE_PROTOCOL;
+
+extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid;
+
+#endif