From: "Wu, Hao A" <hao.a.wu@intel.com>
To: "Ni, Ruiyu" <ruiyu.ni@intel.com>,
"jbrasen.qdt@qualcommdatacenter.com"
<jbrasen.qdt@qualcommdatacenter.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [PATCH] MdeModulePkg/PartitionDxe: Add partition type guid to installed handle
Date: Thu, 29 Mar 2018 05:09:39 +0000 [thread overview]
Message-ID: <B80AF82E9BFB8E4FBD8C89DA810C6A0931D6CFDE@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5BC14DB1@SHSMSX104.ccr.corp.intel.com>
Pushed as 709c9fd56b2a3303e679858a4927e382f255d8e4.
Best Regards,
Hao Wu
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ni,
> Ruiyu
> Sent: Thursday, March 29, 2018 10:34 AM
> To: jbrasen.qdt@qualcommdatacenter.com; edk2-devel@lists.01.org
> Subject: Re: [edk2] [PATCH] MdeModulePkg/PartitionDxe: Add partition type
> guid to installed handle
>
> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
>
> Thanks/Ray
>
> > -----Original Message-----
> > From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of
> > jbrasen.qdt@qualcommdatacenter.com
> > Sent: Monday, March 26, 2018 4:57 PM
> > To: edk2-devel@lists.01.org
> > Subject: [edk2] [PATCH] MdeModulePkg/PartitionDxe: Add partition type
> > guid to installed handle
> >
> > From: Jeff Brasen <jbrasen.qdt@qualcommdatacenter.com>
> >
> > Add the partition type GUID for every partition to the installed handle,
> > this is required per the UEFI specification.
> >
> > "The firmware must add the PartitionTypeGuid to the handle of every
> > active GPT partition using EFI_BOOT_SERVICES.InstallProtocolInterface()."
> >
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Jeff Brasen <jbrasen.qdt@qualcommdatacenter.com>
> > ---
> > .../Universal/Disk/PartitionDxe/ElTorito.c | 4 ++-
> > MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c | 4 ++-
> > MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c | 7 +++--
> > .../Universal/Disk/PartitionDxe/Partition.c | 30 ++++++++++++++--------
> > .../Universal/Disk/PartitionDxe/Partition.h | 7 +++--
> > MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c | 4 ++-
> > 6 files changed, 38 insertions(+), 18 deletions(-)
> >
> > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c
> > b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c
> > index 2084ee5..a7b5434 100644
> > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c
> > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c
> > @@ -1,13 +1,14 @@
> > /** @file
> > Decode an El Torito formatted CD-ROM
> >
> > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc.
> > Copyright (c) 2006 - 2017, 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.
> >
> > **/
> > @@ -258,21 +259,22 @@ PartitionInstallElToritoChildHandles (
> > Handle,
> > DiskIo,
> > DiskIo2,
> > BlockIo,
> > BlockIo2,
> > DevicePath,
> > (EFI_DEVICE_PATH_PROTOCOL *) &CdDev,
> > &PartitionInfo,
> > Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize),
> > Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize) +
> > CdDev.PartitionSize - 1,
> > - SubBlockSize
> > + SubBlockSize,
> > + NULL
> > );
> > if (!EFI_ERROR (Status)) {
> > Found = EFI_SUCCESS;
> > }
> > }
> > }
> >
> > FreePool (VolDescriptor);
> >
> > return Found;
> > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c
> > b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c
> > index 2cd3e15..fe26a64 100644
> > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c
> > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c
> > @@ -6,20 +6,21 @@
> > This driver will have external input - disk partition.
> > This external input must be validated carefully to avoid security issue like
> > buffer overflow, integer overflow.
> >
> > PartitionInstallGptChildHandles() routine will read disk partition content and
> > do basic validation before PartitionInstallChildHandle().
> >
> > PartitionValidGptTable(), PartitionCheckGptEntry() routine will accept disk
> > partition content and validate the GPT table and GPT entry.
> >
> > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc.
> > Copyright (c) 2006 - 2017, 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.
> >
> > **/
> > @@ -412,21 +413,22 @@ PartitionInstallGptChildHandles (
> > Handle,
> > DiskIo,
> > DiskIo2,
> > BlockIo,
> > BlockIo2,
> > DevicePath,
> > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev,
> > &PartitionInfo,
> > Entry->StartingLBA,
> > Entry->EndingLBA,
> > - BlockSize
> > + BlockSize,
> > + &Entry->PartitionTypeGUID
> > );
> > }
> >
> > DEBUG ((EFI_D_INFO, "Prepare to Free Pool\n"));
> >
> > Done:
> > if (ProtectiveMbr != NULL) {
> > FreePool (ProtectiveMbr);
> > }
> > if (PrimaryHeader != NULL) {
> > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c
> > b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c
> > index 55e9d26..479745b 100644
> > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c
> > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c
> > @@ -4,20 +4,21 @@
> > MBR - Master Boot Record is in the first sector of a partitioned hard disk.
> > The MBR supports four partitions per disk. The MBR also contains
> legacy
> > code that is not run on an EFI system. The legacy code reads the
> > first sector of the active partition into memory and
> >
> > BPB - BIOS Parameter Block is in the first sector of a FAT file system.
> > The BPB contains information about the FAT file system. The BPB is
> > always on the first sector of a media. The first sector also contains
> > the legacy boot strap code.
> >
> > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc.
> > Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
> > Copyright (c) 2006 - 2017, 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.
> >
> > @@ -239,21 +240,22 @@ PartitionInstallMbrChildHandles (
> > Handle,
> > DiskIo,
> > DiskIo2,
> > BlockIo,
> > BlockIo2,
> > DevicePath,
> > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev,
> > &PartitionInfo,
> > HdDev.PartitionStart,
> > HdDev.PartitionStart + HdDev.PartitionSize - 1,
> > - MBR_SIZE
> > + MBR_SIZE,
> > + ((Mbr->Partition[Index].OSIndicator == EFI_PARTITION) ?
> > &gEfiPartTypeSystemPartGuid: NULL)
> > );
> >
> > if (!EFI_ERROR (Status)) {
> > Found = EFI_SUCCESS;
> > }
> > }
> > } else {
> > //
> > // It's an extended partition. Follow the extended partition
> > // chain to get all the logical drives
> > @@ -310,21 +312,22 @@ PartitionInstallMbrChildHandles (
> > Handle,
> > DiskIo,
> > DiskIo2,
> > BlockIo,
> > BlockIo2,
> > DevicePath,
> > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev,
> > &PartitionInfo,
> > HdDev.PartitionStart - ParentHdDev.PartitionStart,
> > HdDev.PartitionStart - ParentHdDev.PartitionStart +
> > HdDev.PartitionSize - 1,
> > - MBR_SIZE
> > + MBR_SIZE,
> > + ((Mbr->Partition[0].OSIndicator == EFI_PARTITION) ?
> > &gEfiPartTypeSystemPartGuid: NULL)
> > );
> > if (!EFI_ERROR (Status)) {
> > Found = EFI_SUCCESS;
> > }
> >
> > if ((Mbr->Partition[1].OSIndicator != EXTENDED_DOS_PARTITION) &&
> > (Mbr->Partition[1].OSIndicator != EXTENDED_WINDOWS_PARTITION)
> > ) {
> > break;
> > }
> > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
> > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
> > index 46c0877..71acdcc 100644
> > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
> > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
> > @@ -1,16 +1,17 @@
> > /** @file
> > Partition driver that produces logical BlockIo devices from a physical
> > BlockIo device. The logical BlockIo devices are based on the format
> > of the raw block devices media. Currently "El Torito CD-ROM", UDF, Legacy
> > MBR, and GPT partition schemes are supported.
> >
> > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc.
> > Copyright (c) 2006 - 2018, 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.
> >
> > **/
> > @@ -394,20 +395,21 @@ PartitionDriverBindingStop (
> > IN EFI_HANDLE *ChildHandleBuffer
> > )
> > {
> > EFI_STATUS Status;
> > UINTN Index;
> > EFI_BLOCK_IO_PROTOCOL *BlockIo;
> > EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
> > BOOLEAN AllChildrenStopped;
> > PARTITION_PRIVATE_DATA *Private;
> > EFI_DISK_IO_PROTOCOL *DiskIo;
> > + EFI_GUID *TypeGuid;
> >
> > BlockIo = NULL;
> > BlockIo2 = NULL;
> > Private = NULL;
> >
> > if (NumberOfChildren == 0) {
> > //
> > // In the case of re-entry of the PartitionDriverBindingStop, the
> > // NumberOfChildren may not reflect the actual number of children on the
> > // bus driver. Hence, additional check is needed here.
> > @@ -486,20 +488,27 @@ PartitionDriverBindingStop (
> > } else {
> > Status = EFI_SUCCESS;
> > }
> >
> > gBS->CloseProtocol (
> > ControllerHandle,
> > &gEfiDiskIoProtocolGuid,
> > This->DriverBindingHandle,
> > ChildHandleBuffer[Index]
> > );
> > +
> > + if (IsZeroGuid (&Private->TypeGuid)) {
> > + TypeGuid = NULL;
> > + } else {
> > + TypeGuid = &Private->TypeGuid;
> > + }
> > +
> > //
> > // All Software protocols have be freed from the handle so remove it.
> > // Remove the BlockIo Protocol if has.
> > // Remove the BlockIo2 Protocol if has.
> > //
> > if (BlockIo2 != NULL) {
> > //
> > // Some device drivers might re-install the BlockIO(2) protocols for a
> > // media change condition. Therefore, if the FlushBlocksEx returned with
> > // EFI_MEDIA_CHANGED, just let the BindingStop fail to avoid potential
> > @@ -509,35 +518,35 @@ PartitionDriverBindingStop (
> > Status = gBS->UninstallMultipleProtocolInterfaces (
> > ChildHandleBuffer[Index],
> > &gEfiDevicePathProtocolGuid,
> > Private->DevicePath,
> > &gEfiBlockIoProtocolGuid,
> > &Private->BlockIo,
> > &gEfiBlockIo2ProtocolGuid,
> > &Private->BlockIo2,
> > &gEfiPartitionInfoProtocolGuid,
> > &Private->PartitionInfo,
> > - Private->EspGuid,
> > + TypeGuid,
> > NULL,
> > NULL
> > );
> > }
> > } else {
> > Status = gBS->UninstallMultipleProtocolInterfaces (
> > ChildHandleBuffer[Index],
> > &gEfiDevicePathProtocolGuid,
> > Private->DevicePath,
> > &gEfiBlockIoProtocolGuid,
> > &Private->BlockIo,
> > &gEfiPartitionInfoProtocolGuid,
> > &Private->PartitionInfo,
> > - Private->EspGuid,
> > + TypeGuid,
> > NULL,
> > NULL
> > );
> > }
> >
> > if (EFI_ERROR (Status)) {
> > Private->InStop = FALSE;
> > gBS->OpenProtocol (
> > ControllerHandle,
> > &gEfiDiskIoProtocolGuid,
> > @@ -1097,39 +1106,41 @@ PartitionFlushBlocksEx (
> > @param[in] ParentDiskIo Parent DiskIo interface.
> > @param[in] ParentDiskIo2 Parent DiskIo2 interface.
> > @param[in] ParentBlockIo Parent BlockIo interface.
> > @param[in] ParentBlockIo2 Parent BlockIo2 interface.
> > @param[in] ParentDevicePath Parent Device Path.
> > @param[in] DevicePathNode Child Device Path node.
> > @param[in] PartitionInfo Child Partition Information interface.
> > @param[in] Start Start Block.
> > @param[in] End End Block.
> > @param[in] BlockSize Child block size.
> > + @param[in] TypeGuid Partition GUID Type.
> >
> > @retval EFI_SUCCESS A child handle was added.
> > @retval other A child handle was not added.
> >
> > **/
> > EFI_STATUS
> > PartitionInstallChildHandle (
> > IN EFI_DRIVER_BINDING_PROTOCOL *This,
> > IN EFI_HANDLE ParentHandle,
> > IN EFI_DISK_IO_PROTOCOL *ParentDiskIo,
> > IN EFI_DISK_IO2_PROTOCOL *ParentDiskIo2,
> > IN EFI_BLOCK_IO_PROTOCOL *ParentBlockIo,
> > IN EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2,
> > IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
> > IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode,
> > IN EFI_PARTITION_INFO_PROTOCOL *PartitionInfo,
> > IN EFI_LBA Start,
> > IN EFI_LBA End,
> > - IN UINT32 BlockSize
> > + IN UINT32 BlockSize,
> > + IN EFI_GUID *TypeGuid
> > )
> > {
> > EFI_STATUS Status;
> > PARTITION_PRIVATE_DATA *Private;
> >
> > Status = EFI_SUCCESS;
> > Private = AllocateZeroPool (sizeof (PARTITION_PRIVATE_DATA));
> > if (Private == NULL) {
> > return EFI_OUT_OF_RESOURCES;
> > }
> > @@ -1209,58 +1220,55 @@ PartitionInstallChildHandle (
> > if (Private->DevicePath == NULL) {
> > FreePool (Private);
> > return EFI_OUT_OF_RESOURCES;
> > }
> >
> > //
> > // Set the PartitionInfo into Private Data.
> > //
> > CopyMem (&Private->PartitionInfo, PartitionInfo, sizeof
> > (EFI_PARTITION_INFO_PROTOCOL));
> >
> > - if (PartitionInfo->System == 1) {
> > - Private->EspGuid = &gEfiPartTypeSystemPartGuid;
> > + if (TypeGuid != NULL) {
> > + CopyGuid(&(Private->TypeGuid), TypeGuid);
> > } else {
> > - //
> > - // If NULL InstallMultipleProtocolInterfaces will ignore it.
> > - //
> > - Private->EspGuid = NULL;
> > + ZeroMem ((VOID *)&(Private->TypeGuid), sizeof (EFI_GUID));
> > }
> >
> > //
> > // Create the new handle.
> > //
> > Private->Handle = NULL;
> > if (Private->DiskIo2 != NULL) {
> > Status = gBS->InstallMultipleProtocolInterfaces (
> > &Private->Handle,
> > &gEfiDevicePathProtocolGuid,
> > Private->DevicePath,
> > &gEfiBlockIoProtocolGuid,
> > &Private->BlockIo,
> > &gEfiBlockIo2ProtocolGuid,
> > &Private->BlockIo2,
> > &gEfiPartitionInfoProtocolGuid,
> > &Private->PartitionInfo,
> > - Private->EspGuid,
> > + TypeGuid,
> > NULL,
> > NULL
> > );
> > } else {
> > Status = gBS->InstallMultipleProtocolInterfaces (
> > &Private->Handle,
> > &gEfiDevicePathProtocolGuid,
> > Private->DevicePath,
> > &gEfiBlockIoProtocolGuid,
> > &Private->BlockIo,
> > &gEfiPartitionInfoProtocolGuid,
> > &Private->PartitionInfo,
> > - Private->EspGuid,
> > + TypeGuid,
> > NULL,
> > NULL
> > );
> > }
> >
> > if (!EFI_ERROR (Status)) {
> > //
> > // Open the Parent Handle for the child
> > //
> > Status = gBS->OpenProtocol (
> > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
> > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
> > index c763c67..f1a0520 100644
> > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
> > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
> > @@ -1,16 +1,17 @@
> > /** @file
> > Partition driver that produces logical BlockIo devices from a physical
> > BlockIo device. The logical BlockIo devices are based on the format
> > of the raw block devices media. Currently "El Torito CD-ROM", UDF, Legacy
> > MBR, and GPT partition schemes are supported.
> >
> > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc.
> > Copyright (c) 2006 - 2017, 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.
> >
> > **/
> > @@ -58,21 +59,21 @@ typedef struct {
> >
> > EFI_DISK_IO_PROTOCOL *DiskIo;
> > EFI_DISK_IO2_PROTOCOL *DiskIo2;
> > EFI_BLOCK_IO_PROTOCOL *ParentBlockIo;
> > EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2;
> > UINT64 Start;
> > UINT64 End;
> > UINT32 BlockSize;
> > BOOLEAN InStop;
> >
> > - EFI_GUID *EspGuid;
> > + EFI_GUID TypeGuid;
> >
> > } PARTITION_PRIVATE_DATA;
> >
> > typedef struct {
> > EFI_DISK_IO2_TOKEN DiskIo2Token;
> > EFI_BLOCK_IO2_TOKEN *BlockIo2Token;
> > } PARTITION_ACCESS_TASK;
> >
> > #define PARTITION_DEVICE_FROM_BLOCK_IO_THIS(a) CR (a,
> > PARTITION_PRIVATE_DATA, BlockIo,
> > PARTITION_PRIVATE_DATA_SIGNATURE)
> > #define PARTITION_DEVICE_FROM_BLOCK_IO2_THIS(a) CR (a,
> > PARTITION_PRIVATE_DATA, BlockIo2,
> > PARTITION_PRIVATE_DATA_SIGNATURE)
> > @@ -320,39 +321,41 @@ PartitionComponentNameGetControllerName (
> > @param[in] ParentDiskIo Parent DiskIo interface.
> > @param[in] ParentDiskIo2 Parent DiskIo2 interface.
> > @param[in] ParentBlockIo Parent BlockIo interface.
> > @param[in] ParentBlockIo2 Parent BlockIo2 interface.
> > @param[in] ParentDevicePath Parent Device Path.
> > @param[in] DevicePathNode Child Device Path node.
> > @param[in] PartitionInfo Child Partition Information interface.
> > @param[in] Start Start Block.
> > @param[in] End End Block.
> > @param[in] BlockSize Child block size.
> > + @param[in] TypeGuid Parition Type Guid.
> >
> > @retval EFI_SUCCESS A child handle was added.
> > @retval other A child handle was not added.
> >
> > **/
> > EFI_STATUS
> > PartitionInstallChildHandle (
> > IN EFI_DRIVER_BINDING_PROTOCOL *This,
> > IN EFI_HANDLE ParentHandle,
> > IN EFI_DISK_IO_PROTOCOL *ParentDiskIo,
> > IN EFI_DISK_IO2_PROTOCOL *ParentDiskIo2,
> > IN EFI_BLOCK_IO_PROTOCOL *ParentBlockIo,
> > IN EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2,
> > IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
> > IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode,
> > IN EFI_PARTITION_INFO_PROTOCOL *PartitionInfo,
> > IN EFI_LBA Start,
> > IN EFI_LBA End,
> > - IN UINT32 BlockSize
> > + IN UINT32 BlockSize,
> > + IN EFI_GUID *TypeGuid
> > );
> >
> > /**
> > Test to see if there is any child on ControllerHandle.
> >
> > @param[in] ControllerHandle Handle of device to test.
> >
> > @retval TRUE There are children on the ControllerHandle.
> > @retval FALSE No child is on the ControllerHandle.
> >
> > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
> > b/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
> > index 5aac564..83bd174 100644
> > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
> > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
> > @@ -1,13 +1,14 @@
> > /** @file
> > Scan for an UDF file system on a formatted media.
> >
> > + Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc.
> > 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.
> > **/
> > @@ -746,18 +747,19 @@ PartitionInstallUdfChildHandles (
> > Handle,
> > DiskIo,
> > DiskIo2,
> > BlockIo,
> > BlockIo2,
> > DevicePath,
> > (EFI_DEVICE_PATH_PROTOCOL *)&gUdfDevicePath,
> > &PartitionInfo,
> > StartingLBA,
> > EndingLBA,
> > - Media->BlockSize
> > + Media->BlockSize,
> > + NULL
> > );
> > if (EFI_ERROR (Status)) {
> > return (ChildCreated ? EFI_SUCCESS : Status);
> > }
> >
> > return EFI_SUCCESS;
> > }
> > --
> > 1.9.1
> >
> > _______________________________________________
> > 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
prev parent reply other threads:[~2018-03-29 5:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-26 8:57 [PATCH] MdeModulePkg/PartitionDxe: Add partition type guid to installed handle jbrasen.qdt
2018-03-27 3:02 ` Wu, Hao A
2018-03-29 2:34 ` Ni, Ruiyu
2018-03-29 5:09 ` Wu, Hao A [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=B80AF82E9BFB8E4FBD8C89DA810C6A0931D6CFDE@SHSMSX104.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox