From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7C92FA0352; Thu, 14 May 2020 14:23:39 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C7A481D727; Thu, 14 May 2020 14:23:38 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id E5F8E1D716 for ; Thu, 14 May 2020 14:23:35 +0200 (CEST) IronPort-SDR: wD0k+02zVYJ7visuXUebDSLFS4LXDChXJRPGfoDEpH0vorhzLW5K6Ufa/z8QA01VEfW3e/fVGk mOHWeszKeA5g== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2020 05:23:34 -0700 IronPort-SDR: 2U7mLXkvxw7jaJOuU3YhV/A+JUZG1okHWq5rHWwxoQpRUQ9e88+ojGhsQZgo0ulAoWzJ7XfnY8 hBWM5XVUKQSA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,391,1583222400"; d="scan'208";a="280838391" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga002.jf.intel.com with ESMTP; 14 May 2020 05:23:33 -0700 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 14 May 2020 05:23:33 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 14 May 2020 05:23:33 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 14 May 2020 05:23:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ClTx77Ex2LwRN2FOzPaYpvZMczN2lTJ+1VGPjU4gLeGBaS7oE2J7B6VTLrranl1V29TXg8aonCg3ekhkQm1lWJKqnhfZqKcgEGfbt3NOeBadMU8wYpnsIpyTMd65r6ZzKRtWTGorBOCabWaxyrB7lnUED0AP+KzSm8ORM0qcySyNMszYBviIquiyoFk/bH3wjt0ci7L/0xZ/100gxiyKA5wRyrGGr6rNoNhpHyitkopcKcFlw2N4xxMHmsy5AL/Op1SdK2LK+L67/eTjT4icm4SA7x+YSAVRHiPQHKl0LrB7rAHnafwA8wOKsmAzVIsIo0D1aZkzQdwTXgeF5uP7Qg== 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=fFVVtNqUhWgWAK52dT4Y5oz842NmvdFNaDmRBTixc3E=; b=jS87pLKN8VDZhgu8HiUu0EIolDSXr48uX/SHVX2A+7X6O6uuGOcaVDzTpeuT8qHLWhnKh67bBNhq1cdXPH/dDFKRj22PVylyf0J3mbXoSEApVJ92jXIjfUNTZSPzXp8Mt/zuIIhTW7BhrxW/RVCjQLAJERH9AjKayCor3QDkqgumzfws/LafdIbI0qnRob0WlN2UEzQa3uLZ6W0+fzHLToZwxgTMYm+ALtBN5m2+qwFo0WQC0azirBfa8gQwbQvl6tknZKRTeXFfx9oJnE7223uoBdCc/qGS50VVI6DqVB1a2u+xBvGBS3ikzLD2qMHtO/DAJlEwUfWyLzms1P9bRw== 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=fFVVtNqUhWgWAK52dT4Y5oz842NmvdFNaDmRBTixc3E=; b=Qx1gVPqrP4P3rsqZpABOcJm/ArNdmSMZeAwuYiLrk/CWafRTnpMywHc1NHEkKn7PDXTYJkH6/7E11FFjKlNhazzmsU5dpwzmqbBOx2aNwyevItep5z1RomDtYCYxKyhF8fF0c8E2oCYUd5BVNLOtYojQA2fSPGwpNlbroa18r/g= Received: from BYAPR11MB3301.namprd11.prod.outlook.com (2603:10b6:a03:7f::26) by BYAPR11MB2581.namprd11.prod.outlook.com (2603:10b6:a02:cc::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.34; Thu, 14 May 2020 12:23:31 +0000 Received: from BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f8cb:58cd:e958:fff4]) by BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f8cb:58cd:e958:fff4%6]) with mapi id 15.20.3000.016; Thu, 14 May 2020 12:23:31 +0000 From: "Ananyev, Konstantin" To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "olivier.matz@6wind.com" , "Honnappa.Nagarahalli@arm.com" , "nd@arm.com" CC: "dev@dpdk.org" Thread-Topic: [PATCH] ring: empty and count optimizations Thread-Index: AQHWKTus3WKEl/7imUeh4dx746rUOqimP7MAgAFBi7A= Date: Thu, 14 May 2020 12:23:31 +0000 Message-ID: References: <20200513153111.37063-1-mb@smartsharesystems.com> <20200513170812.38233-1-mb@smartsharesystems.com> In-Reply-To: <20200513170812.38233-1-mb@smartsharesystems.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.2.0.6 authentication-results: smartsharesystems.com; dkim=none (message not signed) header.d=none; smartsharesystems.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.151.164] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 89439e7c-bff6-4578-75b3-08d7f8019d9e x-ms-traffictypediagnostic: BYAPR11MB2581: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 040359335D x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xj0RYUG4rN1+nJq2I3yWvE97WC7KntzZNeGkkjkyD+kBqMxIyl2K4Qfo1Xbh2bLgVZkBLDMpWcThrBeunjPIjfTqQlnY3HFSnJFOFu/3DoiIhCSfVCssEygqWm4JUoQ5anOGcPg4KIQhi0IqWcw1xpS9GP/zEKK16xWqdvFuYszo/RCwtI2V7LBeppybNqB0jMprRkhVeBkEZz+zQTaWMjwW0RG0VqQVQ+nLl10RPqXnJEroVITg1xkzywISGuM/L9FcYPvPGi126N2DtqMjBbaxUme4lSj3jIhyc2jsk+aPyroQ1B9XoN2T5HlwFMhhehDlfJM1E9khJ9/vJeu7jjmZpsRzFeBqwoKyyo40rdsKnw8QnQFIZTenB/mW+CVvaqyHXkaPqEMetx/3QaV/sy/2CQa8Sl2s4U2ioJMgQqpg7N6HCj6U/DsFiOXnqkJC3A8SVWnWDkyBtiJBMn/aC3/9A2ojmBmCUh2Teo8oX2bH5U69k1MAUbuLIKRHVnuI9Z5WrP/9NWG5bn+0X4igaA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB3301.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(396003)(366004)(39860400002)(346002)(376002)(136003)(4326008)(110136005)(6506007)(71200400001)(8936002)(316002)(66556008)(52536014)(9686003)(66446008)(64756008)(7696005)(33656002)(2906002)(8676002)(76116006)(55016002)(5660300002)(66476007)(86362001)(66946007)(478600001)(26005)(186003)(966005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: e68T2I+MRtVHe+engJLlzIcuUw0iVS33tHVVYJVKLZuw6ZaftoPlqLdPSiBY8jOssPNGhgxauGOhf2q/wFnu1VwlREducPyJl3vy7ASe7bSp8QYj6BPWCUqxlpkPwVX91ytc3oNk9A8a6IvdMj7YVYdqakUWXqKp+vKrUAgKBMpOViSXUwGCiwbZXEoBFzit12meFV85NLYE4LwEZaB9+zUTPGpRN5RHogTh6o3mXif9E9HaEM8Ih9rnm5yPrzQe96eqMBE3cx5dJNYFp3Cu9ID0Tm0Bc4wHJKurhyJCqgDl11Xxau03x6tH5bQSZ0Gq82gf4nBTpvsB75iQ+YZqRe+NTCv+wcCteNVVRjk0BRIy3RpWeFvP1ERYhDxkhErgjCcmM4zd0JTqpoyFW2oTLpvpDbzE5y0NY6lUDRjkCPeyUzZepGvw+GKRzPm3mSVMGk4su0vZFh9GQl6ITc+uYBtdmbLeyevwIGF+J+cNRRYNHctSHVaVk7PYc6honE8S x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 89439e7c-bff6-4578-75b3-08d7f8019d9e X-MS-Exchange-CrossTenant-originalarrivaltime: 14 May 2020 12:23:31.7429 (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: 8vwhaR7K5qMv/GPj6BZWI1j9C/Une/J4LQBB9ryqahBbOX3RXul35a2P4/Zx+V9VUZ9Yg7EMaR9vNoQXofjnwQnxVBhk9OV+LEC5iNC9pKQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2581 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] ring: empty and count optimizations 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQpIaSBNb3J0ZW4sDQoNCj4gVGVzdGluZyBpZiB0aGUgcmluZyBpcyBlbXB0eSBpcyBhcyBzaW1w bGUgYXMgY29tcGFyaW5nIHRoZSBwcm9kdWNlciBhbmQNCj4gY29uc3VtZXIgcG9pbnRlcnMuDQo+ IEluIHRoZW9yeSwgdGhpcyBvcHRpbWl6YXRpb24gcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHBvdGVu dGlhbCBjYWNoZSBtaXNzZXMNCj4gZnJvbSAzIHRvIDIgYnkgbm90IGhhdmluZyB0byByZWFkIHIt Pm1hc2sgaW4gcnRlX3JpbmdfY291bnQoKS4NCj4gDQo+IEl0IGlzIG5vdCBwb3NzaWJsZSB0byBl bnF1ZXVlIG1vcmUgZWxlbWVudHMgdGhhbiB0aGUgY2FwYWNpdHkgb2YgYSByaW5nLA0KPiBzbyB0 aGUgY2FwYWNpdHkgY29tcGFyaXNvbiBpcyBhIHNhZmVndWFyZCBmb3Igb2JzZXJ2ZXIgdGhyZWFk cyBvbmx5Lg0KPiBJbnN0ZWFkIG9mIGNvbXBsZXRlbHkgcmVtb3ZpbmcgdGhlIGNvbXBhcmlzb24s IEkgaGF2ZSByZW9yZ2FuaXplZCBpdCB0bw0KPiByZXNlbWJsZSB0aGUgb3RoZXIgdHJpZ3JhaHBz IGluIHRoZSByaW5nIGxpYnJhcnkgYW5kIGFkZGVkIGEgbGlrZWx5KCkuDQo+IA0KPiBUaGUgbW9k aWZpY2F0aW9uIG9mIHRoZXNlIHR3byBmdW5jdGlvbnMgd2VyZSBkaXNjdXNzZWQgaW4gdGhlIFJG QyBoZXJlOg0KPiBodHRwczovL21haWxzLmRwZGsub3JnL2FyY2hpdmVzL2Rldi8yMDIwLUFwcmls LzE2NTc1Mi5odG1sDQo+IA0KPiBBbHNvIGZpeGVkIHNvbWUgZXhpc3RpbmcgY29kZSBub3QgcGFz c2luZyBjaGVja3BhdGNoLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTW9ydGVuIEJyw7hydXAgPG1i QHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gLS0tDQo+ICBsaWIvbGlicnRlX3JpbmcvcnRlX3Jp bmcuaCB8IDM2ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQ0KPiAgMSBmaWxl IGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt LWdpdCBhL2xpYi9saWJydGVfcmluZy9ydGVfcmluZy5oIGIvbGliL2xpYnJ0ZV9yaW5nL3J0ZV9y aW5nLmgNCj4gaW5kZXggODZmYWVkZTgxLi4zNjQzOGQ5Y2QgMTAwNjQ0DQo+IC0tLSBhL2xpYi9s aWJydGVfcmluZy9ydGVfcmluZy5oDQo+ICsrKyBiL2xpYi9saWJydGVfcmluZy9ydGVfcmluZy5o DQo+IEBAIC01NSw3ICs1NSw3IEBAIGV4dGVybiAiQyIgew0KPiAgICogICAtIFRoZSBtZW1vcnkg c2l6ZSBuZWVkZWQgZm9yIHRoZSByaW5nIG9uIHN1Y2Nlc3MuDQo+ICAgKiAgIC0gLUVJTlZBTCBp ZiBjb3VudCBpcyBub3QgYSBwb3dlciBvZiAyLg0KPiAgICovDQo+IC1zc2l6ZV90IHJ0ZV9yaW5n X2dldF9tZW1zaXplKHVuc2lnbmVkIGNvdW50KTsNCj4gK3NzaXplX3QgcnRlX3JpbmdfZ2V0X21l bXNpemUodW5zaWduZWQgaW50IGNvdW50KTsNCg0KQWxsIHRoZXNlIGNoYW5nZXMgdG8gcmVwbGFj ZSAndW5zaWduZWQnIHdpdGggaW5zaWduZWQgaW50JyAtDQpzZWVtcyB0byBiZSBpcnJlbGV2YW50 IHRvIHRoZSBwYXRjaCBzdWJqZWN0LCBzbyBjYW4geW91DQpwdXQgdGhlbSB0byBhIHNlcGFyYXRl IHBhdGNoIGluIHRoZSBzZXJpZXMuIA0KIA0KPiAgLyoqDQo+ICAgKiBJbml0aWFsaXplIGEgcmlu ZyBzdHJ1Y3R1cmUuDQo+IEBAIC0xMDksOCArMTA5LDggQEAgc3NpemVfdCBydGVfcmluZ19nZXRf bWVtc2l6ZSh1bnNpZ25lZCBjb3VudCk7DQo+ICAgKiBAcmV0dXJuDQo+ICAgKiAgIDAgb24gc3Vj Y2Vzcywgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJvci4NCj4gICAqLw0KPiAtaW50IHJ0ZV9y aW5nX2luaXQoc3RydWN0IHJ0ZV9yaW5nICpyLCBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBj b3VudCwNCj4gLQl1bnNpZ25lZCBmbGFncyk7DQo+ICtpbnQgcnRlX3JpbmdfaW5pdChzdHJ1Y3Qg cnRlX3JpbmcgKnIsIGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBjb3VudCwNCj4gKwl1 bnNpZ25lZCBpbnQgZmxhZ3MpOw0KPiANCj4gIC8qKg0KPiAgICogQ3JlYXRlIGEgbmV3IHJpbmcg bmFtZWQgKm5hbWUqIGluIG1lbW9yeS4NCj4gQEAgLTE2OSw4ICsxNjksOCBAQCBpbnQgcnRlX3Jp bmdfaW5pdChzdHJ1Y3QgcnRlX3JpbmcgKnIsIGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGNv dW50LA0KPiAgICogICAgLSBFRVhJU1QgLSBhIG1lbXpvbmUgd2l0aCB0aGUgc2FtZSBuYW1lIGFs cmVhZHkgZXhpc3RzDQo+ICAgKiAgICAtIEVOT01FTSAtIG5vIGFwcHJvcHJpYXRlIG1lbW9yeSBh cmVhIGZvdW5kIGluIHdoaWNoIHRvIGNyZWF0ZSBtZW16b25lDQo+ICAgKi8NCj4gLXN0cnVjdCBy dGVfcmluZyAqcnRlX3JpbmdfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGNvdW50 LA0KPiAtCQkJCSBpbnQgc29ja2V0X2lkLCB1bnNpZ25lZCBmbGFncyk7DQo+ICtzdHJ1Y3QgcnRl X3JpbmcgKnJ0ZV9yaW5nX2NyZWF0ZShjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgY291 bnQsDQo+ICsJCQkJIGludCBzb2NrZXRfaWQsIHVuc2lnbmVkIGludCBmbGFncyk7DQo+IA0KPiAg LyoqDQo+ICAgKiBEZS1hbGxvY2F0ZSBhbGwgbWVtb3J5IHVzZWQgYnkgdGhlIHJpbmcuDQo+IEBA IC0xOTksNyArMTk5LDcgQEAgdm9pZCBydGVfcmluZ19kdW1wKEZJTEUgKmYsIGNvbnN0IHN0cnVj dCBydGVfcmluZyAqcik7DQo+ICAJdWludDMyX3QgaWR4ID0gcHJvZF9oZWFkICYgKHIpLT5tYXNr OyBcDQo+ICAJb2JqX3R5cGUgKnJpbmcgPSAob2JqX3R5cGUgKilyaW5nX3N0YXJ0OyBcDQo+ICAJ aWYgKGxpa2VseShpZHggKyBuIDwgc2l6ZSkpIHsgXA0KPiAtCQlmb3IgKGkgPSAwOyBpIDwgKG4g JiAoKH4odW5zaWduZWQpMHgzKSkpOyBpKz00LCBpZHgrPTQpIHsgXA0KPiArCQlmb3IgKGkgPSAw OyBpIDwgKG4gJiB+MHgzKTsgaSArPSA0LCBpZHggKz0gNCkgeyBcDQo+ICAJCQlyaW5nW2lkeF0g PSBvYmpfdGFibGVbaV07IFwNCj4gIAkJCXJpbmdbaWR4KzFdID0gb2JqX3RhYmxlW2krMV07IFwN Cj4gIAkJCXJpbmdbaWR4KzJdID0gb2JqX3RhYmxlW2krMl07IFwNCj4gQEAgLTIzMCw3ICsyMzAs NyBAQCB2b2lkIHJ0ZV9yaW5nX2R1bXAoRklMRSAqZiwgY29uc3Qgc3RydWN0IHJ0ZV9yaW5nICpy KTsNCj4gIAljb25zdCB1aW50MzJfdCBzaXplID0gKHIpLT5zaXplOyBcDQo+ICAJb2JqX3R5cGUg KnJpbmcgPSAob2JqX3R5cGUgKilyaW5nX3N0YXJ0OyBcDQo+ICAJaWYgKGxpa2VseShpZHggKyBu IDwgc2l6ZSkpIHsgXA0KPiAtCQlmb3IgKGkgPSAwOyBpIDwgKG4gJiAofih1bnNpZ25lZCkweDMp KTsgaSs9NCwgaWR4Kz00KSB7XA0KPiArCQlmb3IgKGkgPSAwOyBpIDwgKG4gJiB+MHgzKTsgaSAr PSA0LCBpZHggKz0gNCkge1wNCj4gIAkJCW9ial90YWJsZVtpXSA9IHJpbmdbaWR4XTsgXA0KPiAg CQkJb2JqX3RhYmxlW2krMV0gPSByaW5nW2lkeCsxXTsgXA0KPiAgCQkJb2JqX3RhYmxlW2krMl0g PSByaW5nW2lkeCsyXTsgXA0KPiBAQCAtNjgzLDEzICs2ODMsMTMgQEAgcnRlX3JpbmdfcmVzZXQo c3RydWN0IHJ0ZV9yaW5nICpyKTsNCj4gICAqIEByZXR1cm4NCj4gICAqICAgVGhlIG51bWJlciBv ZiBlbnRyaWVzIGluIHRoZSByaW5nLg0KPiAgICovDQo+IC1zdGF0aWMgaW5saW5lIHVuc2lnbmVk DQo+ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludA0KPiAgcnRlX3JpbmdfY291bnQoY29uc3Qg c3RydWN0IHJ0ZV9yaW5nICpyKQ0KPiAgew0KPiAgCXVpbnQzMl90IHByb2RfdGFpbCA9IHItPnBy b2QudGFpbDsNCj4gIAl1aW50MzJfdCBjb25zX3RhaWwgPSByLT5jb25zLnRhaWw7DQo+ICAJdWlu dDMyX3QgY291bnQgPSAocHJvZF90YWlsIC0gY29uc190YWlsKSAmIHItPm1hc2s7DQo+IC0JcmV0 dXJuIChjb3VudCA+IHItPmNhcGFjaXR5KSA/IHItPmNhcGFjaXR5IDogY291bnQ7DQo+ICsJcmV0 dXJuIGxpa2VseShjb3VudCA8PSByLT5jYXBhY2l0eSkgPyBjb3VudCA6IHItPmNhcGFjaXR5Ow0K DQpIb25lc3RseSwgSSBkb24ndCBzZWUgdGhlcmUgaXMgYW55IHBvaW50IG9mIHRoYXQgY2hhbmdl Og0KSSB0aGluayBpdCB3b3VsZG4ndCBjaGFuZ2UgYW55dGhpbmcgaW4gdGVybXMgb2YgZnVuY3Rp b25hbGl0eQ0Kb3IgcGVyZm9ybWFuY2UuIA0KDQo+ICB9DQo+IA0KPiAgLyoqDQo+IEBAIC03MDAs NyArNzAwLDcgQEAgcnRlX3JpbmdfY291bnQoY29uc3Qgc3RydWN0IHJ0ZV9yaW5nICpyKQ0KPiAg ICogQHJldHVybg0KPiAgICogICBUaGUgbnVtYmVyIG9mIGZyZWUgZW50cmllcyBpbiB0aGUgcmlu Zy4NCj4gICAqLw0KPiAtc3RhdGljIGlubGluZSB1bnNpZ25lZA0KPiArc3RhdGljIGlubGluZSB1 bnNpZ25lZCBpbnQNCj4gIHJ0ZV9yaW5nX2ZyZWVfY291bnQoY29uc3Qgc3RydWN0IHJ0ZV9yaW5n ICpyKQ0KPiAgew0KPiAgCXJldHVybiByLT5jYXBhY2l0eSAtIHJ0ZV9yaW5nX2NvdW50KHIpOw0K PiBAQCAtNzMzLDcgKzczMyw5IEBAIHJ0ZV9yaW5nX2Z1bGwoY29uc3Qgc3RydWN0IHJ0ZV9yaW5n ICpyKQ0KPiAgc3RhdGljIGlubGluZSBpbnQNCj4gIHJ0ZV9yaW5nX2VtcHR5KGNvbnN0IHN0cnVj dCBydGVfcmluZyAqcikNCj4gIHsNCj4gLQlyZXR1cm4gcnRlX3JpbmdfY291bnQocikgPT0gMDsN Cj4gKwl1aW50MzJfdCBwcm9kX3RhaWwgPSByLT5wcm9kLnRhaWw7DQo+ICsJdWludDMyX3QgY29u c190YWlsID0gci0+Y29ucy50YWlsOw0KPiArCXJldHVybiBjb25zX3RhaWwgPT0gcHJvZF90YWls Ow0KPiAgfQ0KPiANCj4gIC8qKg0KPiBAQCAtODYwLDcgKzg2Miw3IEBAIHN0cnVjdCBydGVfcmlu ZyAqcnRlX3JpbmdfbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUpOw0KPiAgICogQHJldHVybg0KPiAg ICogICAtIG46IEFjdHVhbCBudW1iZXIgb2Ygb2JqZWN0cyBlbnF1ZXVlZC4NCj4gICAqLw0KPiAt c3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQNCj4gK3N0YXRpYyBfX3J0ZV9hbHdh eXNfaW5saW5lIHVuc2lnbmVkIGludA0KPiAgcnRlX3JpbmdfbXBfZW5xdWV1ZV9idXJzdChzdHJ1 Y3QgcnRlX3JpbmcgKnIsIHZvaWQgKiBjb25zdCAqb2JqX3RhYmxlLA0KPiAgCQkJIHVuc2lnbmVk IGludCBuLCB1bnNpZ25lZCBpbnQgKmZyZWVfc3BhY2UpDQo+ICB7DQo+IEBAIC04ODMsNyArODg1 LDcgQEAgcnRlX3JpbmdfbXBfZW5xdWV1ZV9idXJzdChzdHJ1Y3QgcnRlX3JpbmcgKnIsIHZvaWQg KiBjb25zdCAqb2JqX3RhYmxlLA0KPiAgICogQHJldHVybg0KPiAgICogICAtIG46IEFjdHVhbCBu dW1iZXIgb2Ygb2JqZWN0cyBlbnF1ZXVlZC4NCj4gICAqLw0KPiAtc3RhdGljIF9fcnRlX2Fsd2F5 c19pbmxpbmUgdW5zaWduZWQNCj4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHVuc2lnbmVk IGludA0KPiAgcnRlX3Jpbmdfc3BfZW5xdWV1ZV9idXJzdChzdHJ1Y3QgcnRlX3JpbmcgKnIsIHZv aWQgKiBjb25zdCAqb2JqX3RhYmxlLA0KPiAgCQkJIHVuc2lnbmVkIGludCBuLCB1bnNpZ25lZCBp bnQgKmZyZWVfc3BhY2UpDQo+ICB7DQo+IEBAIC05MTAsNyArOTEyLDcgQEAgcnRlX3Jpbmdfc3Bf ZW5xdWV1ZV9idXJzdChzdHJ1Y3QgcnRlX3JpbmcgKnIsIHZvaWQgKiBjb25zdCAqb2JqX3RhYmxl LA0KPiAgICogQHJldHVybg0KPiAgICogICAtIG46IEFjdHVhbCBudW1iZXIgb2Ygb2JqZWN0cyBl bnF1ZXVlZC4NCj4gICAqLw0KPiAtc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQN Cj4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHVuc2lnbmVkIGludA0KPiAgcnRlX3Jpbmdf ZW5xdWV1ZV9idXJzdChzdHJ1Y3QgcnRlX3JpbmcgKnIsIHZvaWQgKiBjb25zdCAqb2JqX3RhYmxl LA0KPiAgCQkgICAgICB1bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgaW50ICpmcmVlX3NwYWNlKQ0K PiAgew0KPiBAQCAtOTU0LDcgKzk1Niw3IEBAIHJ0ZV9yaW5nX2VucXVldWVfYnVyc3Qoc3RydWN0 IHJ0ZV9yaW5nICpyLCB2b2lkICogY29uc3QgKm9ial90YWJsZSwNCj4gICAqIEByZXR1cm4NCj4g ICAqICAgLSBuOiBBY3R1YWwgbnVtYmVyIG9mIG9iamVjdHMgZGVxdWV1ZWQsIDAgaWYgcmluZyBp cyBlbXB0eQ0KPiAgICovDQo+IC1zdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB1bnNpZ25lZA0K PiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50DQo+ICBydGVfcmluZ19t Y19kZXF1ZXVlX2J1cnN0KHN0cnVjdCBydGVfcmluZyAqciwgdm9pZCAqKm9ial90YWJsZSwNCj4g IAkJdW5zaWduZWQgaW50IG4sIHVuc2lnbmVkIGludCAqYXZhaWxhYmxlKQ0KPiAgew0KPiBAQCAt OTc5LDcgKzk4MSw3IEBAIHJ0ZV9yaW5nX21jX2RlcXVldWVfYnVyc3Qoc3RydWN0IHJ0ZV9yaW5n ICpyLCB2b2lkICoqb2JqX3RhYmxlLA0KPiAgICogQHJldHVybg0KPiAgICogICAtIG46IEFjdHVh bCBudW1iZXIgb2Ygb2JqZWN0cyBkZXF1ZXVlZCwgMCBpZiByaW5nIGlzIGVtcHR5DQo+ICAgKi8N Cj4gLXN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHVuc2lnbmVkDQo+ICtzdGF0aWMgX19ydGVf YWx3YXlzX2lubGluZSB1bnNpZ25lZCBpbnQNCj4gIHJ0ZV9yaW5nX3NjX2RlcXVldWVfYnVyc3Qo c3RydWN0IHJ0ZV9yaW5nICpyLCB2b2lkICoqb2JqX3RhYmxlLA0KPiAgCQl1bnNpZ25lZCBpbnQg biwgdW5zaWduZWQgaW50ICphdmFpbGFibGUpDQo+ICB7DQo+IEBAIC0xMDA2LDcgKzEwMDgsNyBA QCBydGVfcmluZ19zY19kZXF1ZXVlX2J1cnN0KHN0cnVjdCBydGVfcmluZyAqciwgdm9pZCAqKm9i al90YWJsZSwNCj4gICAqIEByZXR1cm4NCj4gICAqICAgLSBOdW1iZXIgb2Ygb2JqZWN0cyBkZXF1 ZXVlZA0KPiAgICovDQo+IC1zdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB1bnNpZ25lZA0KPiAr c3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50DQo+ICBydGVfcmluZ19kZXF1 ZXVlX2J1cnN0KHN0cnVjdCBydGVfcmluZyAqciwgdm9pZCAqKm9ial90YWJsZSwNCj4gIAkJdW5z aWduZWQgaW50IG4sIHVuc2lnbmVkIGludCAqYXZhaWxhYmxlKQ0KPiAgew0KPiAtLQ0KPiAyLjE3 LjENCg0K