/*++ | |
Copyright (c) 2006, 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_ | |
#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; | |
typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL 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 | |
// | |
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; | |
}; | |
extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid; | |
#endif |