MdeModulePkg: Initial UDF/ECMA-167 file system support

This patch introduces UDF file system support in EDK2. All block devices
that support BlockIo and DiskIo protocols and contain a valid UDF file
system - as specified by OSTA Universal Disk Format (revisions 1.02
through 2.60) - will be installed EFI_SIMPLE_FILE_SYSTEM_PROTOCOL to
provide access to underlying file system.

File system operations on regular, directory and symlink files are
supported.

Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
This commit is contained in:
Paulo Alcantara
2017-09-08 09:41:47 -03:00
committed by Laszlo Ersek
parent 8aafec2c13
commit 99c9b94905
7 changed files with 5389 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
## @file
# UDF/ECMA-167 file system driver.
#
# Copyright (C) 2014-2017 Paulo Alcantara <pcacjr@zytor.com>
#
# 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 = UdfDxe
FILE_GUID = 905f13b0-8f91-4b0a-bd76-e1e78f9422e4
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = InitializeUdf
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
#
# DRIVER_BINDING = gUdfDriverBinding
# COMPONENT_NAME = gUdfComponentName
# COMPONENT_NAME2 = gUdfComponentName2
#
[Sources]
ComponentName.c
FileSystemOperations.c
FileName.c
File.c
Udf.c
Udf.h
[Packages]
MdePkg/MdePkg.dec
[LibraryClasses]
DevicePathLib
UefiBootServicesTableLib
MemoryAllocationLib
BaseMemoryLib
UefiLib
BaseLib
UefiDriverEntryPoint
DebugLib
[Guids]
gEfiFileInfoGuid ## SOMETIMES_CONSUMES ## Protocol
gEfiFileSystemInfoGuid ## SOMETIMES_CONSUMES ## Protocol
[Protocols]
gEfiSimpleFileSystemProtocolGuid ## BY_START
gEfiDevicePathProtocolGuid ## BY_START
gEfiBlockIoProtocolGuid ## TO_START
gEfiDiskIoProtocolGuid ## TO_START