| /** @file | |
| Definitions for data structures used in S3 resume. | |
| Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> | |
| This program and the accompanying materials | |
| are licensed and made available under the terms and conditions | |
| of the BSD License which accompanies this distribution. The | |
| full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| **/ | |
| #ifndef _ACPI_S3_DATA_H_ | |
| #define _ACPI_S3_DATA_H_ | |
| #include <Library/BaseLib.h> | |
| #define SMM_S3_RESUME_SMM_32 SIGNATURE_64 ('S','M','M','S','3','_','3','2') | |
| #define SMM_S3_RESUME_SMM_64 SIGNATURE_64 ('S','M','M','S','3','_','6','4') | |
| #pragma pack(1) | |
| typedef struct { | |
| UINT64 Signature; | |
| EFI_PHYSICAL_ADDRESS SmmS3ResumeEntryPoint; | |
| EFI_PHYSICAL_ADDRESS SmmS3StackBase; | |
| UINT64 SmmS3StackSize; | |
| UINT64 SmmS3Cr0; | |
| UINT64 SmmS3Cr3; | |
| UINT64 SmmS3Cr4; | |
| UINT16 ReturnCs; | |
| EFI_PHYSICAL_ADDRESS ReturnEntryPoint; | |
| EFI_PHYSICAL_ADDRESS ReturnContext1; | |
| EFI_PHYSICAL_ADDRESS ReturnContext2; | |
| EFI_PHYSICAL_ADDRESS ReturnStackPointer; | |
| EFI_PHYSICAL_ADDRESS Smst; | |
| } SMM_S3_RESUME_STATE; | |
| typedef struct { | |
| EFI_PHYSICAL_ADDRESS AcpiFacsTable; | |
| EFI_PHYSICAL_ADDRESS IdtrProfile; | |
| EFI_PHYSICAL_ADDRESS S3NvsPageTableAddress; | |
| EFI_PHYSICAL_ADDRESS BootScriptStackBase; | |
| UINT64 BootScriptStackSize; | |
| EFI_PHYSICAL_ADDRESS S3DebugBufferAddress; | |
| } ACPI_S3_CONTEXT; | |
| typedef struct { | |
| UINT16 ReturnCs; | |
| UINT64 ReturnStatus; | |
| EFI_PHYSICAL_ADDRESS ReturnEntryPoint; | |
| EFI_PHYSICAL_ADDRESS ReturnStackPointer; | |
| EFI_PHYSICAL_ADDRESS AsmTransferControl; | |
| IA32_DESCRIPTOR Idtr; | |
| } PEI_S3_RESUME_STATE; | |
| #pragma pack() | |
| #define EFI_ACPI_S3_CONTEXT_GUID \ | |
| { \ | |
| 0xef98d3a, 0x3e33, 0x497a, {0xa4, 0x1, 0x77, 0xbe, 0x3e, 0xb7, 0x4f, 0x38} \ | |
| } | |
| extern EFI_GUID gEfiAcpiS3ContextGuid; | |
| extern EFI_GUID gEfiAcpiVariableGuid; | |
| #endif |