]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Protocol/BootScriptSave.h
Remove IntelFrameworkModulePkg
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / BootScriptSave.h
CommitLineData
79964ac8 1/** @file\r
1c2f052d 2 This protocol is used to store or record various boot scripts into boot\r
4a71b21a 3 script tables.\r
79964ac8 4\r
1c2f052d 5Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
22a69a5e 6SPDX-License-Identifier: BSD-2-Clause-Patent\r
79964ac8 7\r
79964ac8 8 @par Revision Reference:\r
9 This protocol defined in the Boot Script Specification, Version 0.91.\r
10\r
11**/\r
12\r
4ebb0d9e 13#ifndef _BOOT_SCRIPT_SAVE_PROTOCOL_H_\r
14#define _BOOT_SCRIPT_SAVE_PROTOCOL_H_\r
79964ac8 15\r
87d63447 16///\r
f22f941e 17/// S3 Save Protocol GUID.\r
87d63447 18///\r
79964ac8 19#define EFI_BOOT_SCRIPT_SAVE_PROTOCOL_GUID \\r
20 { \\r
21 0x470e1529, 0xb79e, 0x4e32, {0xa0, 0xfe, 0x6a, 0x15, 0x6d, 0x29, 0xf9, 0xb2 } \\r
22 }\r
23\r
24typedef struct _EFI_BOOT_SCRIPT_SAVE_PROTOCOL EFI_BOOT_SCRIPT_SAVE_PROTOCOL;\r
25\r
79964ac8 26/**\r
27 Adds a record into a specified Framework boot script table.\r
28\r
29 @param This A pointer to the EFI_BOOT_SCRIPT_SAVE_PROTOCOL instance.\r
f22f941e 30 @param TableName The name of the script table. Currently, the only meaningful\r
79964ac8 31 value is EFI_ACPI_S3_RESUME_SCRIPT_TABLE.\r
32 @param OpCode The operation code (opcode) number.\r
f22f941e 33 @param ... The argument list that is specific to each opcode.\r
79964ac8 34\r
35 @retval EFI_SUCCESS The operation succeeded. A record was added into the specified script table.\r
f22f941e 36 @retval EFI_INVALID_PARAMETER The parameter is illegal, or the given boot script is not supported.\r
79964ac8 37 @retval EFI_OUT_OF_RESOURCES There is insufficient memory to store the boot script.\r
38\r
39**/\r
40typedef\r
41EFI_STATUS\r
69686d56 42(EFIAPI *EFI_BOOT_SCRIPT_WRITE)(\r
79964ac8 43 IN EFI_BOOT_SCRIPT_SAVE_PROTOCOL *This,\r
44 IN UINT16 TableName,\r
45 IN UINT16 OpCode,\r
46 ...\r
47 );\r
48\r
49/**\r
50 Closes the specified script table.\r
51\r
52 @param This A pointer to the EFI_BOOT_SCRIPT_SAVE_PROTOCOL instance.\r
f22f941e 53 @param TableName The name of the script table.\r
79964ac8 54 @param Address A pointer to the physical address where the table begins.\r
55\r
56 @retval EFI_SUCCESS The table was successfully returned.\r
57 @retval EFI_NOT_FOUND The specified table was not created previously.\r
58 @retval EFI_OUT_OF_RESOURCES Memory is insufficient to hold the reorganized boot script table.\r
59\r
60**/\r
61typedef\r
62EFI_STATUS\r
69686d56 63(EFIAPI *EFI_BOOT_SCRIPT_CLOSE_TABLE)(\r
79964ac8 64 IN EFI_BOOT_SCRIPT_SAVE_PROTOCOL *This,\r
65 IN UINT16 TableName,\r
66 OUT EFI_PHYSICAL_ADDRESS *Address\r
67 );\r
68\r
87d63447 69///\r
70/// The EFI_BOOT_SCRIPT_SAVE_PROTOCOL publishes the Framework boot script abstractions\r
71/// to store or record various boot scripts into boot script tables.\r
72///\r
79964ac8 73struct _EFI_BOOT_SCRIPT_SAVE_PROTOCOL {\r
87d63447 74 EFI_BOOT_SCRIPT_WRITE Write; ///< Writes various boot scripts to a boot script table.\r
75 EFI_BOOT_SCRIPT_CLOSE_TABLE CloseTable; ///< Retrieves and closes a script table.\r
79964ac8 76};\r
77\r
78extern EFI_GUID gEfiBootScriptSaveProtocolGuid;\r
79\r
80#endif\r