--- /dev/null
+/** @file\r
+* Firmware ACPI Control Structure (FACS)\r
+*\r
+* Copyright (c) 2012 - 2014, ARM Limited. All rights reserved.\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
+#include <IndustryStandard/Acpi.h>\r
+\r
+EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs = {\r
+ EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, // UINT32 Signature\r
+ sizeof (EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE), // UINT32 Length\r
+ 0xA152, // UINT32 HardwareSignature\r
+ 0, // UINT32 FirmwareWakingVector\r
+ 0, // UINT32 GlobalLock\r
+ 0, // UINT32 Flags\r
+ 0, // UINT64 XFirmwareWakingVector\r
+ EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION, // UINT8 Version;\r
+ { EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved0[0]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved0[1]\r
+ EFI_ACPI_RESERVED_BYTE }, // UINT8 Reserved0[2]\r
+ 0, // UINT32 OspmFlags "Platform firmware must\r
+ // initialize this field to zero."\r
+ { EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[0]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[1]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[2]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[3]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[4]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[5]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[6]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[7]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[8]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[9]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[10]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[11]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[12]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[13]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[14]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[15]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[16]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[17]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[18]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[19]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[20]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[21]\r
+ EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved1[22]\r
+ EFI_ACPI_RESERVED_BYTE }, // UINT8 Reserved1[23]\r
+};\r
+\r
+VOID*\r
+ReferenceAcpiTable (\r
+ VOID\r
+ )\r
+{\r
+ //\r
+ // Reference the table being generated to prevent the optimizer from removing the\r
+ // data structure from the executable\r
+ //\r
+ return (VOID*)&Facs;\r
+}\r