-/** @file\r
- This file declares the Boot Script Executer PPI.\r
-\r
- This PPI is published by a PEIM upon dispatch and provides an execution engine for the\r
- Framework boot script. This PEIM should be platform neutral and have no specific knowledge of\r
- platform instructions or other information. The ability to interpret the boot script depends on the\r
- abundance of other PPIs that are available. For example, if the script requests an SMBus command\r
- execution, the PEIM looks for a relevant PPI that is available to execute it, rather than executing it\r
- by issuing the native IA-32 instruction.\r
-\r
-Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
- @par Revision Reference:\r
- This PPI is defined in Framework of EFI BootScript spec.\r
- Version 0.91.\r
-\r
-**/\r
-\r
-#ifndef _PEI_BOOT_SCRIPT_EXECUTER_PPI_H_\r
-#define _PEI_BOOT_SCRIPT_EXECUTER_PPI_H_\r
-\r
-#define EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID \\r
- { \\r
- 0xabd42895, 0x78cf, 0x4872, {0x84, 0x44, 0x1b, 0x5c, 0x18, 0x0b, 0xfb, 0xff } \\r
- }\r
-\r
-typedef struct _EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI;\r
-\r
-/**\r
- Executes the Framework boot script table.\r
-\r
- @param PeiServices A pointer to the system PEI Services Table.\r
- @param This A pointer to the EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI instance.\r
- @param Address The physical memory address where the table is stored.\r
- It must be zero if the table to be executed is stored in\r
- a firmware volume file.\r
- @param FvFile The firmware volume file name that contains the table to\r
- be executed. It must be NULL if the table to be executed\r
- is stored in physical memory.\r
-\r
- @retval EFI_SUCCESS The boot script table was executed successfully.\r
- @retval EFI_INVALID_PARAMETER Address is zero and FvFile is NULL.\r
- @retval EFI_NOT_FOUND The file name specified in FvFile cannot be found.\r
- @retval EFI_UNSUPPORTED The format of the boot script table is invalid.\r
- Or, an unsupported opcode occurred in the table.\r
- Or there were opcode execution errors, such as an\r
- insufficient dependency.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PEI_BOOT_SCRIPT_EXECUTE)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI *This,\r
- IN EFI_PHYSICAL_ADDRESS Address,\r
- IN EFI_GUID *FvFile OPTIONAL\r
- );\r
-\r
-///\r
-/// EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI produces the function which interprets and\r
-/// executes the Framework boot script table.\r
-///\r
-struct _EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI {\r
- ///\r
- /// Executes a boot script table.\r
- ///\r
- EFI_PEI_BOOT_SCRIPT_EXECUTE Execute;\r
-};\r
-\r
-extern EFI_GUID gEfiPeiBootScriptExecuterPpiGuid;\r
-\r
-#endif\r