Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-09 Thread Laszlo Ersek
On 09/09/17 01:30, Paulo Alcantara wrote:
> 
> 
> Ard,
> 
> On September 8, 2017 7:17:35 PM GMT-03:00, Ard Biesheuvel 
>  wrote:
>> On 8 September 2017 at 20:40, Laszlo Ersek  wrote:
>>> On 09/08/17 21:21, Ard Biesheuvel wrote:
 On 8 September 2017 at 19:47, Laszlo Ersek 
>> wrote:
> On 09/08/17 14:41, Paulo Alcantara wrote:
>> Hi,
>>
>> This series introduces read-only UDF file system support in EDK2.
>> As
>> Laszlo (or Red Hat) seemed to be interested in such support, I'm
>> posting
>> it again after ~3 years.
>>
>> The idea is not replacing the default FAT file system, nor
>> breaking any
>> existing file system support, but extending EDK2 with a new file
>> system
>> that might be useful for some people who are looking for specific
>> file
>> system features that current FAT doesn't support.
>>
>> Originally the driver was written to support UDF file systems as
>> specified by OSTA Universal Disk Format Specification 2.60.
>> However,
>> some Windows 10 Enterprise ISO (UDF bridge) images that I tested
>> supported a revision of 1.02 thus I had to rework the driver a
>> little
>> bit to support such revision as well.
>>
>> v2:
>>  - Rework to _partially_ support UDF revisions <2.60.
>>  - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in
>> Eltorito.h
>>instead of creating another one (UDF_VOLUME_DESCRIPTOR).
>>  - Fixed UdfDxe to correctly follow UEFI driver model.
>>  - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one.
>>  - Detect UDF file systems only in PartitionDxe, and let UdfDxe
>> driver
>>check for specific UDF device path to decide whether or not
>> install
>>SimpleFs protocol.
>>  - Place MdePkg changes in a separate patch.
>> v3:
>>  - Install UDF partition child handles with a Vendor-Defined Media
>>Device Path.
>>  - Changed UdfDxe to check for Vendor-Defined Media Device Paths
>> with a
>>specific UDF file system GUID when determining to whether or
>> not
>>start the driver.
>>  - Removed leading TAB chars in some source files identified by
>>PatchCheck.py tool.
>> v4:
>>  - Added missing R-b's.
>> v5:
>>  - Fixed OVMF IA32 build.
>>  - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs")
>> which
>>broke retrieval of private fs data from SimpleFs protocol --
>>identified by 'reconnect -r' command in UEFI shell.
>> v6:
>>  - Fixed a bug in UdfRead() that'd pontentially break in ARM or
>> IA32
>>by allowing caller to read more than 4GiB of data
>>(i.e. BufferSize pointer is dereferenced as an UINT64 * and
>> it's
>> followed by 4 bytes that are nonzero).
>>
>> Repo:   https://github.com/pcacjr/edk2.git
>> Branch: udf-fs-v6
>>
>> Cc: Laszlo Ersek 
>> Cc: Jordan Justen 
>> Cc: Andrew Fish 
>> Cc: Michael D Kinney 
>> Cc: Liming Gao 
>> Cc: Star Zeng 
>> Cc: Eric Dong 
>> Cc: Mark Doran 
>> Cc: Ruiyu Ni 
>> Cc: hao.a...@intel.com
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Paulo Alcantara 
>> ---
>>
>> Paulo Alcantara (6):
>>   MdePkg: Add UDF volume structure definitions
>>   MdeModulePkg/PartitionDxe: Add UDF file system support
>>   MdeModulePkg: Initial UDF/ECMA-167 file system support
>>   OvmfPkg: Enable UDF file system support
>>   ArmVirtPkg: Enable UDF file system support
>>   Nt32Pkg: Enable UDF file system support
>>
>>  ArmVirtPkg/ArmVirtQemu.dsc |3 +-
>>  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc   |3 +-
>>  ArmVirtPkg/ArmVirtQemuKernel.dsc   |3 +-
>>  ArmVirtPkg/ArmVirtXen.dsc  |3 +-
>>  ArmVirtPkg/ArmVirtXen.fdf  |1 +
>>  .../Universal/Disk/PartitionDxe/Partition.c|9 +-
>>  .../Universal/Disk/PartitionDxe/Partition.h|   32 +-
>>  .../Universal/Disk/PartitionDxe/PartitionDxe.inf   |3 +-
>>  MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c |  318 +++
>>  MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c |  185 ++
>>  MdeModulePkg/Universal/Disk/UdfDxe/File.c  |  908
>> 
>>  MdeModulePkg/Universal/Disk/UdfDxe/FileName.c  |  195 ++
>>  .../Universal/Disk/UdfDxe/FileSystemOperations.c   | 2447
>> 
>>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.c   |  344 +++
>>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.h   | 1244
>> ++
>>  

Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Paulo Alcantara


Ard,

On September 8, 2017 7:17:35 PM GMT-03:00, Ard Biesheuvel 
 wrote:
>On 8 September 2017 at 20:40, Laszlo Ersek  wrote:
>> On 09/08/17 21:21, Ard Biesheuvel wrote:
>>> On 8 September 2017 at 19:47, Laszlo Ersek 
>wrote:
 On 09/08/17 14:41, Paulo Alcantara wrote:
