]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Guid/AcpiS3Context.h
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Include / Guid / AcpiS3Context.h
1 /** @file
2 Definitions for data structures used in S3 resume.
3
4 Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
5
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9
10 #ifndef _ACPI_S3_DATA_H_
11 #define _ACPI_S3_DATA_H_
12
13 #include <Library/BaseLib.h>
14
15 #define SMM_S3_RESUME_SMM_32 SIGNATURE_64 ('S','M','M','S','3','_','3','2')
16 #define SMM_S3_RESUME_SMM_64 SIGNATURE_64 ('S','M','M','S','3','_','6','4')
17
18 #pragma pack(1)
19
20 typedef struct {
21 UINT64 Signature;
22 EFI_PHYSICAL_ADDRESS SmmS3ResumeEntryPoint;
23 EFI_PHYSICAL_ADDRESS SmmS3StackBase;
24 UINT64 SmmS3StackSize;
25 UINT64 SmmS3Cr0;
26 UINT64 SmmS3Cr3;
27 UINT64 SmmS3Cr4;
28 UINT16 ReturnCs;
29 EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
30 EFI_PHYSICAL_ADDRESS ReturnContext1;
31 EFI_PHYSICAL_ADDRESS ReturnContext2;
32 EFI_PHYSICAL_ADDRESS ReturnStackPointer;
33 EFI_PHYSICAL_ADDRESS Smst;
34 } SMM_S3_RESUME_STATE;
35
36
37 typedef struct {
38 EFI_PHYSICAL_ADDRESS AcpiFacsTable;
39 EFI_PHYSICAL_ADDRESS IdtrProfile;
40 EFI_PHYSICAL_ADDRESS S3NvsPageTableAddress;
41 EFI_PHYSICAL_ADDRESS BootScriptStackBase;
42 UINT64 BootScriptStackSize;
43 EFI_PHYSICAL_ADDRESS S3DebugBufferAddress;
44 } ACPI_S3_CONTEXT;
45
46 typedef struct {
47 UINT16 ReturnCs;
48 UINT64 ReturnStatus;
49 EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
50 EFI_PHYSICAL_ADDRESS ReturnStackPointer;
51 EFI_PHYSICAL_ADDRESS AsmTransferControl;
52 IA32_DESCRIPTOR Idtr;
53 } PEI_S3_RESUME_STATE;
54
55 #pragma pack()
56
57 #define EFI_ACPI_S3_CONTEXT_GUID \
58 { \
59 0xef98d3a, 0x3e33, 0x497a, {0xa4, 0x1, 0x77, 0xbe, 0x3e, 0xb7, 0x4f, 0x38} \
60 }
61
62 extern EFI_GUID gEfiAcpiS3ContextGuid;
63
64 extern EFI_GUID gEfiAcpiVariableGuid;
65
66 #endif