diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h')
-rw-r--r-- | EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h | 118 |
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 |