diff options
Diffstat (limited to 'MdePkg/Include/Protocol/ExtendedSalBootService.h')
-rw-r--r-- | MdePkg/Include/Protocol/ExtendedSalBootService.h | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/MdePkg/Include/Protocol/ExtendedSalBootService.h b/MdePkg/Include/Protocol/ExtendedSalBootService.h deleted file mode 100644 index 167201d85a95..000000000000 --- a/MdePkg/Include/Protocol/ExtendedSalBootService.h +++ /dev/null @@ -1,214 +0,0 @@ -/** @file - Definition of Extended SAL Boot Service Protocol - - The Extended SAL Boot Service Protocol provides a mechanisms for platform specific - drivers to update the SAL System Table and register Extended SAL Procedures that are - callable in physical or virtual mode using the SAL calling convention. - - Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR> - 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. - -**/ - -#ifndef _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_H_ -#define _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_H_ - -#include <IndustryStandard/Sal.h> - -#define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID \ - { 0xde0ee9a4, 0x3c7a, 0x44f2, {0xb7, 0x8b, 0xe3, 0xcc, 0xd6, 0x9c, 0x3a, 0xf7 } } - -typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL EXTENDED_SAL_BOOT_SERVICE_PROTOCOL; - -/** - Adds platform specific information to the to the header of the SAL System Table. - - @param This A pointer to the EXTENDED_SAL_BOOT_SERVICE_PROTOCOL instance. - @param SalAVersion Version of recovery SAL PEIM(s) in BCD format. Higher byte contains - the major revision and the lower byte contains the minor revision. - @param SalBVersion Version of DXE SAL Driver in BCD format. Higher byte contains - the major revision and the lower byte contains the minor revision. - @param OemId A pointer to a Null-terminated ASCII string that contains OEM unique string. - The string cannot be longer than 32 bytes in total length - @param ProductId A pointer to a Null-terminated ASCII string that uniquely identifies a family of - compatible products. The string cannot be longer than 32 bytes in total length. - - @retval EFI_SUCCESS The SAL System Table header was updated successfully. - @retval EFI_INVALID_PARAMETER OemId is NULL. - @retval EFI_INVALID_PARAMETER ProductId is NULL. - @retval EFI_INVALID_PARAMETER The length of OemId is greater than 32 characters. - @retval EFI_INVALID_PARAMETER The length of ProductId is greater than 32 characters. - -**/ -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 - ); - -/** - Adds an entry to the SAL System Table. - - This function adds the SAL System Table Entry specified by TableEntry and EntrySize - to the SAL System Table. - - @param This A pointer to the EXTENDED_SAL_BOOT_SERVICE_PROTOCOL instance. - @param TableEntry Pointer to a buffer containing a SAL System Table entry that is EntrySize bytes - in length. The first byte of the TableEntry describes the type of entry. - @param EntrySize The size, in bytes, of TableEntry. - - @retval EFI_SUCCESSThe SAL System Table was updated successfully. - @retval EFI_INVALID_PARAMETER TableEntry is NULL. - @retval EFI_INVALID_PARAMETER TableEntry specifies an invalid entry type. - @retval EFI_INVALID_PARAMETER EntrySize is not valid for this type of entry. - -**/ -typedef -EFI_STATUS -(EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY)( - IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This, - IN UINT8 *TableEntry, - IN UINTN EntrySize - ); - -/** - Internal ESAL procedures. - - This is prototype of internal Extended SAL procedures, which is registerd by - EXTENDED_SAL_REGISTER_INTERNAL_PROC service. - - @param FunctionId The Function ID associated with this Extended SAL Procedure. - @param Arg2 Second argument to the Extended SAL procedure. - @param Arg3 Third argument to the Extended SAL procedure. - @param Arg4 Fourth argument to the Extended SAL procedure. - @param Arg5 Fifth argument to the Extended SAL procedure. - @param Arg6 Sixth argument to the Extended SAL procedure. - @param Arg7 Seventh argument to the Extended SAL procedure. - @param Arg8 Eighth argument to the Extended SAL procedure. - @param VirtualMode TRUE if the Extended SAL Procedure is being invoked in virtual mode. - FALSE if the Extended SAL Procedure is being invoked in physical mode. - @param ModuleGlobal A pointer to the global context associated with this Extended SAL Procedure. - - @return The result returned from the specified Extended SAL Procedure - -**/ -typedef -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 BOOLEAN VirtualMode, - IN VOID *ModuleGlobal OPTIONAL - ); - -/** - Registers an Extended SAL Procedure. - - The Extended SAL Procedure specified by InternalSalProc and named by ClassGuidLo, - ClassGuidHi, and FunctionId is added to the set of available Extended SAL Procedures. - - @param This A pointer to the EXTENDED_SAL_BOOT_SERVICE_PROTOCOL instance. - @param ClassGuidLo The lower 64-bits of the class GUID for the Extended SAL Procedure being added. - Each class GUID contains one or more functions specified by a Function ID. - @param ClassGuidHi The upper 64-bits of the class GUID for the Extended SAL Procedure being added. - Each class GUID contains one or more functions specified by a Function ID. - @param FunctionId The Function ID for the Extended SAL Procedure that is being added. This Function - ID is a member of the Extended SAL Procedure class specified by ClassGuidLo - and ClassGuidHi. - @param InternalSalProc A pointer to the Extended SAL Procedure being added. - @param PhysicalModuleGlobal Pointer to a module global structure. This is a physical mode pointer. - This pointer is passed to the Extended SAL Procedure specified by ClassGuidLo, - ClassGuidHi, FunctionId, and InternalSalProc. If the system is in physical mode, - then this pointer is passed unmodified to InternalSalProc. If the system is in - virtual mode, then the virtual address associated with this pointer is passed to - InternalSalProc. - - @retval EFI_SUCCESS The Extended SAL Procedure was added. - @retval EFI_OUT_OF_RESOURCES There are not enough resources available to add the Extended SAL Procedure. - -**/ -typedef -EFI_STATUS -(EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC)( - IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This, - IN UINT64 ClassGuidLo, - IN UINT64 ClassGuidHi, - IN UINT64 FunctionId, - IN SAL_INTERNAL_EXTENDED_SAL_PROC InternalSalProc, - IN VOID *PhysicalModuleGlobal OPTIONAL - ); - -/** - Calls a previously registered Extended SAL Procedure. - - This function calls the Extended SAL Procedure specified by ClassGuidLo, ClassGuidHi, - and FunctionId. The set of previously registered Extended SAL Procedures is searched for a - matching ClassGuidLo, ClassGuidHi, and FunctionId. If a match is not found, then - EFI_SAL_NOT_IMPLEMENTED is returned. - - @param ClassGuidLo The lower 64-bits of the class GUID for the Extended SAL Procedure - that is being called. - @param ClassGuidHi The upper 64-bits of the class GUID for the Extended SAL Procedure - that is being called. - @param FunctionId Function ID for the Extended SAL Procedure being called. - @param Arg2 Second argument to the Extended SAL procedure. - @param Arg3 Third argument to the Extended SAL procedure. - @param Arg4 Fourth argument to the Extended SAL procedure. - @param Arg5 Fifth argument to the Extended SAL procedure. - @param Arg6 Sixth argument to the Extended SAL procedure. - @param Arg7 Seventh argument to the Extended SAL procedure. - @param Arg8 Eighth argument to the Extended SAL procedure. - - @retval EFI_SAL_NOT_IMPLEMENTED The Extended SAL Procedure specified by ClassGuidLo, - ClassGuidHi, and FunctionId has not been registered. - @retval EFI_SAL_VIRTUAL_ADDRESS_ERROR This function was called in virtual mode before virtual mappings - for the specified Extended SAL Procedure are available. - @retval Other The result returned from the specified Extended SAL Procedure - -**/ -typedef -SAL_RETURN_REGS -(EFIAPI *EXTENDED_SAL_PROC)( - IN UINT64 ClassGuidLo, - IN UINT64 ClassGuidHi, - IN UINT64 FunctionId, - IN UINT64 Arg2, - IN UINT64 Arg3, - IN UINT64 Arg4, - IN UINT64 Arg5, - IN UINT64 Arg6, - IN UINT64 Arg7, - IN UINT64 Arg8 - ); - -/// -/// The EXTENDED_SAL_BOOT_SERVICE_PROTOCOL provides a mechanisms for platform specific -/// drivers to update the SAL System Table and register Extended SAL Procedures that are -/// callable in physical or virtual mode using the SAL calling convention. -/// -struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL { - EXTENDED_SAL_ADD_SST_INFO AddSalSystemTableInfo; - EXTENDED_SAL_ADD_SST_ENTRY AddSalSystemTableEntry; - EXTENDED_SAL_REGISTER_INTERNAL_PROC RegisterExtendedSalProc; - EXTENDED_SAL_PROC ExtendedSalProc; -}; - -extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid; - -#endif |