/** @file
*  Firmware ACPI Control Structure (FACS)
*
*  Copyright (c) 2012 - 2014, ARM Limited. All rights reserved.
*  Copyright (c) 2015 - 2016, Hisilicon Limited. All rights reserved.
*  Copyright (c) 2015 - 2016, Linaro Limited. All rights reserved.
*
*  SPDX-License-Identifier: BSD-2-Clause-Patent
*
*  Based on the files under ArmPlatformPkg/ArmJunoPkg/AcpiTables/
*
**/

#include <IndustryStandard/Acpi.h>

EFI_ACPI_6_1_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs = {
  EFI_ACPI_6_1_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, // UINT32  Signature
  sizeof (EFI_ACPI_6_1_FIRMWARE_ACPI_CONTROL_STRUCTURE),  // UINT32  Length
  0xA152,                                                 // UINT32  HardwareSignature
  0,                                                      // UINT32  FirmwareWakingVector
  0,                                                      // UINT32  GlobalLock
  0,                                                      // UINT32  Flags
  0,                                                      // UINT64  XFirmwareWakingVector
  EFI_ACPI_6_1_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION,   // UINT8   Version;
    { EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved0[0]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved0[1]
      EFI_ACPI_RESERVED_BYTE },                           // UINT8   Reserved0[2]
  0,                                                      // UINT32  OspmFlags  "Platform firmware must
                                                          //                    initialize this field to zero."
    { EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[0]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[1]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[2]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[3]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[4]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[5]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[6]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[7]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[8]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[9]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[10]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[11]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[12]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[13]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[14]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[15]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[16]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[17]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[18]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[19]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[20]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[21]
      EFI_ACPI_RESERVED_BYTE,                             // UINT8   Reserved1[22]
      EFI_ACPI_RESERVED_BYTE },                           // UINT8   Reserved1[23]
};

//
// Reference the table being generated to prevent the optimizer from removing the
// data structure from the executable
//
VOID* CONST ReferenceAcpiTable = &Facs;

