diff options
Diffstat (limited to 'ReferenceCode/RapidStart/Protocol/RapidStartGlobalNvsArea/RapidStartGlobalNvsArea.h')
-rw-r--r-- | ReferenceCode/RapidStart/Protocol/RapidStartGlobalNvsArea/RapidStartGlobalNvsArea.h | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/ReferenceCode/RapidStart/Protocol/RapidStartGlobalNvsArea/RapidStartGlobalNvsArea.h b/ReferenceCode/RapidStart/Protocol/RapidStartGlobalNvsArea/RapidStartGlobalNvsArea.h new file mode 100644 index 0000000..25fa453 --- /dev/null +++ b/ReferenceCode/RapidStart/Protocol/RapidStartGlobalNvsArea/RapidStartGlobalNvsArea.h @@ -0,0 +1,100 @@ +/** @file + Definition of the RapidStart global NVS area protocol. This protocol + publishes the address and format of a global ACPI NVS buffer used as a communications + buffer between SMM/DXE/PEI code and ASL code. + @todo The format is derived from the ACPI reference code, version 0.95. + + Note: Data structures defined in this protocol are not naturally aligned. + +@copyright + Copyright (c) 1999 - 2012 Intel Corporation. All rights reserved + This software and associated documentation (if any) is furnished + under a license and may only be used or copied in accordance + with the terms of the license. Except as permitted by such + license, no part of this software or documentation may be + reproduced, stored in a retrieval system, or transmitted in any + form or by any means without the express written consent of + Intel Corporation. + + This file contains a 'Sample Driver' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may be modified by the user, subject to + the additional terms of the license agreement +**/ +#ifndef _RAPID_START_GLOBAL_NVS_AREA_H_ +#define _RAPID_START_GLOBAL_NVS_AREA_H_ + +// +// Includes +// +// +// Forward reference for pure ANSI compatability +// +EFI_FORWARD_DECLARATION (RAPID_START_GLOBAL_NVS_AREA_PROTOCOL); + +/// +/// RapidStart Global NVS Area Protocol GUID +/// +#define RAPID_START_GLOBAL_NVS_AREA_PROTOCOL_GUID \ + { \ + 0xa5559f06, 0x6415, 0x4759, 0x88, 0x69, 0xde, 0x15, 0xf9, 0xcd, 0x9c, 0x9b \ + } + +/// +/// Extern the GUID for protocol users. +/// +extern EFI_GUID gRapidStartGlobalNvsAreaProtocolGuid; + +/** + Global NVS Area definition + + To provide OS base utility controlling capability, these ACPI Global NVS fields + provides the interface for OS base utility to control Rapid Start behavior and + Rapid Start reference code will work accordingly. +**/ +#pragma pack(1) +typedef struct { + /// + /// It shows what wake up event sources available for Rapid Start Entry. + /// + /// Used by RapidStart.asl as "RSTA" + /// + UINT8 EventsAvailable; + /// + /// This controls which wake up source can be used to trigger Rapid Start Entry tasks. + /// + /// Used by RapidStart.asl as "RSTS" + /// + UINT8 EventsEnabled; + /// + /// This defines how many minutes the wake up event will happen for performing Rapid + /// Start Entry transition. Available options are "Immediately" (wake system up + /// once system entering S3 mode), 1 Min, 2 Min, 5 Min and 10 Min etc. Default + /// Platform Policy will set this to 10 minutes. + /// + /// Used by RapidStart.asl as "RSTT" + /// + UINT16 WakeTimerMin; + /// + /// This is the pointer for performance data structure. + /// + /// Used by RapidStart.asl as "RSTP" + /// + UINT32 PerfDataPtr; +} RAPID_START_GLOBAL_NVS_AREA; +#pragma pack() + +/** + RapidStart Global NVS Area Protocol + + To provide OS base utility controlling mechanism there are some items + created in Rapid Start private ACPI Global NVS area. Note: This will be + published by reference code as one SSDT table so no Platform code change + required. +**/ +struct _RAPID_START_GLOBAL_NVS_AREA_PROTOCOL { + RAPID_START_GLOBAL_NVS_AREA *Area; + VOID *RapidStartData; +}; + +#endif |