From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50050.outbound.protection.outlook.com [40.107.5.50]) by dpdk.org (Postfix) with ESMTP id 6E0F01B54D for ; Wed, 19 Dec 2018 16:46:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zNTDSj8c14X9Mnz3bsKkvpSVXQ+0pbPEB4PmIHD8z2w=; b=GkGyCd+SJmfl5resw8ZUVQG3dXIbfMC9Lip/Gkbx5A5xsgdo5a/WpPqLwM6hLGcqzZccAmaNedRZXTRyi8QZOjBhAHpxyOKFg01QuROW0hKeja9eSqaLAPeIwcBEitV0mfDTiFucZ1FADwcLFY0ov6hafkhgyMMM/uMLMPtPE5A= Received: from VI1PR04MB4893.eurprd04.prod.outlook.com (20.177.49.154) by VI1PR04MB5598.eurprd04.prod.outlook.com (20.178.125.79) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.17; Wed, 19 Dec 2018 15:46:06 +0000 Received: from VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::7dc4:610b:d0c1:146b]) by VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::7dc4:610b:d0c1:146b%4]) with mapi id 15.20.1446.018; Wed, 19 Dec 2018 15:46:06 +0000 From: Akhil Goyal To: Konstantin Ananyev , "dev@dpdk.org" CC: "0000-cover-letter.patch@dpdk.org" <0000-cover-letter.patch@dpdk.org> Thread-Topic: [dpdk-dev] [PATCH v4 08/10] ipsec: helper functions to group completed crypto-ops Thread-Index: AQHUl7H0rRk0r9lEbE2kuUwp7tXKEw== Date: Wed, 19 Dec 2018 15:46:06 +0000 Message-ID: <2526cfb9-5cca-1375-bb4a-368c23975660@nxp.com> References: <1544110714-4514-2-git-send-email-konstantin.ananyev@intel.com> <1544804589-10338-8-git-send-email-konstantin.ananyev@intel.com> In-Reply-To: <1544804589-10338-8-git-send-email-konstantin.ananyev@intel.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BM1PR0101CA0020.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:18::30) To VI1PR04MB4893.eurprd04.prod.outlook.com (2603:10a6:803:56::26) authentication-results: spf=none (sender IP is ) smtp.mailfrom=akhil.goyal@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [14.143.30.134] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR04MB5598; 6:Uw8VFPEM5eIJswbPll6S9GR9CBfdTqU5jbBU1Z3ZHgsGR4m8LpubqBOYEO6S7oG1xJnUhxsP6VrVhgZtXCd+O8kJfNFjgujuxYotq9eRupIwj1eL311FI8lIpadjr6aDQ651OnjHBuOcFdgbcOzG8LbB30d2ZNjHqZ/avU7vvhVc8OTKiGuPeu+KoeNzNSTfnuHxnUe3lfHWp1+9YFm/6rG5IP9SYwYESkbUPvRHPzXj3U9T6XYyTudO2RhL6JgdnMhhNWtGT1zcurDnHt9fxqeSDXTbHqPyjeBBRxBosbruqZPB6MFF3Z7MwQiQr6OBTLSYiU9gcAlfTnNroCaFat8YwR8CxFNsza+XoXKg48qJ6oBFVj1FZZZ6JwD/U7X34LHzwAkVG9DBPpU/etcc3Cwd98zRn7oAatIgrrTmxgbG2+v/siO4XQ89J2TOAKpIXbRzu7zyybc7Vx2a5IgYgw==; 5:56xIMkt+EJcVVVLCo+dlJFMCY3E22/G7yXFJ247GQNPN91LVuuW2CbESQ17nyAQr3i4lT9GSwgAVEiwUCgCXNFobvqqMWrQnQPkMUcsdtkmlW4NP6W3VZy8PV1kK/nn8xmcJXFwUJLm5UDPIU5ChSqp4RoTbkhYWjaL8D7PKN8k=; 7:Y59DW1MbreIKSVlvVSuuDZ2jc1U05hcp1//iBP5x6xsu668yw8TtvkQsTq5ruP9DfpUMNhmnRnjSTpXjE77cBzQsPBMRab98WqGz4Thn5N8hMF3vQJX2b7y2egLO+A+RUj0bHN5sNc/7I8MVzT4ckQ== x-ms-office365-filtering-correlation-id: eb1c0670-4034-4118-025c-08d665c9169b x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB5598; x-ms-traffictypediagnostic: VI1PR04MB5598: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(999002)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231475)(944501520)(52105112)(93006095)(93001095)(6055026)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:VI1PR04MB5598; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB5598; x-forefront-prvs: 0891BC3F3D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(346002)(376002)(136003)(39860400002)(366004)(199004)(189003)(36756003)(6436002)(44832011)(6512007)(6486002)(478600001)(11346002)(78486014)(53936002)(229853002)(2616005)(3846002)(476003)(14454004)(6116002)(446003)(4326008)(31696002)(86362001)(6246003)(186003)(2501003)(26005)(14444005)(71200400001)(71190400001)(486006)(97736004)(256004)(386003)(53546011)(6506007)(8676002)(5660300001)(52116002)(81156014)(105586002)(81166006)(102836004)(31686004)(55236004)(76176011)(2906002)(25786009)(8936002)(316002)(106356001)(99286004)(68736007)(66066001)(7736002)(305945005)(110136005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB5598; H:VI1PR04MB4893.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: wrTe974U2XTyN9pED/PGWK7F4wpN3WnI+7UGRHZ9UCCXk7Yuw6R6XSSBjE7sriWQRk+BvrHivmJGl+B342HV2JxI5KiWCEY3rcHBF4a9hvYzhadHiZwNP2vC203jlgBlWWtNp7tf/rjVQ5xi1WGM39fbseerq9pyu64uYGURtLxBUU3lM1QBf2yAng0L2XIGsgPx9RBLsCraQKGiv1c6GjovUldTEo84ydZnOjnTBRMHfXA7YW+uis0aiCvKfmqf6kPdaJPtfPW/8a1KF60JsPU4MuvR8sHHHrWK45wIiuMyyGnWoizg4GIcKxsRlSsc spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <0FAA5A165297884CADA81D2D1FE3DA70@eurprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb1c0670-4034-4118-025c-08d665c9169b X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2018 15:46:06.7337 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5598 Subject: Re: [dpdk-dev] [PATCH v4 08/10] ipsec: helper functions to group completed crypto-ops X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Dec 2018 15:46:09 -0000 DQoNCk9uIDEyLzE0LzIwMTggOTo1MyBQTSwgS29uc3RhbnRpbiBBbmFueWV2IHdyb3RlOg0KPiBJ bnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucyB0byBwcm9jZXNzIGNvbXBsZXRlZCBjcnlwdG8tb3Bz DQo+IGFuZCBncm91cCByZWxhdGVkIHBhY2tldHMgYnkgc2Vzc2lvbnMgdGhleSBiZWxvbmcgdG8u DQo+DQo+IFNpZ25lZC1vZmYtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFu eWV2QGludGVsLmNvbT4NCj4gQWNrZWQtYnk6IERlY2xhbiBEb2hlcnR5IDxkZWNsYW4uZG9oZXJ0 eUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgIGxpYi9saWJydGVfaXBzZWMvTWFrZWZpbGUgICAgICAg ICAgICAgIHwgICAxICsNCj4gICBsaWIvbGlicnRlX2lwc2VjL21lc29uLmJ1aWxkICAgICAgICAg ICB8ICAgMiArLQ0KPiAgIGxpYi9saWJydGVfaXBzZWMvcnRlX2lwc2VjLmggICAgICAgICAgIHwg ICAyICsNCj4gICBsaWIvbGlicnRlX2lwc2VjL3J0ZV9pcHNlY19ncm91cC5oICAgICB8IDE1MSAr KysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAgbGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWNf dmVyc2lvbi5tYXAgfCAgIDIgKw0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTU3IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9pcHNl Yy9ydGVfaXBzZWNfZ3JvdXAuaA0KPg0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9pcHNlYy9N YWtlZmlsZSBiL2xpYi9saWJydGVfaXBzZWMvTWFrZWZpbGUNCj4gaW5kZXggNzlmMTg3ZmFlLi45 OGM1MmYzODggMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfaXBzZWMvTWFrZWZpbGUNCj4gKysr IGIvbGliL2xpYnJ0ZV9pcHNlYy9NYWtlZmlsZQ0KPiBAQCAtMjEsNiArMjEsNyBAQCBTUkNTLSQo Q09ORklHX1JURV9MSUJSVEVfSVBTRUMpICs9IHNlcy5jDQo+ICAgDQo+ICAgIyBpbnN0YWxsIGhl YWRlciBmaWxlcw0KPiAgIFNZTUxJTkstJChDT05GSUdfUlRFX0xJQlJURV9JUFNFQyktaW5jbHVk ZSArPSBydGVfaXBzZWMuaA0KPiArU1lNTElOSy0kKENPTkZJR19SVEVfTElCUlRFX0lQU0VDKS1p bmNsdWRlICs9IHJ0ZV9pcHNlY19ncm91cC5oDQo+ICAgU1lNTElOSy0kKENPTkZJR19SVEVfTElC UlRFX0lQU0VDKS1pbmNsdWRlICs9IHJ0ZV9pcHNlY19zYS5oDQo+ICAgDQo+ICAgaW5jbHVkZSAk KFJURV9TREspL21rL3J0ZS5saWIubWsNCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfaXBzZWMv bWVzb24uYnVpbGQgYi9saWIvbGlicnRlX2lwc2VjL21lc29uLmJ1aWxkDQo+IGluZGV4IDZlOGM2 ZmFiZS4uZDI0MjdiODA5IDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX2lwc2VjL21lc29uLmJ1 aWxkDQo+ICsrKyBiL2xpYi9saWJydGVfaXBzZWMvbWVzb24uYnVpbGQNCj4gQEAgLTUsNiArNSw2 IEBAIGFsbG93X2V4cGVyaW1lbnRhbF9hcGlzID0gdHJ1ZQ0KPiAgIA0KPiAgIHNvdXJjZXM9Zmls ZXMoJ3NhLmMnLCAnc2VzLmMnKQ0KPiAgIA0KPiAtaW5zdGFsbF9oZWFkZXJzID0gZmlsZXMoJ3J0 ZV9pcHNlYy5oJywgJ3J0ZV9pcHNlY19zYS5oJykNCj4gK2luc3RhbGxfaGVhZGVycyA9IGZpbGVz KCdydGVfaXBzZWMuaCcsICdydGVfaXBzZWNfZ3JvdXAuaCcsICdydGVfaXBzZWNfc2EuaCcpDQo+ ICAgDQo+ICAgZGVwcyArPSBbJ21idWYnLCAnbmV0JywgJ2NyeXB0b2RldicsICdzZWN1cml0eSdd DQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2lwc2VjL3J0ZV9pcHNlYy5oIGIvbGliL2xpYnJ0 ZV9pcHNlYy9ydGVfaXBzZWMuaA0KPiBpbmRleCBjYmNkODYxYjUuLmNkMmUzYjI2YyAxMDA2NDQN Cj4gLS0tIGEvbGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWMuaA0KPiArKysgYi9saWIvbGlicnRl X2lwc2VjL3J0ZV9pcHNlYy5oDQo+IEBAIC0xNDQsNiArMTQ0LDggQEAgcnRlX2lwc2VjX3BrdF9w cm9jZXNzKGNvbnN0IHN0cnVjdCBydGVfaXBzZWNfc2Vzc2lvbiAqc3MsIHN0cnVjdCBydGVfbWJ1 ZiAqbWJbXSwNCj4gICAJcmV0dXJuIHNzLT5wa3RfZnVuYy5wcm9jZXNzKHNzLCBtYiwgbnVtKTsN Cj4gICB9DQo+ICAgDQo+ICsjaW5jbHVkZSA8cnRlX2lwc2VjX2dyb3VwLmg+DQo+ICsNCj4gICAj aWZkZWYgX19jcGx1c3BsdXMNCj4gICB9DQo+ICAgI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9saWIv bGlicnRlX2lwc2VjL3J0ZV9pcHNlY19ncm91cC5oIGIvbGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBz ZWNfZ3JvdXAuaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAuLmQy NjRkN2U3OA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2xpYi9saWJydGVfaXBzZWMvcnRlX2lw c2VjX2dyb3VwLmgNCj4gQEAgLTAsMCArMSwxNTEgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDE4IEludGVsIENvcnBv cmF0aW9uDQo+ICsgKi8NCj4gKw0KPiArI2lmbmRlZiBfUlRFX0lQU0VDX0dST1VQX0hfDQo+ICsj ZGVmaW5lIF9SVEVfSVBTRUNfR1JPVVBfSF8NCj4gKw0KPiArLyoqDQo+ICsgKiBAZmlsZSBydGVf aXBzZWNfZ3JvdXAuaA0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdl IHdpdGhvdXQgcHJpb3Igbm90aWNlDQo+ICsgKg0KPiArICogUlRFIElQc2VjIHN1cHBvcnQuDQo+ ICsgKiBJdCBpcyBub3QgcmVjb21lbmRlZCB0byBpbmNsdWRlIHRoaXMgZmlsZSBkaXJlY2x0eSwN CnNwZWxsIGNoZWNrDQo+ICsgKiBpbmNsdWRlIDxydGVfaXBzZWMuaD4gaW5zdGVhZC4NCj4gKyAq IENvbnRhaW5zIGhlbHBlciBmdW5jdGlvbnMgdG8gcHJvY2VzcyBjb21wbGV0ZWQgY3J5cHRvLW9w cw0KPiArICogYW5kIGdyb3VwIHJlbGF0ZWQgcGFja2V0cyBieSBzZXNzaW9ucyB0aGV5IGJlbG9u ZyB0by4NCj4gKyAqLw0KPiArDQo+ICsNCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0ZXJu ICJDIiB7DQo+ICsjZW5kaWYNCj4gKw0KPiArLyoqDQo+ICsgKiBVc2VkIHRvIGdyb3VwIG1idWZz IGJ5IHNvbWUgaWQuDQo+ICsgKiBTZWUgYmVsb3cgZm9yIHBhcnRpY3VsYXIgdXNhZ2UuDQo+ICsg Ki8NCj4gK3N0cnVjdCBydGVfaXBzZWNfZ3JvdXAgew0KPiArCXVuaW9uIHsNCj4gKwkJdWludDY0 X3QgdmFsOw0KPiArCQl2b2lkICpwdHI7DQo+ICsJfSBpZDsgLyoqPCBncm91cGVkIGJ5IHZhbHVl ICovDQo+ICsJc3RydWN0IHJ0ZV9tYnVmICoqbTsgIC8qKjwgc3RhcnQgb2YgdGhlIGdyb3VwICov DQo+ICsJdWludDMyX3QgY250OyAgICAgICAgIC8qKjwgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhl IGdyb3VwICovDQo+ICsJaW50MzJfdCByYzsgICAgICAgICAgIC8qKjwgc3RhdHVzIGNvZGUgYXNz b2NpYXRlZCB3aXRoIHRoZSBncm91cCAqLw0KPiArfTsNCj4gKw0KPiArLyoqDQo+ICsgKiBUYWtl IGNyeXB0by1vcCBhcyBhbiBpbnB1dCBhbmQgZXh0cmFjdCBwb2ludGVyIHRvIHJlbGF0ZWQgaXBz ZWMgc2Vzc2lvbi4NCj4gKyAqIEBwYXJhbSBjb3ANCj4gKyAqICAgVGhlIGFkZHJlc3Mgb2YgYW4g aW5wdXQgKnJ0ZV9jcnlwdG9fb3AqIHN0cnVjdHVyZS4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAg VGhlIHBvaW50ZXIgdG8gdGhlIHJlbGF0ZWQgKnJ0ZV9pcHNlY19zZXNzaW9uKiBzdHJ1Y3R1cmUu DQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgX19ydGVfZXhwZXJpbWVudGFsIHN0cnVjdCBydGVf aXBzZWNfc2Vzc2lvbiAqDQo+ICtydGVfaXBzZWNfc2VzX2Zyb21fY3J5cHRvKGNvbnN0IHN0cnVj dCBydGVfY3J5cHRvX29wICpjb3ApDQpfX3J0ZV9leHBlcmltZW50YWwgcGxhY2VtZW50IG5vdCBj b3JyZWN0DQo+ICt7DQo+ICsJY29uc3Qgc3RydWN0IHJ0ZV9zZWN1cml0eV9zZXNzaW9uICpzczsN Cj4gKwljb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zeW1fc2Vzc2lvbiAqY3M7DQo+ICsNCj4g KwlpZiAoY29wLT5zZXNzX3R5cGUgPT0gUlRFX0NSWVBUT19PUF9TRUNVUklUWV9TRVNTSU9OKSB7 DQo+ICsJCXNzID0gY29wLT5zeW1bMF0uc2VjX3Nlc3Npb247DQo+ICsJCXJldHVybiAodm9pZCAq KSh1aW50cHRyX3Qpc3MtPm9wYXF1ZV9kYXRhOw0KPiArCX0gZWxzZSBpZiAoY29wLT5zZXNzX3R5 cGUgPT0gUlRFX0NSWVBUT19PUF9XSVRIX1NFU1NJT04pIHsNCj4gKwkJY3MgPSBjb3AtPnN5bVsw XS5zZXNzaW9uOw0KPiArCQlyZXR1cm4gKHZvaWQgKikodWludHB0cl90KWNzLT5vcGFxdWVfZGF0 YTsNCj4gKwl9DQo+ICsJcmV0dXJuIE5VTEw7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogVGFr ZSBhcyBpbnB1dCBjb21wbGV0ZWQgY3J5cHRvIG9wcywgZXh0cmFjdCByZWxhdGVkIG1idWZzDQo+ ICsgKiBhbmQgZ3JvdXAgdGhlbSBieSBydGVfaXBzZWNfc2Vzc2lvbiB0aGV5IGJlbG9uZyB0by4N Cj4gKyAqIEZvciBtYnVmIHdoaWNoIGNyeXB0by1vcCB3YXNuJ3QgY29tcGxldGVkIHN1Y2Nlc3Nm dWxseQ0KPiArICogUEtUX1JYX1NFQ19PRkZMT0FEX0ZBSUxFRCB3aWxsIGJlIHJhaXNlZCBpbiBv bF9mbGFncy4NCj4gKyAqIE5vdGUgdGhhdCBtYnVmcyB3aXRoIHVuZGV0ZXJtaW5lZCBTQSAoc2Vz c2lvbi1sZXNzKSBhcmUgbm90IGZyZWVkDQo+ICsgKiBieSB0aGUgZnVuY3Rpb24sIGJ1dCBhcmUg cGxhY2VkIGJleW9uZCBtYnVmcyBmb3IgdGhlIGxhc3QgdmFsaWQgZ3JvdXAuDQo+ICsgKiBJdCBp cyBhIHVzZXIgcmVzcG9uc2liaWxpdHkgdG8gaGFuZGxlIHRoZW0gZnVydGhlci4NCj4gKyAqIEBw YXJhbSBjb3ANCj4gKyAqICAgVGhlIGFkZHJlc3Mgb2YgYW4gYXJyYXkgb2YgKm51bSogcG9pbnRl cnMgdG8gdGhlIGlucHV0ICpydGVfY3J5cHRvX29wKg0KPiArICogICBzdHJ1Y3R1cmVzLg0KPiAr ICogQHBhcmFtIG1iDQo+ICsgKiAgIFRoZSBhZGRyZXNzIG9mIGFuIGFycmF5IG9mICpudW0qIHBv aW50ZXJzIHRvIG91dHB1dCAqcnRlX21idWYqIHN0cnVjdHVyZXMuDQo+ICsgKiBAcGFyYW0gZ3Jw DQo+ICsgKiAgIFRoZSBhZGRyZXNzIG9mIGFuIGFycmF5IG9mICpudW0qIHRvIG91dHB1dCAqcnRl X2lwc2VjX2dyb3VwKiBzdHJ1Y3R1cmVzLg0KPiArICogQHBhcmFtIG51bQ0KPiArICogICBUaGUg bWF4aW11bSBudW1iZXIgb2YgY3J5cHRvLW9wcyB0byBwcm9jZXNzLg0KPiArICogQHJldHVybg0K PiArICogICBOdW1iZXIgb2YgZmlsbGVkIGVsZW1lbnRzIGluICpncnAqIGFycmF5Lg0KPiArICov DQo+ICtzdGF0aWMgaW5saW5lIHVpbnQxNl90IF9fcnRlX2V4cGVyaW1lbnRhbA0KPiArcnRlX2lw c2VjX3BrdF9jcnlwdG9fZ3JvdXAoY29uc3Qgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKmNvcFtdLA0K PiArCXN0cnVjdCBydGVfbWJ1ZiAqbWJbXSwgc3RydWN0IHJ0ZV9pcHNlY19ncm91cCBncnBbXSwg dWludDE2X3QgbnVtKQ0KPiArew0KPiArCXVpbnQzMl90IGksIGosIGssIG47DQo+ICsJdm9pZCAq bnMsICpwczsNCj4gKwlzdHJ1Y3QgcnRlX21idWYgKm0sICpkcltudW1dOw0KPiArDQo+ICsJaiA9 IDA7DQo+ICsJayA9IDA7DQo+ICsJbiA9IDA7DQo+ICsJcHMgPSBOVUxMOw0KPiArDQo+ICsJZm9y IChpID0gMDsgaSAhPSBudW07IGkrKykgew0KPiArDQo+ICsJCW0gPSBjb3BbaV0tPnN5bVswXS5t X3NyYzsNCj4gKwkJbnMgPSBjb3BbaV0tPnN5bVswXS5zZXNzaW9uOw0KPiArDQo+ICsJCW0tPm9s X2ZsYWdzIHw9IFBLVF9SWF9TRUNfT0ZGTE9BRDsNCj4gKwkJaWYgKGNvcFtpXS0+c3RhdHVzICE9 IFJURV9DUllQVE9fT1BfU1RBVFVTX1NVQ0NFU1MpDQo+ICsJCQltLT5vbF9mbGFncyB8PSBQS1Rf UlhfU0VDX09GRkxPQURfRkFJTEVEOw0KPiArDQo+ICsJCS8qIG5vIHZhbGlkIHNlc3Npb24gZm91 bmQgKi8NCj4gKwkJaWYgKG5zID09IE5VTEwpIHsNCj4gKwkJCWRyW2srK10gPSBtOw0KPiArCQkJ Y29udGludWU7DQo+ICsJCX0NCj4gKw0KPiArCQkvKiBkaWZmZXJlbnQgU0EgKi8NCj4gKwkJaWYg KHBzICE9IG5zKSB7DQo+ICsNCj4gKwkJCS8qDQo+ICsJCQkgKiB3ZSBhbHJlYWR5IGhhdmUgYW4g b3BlbiBncm91cCAtIGZpbmlsaXNlIGl0LA0KZmluYWxpc2UNCj4gKwkJCSAqIHRoZW4gb3BlbiBh IG5ldyBvbmUuDQo+ICsJCQkgKi8NCj4gKwkJCWlmIChwcyAhPSBOVUxMKSB7DQo+ICsJCQkJZ3Jw W25dLmlkLnB0ciA9DQo+ICsJCQkJCXJ0ZV9pcHNlY19zZXNfZnJvbV9jcnlwdG8oY29wW2kgLSAx XSk7DQo+ICsJCQkJZ3JwW25dLmNudCA9IG1iICsgaiAtIGdycFtuXS5tOw0KPiArCQkJCW4rKzsN Cj4gKwkJCX0NCj4gKw0KPiArCQkJLyogc3RhcnQgbmV3IGdyb3VwICovDQo+ICsJCQlncnBbbl0u bSA9IG1iICsgajsNCj4gKwkJCXBzID0gbnM7DQo+ICsJCX0NCj4gKw0KPiArCQltYltqKytdID0g bTsNCj4gKwl9DQo+ICsNCj4gKwkvKiBmaW5hbGlzZSBsYXN0IGdyb3VwICovDQo+ICsJaWYgKHBz ICE9IE5VTEwpIHsNCj4gKwkJZ3JwW25dLmlkLnB0ciA9IHJ0ZV9pcHNlY19zZXNfZnJvbV9jcnlw dG8oY29wW2kgLSAxXSk7DQo+ICsJCWdycFtuXS5jbnQgPSBtYiArIGogLSBncnBbbl0ubTsNCj4g KwkJbisrOw0KPiArCX0NCj4gKw0KPiArCS8qIGNvcHkgbWJ1ZnMgd2l0aCB1bmtub3duIHNlc3Np b24gYmV5b25kIHJlY29nbmlzZWQgb25lcyAqLw0KPiArCWlmIChrICE9IDAgJiYgayAhPSBudW0p IHsNCj4gKwkJZm9yIChpID0gMDsgaSAhPSBrOyBpKyspDQo+ICsJCQltYltqICsgaV0gPSBkcltp XTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gbjsNCj4gK30NCj4gKw0KPiArI2lmZGVmIF9fY3Bs dXNwbHVzDQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiArI2VuZGlmIC8qIF9SVEVfSVBTRUNfR1JP VVBfSF8gKi8NCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfaXBzZWMvcnRlX2lwc2VjX3ZlcnNp b24ubWFwIGIvbGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWNfdmVyc2lvbi5tYXANCj4gaW5kZXgg ZDFjNTJkN2NhLi4wZjkxZmIxMzQgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfaXBzZWMvcnRl X2lwc2VjX3ZlcnNpb24ubWFwDQo+ICsrKyBiL2xpYi9saWJydGVfaXBzZWMvcnRlX2lwc2VjX3Zl cnNpb24ubWFwDQo+IEBAIC0xLDYgKzEsNyBAQA0KPiAgIEVYUEVSSU1FTlRBTCB7DQo+ICAgCWds b2JhbDoNCj4gICANCj4gKwlydGVfaXBzZWNfcGt0X2NyeXB0b19ncm91cDsNCj4gICAJcnRlX2lw c2VjX3BrdF9jcnlwdG9fcHJlcGFyZTsNCj4gICAJcnRlX2lwc2VjX3Nlc3Npb25fcHJlcGFyZTsN Cj4gICAJcnRlX2lwc2VjX3BrdF9wcm9jZXNzOw0KPiBAQCAtOCw2ICs5LDcgQEAgRVhQRVJJTUVO VEFMIHsNCj4gICAJcnRlX2lwc2VjX3NhX2luaXQ7DQo+ICAgCXJ0ZV9pcHNlY19zYV9zaXplOw0K PiAgIAlydGVfaXBzZWNfc2FfdHlwZTsNCj4gKwlydGVfaXBzZWNfc2VzX2Zyb21fY3J5cHRvOw0K PiAgIA0KPiAgIAlsb2NhbDogKjsNCj4gICB9Ow0KDQo=