]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Ppi/S3Resume2.h
MdePkg: Apply uncrustify changes
[mirror_edk2.git] / MdePkg / Include / Ppi / S3Resume2.h
CommitLineData
202c9c8d 1/** @file\r
2 This PPI produces functions to interpret and execute the PI boot script table.\r
9095d37b 3\r
202c9c8d 4 This PPI is published by a PEIM and provides for the restoration of the platform's\r
9095d37b
LG
5 configuration when resuming from the ACPI S3 power state. The ability to execute\r
6 the boot script may depend on the availability of other PPIs. For example, if\r
7 the boot script includes an SMBus command, this PEIM looks for the relevant PPI\r
8 that is able to execute that command.\r
9\r
10 Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
9344f092 11 SPDX-License-Identifier: BSD-2-Clause-Patent\r
202c9c8d 12\r
13 @par Revision Reference:\r
9095d37b 14 This PPI is defined in UEFI Platform Initialization Specification 1.2 Volume 5:\r
202c9c8d 15 Standards\r
16\r
17**/\r
18\r
19#ifndef __PEI_S3_RESUME_PPI_H__\r
20#define __PEI_S3_RESUME_PPI_H__\r
21\r
22///\r
23/// Global ID for EFI_PEI_S3_RESUME2_PPI\r
24///\r
25#define EFI_PEI_S3_RESUME2_PPI_GUID \\r
26 { \\r
27 0x6D582DBC, 0xDB85, 0x4514, {0x8F, 0xCC, 0x5A, 0xDF, 0x62, 0x27, 0xB1, 0x47 } \\r
28 }\r
29\r
30///\r
31/// Forward declaration for EFI_PEI_S3_RESUME_PPI\r
32///\r
2f88bd3a 33typedef struct _EFI_PEI_S3_RESUME2_PPI EFI_PEI_S3_RESUME2_PPI;\r
202c9c8d 34\r
35/**\r
36 Restores the platform to its preboot configuration for an S3 resume and\r
37 jumps to the OS waking vector.\r
38\r
9095d37b 39 This function will restore the platform to its pre-boot configuration that was\r
202c9c8d 40 pre-stored in the boot script table and transfer control to OS waking vector.\r
9095d37b 41 Upon invocation, this function is responsible for locating the following\r
202c9c8d 42 information before jumping to OS waking vector:\r
43 - ACPI tables\r
44 - boot script table\r
45 - any other information that it needs\r
9095d37b
LG
46\r
47 The S3RestoreConfig() function then executes the pre-stored boot script table\r
48 and transitions the platform to the pre-boot state. The boot script is recorded\r
202c9c8d 49 during regular boot using the EFI_S3_SAVE_STATE_PROTOCOL.Write() and\r
9095d37b
LG
50 EFI_S3_SMM_SAVE_STATE_PROTOCOL.Write() functions. Finally, this function\r
51 transfers control to the OS waking vector. If the OS supports only a real-mode\r
52 waking vector, this function will switch from flat mode to real mode before\r
53 jumping to the waking vector. If all platform pre-boot configurations are\r
54 successfully restored and all other necessary information is ready, this\r
55 function will never return and instead will directly jump to the OS waking\r
56 vector. If this function returns, it indicates that the attempt to resume\r
57 from the ACPI S3 sleep state failed.\r
58\r
202c9c8d 59 @param[in] This Pointer to this instance of the PEI_S3_RESUME_PPI\r
60\r
61 @retval EFI_ABORTED Execution of the S3 resume boot script table failed.\r
9095d37b 62 @retval EFI_NOT_FOUND Some necessary information that is used for the S3\r
202c9c8d 63 resume boot path could not be located.\r
64\r
65**/\r
66typedef\r
67EFI_STATUS\r
68(EFIAPI *EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG2)(\r
69 IN EFI_PEI_S3_RESUME2_PPI *This\r
70 );\r
71\r
72/**\r
73 EFI_PEI_S3_RESUME2_PPI accomplishes the firmware S3 resume boot\r
74 path and transfers control to OS.\r
75**/\r
76struct _EFI_PEI_S3_RESUME2_PPI {\r
77 ///\r
78 /// Restores the platform to its preboot configuration for an S3 resume and\r
79 /// jumps to the OS waking vector.\r
80 ///\r
2f88bd3a 81 EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG2 S3RestoreConfig2;\r
202c9c8d 82};\r
83\r
2f88bd3a 84extern EFI_GUID gEfiPeiS3Resume2PpiGuid;\r
202c9c8d 85\r
86#endif\r