From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web12.6157.1576826189269806512 for ; Thu, 19 Dec 2019 23:16:29 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: ray.ni@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Dec 2019 23:16:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,334,1571727600"; d="scan'208";a="366319121" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga004.jf.intel.com with ESMTP; 19 Dec 2019 23:16:28 -0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 19 Dec 2019 23:16:28 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.90]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.222]) with mapi id 14.03.0439.000; Fri, 20 Dec 2019 15:16:26 +0800 From: "Ni, Ray" To: "Gao, Zhichao" , "devel@edk2.groups.io" CC: "Kinney, Michael D" , "Gao, Liming" , Vitaly Cheptsov Subject: Re: [edk2-devel] [PATCH V3 0/2] *MdePkg/UefiDevicePathLib: Separate the lib instances Thread-Topic: [edk2-devel] [PATCH V3 0/2] *MdePkg/UefiDevicePathLib: Separate the lib instances Thread-Index: AQHVtUhaZqQss9EcQUyyXiVe/Bzo16fCh0NQ//9+ZYCAAImIgP//gPYAgACOtuA= Date: Fri, 20 Dec 2019 07:16:25 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C3A41D7@SHSMSX104.ccr.corp.intel.com> References: <20191218021036.23072-1-zhichao.gao@intel.com> <734D49CCEBEEF84792F5B80ED585239D5C3A3F54@SHSMSX104.ccr.corp.intel.com> <3CE959C139B4C44DBEA1810E3AA6F9000B8A4289@SHSMSX101.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C3A3FCD@SHSMSX104.ccr.corp.intel.com> <3CE959C139B4C44DBEA1810E3AA6F9000B8A4323@SHSMSX101.ccr.corp.intel.com> In-Reply-To: <3CE959C139B4C44DBEA1810E3AA6F9000B8A4323@SHSMSX101.ccr.corp.intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Zhichao, I prefer to have one patch serial which include: 1. Adds new mandatory instance 2. Update consumers to use the new instance 2. Removes the old mandatory instance Otherwise, adding a new mandatory instance introduces more code duplication IMO. Thanks, Ray > -----Original Message----- > From: Gao, Zhichao > Sent: Friday, December 20, 2019 2:41 PM > To: Ni, Ray ; devel@edk2.groups.io > Cc: Kinney, Michael D ; Gao, Liming > ; Vitaly Cheptsov > Subject: RE: [edk2-devel] [PATCH V3 0/2] *MdePkg/UefiDevicePathLib: > Separate the lib instances >=20 > For open source, it would impact fsp2 package, ovmf package and some > open platform packages. Not sure for others. > I didn't plan the removal of UefiDevicePathLibDevicePathProtocol yet. >=20 > Thanks, > Zhichao > > -----Original Message----- > > From: Ni, Ray > > Sent: Friday, December 20, 2019 2:20 PM > > To: Gao, Zhichao ; devel@edk2.groups.io > > Cc: Kinney, Michael D ; Gao, Liming > > ; Vitaly Cheptsov > > Subject: RE: [edk2-devel] [PATCH V3 0/2] *MdePkg/UefiDevicePathLib: > Separate > > the lib instances > > > > Removing code duplication is great. > > > > But your patch introduces more code duplication: the mandatory one in > > UefiDevicePathLib directory and the other one in > > UefiDevicePathLibDevicePathProtocol directory. > > > > Do you have a plan to remove the one in > UefiDevicePathLibDevicePathProtocol > > directory? > > Have you evaluated the impact to consumers of removing that one? > > > > Thanks, > > Ray > > > > > -----Original Message----- > > > From: Gao, Zhichao > > > Sent: Friday, December 20, 2019 2:03 PM > > > To: Ni, Ray ; devel@edk2.groups.io > > > Cc: Kinney, Michael D ; Gao, Liming > > > ; Vitaly Cheptsov > > > Subject: RE: [edk2-devel] [PATCH V3 0/2] *MdePkg/UefiDevicePathLib: > > > Separate the lib instances > > > > > > Ray, > > > > > > I knew there is one in MdePkg. But it has duplicate code with > > > UefiDevicePathLib. That is why I add the Mandatory one. > > > And it is recommended to use the one in UefiDevicePathLib path. > > > > > > Thanks, > > > Zhichao > > > > > > > -----Original Message----- > > > > From: Ni, Ray > > > > Sent: Friday, December 20, 2019 1:50 PM > > > > To: devel@edk2.groups.io; Gao, Zhichao > > > > Cc: Kinney, Michael D ; Gao, Liming > > > > ; Vitaly Cheptsov > > > > Subject: RE: [edk2-devel] [PATCH V3 0/2] *MdePkg/UefiDevicePathLib= : > > > Separate > > > > the lib instances > > > > > > > > Zhichao, > > > > \MdePkg\Library\UefiDevicePathLibDevicePathProtocol\ contains the > > > version > > > > that hard-depends on the protocol. > > > > I don't think you need to add another version. > > > > > > > > Thanks, > > > > Ray > > > > > > > > > -----Original Message----- > > > > > From: devel@edk2.groups.io On Behalf Of > > > > > Gao, Zhichao > > > > > Sent: Wednesday, December 18, 2019 10:11 AM > > > > > To: devel@edk2.groups.io > > > > > Cc: Kinney, Michael D ; Gao, Liming > > > > > ; Vitaly Cheptsov > > > > > Subject: [edk2-devel] [PATCH V3 0/2] *MdePkg/UefiDevicePathLib: > > > > > Separate the lib instances > > > > > > > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2298 > > > > > > > > > > The UefiDevicePathLibOptionalDevicePathProtocolConstructor's > > > > > implementation > > > > > isn't match with its instance name. > > > > > Remove the ASSERT and depex of the > > > gEfiDevicePathUtilitiesProtocolGuid > > > > > because of "Optional". > > > > > > > > > > Add a mandatory instance to force using the DevicePathUtilities, > > > > > DevicePathToText and DevicePathFromText protocol with the ASSERT > > > and > > > > > depex. > > > > > > > > > > V2: > > > > > The optional lib instance's construction should return success a= ll > > > > > the time. > > > > > Change the desciption of the optional lib uni file. > > > > > Change the copyright date of the mandatory one's uni file. > > > > > > > > > > V3: > > > > > Remove the Status variable in > > > > > UefiDevicePathLibOptionalDevicePathProtocolConstructor. > > > > > The Status would cause GCC build fail because the variable is > > > > > initialized but not used. > > > > > Since it is useless for the constructor, directly remove it. > > > > > > > > > > Cc: Michael D Kinney > > > > > Cc: Liming Gao > > > > > Cc: Vitaly Cheptsov > > > > > Signed-off-by: Zhichao Gao > > > > > > > > > > Zhichao Gao (2): > > > > > MdePkg/UefiDevicePathLib: Separate the device path lib > > > > > MdePkg/dsc: Add UefiDevicePathLibMandatoryDevicePathProtocol > for > > > > > build > > > > > > > > > > ...DevicePathLibMandatoryDevicePathProtocol.c | 469 > > > > > ++++++++++++++++++ > > > > > ...vicePathLibMandatoryDevicePathProtocol.inf | 86 ++++ > > > > > ...vicePathLibMandatoryDevicePathProtocol.uni | 18 + > > > > > ...iDevicePathLibOptionalDevicePathProtocol.c | 21 +- > > > > > ...evicePathLibOptionalDevicePathProtocol.inf | 5 +- > > > > > ...evicePathLibOptionalDevicePathProtocol.uni | 6 +- > > > > > MdePkg/MdePkg.dsc | 3 +- > > > > > 7 files changed, 587 insertions(+), 21 deletions(-) create mod= e > > > > > 100644 > > > > > > > > > MdePkg/Library/UefiDevicePathLib/UefiDevicePathLibMandatoryDevicePat > > > > > hProtocol.c > > > > > create mode 100644 > > > > > > > > > MdePkg/Library/UefiDevicePathLib/UefiDevicePathLibMandatoryDevicePat > > > > > hProtocol.inf > > > > > create mode 100644 > > > > > > > > > MdePkg/Library/UefiDevicePathLib/UefiDevicePathLibMandatoryDevicePat > > > > > hProtocol.uni > > > > > > > > > > -- > > > > > 2.21.0.windows.1 > > > > > > > > > > > > > > >=20