> Hi,
>
> This series introduces read-only UDF file system support in EDK2.
>As
> Laszlo (or Red Hat) seemed to be interested in such support, I'm
>posting
> it again after ~3 years.
>
> The idea is not replacing the default FAT file system, nor
>breaking any
> existing file system support, but extending EDK2 with a new file
>system
> that might be useful for some people who are looking for specific
>file
> system features that current FAT doesn't support.
>
> Originally the driver was written to support UDF file systems as
> specified by OSTA Universal Disk Format Specification 2.60.
>However,
> some Windows 10 Enterprise ISO (UDF bridge) images that I tested
> supported a revision of 1.02 thus I had to rework the driver a
>little
> bit to support such revision as well.
>
> v2:
>  - Rework to _partially_ support UDF revisions <2.60.
>  - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in
>Eltorito.h
>instead of creating another one (UDF_VOLUME_DESCRIPTOR).
>  - Fixed UdfDxe to correctly follow UEFI driver model.
>  - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one.
>  - Detect UDF file systems only in PartitionDxe, and let UdfDxe
>driver
>check for specific UDF device path to decide whether or not
>install
>SimpleFs protocol.
>  - Place MdePkg changes in a separate patch.
> v3:
>  - Install UDF partition child handles with a Vendor-Defined Media
>Device Path.
>  - Changed UdfDxe to check for Vendor-Defined Media Device Paths
>with a
>specific UDF file system GUID when determining to whether or
>not
>start the driver.
>  - Removed leading TAB chars in some source files identified by
>PatchCheck.py tool.
> v4:
>  - Added missing R-b's.
> v5:
>  - Fixed OVMF IA32 build.
>  - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs")
>which
>broke retrieval of private fs data from SimpleFs protocol --
>identified by 'reconnect -r' command in UEFI shell.
> v6:
>  - Fixed a bug in UdfRead() that'd pontentially break in ARM or
>IA32
>by allowing caller to read more than 4GiB of data
>(i.e. BufferSize pointer is dereferenced as an UINT64 * and
>it's
> followed by 4 bytes that are nonzero).
>
> Repo:   https://github.com/pcacjr/edk2.git
> Branch: udf-fs-v6
>
> Cc: Laszlo Ersek 
> Cc: Jordan Justen 
> Cc: Andrew Fish 
> Cc: Michael D Kinney 
> Cc: Liming Gao 
> Cc: Star Zeng 
> Cc: Eric Dong 
> Cc: Mark Doran 
> Cc: Ruiyu Ni 
> Cc: hao.a...@intel.com
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Paulo Alcantara 
> ---
>
> Paulo Alcantara (6):
>   MdePkg: Add UDF volume structure definitions
>   MdeModulePkg/PartitionDxe: Add UDF file system support
>   MdeModulePkg: Initial UDF/ECMA-167 file system support
>   OvmfPkg: Enable UDF file system support
>   ArmVirtPkg: Enable UDF file system support
>   Nt32Pkg: Enable UDF file system support
>
>  ArmVirtPkg/ArmVirtQemu.dsc |3 +-
>  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc   |3 +-
>  ArmVirtPkg/ArmVirtQemuKernel.dsc   |3 +-
>  ArmVirtPkg/ArmVirtXen.dsc  |3 +-
>  ArmVirtPkg/ArmVirtXen.fdf  |1 +
>  .../Universal/Disk/PartitionDxe/Partition.c|9 +-
>  .../Universal/Disk/PartitionDxe/Partition.h|   32 +-
>  .../Universal/Disk/PartitionDxe/PartitionDxe.inf   |3 +-
>  MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c |  318 +++
>  MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c |  185 ++
>  MdeModulePkg/Universal/Disk/UdfDxe/File.c  |  908
>
>  MdeModulePkg/Universal/Disk/UdfDxe/FileName.c  |  195 ++
>  .../Universal/Disk/UdfDxe/FileSystemOperations.c   | 2447
>
>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.c   |  344 +++
>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.h   | 1244
>++
>  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf  |   66 +
>  MdePkg/Include/IndustryStandard/Udf.h  |   60 +
>  Nt32Pkg/Nt32Pkg.dsc|1 +
>  

Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Ard Biesheuvel
On 8 September 2017 at 20:40, Laszlo Ersek  wrote:
> On 09/08/17 21:21, Ard Biesheuvel wrote:
>> On 8 September 2017 at 19:47, Laszlo Ersek  wrote:
>>> On 09/08/17 14:41, Paulo Alcantara wrote:
 Hi,

 This series introduces read-only UDF file system support in EDK2. As
 Laszlo (or Red Hat) seemed to be interested in such support, I'm posting
 it again after ~3 years.

 The idea is not replacing the default FAT file system, nor breaking any
 existing file system support, but extending EDK2 with a new file system
 that might be useful for some people who are looking for specific file
 system features that current FAT doesn't support.

 Originally the driver was written to support UDF file systems as
 specified by OSTA Universal Disk Format Specification 2.60. However,
 some Windows 10 Enterprise ISO (UDF bridge) images that I tested
 supported a revision of 1.02 thus I had to rework the driver a little
 bit to support such revision as well.

 v2:
  - Rework to _partially_ support UDF revisions <2.60.
  - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in Eltorito.h
instead of creating another one (UDF_VOLUME_DESCRIPTOR).
  - Fixed UdfDxe to correctly follow UEFI driver model.
  - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one.
  - Detect UDF file systems only in PartitionDxe, and let UdfDxe driver
check for specific UDF device path to decide whether or not install
SimpleFs protocol.
  - Place MdePkg changes in a separate patch.
 v3:
  - Install UDF partition child handles with a Vendor-Defined Media
