From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CB829A0547; Mon, 21 Jun 2021 17:37:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6163541158; Mon, 21 Jun 2021 17:37:35 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 9C88140040 for ; Mon, 21 Jun 2021 17:37:33 +0200 (CEST) IronPort-SDR: r0RaCv6QCeHwxamp7AIvHRPeGGlUNouPgtvITBfpuyYDqSas+pOm3c5XbjX0wD5DdQpIFN8nyo HLmkQvCOpSxw== X-IronPort-AV: E=McAfee;i="6200,9189,10022"; a="194180379" X-IronPort-AV: E=Sophos;i="5.83,289,1616482800"; d="scan'208";a="194180379" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2021 08:37:32 -0700 IronPort-SDR: zUufv5j2aP/PH2byPEBQSUFlFRGyWb5QViLPN7BQo0SR658rY0ri5MKcbYWVmb0VfLCvm01L6c aFvMVCvc0RPQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,289,1616482800"; d="scan'208";a="480503078" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by FMSMGA003.fm.intel.com with ESMTP; 21 Jun 2021 08:37:31 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 21 Jun 2021 08:37:31 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Mon, 21 Jun 2021 08:37:31 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.170) 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.4; Mon, 21 Jun 2021 08:37:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mReW5BuJbSF4pmTeoFUPvU91gya5JaX6CAuZiFILEFGBGTWbKlTq6ZDlH71HQg4iApUTxv46EsC4vChS0IBL6HV+eT/WlPCd+34t+h4lLXjDfPoD3UEH5KS/w4ERhLpXsoYk9Pz9dTljA4mH1Tk9ACyaWsFBlrqODska5gOZIUmEwMiS9fxaUi2TRS3yW0D8s1hQS8Y6dcfVJJ00XdXa7EQKm2WKoo6LsgTdAcsNXpXIR4rp9+9nAXeJ+d4fEU7QiqLab4Y4+IADkPwniXt7D9MXE0B4uQQgq5xU7hx3WmCqlSULeXSkHbCmZDOZxvfpSJ+f6sEEepijU8nkhmVeLQ== 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-SenderADCheck; bh=/d1ZNRROXCI9CCodlX4H+XW8rFShe5oK0ivnUSsvjKw=; b=mSPZydqD/aZ5pf1mMOtQ6K8QSBRcnvqa3cLKAW+b/ZkNHp76wu6GAZG0Wp32uuDutNL7hVLUxWVNnaS8MQdOR2aQAObSk7BFJcAvtbvQZjdx6v+ij92tr99xRyGIyAF9k1kyK+Nuum6vhq24HPihAC1NTIJcD3ixkQxIRw4lkbTO7/VBwG5xEksHBHiujSJE0K1wC2JgEwqBxWI3UcBQcUB7GCpn8uBpaN0xdl8EtE8UytYN+ggGeISbl/VuEIjc+J5uM7sAHppKfi/dKpUe6yuwGclLPaWxrfAbaN16cOzxyXeWVvASu89cM72BM4AZUamJ06bhQXzQa8Dhf3qtZw== 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=/d1ZNRROXCI9CCodlX4H+XW8rFShe5oK0ivnUSsvjKw=; b=DRnURFY3WFJDMH9FsYauNyaQzcSg/+qZr95TGQnjjh1dOaosXjjdMrQb1q6Vxbv5hyxXSZaDdCGELqlGWHU+ULvGxOhlP8MdfQJ4RVro4fVnNdlRMbEdfqfzesGsn5y5cU1I5nOCxtVr4Ru0iiG9jQTAbAt1c9QIG3C1kSVVhog= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4106.namprd11.prod.outlook.com (2603:10b6:5:19f::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.23; Mon, 21 Jun 2021 15:37:27 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4242.023; Mon, 21 Jun 2021 15:37:27 +0000 From: "Ananyev, Konstantin" To: "Yigit, Ferruh" , Thomas Monjalon , "Richardson, Bruce" CC: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "dev@dpdk.org" , "olivier.matz@6wind.com" , "andrew.rybchenko@oktetlabs.ru" , "honnappa.nagarahalli@arm.com" , "jerinj@marvell.com" , "gakhil@marvell.com" Thread-Topic: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays Thread-Index: AQHXYQxT3nKj3OToOE+g04oypCLg2asTbdkAgAAOoICAAATCgIAAFeZggAAOq/CABIvGAIAAHL6ggAAPB4CAATs50IAEplTQgABL5QCAAAle0IAADx2AgAAAiRA= Date: Mon, 21 Jun 2021 15:37:27 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <98CBD80474FA8B44BF855DF32C47DC35C6184E@smartserver.smartshare.dk> <2004320.XGyPsaEoyj@thomas> <0bb118ba-2658-a7d7-ad8f-bf27f62849f7@intel.com> <43d5d092-73cc-e5a1-5d5d-2e4f9c6c1759@intel.com> <4e63beea-3121-2aaf-f6d6-dc8807c4088d@intel.com> In-Reply-To: <4e63beea-3121-2aaf-f6d6-dc8807c4088d@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.255.184.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 85bff799-bc42-46a5-f026-08d934ca79a4 x-ms-traffictypediagnostic: DM6PR11MB4106: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0ujEz3VxHlqfiHP0+3LYLOFcqUgJoB5sgTe9GKyqmphU5HKL0pF7Tuafwxr+N1Edxxb0PmNQbTzycd1bmpBFACVCYpilZAdnJB+Y1eAvjfjGgzeWUfhM2Myjj69I/lRaQsAB/t/XX7khI3RbGOL18YL3vYgekcWEkEmoIM5Cs76Ed7QRHcyBOsxVsNQX696gQV6ItUaj7gjNhOoaQ2YOIE21eJUc6xQ5RKp6Ouz+GNm0H/zwmLKNOTyS97QT5pWI+vhmaTkGXn9gt9wOpo1RDZHjFHdaH1fEmwJIYTOuNS4xcVqEGJ8A+qD6MunjqtB1CGNuqHlJ4l+nQ9vohlk83aNUHOF5g7TBdHgajvKXDN0mvHAicdVcLd/4aXWx10+Zf3LOK19pN6iYSNXfCMmPSQ1Mh8W+3lG0JKVEG5+A3EGr2tVLyTu6OPkRzp4G/XD6PfkdrNZoOifzCXykcQV7zF+cOT4FtHR2ToOtU9esgNxvYCOHV537ov//JuSjy+z18JRl2UxHXPqsjfqZuFTNRGTrHt5qWiuTNGpVD+BM4BpTYeuu8Rhi+9fC5+YeVKKNr7i1GgcnK62H9DalAN+vrMix9Bb3ZuWqbw+P8LTKLsY= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(376002)(346002)(136003)(39860400002)(366004)(55016002)(52536014)(66946007)(66446008)(5660300002)(66476007)(66556008)(64756008)(76116006)(9686003)(83380400001)(6636002)(122000001)(38100700002)(86362001)(110136005)(8676002)(7696005)(55236004)(316002)(186003)(26005)(478600001)(2906002)(54906003)(71200400001)(4326008)(53546011)(6506007)(33656002)(8936002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SUZvbkMyZ2xrRSs2MzJWcStKajM5bjljQmlpeUJ5SjQxYThPVXZET3FpS3hI?= =?utf-8?B?Y3ZVQWp5NkJWa3RYaTFoNnF5TndXMVlrVnpobUlleUNKbzhXd083b2wzU1lu?= =?utf-8?B?S21GMjVkTmVrS290VmhiT2lYVllLNDZXZFQ2OVVtaDB2cnNyaStSVmJnNStk?= =?utf-8?B?TWQ5VkZ1allIN0tZUWJOdERMaDdyYzVWOTlIODZldGpHR3k5WXJ3bmxEbW5S?= =?utf-8?B?Rkc4KzFKOWtGNmJhK2VHczJtV1JWbXdHbi9QRHROaXhTTGtzd1pzTGY2RjFl?= =?utf-8?B?SE40ZzNHWEpqWlpsY0FPc1hFV3pYOGdWNXp4TkZlNjBGcEpFcHBBaGxvcXh5?= =?utf-8?B?Z3c1NU51U21BTXRCenlqSld5M2kySm80UjFteWVtRWx1RWtxTS9RVEJRZkRs?= =?utf-8?B?LytkQ2RQeFhiUHAxL1B1NFNocjFsak55elpRTTZGZ2ZXdUNUc2VyNkxzeFFB?= =?utf-8?B?VDlONzhOOStyV1I1M3NOekM4R0dXNGUrS0FWY1hEMEphVGRROFFqYkxEMzJX?= =?utf-8?B?cWdsUUxOU0xBRkoxVzFJK1lXYU5iaFpraGNaSlAwZTNlVmdRcTNaSEpQRzB1?= =?utf-8?B?cG9DeDVXZHlxbVl2VnUwbzVXVmp5YjZRSVlSN3NDL1lTckZ2djVTc2JSbE9i?= =?utf-8?B?Smx6bmk3bGZXY1BIZGJvbk5EdUU1QWozUFJLajlQV2lIMnVLeUQ0WS9ZZHk2?= =?utf-8?B?TXRCbTVtUER5dFBxcDVMVStwVnpPdU1OdGZoazZud2VqaU9ZNk5JWUMzczRo?= =?utf-8?B?UUlMcDk1eDRzV2hYajUxM2pxdFh5YVE4UTN6OTdlSis1V2RpVHJoVTFLRGJ0?= =?utf-8?B?QWZkNDRFUWVSYXVKOVAwS3NRdkhzWHNvT2xZbG5wMndFME9SZ0xBTXo0emov?= =?utf-8?B?N3c0d3IyYnhBU0pETVlRcWVmVVo1a25MaTdkeHJOR1hZV2ZSYVliL2F4dHlv?= =?utf-8?B?a1hhWUoxQmVWeHpIbEpYNUMrNzQvNkJ5Um5QSks5SmdJcXpwSmpJb0FCbEZx?= =?utf-8?B?VFB1WmFQclQvY0dWb0RCZmFaNXUyUmRIbG9VQzF2eHN2NUEyMEpUL0ZNTEMw?= =?utf-8?B?TEc2R3NiL1B6N3JkTjdGTXl4SjJwR01KQWxDbHhMRUFUNE1jbzBMK3BwVHA0?= =?utf-8?B?Y0RSZllJdjl2Qm0zZzhWRkZ1K3BnZlg0U0VMRDBCZ3AxNlRrNm9adDdybVlu?= =?utf-8?B?SEZtTU53U3krdUJiWEJGSlV6U25yVDdoWlR4cjJKdmIycDhxY29VVUJpbjgr?= =?utf-8?B?TmowZGtrQzgzeXVZQXRtQ3BlQzRlRnp1QTAvdDRVNVh1MW03b3l0TDFpWEVz?= =?utf-8?B?R2Y3TndGQWw0Y2syNUViQ3dKSjVIdmFBWGlGUzU4ZlRNdFN6NmVtMTlIL3l0?= =?utf-8?B?MlJXVGJjZmFFcmpDZ1kwcGJRRlowQWRUV2pNM2J0L3V5VW0xc2ZJdEdVNU0w?= =?utf-8?B?Sm40ODJ6RHpVU2h2UFNnZGJxem55ZkJ3eWhRaXdlTWZwZDNmSFVJRXh0WjEx?= =?utf-8?B?dkFNWnA4dFM5aWk3UU1HUk1pdWpnOGU4T2ppdXdyK050SFl6ZXduVk9qMEN5?= =?utf-8?B?OUU0dmFqeVJJc0ZVQktmTHRpRGNHTXdqNmJ6clQ4TG5pVG1RVmdHM0k0dXhF?= =?utf-8?B?MUdlQ2JHWEE2ZlU0NXNUTUduamt4UjR1aVkwaUwrMWMxbDlIWkFXYmZNcEsw?= =?utf-8?B?YW84SmVrcTJTWW9sd3FWYlMxSFZlaGpOMnJrcVdXcXd1L2UrNUdDQ21Oa2tJ?= =?utf-8?Q?67stCnw73bFEAOi2lSlRC4+Rm4jatIYaA5tp2lv?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85bff799-bc42-46a5-f026-08d934ca79a4 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jun 2021 15:37:27.6867 (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: bGlc/5TB0T4onj4lhlZHbvGmVy29wh2v4xN0mLkeh7XNAXe4KWsNQo1Aw1CIIRSQGm26Ne3u7+OZEsvyGoMUBXqZChZuFhGgl54wWIS+vUU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4106 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQo+IA0KPiBPbiA2LzIxLzIwMjEgMzo0MiBQTSwgQW5hbnlldiwgS29uc3RhbnRpbiB3cm90ZToN Cj4gPg0KPiA+Pj4+Pj4+PiBPbmUgbW9yZSB0aG91Z2h0IGhlcmUgLSBpZiB3ZSBhcmUgdGFsa2lu ZyBhYm91dCBydGVfZXRoZGV2W10gaW4gcGFydGljdWxhciwgSSB0aGluayAgd2UgY2FuOg0KPiA+ Pj4+Pj4+PiAxLiBtb3ZlIHB1YmxpYyBmdW5jdGlvbiBwb2ludGVycyAocnhfcGt0X2J1cnN0KCks IGV0Yy4pIGZyb20gcnRlX2V0aGRldiBpbnRvIGEgc2VwYXJhdGUgZmxhdCBhcnJheS4NCj4gPj4+ Pj4+Pj4gV2UgY2FuIGtlZXAgaXQgcHVibGljIHRvIHN0aWxsIHVzZSBpbmxpbmUgZnVuY3Rpb25z IGZvciAnZmFzdCcgY2FsbHMgcnRlX2V0aF9yeF9idXJzdCgpLCBldGMuIHRvIGF2b2lkDQo+ID4+ Pj4+Pj4+IGFueSByZWdyZXNzaW9ucy4NCj4gPj4+Pj4+Pj4gVGhhdCBjb3VsZCBzdGlsbCBiZSBm bGF0IGFycmF5IHdpdGggbWF4X3NpemUgc3BlY2lmaWVkIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAu DQo+ID4+Pj4+Pj4+IDIuIEhpZGUgcmVzdCBvZiBydGVfZXRoZGV2IHN0cnVjdCBpbiAuYy4NCj4g Pj4+Pj4+Pj4gVGhhdCB3aWxsIGFsbG93IHVzIHRvIGNoYW5nZSB0aGUgc3RydWN0IGl0c2VsZiBh bmQgdGhlIHdob2xlIHJ0ZV9ldGhkZXZbXSB0YWJsZSBpbiBhIHdheSB3ZSBsaWtlDQo+ID4+Pj4+ Pj4+IChmbGF0IGFycmF5LCB2ZWN0b3IsIGhhc2gsIGxpbmtlZCBsaXN0KSB3aXRob3V0IEFCSS9B UEkgYnJlYWthZ2VzLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBZZXMsIGl0IHdvdWxkIHJlcXVp cmUgYWxsIFBNRHMgdG8gY2hhbmdlIHByb3RvdHlwZSBmb3IgcGt0X3J4X2J1cnN0KCkgZnVuY3Rp b24NCj4gPj4+Pj4+Pj4gKHRvIGFjY2VwdCBwb3J0X2lkLCBxdWV1ZV9pZCBpbnN0ZWFkIG9mIHF1 ZXVlIHBvaW50ZXIpLCBidXQgdGhlIGNoYW5nZSBpcyBtZWNoYW5pY2FsIG9uZS4NCj4gPj4+Pj4+ Pj4gUHJvYmFibHkgc29tZSBtYWNybyBjYW4gYmUgcHJvdmlkZWQgdG8gc2ltcGxpZnkgaXQuDQo+ ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBXZSBhcmUgYWxyZWFkeSBwbGFubmluZyBz b21lIHRhc2tzIGZvciBBQkkgc3RhYmlsaXR5IGZvciB2MjEuMTEsIEkgdGhpbmsNCj4gPj4+Pj4+ PiBzcGxpdHRpbmcgJ3N0cnVjdCBydGVfZXRoX2RldicgY2FuIGJlIHBhcnQgb2YgdGhhdCB0YXNr LCBpdCBlbmFibGVzIGhpZGluZyBtb3JlDQo+ID4+Pj4+Pj4gaW50ZXJuYWwgZGF0YS4NCj4gPj4+ Pj4+DQo+ID4+Pj4+PiBPaywgc291bmRzIGdvb2QuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+IFRoZSBvbmx5IHNpZ25pZmljYW50IGNvbXBsaWNhdGlvbiBJIGNhbiBmb3Jlc2VlIHdp dGggaW1wbGVtZW50aW5nIHRoYXQgYXBwcm9hY2ggLQ0KPiA+Pj4+Pj4+PiB3ZSdsbCBuZWVkIGEg YW4gYXJyYXkgb2YgJ2Zhc3QnIGZ1bmN0aW9uIHBvaW50ZXJzIHBlciBxdWV1ZSwgbm90IHBlciBk ZXZpY2UgYXMgd2UgaGF2ZSBub3cNCj4gPj4+Pj4+Pj4gKHRvIGF2b2lkIGV4dHJhIGluZGlyZWN0 aW9uIGZvciBjYWxsYmFjayBpbXBsZW1lbnRhdGlvbikuDQo+ID4+Pj4+Pj4+IFRob3VnaCBhcyBh IGJvbnVzIHdlJ2xsIGhhdmUgYWJpbGl0eSB0byB1c2UgZGlmZmVyZW50IFJYL1RYIGZ1bmNpb25z IHBlciBxdWV1ZS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFdoYXQgZG8geW91 IHRoaW5rIHNwbGl0IFJ4L1R4IGNhbGxiYWNrIGludG8gaXRzIG93biBzdHJ1Y3QgdG9vPw0KPiA+ Pj4+Pj4+DQo+ID4+Pj4+Pj4gT3ZlcmFsbCAncnRlX2V0aF9kZXYnIGNhbiBiZSBzcGxpdCBpbnRv IHRocmVlIGFzOg0KPiA+Pj4+Pj4+IDEuIHJ0ZV9ldGhfZGV2DQo+ID4+Pj4+Pj4gMi4gcnRlX2V0 aF9kZXZfYnVyc3QNCj4gPj4+Pj4+PiAzLiBydGVfZXRoX2Rldl9jYg0KPiA+Pj4+Pj4+DQo+ID4+ Pj4+Pj4gQW5kIHdlIGNhbiBoaWRlIDEgZnJvbSBhcHBsaWNhdGlvbnMgZXZlbiB3aXRoIHRoZSBp bmxpbmUgZnVuY3Rpb25zLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEFzIGRpc2N1c3NlZCBvZmYtbGlu ZSwgSSB0aGluazoNCj4gPj4+Pj4+IGl0IGlzIHBvc3NpYmxlLg0KPiA+Pj4+Pj4gTXkgYWJzb2x1 dGUgcHJlZmVyZW5jZSB3b3VsZCBiZSB0byBoYXZlIGp1c3QgMS8yICh3aXRoIENCIGhpZGRlbiku DQo+ID4+Pj4+DQo+ID4+Pj4+IEhvdyBjYW4gd2UgaGlkZSB0aGUgY2FsbGJhY2tzIHNpbmNlIHRo ZXkgYXJlIHVzZWQgYnkgaW5saW5lIGJ1cnN0IGZ1bmN0aW9ucy4NCj4gPj4+Pg0KPiA+Pj4+IEkg cHJvYmFibHkgSSBvd2UgYSBiZXR0ZXIgZXhwbGFuYXRpb24gdG8gd2hhdCBJIG1lYW50IGluIGZp cnN0IG1haWwuDQo+ID4+Pj4gT3RoZXJ3aXNlIGl0IHNvdW5kcyBjb25mdXNpbmcuDQo+ID4+Pj4g SSdsbCB0cnkgdG8gd3JpdGUgYSBtb3JlIGRldGFpbGVkIG9uZSBpbiBuZXh0IGZldyBkYXlzLg0K PiA+Pj4NCj4gPj4+IEFjdHVhbGx5IEkgZ2F2ZSBpdCBhbm90aGVyIHRob3VnaHQgb3ZlciB3ZWVr ZW5kLCBhbmQgbWlnaHQgYmUgd2UgY2FuDQo+ID4+PiBoaWRlIHJ0ZV9ldGhfZGV2X2NiIGV2ZW4g aW4gYSBzaW1wbGVyIHdheS4gSSdkIHVzZSBldGhfcnhfYnVyc3QoKSBhcw0KPiA+Pj4gYW4gZXhh bXBsZSwgYnV0IHRoZSBzYW1lIHByaW5jaXBsZSBhcHBsaWVzIHRvIG90aGVyICdmYXN0JyBmdW5j dGlvbnMuDQo+ID4+Pg0KPiA+Pj4gIDEuIE5lZWRlZCBjaGFuZ2VzIGZvciBQTURzIHJ4X3BrdF9i dXJzdCgpOg0KPiA+Pj4gICAgIGEpIGNoYW5nZSBmdW5jdGlvbiBwcm90b3R5cGUgdG8gYWNjZXB0 ICd1aW50MTZfdCBwb3J0X2lkJyBhbmQgJ3VpbnQxNl90IHF1ZXVlX2lkJywNCj4gPj4+ICAgICAg ICAgIGluc3RlYWQgb2YgY3VycmVudCAndm9pZCAqJy4NCj4gPj4+ICAgICBiKSBFYWNoIFBNRCBy eF9wa3RfYnVyc3QoKSB3aWxsIGhhdmUgdG8gY2FsbCBydGVfZXRoX3J4X2VwaWxvZygpIGZ1bmN0 aW9uIGF0IHJldHVybi4NCj4gPj4+ICAgICAgICAgIFRoaXMgIGlubGluZSBmdW5jdGlvbiB3aWxs IGRvIGFsbCBDQiBjYWxscyBmb3IgdGhhdCBxdWV1ZS4NCj4gPj4+DQo+ID4+PiBUbyBiZSBtb3Jl IHNwZWNpZmljLCBsZXQgc2F5IHdlIGhhdmUgc29tZSBQTUQ6IHh5eiB3aXRoIFJYIGZ1bmN0aW9u Og0KPiA+Pj4NCj4gPj4+IHVpbnQxNl90DQo+ID4+PiB4eXpfcmVjdl9wa3RzKHZvaWQgKnJ4X3F1 ZXVlLCBzdHJ1Y3QgcnRlX21idWYgKipyeF9wa3RzLCB1aW50MTZfdCBuYl9wa3RzKQ0KPiA+Pj4g ew0KPiA+Pj4gICAgICBzdHJ1Y3QgeHl6X3J4X3F1ZXVlICpyeHEgPSByeF9xdWV1ZTsNCj4gPj4+ ICAgICAgdWludDE2X3QgbmJfcnggPSAwOw0KPiA+Pj4NCj4gPj4+ICAgICAgLyogZG8gYWN0dWFs IHN0dWZmIGhlcmUgKi8NCj4gPj4+ICAgICAuLi4uDQo+ID4+PiAgICAgcmV0dXJuIG5iX3J4Ow0K PiA+Pj4gfQ0KPiA+Pj4NCj4gPj4+IEl0IHdpbGwgYmUgdHJhbnNmb3JtZWQgdG86DQo+ID4+Pg0K PiA+Pj4gdWludDE2X3QNCj4gPj4+IHh5el9yZWN2X3BrdHModWludDE2X3QgcG9ydF9pZCwgdWlu dDE2X3QgcXVldWVfaWQsIHN0cnVjdCBydGVfbWJ1ZiAqKnJ4X3BrdHMsIHVpbnQxNl90IG5iX3Br dHMpDQo+ID4+PiB7DQo+ID4+PiAgICAgICAgICBzdHJ1Y3QgeHl6X3J4X3F1ZXVlICpyeHE7DQo+ ID4+PiAgICAgICAgICB1aW50MTZfdCBuYl9yeDsNCj4gPj4+DQo+ID4+PiAgICAgICAgICByeHEg PSBfcnRlX2V0aF9yeF9wcm9sb2cocG9ydF9pZCwgcXVldWVfaWQpOw0KPiA+Pj4gICAgICAgICAg aWYgKHJ4cSA9PSBOVUxMKQ0KPiA+Pj4gICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+Pj4gICAg ICAgICAgbmJfcnggPSBfeHl6X3JlYWxfcmVjdl9wa3RzKHJ4cSwgcnhfcGt0cywgbmJfcGt0cyk7 DQo+ID4+PiAgICAgICAgICByZXR1cm4gX3J0ZV9ldGhfcnhfZXBpbG9nKHBvcnRfaWQsIHF1ZXVl X2lkLCByeF9wa3RzLCBuYl9wa3RzKTsNCj4gPj4+IH0NCj4gPj4+DQo+ID4+PiBBbmQgc29tZXdo ZXJlIGluIGV0aGRldl9wcml2YXRlLmg6DQo+ID4+Pg0KPiA+Pj4gc3RhdGljIGlubGluZSB2b2lk ICoNCj4gPj4+IF9ydGVfZXRoX3J4X3Byb2xvZyh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBx dWV1ZV9pZCk7DQo+ID4+PiB7DQo+ID4+PiAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZy dGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4+Pg0KPiA+Pj4gI2lmZGVmIFJURV9FVEhERVZf REVCVUdfUlgNCj4gPj4+ICAgICAgICAgUlRFX0VUSF9WQUxJRF9QT1JUSURfT1JfRVJSX1JFVChw b3J0X2lkLCBOVUxMKTsNCj4gPj4+ICAgICAgICAgUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRl di0+cnhfcGt0X2J1cnN0LCBOVUxMKTsNCj4gPj4+DQo+ID4+PiAgICAgICAgIGlmIChxdWV1ZV9p ZCA+PSBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcykgew0KPiA+Pj4gICAgICAgICAgICAgICAgIFJU RV9FVEhERVZfTE9HKEVSUiwgIkludmFsaWQgUlggcXVldWVfaWQ9JXVcbiIsIHF1ZXVlX2lkKTsN Cj4gPj4+ICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsNCj4gPj4+ICAgICAgICAgfQ0KPiA+ Pj4gI2VuZGlmDQo+ID4+PiAgIHJldHVybiBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZF07 DQo+ID4+PiB9DQo+ID4+Pg0KPiA+Pj4gc3RhdGljIGlubGluZSB1aW50MTZfdA0KPiA+Pj4gX3J0 ZV9ldGhfcnhfZXBpbG9nKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLCBzdHJ1 Y3QgcnRlX21idWYgKipyeF9wa3RzLCBjb25zdCB1aW50MTZfdCBuYl9wa3RzKTsNCj4gPj4+IHsN Cj4gPj4+ICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9y dF9pZF07DQo+ID4+Pg0KPiA+Pj4gI2lmZGVmIFJURV9FVEhERVZfUlhUWF9DQUxMQkFDS1MNCj4g Pj4+ICAgICAgICAgc3RydWN0IHJ0ZV9ldGhfcnh0eF9jYWxsYmFjayAqY2I7DQo+ID4+Pg0KPiA+ Pj4gICAgICAgICAvKiBfX0FUT01JQ19SRUxFQVNFIG1lbW9yeSBvcmRlciB3YXMgdXNlZCB3aGVu IHRoZQ0KPiA+Pj4gICAgICAgICAgKiBjYWxsIGJhY2sgd2FzIGluc2VydGVkIGludG8gdGhlIGxp c3QuDQo+ID4+PiAgICAgICAgICAqIFNpbmNlIHRoZXJlIGlzIGEgY2xlYXIgZGVwZW5kZW5jeSBi ZXR3ZWVuIGxvYWRpbmcNCj4gPj4+ICAgICAgICAgICogY2IgYW5kIGNiLT5mbi9jYi0+bmV4dCwg X19BVE9NSUNfQUNRVUlSRSBtZW1vcnkgb3JkZXIgaXMNCj4gPj4+ICAgICAgICAgICogbm90IHJl cXVpcmVkLg0KPiA+Pj4gICAgICAgICAgKi8NCj4gPj4+ICAgICAgICAgY2IgPSBfX2F0b21pY19s b2FkX24oJmRldi0+cG9zdF9yeF9idXJzdF9jYnNbcXVldWVfaWRdLA0KPiA+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfX0FUT01JQ19SRUxBWEVEKTsNCj4gPj4+DQo+ID4+PiAg ICAgICAgIGlmICh1bmxpa2VseShjYiAhPSBOVUxMKSkgew0KPiA+Pj4gICAgICAgICAgICAgICAg IGRvIHsNCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIG5iX3J4ID0gY2ItPmZuLnJ4KHBv cnRfaWQsIHF1ZXVlX2lkLCByeF9wa3RzLCBuYl9yeCwNCj4gPj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5iX3BrdHMsIGNiLT5wYXJhbSk7DQo+ID4+ PiAgICAgICAgICAgICAgICAgICAgICAgICBjYiA9IGNiLT5uZXh0Ow0KPiA+Pj4gICAgICAgICAg ICAgICAgIH0gd2hpbGUgKGNiICE9IE5VTEwpOw0KPiA+Pj4gICAgICAgICB9DQo+ID4+PiAjZW5k aWYNCj4gPj4+DQo+ID4+PiAgICAgICAgIHJ0ZV9ldGhkZXZfdHJhY2VfcnhfYnVyc3QocG9ydF9p ZCwgcXVldWVfaWQsICh2b2lkICoqKXJ4X3BrdHMsIG5iX3J4KTsNCj4gPj4+ICAgICAgICAgcmV0 dXJuIG5iX3J4Ow0KPiA+Pj4gIH0NCj4gPj4+DQo+ID4+PiBOb3csIGFzIHlvdSBzYWlkIGFib3Zl LCBpbiBydGVfZXRoZGV2Lmggd2Ugd2lsbCBrZWVwIG9ubHkgYSBmbGF0IGFycmF5DQo+ID4+PiB3 aXRoIHBvaW50ZXJzIHRvICdmYXN0JyBmdW5jdGlvbnM6DQo+ID4+PiBzdHJ1Y3Qgew0KPiA+Pj4g ICAgICBldGhfcnhfYnVyc3RfdCAgICAgICAgICAgICByeF9wa3RfYnVyc3QNCj4gPj4+ICAgICAg IGV0aF90eF9idXJzdF90ICAgICAgICAgICAgIHR4X3BrdF9idXJzdDsNCj4gPj4+ICAgICAgIGV0 aF90eF9wcmVwX3QgICAgICAgICAgICAgIHR4X3BrdF9wcmVwYXJlOw0KPiA+Pj4gICAgICAuLi4u Lg0KPiA+Pj4gfSBydGVfZXRoX2Rldl9idXJzdFtdOw0KPiA+Pj4NCj4gPj4+IEFuZCBydGVfZXRo X3J4X2J1cnN0KCkgd2lsbCBsb29rIGxpa2U6DQo+ID4+Pg0KPiA+Pj4gc3RhdGljIGlubGluZSB1 aW50MTZfdA0KPiA+Pj4gcnRlX2V0aF9yeF9idXJzdCh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZf dCBxdWV1ZV9pZCwNCj4gPj4+ICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9tYnVmICoqcnhf cGt0cywgY29uc3QgdWludDE2X3QgbmJfcGt0cykNCj4gPj4+IHsNCj4gPj4+ICAgICBpZiAocG9y dF9pZCA+PSBSVEVfTUFYX0VUSFBPUlRTKQ0KPiA+Pj4gICAgICAgICByZXR1cm4gMDsNCj4gPj4+ ICAgIHJldHVybiBydGVfZXRoX2Rldl9idXJzdFtwb3J0X2lkXShwb3J0X2lkLCBxdWV1ZV9pZCwg cnhfcGt0cywgbmJfcGt0cyk7DQo+ID4+PiB9DQo+ID4+Pg0KPiA+Pj4gWWVzLCBpdCB3aWxsIHJl cXVpcmUgY2hhbmdlcyBpbiAqYWxsKiBQTURzLCBidXQgYXMgSSBzYWlkIGJlZm9yZSB0aGUgY2hh bmdlcyB3aWxsIGJlIGEgbWVjaGFuaWMgb25lcy4NCj4gPj4+DQo+ID4+DQo+ID4+IEkgZGlkIG5v dCBsaWtlIHRoZSBpZGVhIHRvIHB1c2ggdG8gY2FsbGluZyBSeC9UWCBjYWxsYmFja3MgcmVzcG9u c2liaWxpdHkgdG8gdGhlDQo+ID4+IGRyaXZlcnMsIEkgdGhpbmsgaXQgc2hvdWxkIGJlIGluIHRo ZSBldGhkZXYgbGF5ZXIuDQo+ID4NCj4gPiBXZWxsLCBJJ2Qgc2F5IGl0IGlzIGFuIGV0aGRldiBs YXllciBmdW5jdGlvbiB0aGF0IGhhcyB0byBiZSBjYWxsZWQgYnkgUE1EIPCfmIoNCj4gPg0KPiA+ Pg0KPiA+PiBXaGF0IGFib3V0IG1ha2luZyAncnRlX2V0aF9yeF9lcGlsb2cnIGFuIEFQSSBhbmQg Y2FsbCBmcm9tICdydGVfZXRoX3J4X2J1cnN0KCknLA0KPiA+PiB3aGljaCB3aWxsIGFkZCBhbm90 aGVyIGZ1bmN0aW9uIGNhbGwgZm9yIFJ4L1R4IGNhbGxiYWNrIGJ1dCBzaG91bGRuJ3QgYWZmZWN0 IHRoZQ0KPiA+PiBSeC9UeCBidXJzdC4NCj4gPg0KPiA+IEJ1dCB0aGVuIHdlIGVpdGhlciBuZWVk IHRvIGV4cG9zZSBjYWxsLWJhY2sgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIgb3IgcGF5IHRoZSBw ZW5hbHR5DQo+ID4gZm9yIGV4dHJhIGZ1bmN0aW9uIGNhbGwsIGNvcnJlY3Q/DQo+ID4NCj4gDQo+ IFJpZ2h0LiBBcyBhIG1pZGRsZSBncm91bmQsIHdlIGNhbiBrZWVwIFJ4L1R4IGJ1cnN0IGZ1bmN0 aW9ucyBhcyBpbmxpbmUsIGJ1dCBoYXZlDQo+IHRoZSBSeC9UeCBjYWxsYmFjayBwYXJ0IG9mIGl0 IGFzIGZ1bmN0aW9uLCBzbyBnZXQgdGhlIGhpdCBvbmx5IGZvciBjYWxsYmFja3MuDQoNClRvIGF2 b2lkIHRoZSAgaGl0IHdlIG5lZWQgdG8gZXhwb3NlIENCIGRhdGEgdG8gdGhlIHVzZXIuDQpBdCBs ZWFzdCBudW1iZXIgb2YgY2FsbC1iYWNrcyBjdXJyZW50bHkgaW5zdGFsbGVkIGZvciBlYWNoIHF1 ZXVlLiANCg0K