From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web12.18569.1634437399142629627 for ; Sat, 16 Oct 2021 19:23:19 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=q1aRu0uh; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10139"; a="228034484" X-IronPort-AV: E=Sophos;i="5.85,379,1624345200"; d="scan'208";a="228034484" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2021 19:23:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,379,1624345200"; d="scan'208";a="488849409" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga007.fm.intel.com with ESMTP; 16 Oct 2021 19:23:17 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Sat, 16 Oct 2021 19:23:17 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Sat, 16 Oct 2021 19:23:17 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Sat, 16 Oct 2021 19:23:17 -0700 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.44) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Sat, 16 Oct 2021 19:23:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S0lCu2GhHktomYiAFyHDSXPzeeWpRehkLxfFtnQWRfRDdQgq2o+p/gjG3KeYKeZ0PwPOrVOC8+MF0QatCf9xvPUH+fc2nj19e/xsZ25Breb7nHkpr+kiwtA2tc2OrEePo4LUlxRY+gRchuMF/gJycumdaMwmIx+42IIl/2VenjUsFGIkPO6fdGqlntjjVbKZBW17oZSKRPJTCCmkLtqEZxI7Z2jSVVDN2hqfeqZ/QYYVNs+zwlCJ9CBnoxF1TJp9l7TTn5mhjq80FUnzlWs/iuubsPisNbuTy9mmQEmHckEDfXfAeQ39GgD4EYDl1ShC9a+ZmaaPsUA90fQ9+rv5Pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nOlQQTBQ+Uq9c5ZezFE3IP3q3Hbr6XyElbPL/OQCz3E=; b=ddT0QOiodWfrW55VHH7U+ecG+1zzDwSFuOO8E6qJYPS1NR97j/JFvSTin3K7srlIG+lIfb2lTutw9IheRx10jyt8ZkGY9QkcxZmfed2kognoW368ikQqwzrVPPEhz1L5GhupSO7XF0x655qkM61A+h/Usp9wY7vk5jJZrZ4MKt6ty0jtMC+YZ0LT1UL1gkfYeD3rPGKtIWrOEhzFoJEECQ9JxcMbZwuF11oWz5MO55rZAgQgl4GFmaXeSHQXhUZ9pKBre5r1YVXXtLWYjXf39cTy0HpeEpeox+pO14Kz0LcdNqHJO4pJMNurZff82ENDlo/jirzXYTeiohtAYrmNyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nOlQQTBQ+Uq9c5ZezFE3IP3q3Hbr6XyElbPL/OQCz3E=; b=q1aRu0uhHsQLFY23C8n/ZGWCRrQNUmgSVfQTzfdI+tN3Kb7RZMKJ1xeV0TmnUmOTplNRqnhBpEPM6sq/63+yeJY92114Iz6I1UXAqnoTnNn1VNeti47EudpZHq7MTHmps1jPc98Jk63NtGfhXZUkw9O4ZdwUapLoNoq8BaXBr1s= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB5902.namprd11.prod.outlook.com (2603:10b6:510:14d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.17; Sun, 17 Oct 2021 02:23:15 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::c5cb:e37a:9f3:8f80]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::c5cb:e37a:9f3:8f80%6]) with mapi id 15.20.4608.018; Sun, 17 Oct 2021 02:23:15 +0000 From: "Yao, Jiewen" To: "Kuo, IanX" , "devel@edk2.groups.io" CC: "Chan, Amy" , "Ni, Ray" , "Wang, Jian J" , "Lu, XiaoyuX" , "Jiang, Guomin" Subject: Re: [PATCH v3 2/3] CryptoPkg/CryptLib: Add QuickSort function on BaseLib Thread-Topic: [PATCH v3 2/3] CryptoPkg/CryptLib: Add QuickSort function on BaseLib Thread-Index: AQHXwt35fTOXc5ACmkyAeBWY2SRLMavWdhfg Date: Sun, 17 Oct 2021 02:23:15 +0000 Message-ID: References: <20211016223406.935-1-ianx.kuo@intel.com> <20211016223406.935-3-ianx.kuo@intel.com> In-Reply-To: <20211016223406.935-3-ianx.kuo@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 07316e9e-9e6f-4470-556c-08d99115137e x-ms-traffictypediagnostic: PH0PR11MB5902: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3513; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6Stuv4mOcxXd9Od7ESdVpJyAJZxsOOEU4bm26ONnNzvp9/0zx+5ug5BXJEhr4MJSi4EUa5A93MOnFem6XGfR2d0+lVaDIxxISyMyOevl1NCkbi9fdedBMF94x8RWZdpQtlqGDiD53VMGcbGOMq0DGI0CPOIT0ervpmKWbSks1c8Z6fzWYZzDzlKIWif6IqhX7UGo3F8B4PhQrGBnjQ73L+SmTD8RV+jDuKurg4AvK7EfpQWNDe47wRaCv8GMMMCMqzyotwKPlMaVaHIodMDxHe65oIb2nhhf3MPOz1n89fUDC0GoPIUgdu/B//XHGnxVc/OzXjh5abjgoJBl+VlTre2uwOY+FJLZABf7Ubhdf9CPU7mvUjWBMC8193c2RocZTZVYWQzYDZipYTIMU/3cuwXiVEnTPKikTJO96pEYRLCBvvjIi65JAVXqi3mK14wh/j+vdT0aNdVZoPuotCCTy7dmNhu/65Sbi803+3onzQyWmHZJFxoZjBunpn5TRAMXeFfvVxpnuo4LQ70N3X/cfMBrfyrOXDhepoEprswvWSPJ/ZnND7s7HMxyI4EPffR0HQfuuIjovvs3IrcFYgFVTuEqeZJgpMkc8PbBd8nnfJFMys6t7RAFu6CLEieWV/x4Akztm/1uzi802RWEG6SQZTjftPLmA41XUYyqT4WNU8tDJbipHrQZGpXrYVNDklCzZ/yxpwU7Zw6e0t7/dlF8xAGsx+uDwpourBQPKCBYdT7fXNwjqogfGBr6FUY0XLSK0Nilw7vTPqFwMBr+WHg2Hb/UWM+6O35p8PavGpNLNlY= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4885.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(122000001)(52536014)(9686003)(508600001)(2906002)(38070700005)(66946007)(66446008)(66476007)(83380400001)(110136005)(8676002)(55016002)(5660300002)(966005)(316002)(76116006)(54906003)(4326008)(71200400001)(64756008)(66556008)(82960400001)(33656002)(7696005)(26005)(6506007)(8936002)(186003)(86362001)(53546011)(107886003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?0MXSauPkAIqJNnc7BFiCg7EZWr3SVuGJz0IdGIHRKIw745HLaJF+jTB8PfwS?= =?us-ascii?Q?oUXedIpsM06489ZuIrH6QSu2yhxFWXsRJwgbDjUruQA942dHV39sOhzm4O5I?= =?us-ascii?Q?+gzWYQI8Mq5e6/paimC3ehWrClBeMJeq2dNY4dsDFrIjwFI4eLZwL+y80aio?= =?us-ascii?Q?usfK/Ca1zivXvlE4D8j5cdNKDPMI4hhI8mc0M7+VVghKua+UwT4aS3TGLQlp?= =?us-ascii?Q?PsJJ3+GB36NArwac4LmkhcBeZMD/F/XAVmcReOmm31MMgmSxMltMszoequqZ?= =?us-ascii?Q?J08GLdCbP0y3MJuNm/sULealjSJIraAdaE38HG4OiNM12r1n6+cZbARP5B2s?= =?us-ascii?Q?xx97culcM3o53AIyurkSkgKCtxu0roaMhOMDJG5vpK/9e5NLW7EFmD1Hlq8q?= =?us-ascii?Q?Dw7J277N2qmXH4mZtG59BZm/qe1eVRWxEX/E5gq+IjpcXJE60314OoPLjUfa?= =?us-ascii?Q?PC0/ozcMNp8sydf+eNp2hb5EqYuOdE+PMZ2zz/oX3SUvka1QAEwgqYc2I6Lk?= =?us-ascii?Q?aYLcGjNwWlqSfQ8TsqI8xhk4qWnU5PuSzqomYphP1+jbDM8ZEtRfnWrtQFQA?= =?us-ascii?Q?ftriOV1AWymjo9akrjMscuXpzKN1Gq1Yicb0pR4lYm5mP/dt1H05sKK7qWK4?= =?us-ascii?Q?PtystHNaGWSOGCNJy3WQ1JBpBIC6ABNx7Tdm+oOhdG5I/Dq8kldtHS/r6rdo?= =?us-ascii?Q?mZQKZq0iWvAXj3yR17q0reNC4u1PEinQzI+1Ts/Xe0fP1Az6AHuuB9iKGcgW?= =?us-ascii?Q?I/0905umS5G/EIOVlfcND9Yg2wrhtXscmIMSOmXN0/D6m2Ywnomjgs5EEo3c?= =?us-ascii?Q?jPWNGL4jD6qxbIezRfEj6XLNqojUBd315XJbiOZCjm59C1K3wot/pz0oEKi7?= =?us-ascii?Q?jYR2iaRO8meVf6yssh9Bu9nFFxmtNjP+uHSY9/0r5CU9f4Rwu9BU3NydvrPo?= =?us-ascii?Q?7uM3jWCYU4cVHB4o0HnJyngGBAVlu8SZpcpp/tCDpocZDqcURMP2WLNI/RkE?= =?us-ascii?Q?Lbnh27lcFP4LtJVWCpAu2I5NgaRkfopvnl4+VnMTjpOSFBhEn4oYZm2Rg+B8?= =?us-ascii?Q?VVwuhEsO0YH7gFpm7DPKMuDvq73M3sHVPhqOIyoLYbtQV2KV0sjIHsg6b+Zd?= =?us-ascii?Q?+miAmFWK8B1Gz04WmQdHWHj/cl2yesb13T+txQwDnQ8uRVTZQE4uS2MRNdZr?= =?us-ascii?Q?W4IlOKhmechKiOF4dfzxjHnJ+cWXo81QYu76BL7fALxo0bzlB/igXeT39Dkx?= =?us-ascii?Q?ch4e0YWlx166tZzC0FtRaSSDu+XOEP4DEuji6s849V52JOCkGnt/dkV+dHcd?= =?us-ascii?Q?B9NI39v45YAZ1GJCgArhSt1A?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4885.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07316e9e-9e6f-4470-556c-08d99115137e X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Oct 2021 02:23:15.5051 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zvIjFGy8S1QF4n+NPrNyP/uL0XRnWaTyvM94fiwlE1O2huYtnQBdB0S+nG2FsLsoheRADfwC1yFQl19MftW/gA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5902 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Acked-by: Jiewen Yao > -----Original Message----- > From: Kuo, IanX > Sent: Sunday, October 17, 2021 6:34 AM > To: devel@edk2.groups.io > Cc: Chan, Amy ; Ni, Ray ; Kuo, IanX > ; Yao, Jiewen ; Wang, Jian J > ; Lu, XiaoyuX ; Jiang, Guomi= n > > Subject: [PATCH v3 2/3] CryptoPkg/CryptLib: Add QuickSort function on Bas= eLib >=20 > From: IanX Kuo >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3675 >=20 > Use QuickSort instead of QuickSortWorker >=20 > Cc: Ray Ni > Cc: Jiewen Yao > Cc: Jian J Wang > Cc: Xiaoyu Lu > Cc: Guomin Jiang > Signed-off-by: IanX Kuo > --- > .../Library/BaseCryptLib/SysCall/CrtWrapper.c | 92 +------------------ > 1 file changed, 2 insertions(+), 90 deletions(-) >=20 > diff --git a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c > b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c > index 42235ab96a..33ff0fcdb6 100644 > --- a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c > +++ b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c > @@ -2,7 +2,7 @@ > C Run-Time Libraries (CRT) Wrapper Implementation for OpenSSL-based >=20 > Cryptographic Library. >=20 >=20 >=20 > -Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
>=20 > +Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.
>=20 > SPDX-License-Identifier: BSD-2-Clause-Patent >=20 >=20 >=20 > **/ >=20 > @@ -22,91 +22,6 @@ int > IN VOID *Buffer2 >=20 > ); >=20 >=20 >=20 > -// >=20 > -// Duplicated from EDKII BaseSortLib for qsort() wrapper >=20 > -// >=20 > -STATIC >=20 > -VOID >=20 > -QuickSortWorker ( >=20 > - IN OUT VOID *BufferToSort, >=20 > - IN CONST UINTN Count, >=20 > - IN CONST UINTN ElementSize, >=20 > - IN SORT_COMPARE CompareFunction, >=20 > - IN VOID *Buffer >=20 > - ) >=20 > -{ >=20 > - VOID *Pivot; >=20 > - UINTN LoopCount; >=20 > - UINTN NextSwapLocation; >=20 > - >=20 > - ASSERT(BufferToSort !=3D NULL); >=20 > - ASSERT(CompareFunction !=3D NULL); >=20 > - ASSERT(Buffer !=3D NULL); >=20 > - >=20 > - if (Count < 2 || ElementSize < 1) { >=20 > - return; >=20 > - } >=20 > - >=20 > - NextSwapLocation =3D 0; >=20 > - >=20 > - // >=20 > - // Pick a pivot (we choose last element) >=20 > - // >=20 > - Pivot =3D ((UINT8 *)BufferToSort + ((Count - 1) * ElementSize)); >=20 > - >=20 > - // >=20 > - // Now get the pivot such that all on "left" are below it >=20 > - // and everything "right" are above it >=20 > - // >=20 > - for (LoopCount =3D 0; LoopCount < Count - 1; LoopCount++) >=20 > - { >=20 > - // >=20 > - // If the element is less than the pivot >=20 > - // >=20 > - if (CompareFunction ((VOID *)((UINT8 *)BufferToSort + ((LoopCount) * > ElementSize)), Pivot) <=3D 0) { >=20 > - // >=20 > - // Swap >=20 > - // >=20 > - CopyMem (Buffer, (UINT8 *)BufferToSort + (NextSwapLocation * > ElementSize), ElementSize); >=20 > - CopyMem ((UINT8 *)BufferToSort + (NextSwapLocation * ElementSize), > (UINT8 *)BufferToSort + ((LoopCount) * ElementSize), ElementSize); >=20 > - CopyMem ((UINT8 *)BufferToSort + ((LoopCount) * ElementSize), Buff= er, > ElementSize); >=20 > - >=20 > - // >=20 > - // Increment NextSwapLocation >=20 > - // >=20 > - NextSwapLocation++; >=20 > - } >=20 > - } >=20 > - // >=20 > - // Swap pivot to its final position (NextSwapLocation) >=20 > - // >=20 > - CopyMem (Buffer, Pivot, ElementSize); >=20 > - CopyMem (Pivot, (UINT8 *)BufferToSort + (NextSwapLocation * ElementSiz= e), > ElementSize); >=20 > - CopyMem ((UINT8 *)BufferToSort + (NextSwapLocation * ElementSize), Buf= fer, > ElementSize); >=20 > - >=20 > - // >=20 > - // Now recurse on 2 partial lists. Neither of these will have the 'pi= vot' element. >=20 > - // IE list is sorted left half, pivot element, sorted right half... >=20 > - // >=20 > - QuickSortWorker ( >=20 > - BufferToSort, >=20 > - NextSwapLocation, >=20 > - ElementSize, >=20 > - CompareFunction, >=20 > - Buffer >=20 > - ); >=20 > - >=20 > - QuickSortWorker ( >=20 > - (UINT8 *)BufferToSort + (NextSwapLocation + 1) * ElementSize, >=20 > - Count - NextSwapLocation - 1, >=20 > - ElementSize, >=20 > - CompareFunction, >=20 > - Buffer >=20 > - ); >=20 > - >=20 > - return; >=20 > -} >=20 > - >=20 > //--------------------------------------------------------- >=20 > // Standard C Run-time Library Interface Wrapper >=20 > //--------------------------------------------------------- >=20 > @@ -337,10 +252,7 @@ void qsort (void *base, size_t num, size_t width, in= t > (*compare)(const void *, c > Buffer =3D malloc (width); >=20 > ASSERT (Buffer !=3D NULL); >=20 >=20 >=20 > - // >=20 > - // Re-use PerformQuickSort() function Implementation in EDKII BaseSort= Lib. >=20 > - // >=20 > - QuickSortWorker (base, (UINTN)num, (UINTN)width, > (SORT_COMPARE)compare, Buffer); >=20 > + QuickSort (base, (UINTN)num, (UINTN)width, compare, Buffer); >=20 >=20 >=20 > free (Buffer); >=20 > return; >=20 > -- > 2.30.0.windows.1