## @file
# dec file for Dynamic Tables Framework.
#
# Copyright (c) 2017 - 2022, Arm Limited. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  DEC_SPECIFICATION              = 0x00010005
  PACKAGE_NAME                   = DynamicTablesPkg
  PACKAGE_GUID                   = 188EB346-8ABA-460E-A105-0F9D76F7324A
  PACKAGE_VERSION                = 1.0

[Includes]
  Include

[LibraryClasses]
  ##  @libraryclass  Defines a set of Acpi helper methods
  #   independent from the Dynamic Tables Framework.
  AcpiHelperLib|Include/Library/AcpiHelperLib.h

  ##  @libraryclass  Defines a set of APIs for Dynamic AML generation.
  AmlLib|Include/Library/AmlLib/AmlLib.h

  ##  @libraryclass  Defines a set of APIs to handle dynamically created CmObj.
  DynamicPlatRepoLib|Include/Library/DynamicPlatRepoLib.h

  ##  @libraryclass  Defines a set of APIs to a hardware information parser.
  HwInfoParserLib|Include/Library/HwInfoParserLib.h

  ##  @libraryclass Defines functions for customizing the generation of _OSC and slot info.
  SsdtPcieSupportLib|Include/Library/SsdtPcieSupportLib.h

  ##  @libraryclass  Defines a set of methods for fixing up a SSDT Serial Port.
  SsdtSerialPortFixupLib|Include/Library/SsdtSerialPortFixupLib.h

  ##  @libraryclass  Defines a set of helper methods.
  TableHelperLib|Include/Library/TableHelperLib.h

  ##  @libraryclass  Defines a set of SMBIOS string helper methods.
  SmbiosStringTableLib|Include/Library/SmbiosStringTableLib.h

[Protocols]
  # Configuration Manager Protocol GUID
  gEdkiiConfigurationManagerProtocolGuid = { 0xd85a4835, 0x5a82, 0x4894, { 0xac, 0x2, 0x70, 0x6f, 0x43, 0xd5, 0x97, 0x8e } }

  # Dynamic Table Factory Protocol GUID
  gEdkiiDynamicTableFactoryProtocolGuid = { 0x91d1e327, 0xfe5a, 0x49b8, { 0xab, 0x65, 0xe, 0xce, 0x2d, 0xdb, 0x45, 0xec } }

[PcdsFixedAtBuild]

  # Maximum number of Custom ACPI Generators
  gEdkiiDynamicTablesPkgTokenSpaceGuid.PcdMaxCustomACPIGenerators|1|UINT16|0xC0000001

  # Maximum number of Custom SMBIOS Generators
  gEdkiiDynamicTablesPkgTokenSpaceGuid.PcdMaxCustomSMBIOSGenerators|1|UINT16|0xC0000002

  # Maximum number of Custom DT Generators
  gEdkiiDynamicTablesPkgTokenSpaceGuid.PcdMaxCustomDTGenerators|1|UINT16|0xC0000003

  # Non BSA Compliant 16550 Serial HID
  gEdkiiDynamicTablesPkgTokenSpaceGuid.PcdNonBsaCompliant16550SerialHid|""|VOID*|0x40000008

  # Use PCI segment numbers as UID
  gEdkiiDynamicTablesPkgTokenSpaceGuid.PcdPciUseSegmentAsUid|FALSE|BOOLEAN|0x40000009

[Guids]
  gEdkiiDynamicTablesPkgTokenSpaceGuid = { 0xab226e66, 0x31d8, 0x4613, { 0x87, 0x9d, 0xd2, 0xfa, 0xb6, 0x10, 0x26, 0x3c } }
