]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Guid/AcpiS3Context.h
MdeModulePkg: Clean up source files
[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 This program and the accompanying materials
7 are licensed and made available under the terms and conditions
8 of the BSD License which accompanies this distribution. The
9 full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #ifndef _ACPI_S3_DATA_H_
18 #define _ACPI_S3_DATA_H_
19
20 #include <Library/BaseLib.h>
21
22 #define SMM_S3_RESUME_SMM_32 SIGNATURE_64 ('S','M','M','S','3','_','3','2')
23 #define SMM_S3_RESUME_SMM_64 SIGNATURE_64 ('S','M','M','S','3','_','6','4')
24
25 #pragma pack(1)
26
27 typedef struct {
28 UINT64 Signature;
29 EFI_PHYSICAL_ADDRESS SmmS3ResumeEntryPoint;
30 EFI_PHYSICAL_ADDRESS SmmS3StackBase;
31 UINT64 SmmS3StackSize;
32 UINT64 SmmS3Cr0;
33 UINT64 SmmS3Cr3;
34 UINT64 SmmS3Cr4;
35 UINT16 ReturnCs;
36 EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
37 EFI_PHYSICAL_ADDRESS ReturnContext1;
38 EFI_PHYSICAL_ADDRESS ReturnContext2;
39 EFI_PHYSICAL_ADDRESS ReturnStackPointer;
40 EFI_PHYSICAL_ADDRESS Smst;
41 } SMM_S3_RESUME_STATE;
42
43
44 typedef struct {
45 EFI_PHYSICAL_ADDRESS AcpiFacsTable;
46 EFI_PHYSICAL_ADDRESS IdtrProfile;
47 EFI_PHYSICAL_ADDRESS S3NvsPageTableAddress;
48 EFI_PHYSICAL_ADDRESS BootScriptStackBase;
49 UINT64 BootScriptStackSize;
50 EFI_PHYSICAL_ADDRESS S3DebugBufferAddress;
51 } ACPI_S3_CONTEXT;
52
53 typedef struct {
54 UINT16 ReturnCs;
55 UINT64 ReturnStatus;
56 EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
57 EFI_PHYSICAL_ADDRESS ReturnStackPointer;
58 EFI_PHYSICAL_ADDRESS AsmTransferControl;
59 IA32_DESCRIPTOR Idtr;
60 } PEI_S3_RESUME_STATE;
61
62 #pragma pack()
63
64 #define EFI_ACPI_S3_CONTEXT_GUID \
65 { \
66 0xef98d3a, 0x3e33, 0x497a, {0xa4, 0x1, 0x77, 0xbe, 0x3e, 0xb7, 0x4f, 0x38} \
67 }
68
69 extern EFI_GUID gEfiAcpiS3ContextGuid;
70
71 extern EFI_GUID gEfiAcpiVariableGuid;
72
73 #endif