#/** @file
# Simple filesystem driver
#
# Produce Simple File System abstractions for directories on your PC using Unix APIs.
#  The configuration of what devices to mount or emulate comes from
#  environment variables.
# Copyright (c) 2006, Intel Corporation
#
#  All rights reserved. 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                    = 0x00010005
  BASE_NAME                      = UnixSimpleFileSystem
  FILE_GUID                      = f330834e-8985-11db-a295-0040d02b1835
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  ENTRY_POINT                    = InitializeUnixSimpleFileSystem

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#
#  DRIVER_BINDING                =  gUnixSimpleFileSystemDriverBinding           
#  COMPONENT_NAME                =  gUnixSimpleFileSystemComponentName           
#

[Sources.common]
  ComponentName.c
  UnixSimpleFileSystem.c
  UnixSimpleFileSystem.h
  EntryPoint.c


[Packages]
  MdePkg/MdePkg.dec
  UnixPkg/UnixPkg.dec


[LibraryClasses]
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  UefiLib
  UefiDriverEntryPoint
  BaseLib
  DebugLib


[Guids]
  gEfiFileSystemVolumeLabelInfoIdGuid           # SOMETIMES_CONSUMED
  gEfiFileInfoGuid                              # SOMETIMES_CONSUMED
  gEfiFileSystemInfoGuid                        # SOMETIMES_CONSUMED
  gEfiUnixFileSystemGuid                       # ALWAYS_CONSUMED


[Protocols]
  gEfiSimpleFileSystemProtocolGuid              # PROTOCOL BY_START
  gEfiUnixIoProtocolGuid                        # PROTOCOL TO_START

