> On Sep 15, 2021, at 6:26 PM, gaoliming <gaolim...@byosoft.com.cn> wrote: > > Ray: > SortLib has been added since 2015. I would suggest to still keep this > library class. To resolve the package dependency, my proposal is to move the > library class header file SortLib.h from MdeModulePkg to MdePkg, and still > keep the library instance in MdeModulePkg. This proposal has no impact on the > existing platform. >
If we add QuickSort() API to the BaseLib can we not just port the existing MdeModulePkg/SortLib to use QuickSort() in the implementation? Or is there some other way to add the new thing in a backward compatible way. Thanks, Andrew Fish > Thanks > Liming > 发件人: devel@edk2.groups.io <mailto:devel@edk2.groups.io> <devel@edk2.groups.io > <mailto:devel@edk2.groups.io>> 代表 Ni, Ray > 发送时间: 2021年9月14日 14:15 > 收件人: Kinney, Michael D <michael.d.kin...@intel.com > <mailto:michael.d.kin...@intel.com>>; Gao, Liming <liming....@intel.com > <mailto:liming....@intel.com>>; Liu, Zhiguang <zhiguang....@intel.com > <mailto:zhiguang....@intel.com>>; Wang, Jian J <jian.j.w...@intel.com > <mailto:jian.j.w...@intel.com>>; Gao, Zhichao <zhichao....@intel.com > <mailto:zhichao....@intel.com>> > 抄送: devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Chan, Amy > <amy.c...@intel.com <mailto:amy.c...@intel.com>> > 主题: [edk2-devel] RFC: Add BaseLib/QuickSort in MdePkg > > Hi package maintainers of MdePkg, MdeModulePkg and ShellPkg, community, > > A commit (UefiCpuPkg/CpuCacheInfoLib: Sort CpuCacheInfo array > <https://github.com/tianocore/edk2/commit/4de77ae9890d241271f543e9195ab3516f3abec6>) > to UefiCpuPkg let > UefiCpuPkg depend on MdeModulePkg because the SortLib class and instances are > all in MdeModulePkg. > > UefiCpuPkg depending on MdeModulePkg breaks the rule that “UefiCpuPkg should > ONLY depend on MdePkg”. > > To address this issue, there are two approaches: > Duplicate the sort logic in UefiCpuPkg to not depend on MdeModulePkg/SortLib > Add QuickSort() API to BaseLib in MdePkg. > > Approach #2 (MdePkg/BaseLib/QuickSort) makes more sense because quick sort is > a standard algorithm. > We encourage consumers to update their code to use the quick sort in MdePkg > and gradually deprecate today’s MdeModulePkg/SortLib. > > If you don’t have concerns, I plan to: > “Add QuickSort() to BaseLib” and update all existing consumers to use this > API instead. > VOID > EFIAPI > QuickSort ( > IN OUT VOID *BufferToSort, > IN CONST UINTN Count, > IN CONST UINTN ElementSize, > IN SORT_COMPARE CompareFunction > ); > > “Add new ShellPkg/SortCompareLib” > Background: ShellPkg requires to sort devicepath/string so 3 APIs in > UefiSortLib (DevicePathCompare, StringNoCaseCompare, StringCompare) are > provided for Shell usage. we can move the 3 APIs to the SortCompareLib and > update Shell code to use BaseLib/QuickSort directly, with the sort compare > function from SortCompareLib. > > Any concerns? > > Thanks, > Ray > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#80745): https://edk2.groups.io/g/devel/message/80745 Mute This Topic: https://groups.io/mt/85643723/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-