--- /dev/null
+/** @file\r
+Header file for SMM S3 Handler Driver.\r
+\r
+Copyright (c) 2013-2015 Intel Corporation.\r
+\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+\r
+**/\r
+\r
+#ifndef _ACPI_SMM_DRIVER_H\r
+#define _ACPI_SMM_DRIVER_H\r
+//\r
+// Include files\r
+//\r
+//\r
+// Driver Consumed Protocol Prototypes\r
+//\r
+#include <Protocol/SmmSxDispatch2.h>\r
+#include <Protocol/SmmSwDispatch2.h>\r
+#include <Protocol/FirmwareVolume.h>\r
+#include <Protocol/GlobalNvsArea.h>\r
+#include <Protocol/PciRootBridgeIo.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Protocol/Spi.h>\r
+#include <Library/IoLib.h>\r
+#include <Library/PciLib.h>\r
+#include <Library/PcdLib.h>\r
+#include <Library/LockBoxLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/BaseLib.h>\r
+#include <Library/UefiRuntimeServicesTableLib.h>\r
+#include <Library/S3IoLib.h>\r
+#include <Library/S3BootScriptLib.h>\r
+#include <Guid/Acpi.h>\r
+#include <Guid/GlobalVariable.h>\r
+#include <Library/SmmServicesTableLib.h>\r
+#include <Guid/SmramMemoryReserve.h>\r
+#include <Library/ReportStatusCodeLib.h>\r
+#include <Library/HobLib.h>\r
+#include <QNCAccess.h>\r
+#include <Library/QNCAccessLib.h>\r
+#include <Library/IntelQNCLib.h>\r
+#include <Library/PlatformHelperLib.h>\r
+#include <Library/PlatformPcieHelperLib.h>\r
+#include "Platform.h"\r
+#include <IndustryStandard/Pci22.h>\r
+\r
+#define EFI_ACPI_ACPI_ENABLE 0xA0\r
+#define EFI_ACPI_ACPI_DISABLE 0xA1\r
+\r
+#define R_IOPORT_CMOS_STANDARD_INDEX 0x70\r
+#define R_IOPORT_CMOS_STANDARD_DATA 0x71\r
+#define RTC_ADDRESS_REGISTER_C 12\r
+#define RTC_ADDRESS_REGISTER_D 13\r
+\r
+#define PCI_DEVICE(Bus, Dev, Func) \\r
+ Bus, Dev, Func\r
+\r
+#define PCI_REG_MASK(Byte0, Byte1, Byte2, Byte3, Byte4, Byte5, Byte6, Byte7) \\r
+ Byte0, Byte1, Byte2, Byte3, Byte4, Byte5, Byte6, Byte7\r
+\r
+#define PCI_DEVICE_END 0xFF\r
+\r
+//\r
+// Related data structures definition\r
+//\r
+typedef struct _EFI_ACPI_SMM_DEV {\r
+\r
+ //\r
+ // Parent dispatch driver returned sleep handle\r
+ //\r
+ EFI_HANDLE S3SleepEntryHandle;\r
+\r
+ EFI_HANDLE S4SleepEntryHandle;\r
+\r
+ EFI_HANDLE S1SleepEntryHandle;\r
+\r
+ EFI_HANDLE S5SoftOffEntryHandle;\r
+\r
+ EFI_HANDLE EnableAcpiHandle;\r
+\r
+ EFI_HANDLE DisableAcpiHandle;\r
+\r
+ EFI_HANDLE PpCallbackHandle;\r
+\r
+ EFI_HANDLE MorCallbackHandle;\r
+\r
+ //\r
+ // QNC Power Management I/O register base\r
+ //\r
+ UINT32 QncPmBase;\r
+\r
+ //\r
+ // QNC General Purpose Event0 register base\r
+ //\r
+ UINT32 QncGpe0Base;\r
+\r
+ UINT32 BootScriptSaved;\r
+\r
+} EFI_ACPI_SMM_DEV;\r
+\r
+//\r
+// Prototypes\r
+//\r
+EFI_STATUS\r
+InitPlatformAcpiSmm (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable,\r
+ IN OUT VOID *CommBuffer,\r
+ IN OUT UINTN *CommBufferSize\r
+ );\r
+\r
+EFI_STATUS\r
+SxSleepEntryCallBack (\r
+ IN EFI_HANDLE DispatchHandle,\r
+ IN CONST VOID *DispatchContext,\r
+\r
+ IN OUT VOID *CommBuffer,\r
+ IN OUT UINTN *CommBufferSize\r
+ );\r
+\r
+EFI_STATUS\r
+DisableAcpiCallback (\r
+ IN EFI_HANDLE DispatchHandle,\r
+ IN CONST VOID *DispatchContext,\r
+ IN OUT VOID *CommBuffer,\r
+ IN OUT UINTN *CommBufferSize\r
+ );\r
+\r
+EFI_STATUS\r
+EnableAcpiCallback (\r
+ IN EFI_HANDLE DispatchHandle,\r
+ IN CONST VOID *DispatchContext,\r
+ IN OUT VOID *CommBuffer,\r
+ IN OUT UINTN *CommBufferSize\r
+ );\r
+\r
+EFI_STATUS\r
+RegisterToDispatchDriver (\r
+ VOID\r
+ );\r
+\r
+EFI_STATUS\r
+GetAllQncPmBase (\r
+ IN EFI_SMM_SYSTEM_TABLE2 *Smst\r
+ );\r
+\r
+EFI_STATUS\r
+SaveRuntimeScriptTable (\r
+ IN EFI_SMM_SYSTEM_TABLE2 *Smst\r
+ );\r
+\r
+EFI_STATUS\r
+RestoreQncS3SwCallback (\r
+ IN EFI_HANDLE DispatchHandle,\r
+ IN CONST VOID *DispatchContext,\r
+ IN OUT VOID *CommBuffer,\r
+ IN OUT UINTN *CommBufferSize\r
+ );\r
+\r
+extern EFI_GUID gQncS3CodeInLockBoxGuid;\r
+extern EFI_GUID gQncS3ContextInLockBoxGuid;\r
+\r
+#endif\r