##  @file
# Provides shell Debug1 profile functions
#
# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##
[Defines]
  INF_VERSION                    = 0x00010006
  BASE_NAME                      = UefiShellDebug1CommandsLib
  FILE_GUID                      = 90330D51-A99B-4cc8-A2EB-AE22542A3F45
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.2
  LIBRARY_CLASS                  = NULL|UEFI_APPLICATION UEFI_DRIVER
  CONSTRUCTOR                    = UefiShellDebug1CommandsLibConstructor
  DESTRUCTOR                     = UefiShellDebug1CommandsLibDestructor

[Sources]
  SetSize.c
  Comp.c
  Mode.c
  MemMap.c
  Compress.h
  Compress.c
  EfiCompress.c
  EfiDecompress.c
  Dmem.c
  LoadPciRom.c
  Mm.c
  SetVar.c
  SerMode.c
  Pci.c
  Pci.h
  DmpStore.c
  Dblk.c
  SmbiosView/EventLogInfo.c
  SmbiosView/EventLogInfo.h
  SmbiosView/PrintInfo.c
  SmbiosView/QueryTable.c
  SmbiosView/SmbiosView.c
  SmbiosView/SmbiosViewStrings.uni
  SmbiosView/LibSmbiosView.c
  SmbiosView/PrintInfo.h
  SmbiosView/LibSmbiosView.h
  SmbiosView/QueryTable.h
  SmbiosView/SmbiosView.h
  UefiShellDebug1CommandsLib.c
  UefiShellDebug1CommandsLib.h
  UefiShellDebug1CommandsLib.uni

## Files shared by both editors
  EditTitleBar.h
  EditTitleBar.c
  EditInputBar.h
  EditInputBar.c
  EditStatusBar.h
  EditStatusBar.c
  EditMenuBar.h
  EditMenuBar.c

## Files specific to the text editor
  Edit/Edit.c
  Edit/TextEditor.h
  Edit/TextEditorTypes.h
  Edit/FileBuffer.h
  Edit/FileBuffer.c
  Edit/MainTextEditor.h
  Edit/MainTextEditor.c
  Edit/Misc.h
  Edit/Misc.c
  Edit/TextEditStrings.uni

## Files specific to the HEX editor
  HexEdit/BufferImage.h
  HexEdit/BufferImage.c
  HexEdit/Clipboard.h
  HexEdit/Clipboard.c
  HexEdit/DiskImage.h
  HexEdit/DiskImage.c
  HexEdit/FileImage.h
  HexEdit/FileImage.c
  HexEdit/HexEdit.c
  HexEdit/HexEditor.h
  HexEdit/HexEditorTypes.h
  HexEdit/HexeditStrings.uni
  HexEdit/MainHexEditor.h
  HexEdit/MainHexEditor.c
  HexEdit/MemImage.h
  HexEdit/MemImage.c
  HexEdit/Misc.h
  HexEdit/Misc.c

[Packages]
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  MemoryAllocationLib
  BaseLib
  BaseMemoryLib
  IoLib
  DebugLib
  ShellCommandLib
  ShellLib
  UefiLib
  UefiRuntimeServicesTableLib
  UefiBootServicesTableLib
  SortLib
  PrintLib
  BcfgCommandLib
  SafeIntLib

[Pcd]
  gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize        ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask              ## CONSUMES

[Protocols]
  gEfiPciRootBridgeIoProtocolGuid             ## SOMETIMES_CONSUMES
  gEfiBlockIoProtocolGuid                     ## SOMETIMES_CONSUMES
  gEfiSimplePointerProtocolGuid               ## SOMETIMES_CONSUMES
  gEfiCpuIo2ProtocolGuid                      ## SOMETIMES_CONSUMES
  gEfiHiiDatabaseProtocolGuid                 ## SOMETIMES_CONSUMES

[Guids]
  gEfiGlobalVariableGuid          ## SOMETIMES_CONSUMES ## GUID
  gEfiSmbiosTableGuid             ## SOMETIMES_CONSUMES ## SystemTable
  gEfiSmbios3TableGuid            ## SOMETIMES_CONSUMES ## SystemTable
  gEfiMpsTableGuid                ## SOMETIMES_CONSUMES ## SystemTable
  gEfiAcpi10TableGuid             ## SOMETIMES_CONSUMES ## SystemTable
  gEfiAcpi20TableGuid             ## SOMETIMES_CONSUMES ## SystemTable
  gShellDebug1HiiGuid             ## SOMETIMES_CONSUMES ## HII
  gEfiMemoryAttributesTableGuid   ## SOMETIMES_CONSUMES ## SystemTable
  gEfiRtPropertiesTableGuid       ## SOMETIMES_CONSUMES ## SystemTable
  gEfiSystemResourceTableGuid     ## SOMETIMES_CONSUMES ## SystemTable
  gEfiDebugImageInfoTableGuid     ## SOMETIMES_CONSUMES ## SystemTable
  gEfiImageSecurityDatabaseGuid   ## SOMETIMES_CONSUMES ## SystemTable
  gEfiJsonConfigDataTableGuid     ## SOMETIMES_CONSUMES ## SystemTable
  gEfiJsonCapsuleDataTableGuid    ## SOMETIMES_CONSUMES ## SystemTable
  gEfiJsonCapsuleResultTableGuid  ## SOMETIMES_CONSUMES ## SystemTable
  gEfiConfProfilesTableGuid       ## SOMETIMES_CONSUMES ## SystemTable
  gEfiConfProfilesUefiSpecGuid    ## SOMETIMES_CONSUMES ## GUID
  gEfiConfProfilesEbbrSpec21Guid  ## SOMETIMES_CONSUMES ## GUID
  gEfiConfProfilesEbbrSpec22Guid  ## SOMETIMES_CONSUMES ## GUID
  gFdtTableGuid                   ## SOMETIMES_CONSUMES ## SystemTable