Device Path.
  - Changed UdfDxe to check for Vendor-Defined Media Device Paths with a
specific UDF file system GUID when determining to whether or not
start the driver.
  - Removed leading TAB chars in some source files identified by
PatchCheck.py tool.
 v4:
  - Added missing R-b's.
 v5:
  - Fixed OVMF IA32 build.
  - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs") which
broke retrieval of private fs data from SimpleFs protocol --
identified by 'reconnect -r' command in UEFI shell.
 v6:
  - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
by allowing caller to read more than 4GiB of data
(i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
 followed by 4 bytes that are nonzero).

 Repo:   https://github.com/pcacjr/edk2.git
 Branch: udf-fs-v6

 Cc: Laszlo Ersek 
 Cc: Jordan Justen 
 Cc: Andrew Fish 
 Cc: Michael D Kinney 
 Cc: Liming Gao 
 Cc: Star Zeng 
 Cc: Eric Dong 
 Cc: Mark Doran 
 Cc: Ruiyu Ni 
 Cc: hao.a...@intel.com
 Contributed-under: TianoCore Contribution Agreement 1.1
 Signed-off-by: Paulo Alcantara 
 ---

 Paulo Alcantara (6):
   MdePkg: Add UDF volume structure definitions
   MdeModulePkg/PartitionDxe: Add UDF file system support
   MdeModulePkg: Initial UDF/ECMA-167 file system support
   OvmfPkg: Enable UDF file system support
   ArmVirtPkg: Enable UDF file system support
   Nt32Pkg: Enable UDF file system support

  ArmVirtPkg/ArmVirtQemu.dsc |3 +-
  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc   |3 +-
  ArmVirtPkg/ArmVirtQemuKernel.dsc   |3 +-
  ArmVirtPkg/ArmVirtXen.dsc  |3 +-
  ArmVirtPkg/ArmVirtXen.fdf  |1 +
  .../Universal/Disk/PartitionDxe/Partition.c|9 +-
  .../Universal/Disk/PartitionDxe/Partition.h|   32 +-
  .../Universal/Disk/PartitionDxe/PartitionDxe.inf   |3 +-
  MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c |  318 +++
  MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c |  185 ++
  MdeModulePkg/Universal/Disk/UdfDxe/File.c  |  908 
  MdeModulePkg/Universal/Disk/UdfDxe/FileName.c  |  195 ++
  .../Universal/Disk/UdfDxe/FileSystemOperations.c   | 2447 
 
  MdeModulePkg/Universal/Disk/UdfDxe/Udf.c   |  344 +++
  MdeModulePkg/Universal/Disk/UdfDxe/Udf.h   | 1244 ++
  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf  |   66 +
  MdePkg/Include/IndustryStandard/Udf.h  |   60 +
  Nt32Pkg/Nt32Pkg.dsc|1 +
  Nt32Pkg/Nt32Pkg.fdf|1 +
  OvmfPkg/OvmfPkgIa32.dsc|1 +
  OvmfPkg/OvmfPkgIa32.fdf|1 +
  

Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Laszlo Ersek
On 09/08/17 21:21, Ard Biesheuvel wrote:
> On 8 September 2017 at 19:47, Laszlo Ersek  wrote:
>> On 09/08/17 14:41, Paulo Alcantara wrote:
>>> Hi,
>>>
>>> This series introduces read-only UDF file system support in EDK2. As
>>> Laszlo (or Red Hat) seemed to be interested in such support, I'm posting
>>> it again after ~3 years.
>>>
>>> The idea is not replacing the default FAT file system, nor breaking any
>>> existing file system support, but extending EDK2 with a new file system
>>> that might be useful for some people who are looking for specific file
>>> system features that current FAT doesn't support.
>>>
>>> Originally the driver was written to support UDF file systems as
>>> specified by OSTA Universal Disk Format Specification 2.60. However,
>>> some Windows 10 Enterprise ISO (UDF bridge) images that I tested
>>> supported a revision of 1.02 thus I had to rework the driver a little
>>> bit to support such revision as well.
>>>
>>> v2:
>>>  - Rework to _partially_ support UDF revisions <2.60.
>>>  - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in Eltorito.h
>>>instead of creating another one (UDF_VOLUME_DESCRIPTOR).
>>>  - Fixed UdfDxe to correctly follow UEFI driver model.
>>>  - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one.
>>>  - Detect UDF file systems only in PartitionDxe, and let UdfDxe driver
>>>check for specific UDF device path to decide whether or not install
>>>SimpleFs protocol.
>>>  - Place MdePkg changes in a separate patch.
>>> v3:
>>>  - Install UDF partition child handles with a Vendor-Defined Media
>>>Device Path.
>>>  - Changed UdfDxe to check for Vendor-Defined Media Device Paths with a
>>>specific UDF file system GUID when determining to whether or not
>>>start the driver.
>>>  - Removed leading TAB chars in some source files identified by
>>>PatchCheck.py tool.
>>> v4:
>>>  - Added missing R-b's.
>>> v5:
>>>  - Fixed OVMF IA32 build.
>>>  - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs") which
>>>broke retrieval of private fs data from SimpleFs protocol --
>>>identified by 'reconnect -r' command in UEFI shell.
>>> v6:
>>>  - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
>>>by allowing caller to read more than 4GiB of data
>>>(i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
>>> followed by 4 bytes that are nonzero).
>>>
>>> Repo:   https://github.com/pcacjr/edk2.git
>>> Branch: udf-fs-v6
>>>
>>> Cc: Laszlo Ersek 
>>> Cc: Jordan Justen 
>>> Cc: Andrew Fish 
>>> Cc: Michael D Kinney 
>>> Cc: Liming Gao 
>>> Cc: Star Zeng 
>>> Cc: Eric Dong 
>>> Cc: Mark Doran 
>>> Cc: Ruiyu Ni 
>>> Cc: hao.a...@intel.com
>>> Contributed-under: TianoCore Contribution Agreement 1.1
>>> Signed-off-by: Paulo Alcantara 
>>> ---
>>>
>>> Paulo Alcantara (6):
>>>   MdePkg: Add UDF volume structure definitions
>>>   MdeModulePkg/PartitionDxe: Add UDF file system support
>>>   MdeModulePkg: Initial UDF/ECMA-167 file system support
>>>   OvmfPkg: Enable UDF file system support
>>>   ArmVirtPkg: Enable UDF file system support
>>>   Nt32Pkg: Enable UDF file system support
>>>
>>>  ArmVirtPkg/ArmVirtQemu.dsc |3 +-
>>>  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc   |3 +-
>>>  ArmVirtPkg/ArmVirtQemuKernel.dsc   |3 +-
>>>  ArmVirtPkg/ArmVirtXen.dsc  |3 +-
>>>  ArmVirtPkg/ArmVirtXen.fdf  |1 +
>>>  .../Universal/Disk/PartitionDxe/Partition.c|9 +-
>>>  .../Universal/Disk/PartitionDxe/Partition.h|   32 +-
>>>  .../Universal/Disk/PartitionDxe/PartitionDxe.inf   |3 +-
>>>  MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c |  318 +++
>>>  MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c |  185 ++
>>>  MdeModulePkg/Universal/Disk/UdfDxe/File.c  |  908 
>>>  MdeModulePkg/Universal/Disk/UdfDxe/FileName.c  |  195 ++
>>>  .../Universal/Disk/UdfDxe/FileSystemOperations.c   | 2447 
>>> 
>>>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.c   |  344 +++
>>>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.h   | 1244 ++
>>>  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf  |   66 +
>>>  MdePkg/Include/IndustryStandard/Udf.h  |   60 +
>>>  Nt32Pkg/Nt32Pkg.dsc|1 +
>>>  Nt32Pkg/Nt32Pkg.fdf|1 +
>>>  OvmfPkg/OvmfPkgIa32.dsc|1 +
>>>  OvmfPkg/OvmfPkgIa32.fdf|1 +
>>>  OvmfPkg/OvmfPkgIa32X64.dsc |1 +
>>>  OvmfPkg/OvmfPkgIa32X64.fdf |1 +
>>>  OvmfPkg/OvmfPkgX64.dsc |1 +
>>> 

Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Ard Biesheuvel
On 8 September 2017 at 19:47, Laszlo Ersek  wrote:
> On 09/08/17 14:41, Paulo Alcantara wrote:
>> Hi,
>>
>> This series introduces read-only UDF file system support in EDK2. As
>> Laszlo (or Red Hat) seemed to be interested in such support, I'm posting
>> it again after ~3 years.
>>
>> The idea is not replacing the default FAT file system, nor breaking any
>> existing file system support, but extending EDK2 with a new file system
>> that might be useful for some people who are looking for specific file
>> system features that current FAT doesn't support.
>>
>> Originally the driver was written to support UDF file systems as
>> specified by OSTA Universal Disk Format Specification 2.60. However,
>> some Windows 10 Enterprise ISO (UDF bridge) images that I tested
>> supported a revision of 1.02 thus I had to rework the driver a little
>> bit to support such revision as well.
>>
>> v2:
>>  - Rework to _partially_ support UDF revisions <2.60.
>>  - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in Eltorito.h
>>instead of creating another one (UDF_VOLUME_DESCRIPTOR).
>>  - Fixed UdfDxe to correctly follow UEFI driver model.
>>  - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one.
>>  - Detect UDF file systems only in PartitionDxe, and let UdfDxe driver
>>check for specific UDF device path to decide whether or not install
>>SimpleFs protocol.
>>  - Place MdePkg changes in a separate patch.
>> v3:
>>  - Install UDF partition child handles with a Vendor-Defined Media
>>Device Path.
>>  - Changed UdfDxe to check for Vendor-Defined Media Device Paths with a
>>specific UDF file system GUID when determining to whether or not
>>start the driver.
>>  - Removed leading TAB chars in some source files identified by
>>PatchCheck.py tool.
>> v4:
>>  - Added missing R-b's.
>> v5:
>>  - Fixed OVMF IA32 build.
>>  - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs") which
>>broke retrieval of private fs data from SimpleFs protocol --
>>identified by 'reconnect -r' command in UEFI shell.
>> v6:
>>  - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
>>by allowing caller to read more than 4GiB of data
>>(i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
>> followed by 4 bytes that are nonzero).
>>
>> Repo:   https://github.com/pcacjr/edk2.git
>> Branch: udf-fs-v6
>>
>> Cc: Laszlo Ersek 
>> Cc: Jordan Justen 
>> Cc: Andrew Fish 
>> Cc: Michael D Kinney 
>> Cc: Liming Gao 
>> Cc: Star Zeng 
>> Cc: Eric Dong 
>> Cc: Mark Doran 
>> Cc: Ruiyu Ni 
>> Cc: hao.a...@intel.com
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Paulo Alcantara 
>> ---
>>
>> Paulo Alcantara (6):
>>   MdePkg: Add UDF volume structure definitions
>>   MdeModulePkg/PartitionDxe: Add UDF file system support
>>   MdeModulePkg: Initial UDF/ECMA-167 file system support
>>   OvmfPkg: Enable UDF file system support
>>   ArmVirtPkg: Enable UDF file system support
>>   Nt32Pkg: Enable UDF file system support
>>
>>  ArmVirtPkg/ArmVirtQemu.dsc |3 +-
>>  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc   |3 +-
>>  ArmVirtPkg/ArmVirtQemuKernel.dsc   |3 +-
>>  ArmVirtPkg/ArmVirtXen.dsc  |3 +-
>>  ArmVirtPkg/ArmVirtXen.fdf  |1 +
>>  .../Universal/Disk/PartitionDxe/Partition.c|9 +-
>>  .../Universal/Disk/PartitionDxe/Partition.h|   32 +-
>>  .../Universal/Disk/PartitionDxe/PartitionDxe.inf   |3 +-
>>  MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c |  318 +++
>>  MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c |  185 ++
>>  MdeModulePkg/Universal/Disk/UdfDxe/File.c  |  908 
>>  MdeModulePkg/Universal/Disk/UdfDxe/FileName.c  |  195 ++
>>  .../Universal/Disk/UdfDxe/FileSystemOperations.c   | 2447 
>> 
>>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.c   |  344 +++
>>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.h   | 1244 ++
>>  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf  |   66 +
>>  MdePkg/Include/IndustryStandard/Udf.h  |   60 +
>>  Nt32Pkg/Nt32Pkg.dsc|1 +
>>  Nt32Pkg/Nt32Pkg.fdf|1 +
>>  OvmfPkg/OvmfPkgIa32.dsc|1 +
>>  OvmfPkg/OvmfPkgIa32.fdf|1 +
>>  OvmfPkg/OvmfPkgIa32X64.dsc |1 +
>>  OvmfPkg/OvmfPkgIa32X64.fdf |1 +
>>  OvmfPkg/OvmfPkgX64.dsc |1 +
>>  OvmfPkg/OvmfPkgX64.fdf |1 +
>>  25 files changed, 5821 insertions(+), 11 deletions(-)
>>  create mode 100644 

Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Laszlo Ersek
On 09/08/17 14:41, Paulo Alcantara wrote:
> Hi,
> 
> This series introduces read-only UDF file system support in EDK2. As
> Laszlo (or Red Hat) seemed to be interested in such support, I'm posting
> it again after ~3 years.
> 
> The idea is not replacing the default FAT file system, nor breaking any
> existing file system support, but extending EDK2 with a new file system
> that might be useful for some people who are looking for specific file
> system features that current FAT doesn't support.
> 
> Originally the driver was written to support UDF file systems as
> specified by OSTA Universal Disk Format Specification 2.60. However,
> some Windows 10 Enterprise ISO (UDF bridge) images that I tested
> supported a revision of 1.02 thus I had to rework the driver a little
> bit to support such revision as well.
> 
> v2:
>  - Rework to _partially_ support UDF revisions <2.60.
>  - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in Eltorito.h
>instead of creating another one (UDF_VOLUME_DESCRIPTOR).
>  - Fixed UdfDxe to correctly follow UEFI driver model.
>  - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one.
>  - Detect UDF file systems only in PartitionDxe, and let UdfDxe driver
>check for specific UDF device path to decide whether or not install
>SimpleFs protocol.
>  - Place MdePkg changes in a separate patch.
> v3:
>  - Install UDF partition child handles with a Vendor-Defined Media
>Device Path.
>  - Changed UdfDxe to check for Vendor-Defined Media Device Paths with a
>specific UDF file system GUID when determining to whether or not
>start the driver.
>  - Removed leading TAB chars in some source files identified by
>PatchCheck.py tool.
> v4:
>  - Added missing R-b's.
> v5:
>  - Fixed OVMF IA32 build.
>  - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs") which
>broke retrieval of private fs data from SimpleFs protocol --
>identified by 'reconnect -r' command in UEFI shell.
> v6:
>  - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
>by allowing caller to read more than 4GiB of data
>(i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
> followed by 4 bytes that are nonzero).
> 
> Repo:   https://github.com/pcacjr/edk2.git
> Branch: udf-fs-v6
> 
> Cc: Laszlo Ersek 
> Cc: Jordan Justen 
> Cc: Andrew Fish 
> Cc: Michael D Kinney 
> Cc: Liming Gao 
> Cc: Star Zeng 
> Cc: Eric Dong 
> Cc: Mark Doran 
> Cc: Ruiyu Ni 
> Cc: hao.a...@intel.com
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Paulo Alcantara 
> ---
> 
> Paulo Alcantara (6):
>   MdePkg: Add UDF volume structure definitions
>   MdeModulePkg/PartitionDxe: Add UDF file system support
>   MdeModulePkg: Initial UDF/ECMA-167 file system support
>   OvmfPkg: Enable UDF file system support
>   ArmVirtPkg: Enable UDF file system support
>   Nt32Pkg: Enable UDF file system support
> 
>  ArmVirtPkg/ArmVirtQemu.dsc |3 +-
>  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc   |3 +-
>  ArmVirtPkg/ArmVirtQemuKernel.dsc   |3 +-
>  ArmVirtPkg/ArmVirtXen.dsc  |3 +-
>  ArmVirtPkg/ArmVirtXen.fdf  |1 +
>  .../Universal/Disk/PartitionDxe/Partition.c|9 +-
>  .../Universal/Disk/PartitionDxe/Partition.h|   32 +-
>  .../Universal/Disk/PartitionDxe/PartitionDxe.inf   |3 +-
>  MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c |  318 +++
>  MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c |  185 ++
>  MdeModulePkg/Universal/Disk/UdfDxe/File.c  |  908 
>  MdeModulePkg/Universal/Disk/UdfDxe/FileName.c  |  195 ++
>  .../Universal/Disk/UdfDxe/FileSystemOperations.c   | 2447 
> 
>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.c   |  344 +++
>  MdeModulePkg/Universal/Disk/UdfDxe/Udf.h   | 1244 ++
>  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf  |   66 +
>  MdePkg/Include/IndustryStandard/Udf.h  |   60 +
>  Nt32Pkg/Nt32Pkg.dsc|1 +
>  Nt32Pkg/Nt32Pkg.fdf|1 +
>  OvmfPkg/OvmfPkgIa32.dsc|1 +
>  OvmfPkg/OvmfPkgIa32.fdf|1 +
>  OvmfPkg/OvmfPkgIa32X64.dsc |1 +
>  OvmfPkg/OvmfPkgIa32X64.fdf |1 +
>  OvmfPkg/OvmfPkgX64.dsc |1 +
>  OvmfPkg/OvmfPkgX64.fdf |1 +
>  25 files changed, 5821 insertions(+), 11 deletions(-)
>  create mode 100644 MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
>  create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c
>  create mode 100644 

Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Ni, Ruiyu
Reviewed-by: Ruiyu Ni <ruiyu...@intel.com>

