##  @file
# Provides shell Debug1 profile functions
#
# Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
#
#  This program and the accompanying materials
#  are licensed and made available under the terms and conditions of the BSD License
#  which accompanies this distribution. The full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#
##
[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

[Pcd]
  gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask              ## CONSUMES
  gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize        ## CONSUMES
  gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength      ## CONSUMES

[Protocols]
  gEfiPciRootBridgeIoProtocolGuid             ## SOMETIMES_CONSUMES
  gEfiBlockIoProtocolGuid                     ## SOMETIMES_CONSUMES
  gEfiSimplePointerProtocolGuid               ## SOMETIMES_CONSUMES
  gEfiCpuIo2ProtocolGuid                      ## SOMETIMES_CONSUMES

[Guids]
  gEfiGlobalVariableGuid          ## SOMETIMES_CONSUMES ## GUID
  gEfiSmbiosTableGuid             ## SOMETIMES_CONSUMES ## SystemTable
  gEfiSmbios3TableGuid            ## SOMETIMES_CONSUMES ## SystemTable
  gEfiMpsTableGuid                ## SOMETIMES_CONSUMES ## SystemTable
  gEfiSalSystemTableGuid          ## SOMETIMES_CONSUMES ## SystemTable
  gEfiAcpi10TableGuid             ## SOMETIMES_CONSUMES ## SystemTable
  gEfiAcpi20TableGuid             ## SOMETIMES_CONSUMES ## SystemTable
  gShellDebug1HiiGuid             ## SOMETIMES_CONSUMES ## HII
