From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.136; helo=mga12.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D158D224DD13F for ; Wed, 28 Mar 2018 22:03:03 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Mar 2018 22:09:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,375,1517904000"; d="scan'208";a="27904469" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga007.fm.intel.com with ESMTP; 28 Mar 2018 22:09:42 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 28 Mar 2018 22:09:42 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.226]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.129]) with mapi id 14.03.0319.002; Thu, 29 Mar 2018 13:09:40 +0800 From: "Wu, Hao A" To: "Ni, Ruiyu" , "jbrasen.qdt@qualcommdatacenter.com" , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH] MdeModulePkg/PartitionDxe: Add partition type guid to installed handle Thread-Index: AQHTxOEG5eXWWt1jJE6dKs1KP8DRvqPl/O+AgACxgcA= Date: Thu, 29 Mar 2018 05:09:39 +0000 Message-ID: References: <734D49CCEBEEF84792F5B80ED585239D5BC14DB1@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5BC14DB1@SHSMSX104.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/PartitionDxe: Add partition type guid to installed handle X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Mar 2018 05:03:04 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 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 >=20 > Reviewed-by: Ruiyu Ni >=20 > Thanks/Ray >=20 > > -----Original Message----- > > From: edk2-devel 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 > > > > 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 > > --- > > .../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.
> > 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 =3D 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 is= sue like > > buffer overflow, integer overflow. > > > > PartitionInstallGptChildHandles() routine will read disk partition c= ontent and > > do basic validation before PartitionInstallChildHandle(). > > > > PartitionValidGptTable(), PartitionCheckGptEntry() routine will acce= pt 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.
> > 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 !=3D NULL) { > > FreePool (ProtectiveMbr); > > } > > if (PrimaryHeader !=3D 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 har= d disk. > > The MBR supports four partitions per disk. The MBR also contai= ns > legacy > > code that is not run on an EFI system. The legacy code reads t= he > > first sector of the active partition into memory and > > > > BPB - BIOS Parameter Block is in the first sector of a FAT file syst= em. > > The BPB contains information about the FAT file system. The BP= B is > > always on the first sector of a media. The first sector also c= ontains > > the legacy boot strap code. > > > > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > > Copyright (c) 2014, Hewlett-Packard Development Company, L.P.
> > Copyright (c) 2006 - 2017, 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. > > > > @@ -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 =3D=3D EFI_PARTITI= ON) ? > > &gEfiPartTypeSystemPartGuid: NULL) > > ); > > > > if (!EFI_ERROR (Status)) { > > Found =3D 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 =3D=3D EFI_PARTITION)= ? > > &gEfiPartTypeSystemPartGuid: NULL) > > ); > > if (!EFI_ERROR (Status)) { > > Found =3D EFI_SUCCESS; > > } > > > > if ((Mbr->Partition[1].OSIndicator !=3D EXTENDED_DOS_PARTITION) = && > > (Mbr->Partition[1].OSIndicator !=3D EXTENDED_WINDOWS_PARTITI= ON) > > ) { > > 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 physic= al > > BlockIo device. The logical BlockIo devices are based on the format > > of the raw block devices media. Currently "El Torito CD-ROM", UDF, L= egacy > > MBR, and GPT partition schemes are supported. > > > > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > > Copyright (c) 2006 - 2018, 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. > > > > **/ > > @@ -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 =3D NULL; > > BlockIo2 =3D NULL; > > Private =3D NULL; > > > > if (NumberOfChildren =3D=3D 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 =3D EFI_SUCCESS; > > } > > > > gBS->CloseProtocol ( > > ControllerHandle, > > &gEfiDiskIoProtocolGuid, > > This->DriverBindingHandle, > > ChildHandleBuffer[Index] > > ); > > + > > + if (IsZeroGuid (&Private->TypeGuid)) { > > + TypeGuid =3D NULL; > > + } else { > > + TypeGuid =3D &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 !=3D NULL) { > > // > > // Some device drivers might re-install the BlockIO(2) protocols= for a > > // media change condition. Therefore, if the FlushBlocksEx retur= ned with > > // EFI_MEDIA_CHANGED, just let the BindingStop fail to avoid pot= ential > > @@ -509,35 +518,35 @@ PartitionDriverBindingStop ( > > Status =3D gBS->UninstallMultipleProtocolInterfaces ( > > ChildHandleBuffer[Index], > > &gEfiDevicePathProtocolGuid, > > Private->DevicePath, > > &gEfiBlockIoProtocolGuid, > > &Private->BlockIo, > > &gEfiBlockIo2ProtocolGuid, > > &Private->BlockIo2, > > &gEfiPartitionInfoProtocolGuid, > > &Private->PartitionInfo, > > - Private->EspGuid, > > + TypeGuid, > > NULL, > > NULL > > ); > > } > > } else { > > Status =3D gBS->UninstallMultipleProtocolInterfaces ( > > ChildHandleBuffer[Index], > > &gEfiDevicePathProtocolGuid, > > Private->DevicePath, > > &gEfiBlockIoProtocolGuid, > > &Private->BlockIo, > > &gEfiPartitionInfoProtocolGuid, > > &Private->PartitionInfo, > > - Private->EspGuid, > > + TypeGuid, > > NULL, > > NULL > > ); > > } > > > > if (EFI_ERROR (Status)) { > > Private->InStop =3D 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 =3D EFI_SUCCESS; > > Private =3D AllocateZeroPool (sizeof (PARTITION_PRIVATE_DATA)); > > if (Private =3D=3D NULL) { > > return EFI_OUT_OF_RESOURCES; > > } > > @@ -1209,58 +1220,55 @@ PartitionInstallChildHandle ( > > if (Private->DevicePath =3D=3D 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 =3D=3D 1) { > > - Private->EspGuid =3D &gEfiPartTypeSystemPartGuid; > > + if (TypeGuid !=3D NULL) { > > + CopyGuid(&(Private->TypeGuid), TypeGuid); > > } else { > > - // > > - // If NULL InstallMultipleProtocolInterfaces will ignore it. > > - // > > - Private->EspGuid =3D NULL; > > + ZeroMem ((VOID *)&(Private->TypeGuid), sizeof (EFI_GUID)); > > } > > > > // > > // Create the new handle. > > // > > Private->Handle =3D NULL; > > if (Private->DiskIo2 !=3D NULL) { > > Status =3D gBS->InstallMultipleProtocolInterfaces ( > > &Private->Handle, > > &gEfiDevicePathProtocolGuid, > > Private->DevicePath, > > &gEfiBlockIoProtocolGuid, > > &Private->BlockIo, > > &gEfiBlockIo2ProtocolGuid, > > &Private->BlockIo2, > > &gEfiPartitionInfoProtocolGuid, > > &Private->PartitionInfo, > > - Private->EspGuid, > > + TypeGuid, > > NULL, > > NULL > > ); > > } else { > > Status =3D 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 =3D 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 physic= al > > BlockIo device. The logical BlockIo devices are based on the format > > of the raw block devices media. Currently "El Torito CD-ROM", UDF, L= egacy > > MBR, and GPT partition schemes are supported. > > > > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > > Copyright (c) 2006 - 2017, 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. > > > > **/ > > @@ -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 Controller= Handle. > > @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 > > > > 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