-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Laszlo 
Ersek
Sent: Friday, September 8, 2017 9:26 PM
To: Paulo Alcantara <pca...@zytor.com>; Ni, Ruiyu <ruiyu...@intel.com>
Cc: Dong, Eric <eric.d...@intel.com>; Wu, Hao A <hao.a...@intel.com>; Justen, 
Jordan L <jordan.l.jus...@intel.com>; edk2-devel@lists.01.org; Andrew Fish 
<af...@apple.com>; Gao, Liming <liming@intel.com>; Kinney, Michael D 
<michael.d.kin...@intel.com>; Zeng, Star <star.z...@intel.com>
Subject: Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

Ray,

On 09/08/17 14:41, Paulo Alcantara wrote:

> v6:
>  - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
>by allowing caller to read more than 4GiB of data
>(i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
> followed by 4 bytes that are nonzero).
>
> Repo:   https://github.com/pcacjr/edk2.git
> Branch: udf-fs-v6

The v5-v6 diff is as follows:

> diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/File.c 
> b/MdeModulePkg/Universal/Disk/UdfDxe/File.c
> index 2dbcff0be4a3..8b9339567f8e 100644
> --- a/MdeModulePkg/Universal/Disk/UdfDxe/File.c
> +++ b/MdeModulePkg/Universal/Disk/UdfDxe/File.c
> @@ -325,8 +325,9 @@ UdfRead (
>UDF_FILE_IDENTIFIER_DESCRIPTOR  *NewFileIdentifierDesc;
>VOID*NewFileEntryData;
>CHAR16  FileName[UDF_FILENAME_LENGTH] = { 0 };
>UINT64  FileSize;
> +  UINT64  BufferSizeUint64;
>
>OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
>
>if (This == NULL || BufferSize == NULL || (*BufferSize != 0 && @@ 
> -363,18 +364,22 @@ UdfRead (
>Status = EFI_SUCCESS;
>goto Done;
>  }
>
> +BufferSizeUint64 = *BufferSize;
> +
>  Status = ReadFileData (
>BlockIo,
>DiskIo,
>Volume,
>Parent,
>PrivFileData->FileSize,
>>FilePosition,
>Buffer,
> -  (UINT64 *)(UINTN)BufferSize
> +  
>);
> +ASSERT (BufferSizeUint64 <= MAX_UINTN);
> +*BufferSize = (UINTN)BufferSizeUint64;
>} else if (IS_FID_DIRECTORY_FILE (Parent->FileIdentifierDesc)) {
>  if (ReadDirInfo->FidOffset == 0 && PrivFileData->FilePosition > 0) {
>Status = EFI_DEVICE_ERROR;
>*BufferSize = 0;

It looks OK to me, and it builds fine for IA32, X64, ARM and AARCH64:

  Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/AARCH64/UdfDxe.efi
  Build/ArmVirtQemu-ARM/DEBUG_GCC5/ARM/UdfDxe.efi
  Build/OvmfIa32/NOOPT_GCC48/IA32/UdfDxe.efi
  Build/OvmfX64/NOOPT_GCC48/X64/UdfDxe.efi

Green light from your side?

Paulo: you forgot to pick up Ray's R-b for patches #4 and #5, from his
v5 response
<734D49CCEBEEF84792F5B80ED585239D5BA282B7@SHSMSX104.ccr.corp.intel.com">http://mid.mail-archive.com/734D49CCEBEEF84792F5B80ED585239D5BA282B7@SHSMSX104.ccr.corp.intel.com>
-- it was for the entire series.

But, I'll apply that for you.

Thanks,
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Paulo Alcantara

Hi,

On 08/09/2017 10:25, Laszlo Ersek wrote:

Ray,

On 09/08/17 14:41, Paulo Alcantara wrote:


v6:
  - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
by allowing caller to read more than 4GiB of data
(i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
 followed by 4 bytes that are nonzero).

Repo:   https://github.com/pcacjr/edk2.git
Branch: udf-fs-v6


The v5-v6 diff is as follows:


diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/File.c 
b/MdeModulePkg/Universal/Disk/UdfDxe/File.c
index 2dbcff0be4a3..8b9339567f8e 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/File.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/File.c
@@ -325,8 +325,9 @@ UdfRead (
UDF_FILE_IDENTIFIER_DESCRIPTOR  *NewFileIdentifierDesc;
VOID*NewFileEntryData;
CHAR16  FileName[UDF_FILENAME_LENGTH] = { 0 };
UINT64  FileSize;
+  UINT64  BufferSizeUint64;

OldTpl = gBS->RaiseTPL (TPL_CALLBACK);

if (This == NULL || BufferSize == NULL || (*BufferSize != 0 &&
@@ -363,18 +364,22 @@ UdfRead (
Status = EFI_SUCCESS;
goto Done;
  }

+BufferSizeUint64 = *BufferSize;
+
  Status = ReadFileData (
BlockIo,
DiskIo,
Volume,
Parent,
PrivFileData->FileSize,
>FilePosition,
Buffer,
-  (UINT64 *)(UINTN)BufferSize
+  
);
+ASSERT (BufferSizeUint64 <= MAX_UINTN);
+*BufferSize = (UINTN)BufferSizeUint64;
} else if (IS_FID_DIRECTORY_FILE (Parent->FileIdentifierDesc)) {
  if (ReadDirInfo->FidOffset == 0 && PrivFileData->FilePosition > 0) {
Status = EFI_DEVICE_ERROR;
*BufferSize = 0;


It looks OK to me, and it builds fine for IA32, X64, ARM and AARCH64:

   Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/AARCH64/UdfDxe.efi
   Build/ArmVirtQemu-ARM/DEBUG_GCC5/ARM/UdfDxe.efi
   Build/OvmfIa32/NOOPT_GCC48/IA32/UdfDxe.efi
   Build/OvmfX64/NOOPT_GCC48/X64/UdfDxe.efi

Green light from your side?


Yes - at least from what I've been testing :-)



Paulo: you forgot to pick up Ray's R-b for patches #4 and #5, from his
v5 response
<734D49CCEBEEF84792F5B80ED585239D5BA282B7@SHSMSX104.ccr.corp.intel.com">http://mid.mail-archive.com/734D49CCEBEEF84792F5B80ED585239D5BA282B7@SHSMSX104.ccr.corp.intel.com>
-- it was for the entire series.


D'oh - I only considered the Mde*Pkg and Nt32Pkg R-b's. Sorry.


But, I'll apply that for you.


Thank you very much!

Paulo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Laszlo Ersek
Ray,

On 09/08/17 14:41, Paulo Alcantara wrote:

> v6:
>  - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
>by allowing caller to read more than 4GiB of data
>(i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
> followed by 4 bytes that are nonzero).
>
> Repo:   https://github.com/pcacjr/edk2.git
> Branch: udf-fs-v6

The v5-v6 diff is as follows:

> diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/File.c 
> b/MdeModulePkg/Universal/Disk/UdfDxe/File.c
> index 2dbcff0be4a3..8b9339567f8e 100644
> --- a/MdeModulePkg/Universal/Disk/UdfDxe/File.c
> +++ b/MdeModulePkg/Universal/Disk/UdfDxe/File.c
> @@ -325,8 +325,9 @@ UdfRead (
>UDF_FILE_IDENTIFIER_DESCRIPTOR  *NewFileIdentifierDesc;
>VOID*NewFileEntryData;
>CHAR16  FileName[UDF_FILENAME_LENGTH] = { 0 };
>UINT64  FileSize;
> +  UINT64  BufferSizeUint64;
>
>OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
>
>if (This == NULL || BufferSize == NULL || (*BufferSize != 0 &&
> @@ -363,18 +364,22 @@ UdfRead (
>Status = EFI_SUCCESS;
>goto Done;
>  }
>
> +BufferSizeUint64 = *BufferSize;
> +
>  Status = ReadFileData (
>BlockIo,
>DiskIo,
>Volume,
>Parent,
>PrivFileData->FileSize,
>>FilePosition,
>Buffer,
> -  (UINT64 *)(UINTN)BufferSize
> +  
>);
> +ASSERT (BufferSizeUint64 <= MAX_UINTN);
> +*BufferSize = (UINTN)BufferSizeUint64;
>} else if (IS_FID_DIRECTORY_FILE (Parent->FileIdentifierDesc)) {
>  if (ReadDirInfo->FidOffset == 0 && PrivFileData->FilePosition > 0) {
>Status = EFI_DEVICE_ERROR;
>*BufferSize = 0;

It looks OK to me, and it builds fine for IA32, X64, ARM and AARCH64:

  Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/AARCH64/UdfDxe.efi
  Build/ArmVirtQemu-ARM/DEBUG_GCC5/ARM/UdfDxe.efi
  Build/OvmfIa32/NOOPT_GCC48/IA32/UdfDxe.efi
  Build/OvmfX64/NOOPT_GCC48/X64/UdfDxe.efi

Green light from your side?

Paulo: you forgot to pick up Ray's R-b for patches #4 and #5, from his
v5 response
<734D49CCEBEEF84792F5B80ED585239D5BA282B7@SHSMSX104.ccr.corp.intel.com">http://mid.mail-archive.com/734D49CCEBEEF84792F5B80ED585239D5BA282B7@SHSMSX104.ccr.corp.intel.com>
-- it was for the entire series.

But, I'll apply that for you.

Thanks,
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


[edk2] [PATCH v6 0/6] read-only UDF file system support

2017-09-08 Thread Paulo Alcantara
Hi,

This series introduces read-only UDF file system support in EDK2. As
Laszlo (or Red Hat) seemed to be interested in such support, I'm posting
it again after ~3 years.

The idea is not replacing the default FAT file system, nor breaking any
existing file system support, but extending EDK2 with a new file system
that might be useful for some people who are looking for specific file
system features that current FAT doesn't support.

Originally the driver was written to support UDF file systems as
specified by OSTA Universal Disk Format Specification 2.60. However,
some Windows 10 Enterprise ISO (UDF bridge) images that I tested
supported a revision of 1.02 thus I had to rework the driver a little
bit to support such revision as well.

v2:
 - Rework to _partially_ support UDF revisions <2.60.
 - Use existing CDROM_VOLUME_DESCRIPTOR structure defined in Eltorito.h
   instead of creating another one (UDF_VOLUME_DESCRIPTOR).
 - Fixed UdfDxe to correctly follow UEFI driver model.
 - Use HARDDRIVE_DEVICE_PATH instead of a vendor-defined one.
 - Detect UDF file systems only in PartitionDxe, and let UdfDxe driver
   check for specific UDF device path to decide whether or not install
   SimpleFs protocol.
 - Place MdePkg changes in a separate patch.
v3:
 - Install UDF partition child handles with a Vendor-Defined Media
   Device Path.
 - Changed UdfDxe to check for Vendor-Defined Media Device Paths with a
   specific UDF file system GUID when determining to whether or not
   start the driver.
 - Removed leading TAB chars in some source files identified by
   PatchCheck.py tool.
v4:
 - Added missing R-b's.
v5:
 - Fixed OVMF IA32 build.
 - Fixed a typo in UdfDriveBindingStop() ("This" -> "SimpleFs") which
   broke retrieval of private fs data from SimpleFs protocol --
   identified by 'reconnect -r' command in UEFI shell.
v6:
 - Fixed a bug in UdfRead() that'd pontentially break in ARM or IA32
   by allowing caller to read more than 4GiB of data
   (i.e. BufferSize pointer is dereferenced as an UINT64 * and it's
followed by 4 bytes that are nonzero).

Repo:   https://github.com/pcacjr/edk2.git
Branch: udf-fs-v6

Cc: Laszlo Ersek 
Cc: Jordan Justen 
Cc: Andrew Fish 
Cc: Michael D Kinney 
Cc: Liming Gao 
Cc: Star Zeng 
Cc: Eric Dong 
Cc: Mark Doran 
Cc: Ruiyu Ni 
Cc: hao.a...@intel.com
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Paulo Alcantara 
---

Paulo Alcantara (6):
  MdePkg: Add UDF volume structure definitions
  MdeModulePkg/PartitionDxe: Add UDF file system support
  MdeModulePkg: Initial UDF/ECMA-167 file system support
  OvmfPkg: Enable UDF file system support
  ArmVirtPkg: Enable UDF file system support
  Nt32Pkg: Enable UDF file system support

 ArmVirtPkg/ArmVirtQemu.dsc |3 +-
 ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc   |3 +-
 ArmVirtPkg/ArmVirtQemuKernel.dsc   |3 +-
 ArmVirtPkg/ArmVirtXen.dsc  |3 +-
 ArmVirtPkg/ArmVirtXen.fdf  |1 +
 .../Universal/Disk/PartitionDxe/Partition.c|9 +-
 .../Universal/Disk/PartitionDxe/Partition.h|   32 +-
 .../Universal/Disk/PartitionDxe/PartitionDxe.inf   |3 +-
 MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c |  318 +++
 MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c |  185 ++
 MdeModulePkg/Universal/Disk/UdfDxe/File.c  |  908 
 MdeModulePkg/Universal/Disk/UdfDxe/FileName.c  |  195 ++
 .../Universal/Disk/UdfDxe/FileSystemOperations.c   | 2447 
 MdeModulePkg/Universal/Disk/UdfDxe/Udf.c   |  344 +++
 MdeModulePkg/Universal/Disk/UdfDxe/Udf.h   | 1244 ++
 MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf  |   66 +
 MdePkg/Include/IndustryStandard/Udf.h  |   60 +
 Nt32Pkg/Nt32Pkg.dsc|1 +
 Nt32Pkg/Nt32Pkg.fdf|1 +
 OvmfPkg/OvmfPkgIa32.dsc|1 +
 OvmfPkg/OvmfPkgIa32.fdf|1 +
 OvmfPkg/OvmfPkgIa32X64.dsc |1 +
 OvmfPkg/OvmfPkgIa32X64.fdf |1 +
 OvmfPkg/OvmfPkgX64.dsc |1 +
 OvmfPkg/OvmfPkgX64.fdf |1 +
 25 files changed, 5821 insertions(+), 11 deletions(-)
 create mode 100644 MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
 create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c
 create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/File.c
 create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/FileName.c
 create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
 create mode 100644 MdeModulePkg/Universal/Disk/UdfDxe/Udf.c
 create mode 100644