TianoCore EDK2 master
Loading...
Searching...
No Matches
AcpiS3Context.h
Go to the documentation of this file.
1
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
20typedef 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;
35
36typedef struct {
37 EFI_PHYSICAL_ADDRESS AcpiFacsTable;
38 EFI_PHYSICAL_ADDRESS IdtrProfile;
39 EFI_PHYSICAL_ADDRESS S3NvsPageTableAddress;
40 EFI_PHYSICAL_ADDRESS BootScriptStackBase;
41 UINT64 BootScriptStackSize;
42 EFI_PHYSICAL_ADDRESS S3DebugBufferAddress;
44
45typedef struct {
46 UINT16 ReturnCs;
47 UINT64 ReturnStatus;
48 EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
49 EFI_PHYSICAL_ADDRESS ReturnStackPointer;
51 IA32_DESCRIPTOR Idtr;
53
54#pragma pack()
55
56#define EFI_ACPI_S3_CONTEXT_GUID \
57 { \
58 0xef98d3a, 0x3e33, 0x497a, {0xa4, 0x1, 0x77, 0xbe, 0x3e, 0xb7, 0x4f, 0x38} \
59 }
60
61extern EFI_GUID gEfiAcpiS3ContextGuid;
62
63extern EFI_GUID gEfiAcpiVariableGuid;
64
65#endif
VOID AsmTransferControl(IN UINT32 S3WakingVector, IN UINT32 AcpiLowMemoryBase)
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:50
Definition: Base.h:213