##  @file
# Provides Shell 'acpiview' command functions
#
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
# Copyright (c) 2016 - 2024, Arm Limited. All rights reserved.<BR>
# Copyright (C) 2025 - 2026 Advanced Micro Devices, Inc. All rights reserved.
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010019
  BASE_NAME                      = UefiShellAcpiViewCommandLib
  FILE_GUID                      = FB5B305E-84F5-461F-940D-82D345757AFA
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = AcpiViewCommandLib|UEFI_APPLICATION UEFI_DRIVER
  CONSTRUCTOR                    = UefiShellAcpiViewCommandLibConstructor
  DESTRUCTOR                     = UefiShellAcpiViewCommandLibDestructor

[Sources.common]
  AcpiParser.c
  AcpiParser.h
  AcpiTableParser.c
  AcpiTableParser.h
  AcpiView.c
  AcpiView.h
  AcpiViewConfig.c
  AcpiViewConfig.h
  Parsers/Aest/AestParser.c
  Parsers/Agdi/AgdiParser.c
  Parsers/Apmt/ApmtParser.c
  Parsers/Bgrt/BgrtParser.c
  Parsers/Ccel/CcelParser.c
  Parsers/Dbg2/Dbg2Parser.c
  Parsers/Dsdt/DsdtParser.c
  Parsers/Einj/EinjParser.c
  Parsers/Erst/ErstParser.c
  Parsers/Facs/FacsParser.c
  Parsers/Fadt/FadtParser.c
  Parsers/Fpdt/FpdtParser.c
  Parsers/Gtdt/GtdtParser.c
  Parsers/Hest/HestParser.c
  Parsers/Hmat/HmatParser.c
  Parsers/Hpet/HpetParser.c
  Parsers/Iort/IortParser.c
  Parsers/Madt/MadtParser.c
  Parsers/Madt/MadtParser.h
  Parsers/Mcfg/McfgParser.c
  Parsers/Mpam/MpamParser.c
  Parsers/Pcct/PcctParser.c
  Parsers/Pcct/PcctParser.h
  Parsers/Pptt/PpttParser.c
  Parsers/Pptt/PpttParser.h
  Parsers/Ras2/Ras2Parser.c
  Parsers/Rasf/RasfParser.c
  Parsers/Rimt/RimtParser.c
  Parsers/Rsdp/RsdpParser.c
  Parsers/Slit/SlitParser.c
  Parsers/Spcr/SpcrParser.c
  Parsers/Srat/SratParser.c
  Parsers/Ssdt/SsdtParser.c
  Parsers/Tpm2/Tpm2Parser.c
  Parsers/Wsmt/WsmtParser.c
  Parsers/Xsdt/XsdtParser.c
  UefiShellAcpiViewCommandLib.c
  UefiShellAcpiViewCommandLib.uni

[Sources.AARCH64]
  Arm/SbbrValidator.h
  Arm/SbbrValidator.c

[Packages]
  MdeModulePkg/MdeModulePkg.dec
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  FileHandleLib
  HiiLib
  MemoryAllocationLib
  PcdLib
  PrintLib
  ShellCommandLib
  ShellLib
  UefiBootServicesTableLib
  UefiLib
  UefiRuntimeServicesTableLib


[FixedPcd]
  gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask ## CONSUMES

[Guids]
  gShellAcpiViewHiiGuid           ## CONSUMES ## HII
  gEfiAcpiTableGuid               ## SOMETIMES_CONSUMES ## SystemTable
