## @file
# Provides interface to shell functionality for shell commands and applications.
#
# Copyright (c) 2006 - 2010, 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                      = BaseFileHandleLib
  FILE_GUID                      = 9495D344-9D8A-41f3-8D17-E2FD238C4E71
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = FileHandleLib|DXE_DRIVER UEFI_APPLICATION UEFI_DRIVER

#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  BaseFileHandleLib.c

[Packages]
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec

[LibraryClasses]
  MemoryAllocationLib
  BaseLib
  BaseMemoryLib
  DebugLib
  PrintLib
  PcdLib

[Protocols]
  gEfiSimpleFileSystemProtocolGuid             # ALWAYS_USED

[Guids]
  gEfiFileInfoGuid                              # ALWAYS_CONSUMED

[Pcd]
  gEfiShellPkgTokenSpaceGuid.PcdShellPrintBufferSize # ALWAYS_CONSUMED
