From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70042.outbound.protection.outlook.com [40.107.7.42]) by dpdk.org (Postfix) with ESMTP id 929B81B5F1 for ; Fri, 12 Oct 2018 15:32:15 +0200 (CEST) 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=kmI2gW02b2ggby8xhLVB6kBpuFh6MKPnqD2ztFiYM+k=; b=BqN9oKwmPiFwZWasMUuzpZORxaveGhzzhppK59xeWp4V6GXij9DVq59rTdI/Zcocomjo9AMEEexIW/Zp02bZqUvfFwp0lBimpRAqcqDJydrPEey4qgT3nYq21J9bYiJeY49Nzyh7f9ZVXQ99TbZYex2GdtvOPzrNScr/N+pBloc= Received: from HE1PR04MB1530.eurprd04.prod.outlook.com (10.164.48.20) by HE1PR04MB3161.eurprd04.prod.outlook.com (10.171.196.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.21; Fri, 12 Oct 2018 13:32:14 +0000 Received: from HE1PR04MB1530.eurprd04.prod.outlook.com ([fe80::95cd:198:d5c5:59a4]) by HE1PR04MB1530.eurprd04.prod.outlook.com ([fe80::95cd:198:d5c5:59a4%4]) with mapi id 15.20.1207.029; Fri, 12 Oct 2018 13:32:14 +0000 From: Gagandeep Singh To: Akhil Goyal , "dev@dpdk.org" CC: Hemant Agrawal Thread-Topic: [dpdk-dev] [PATCH 03/10] crypto/caam_jr: add HW config for job rings Thread-Index: AQHUSyhVY3pVnEOZbEGqCHTSGoap1qT2EyoAgCW11vA= Date: Fri, 12 Oct 2018 13:32:13 +0000 Message-ID: References: <20180913060846.29930-1-g.singh@nxp.com> <20180913060846.29930-4-g.singh@nxp.com> <72c9a8b1-6fcd-b45f-6e06-b4ff80a6d51e@nxp.com> In-Reply-To: <72c9a8b1-6fcd-b45f-6e06-b4ff80a6d51e@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=G.Singh@nxp.com; x-originating-ip: [14.143.30.134] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR04MB3161; 6:zwpKsFpLHPGYNtc5IgpsZgAl1aaY7QARj/AMAr29wV2ZqKNiUvJHJpKwEcIooTMhqa3E0Ghjfp5WyaXniGMpuen8CvSiUHiXflszAk0gorj5BiJQWDXR5KWsscv8jh0LNzQbQpf2+VPjWg7xc7UZNoaokrj2zqXgjpges1W6Iz2TDc87RgkqHc8PZzjksqVXUir7mccEIaUWU4me/SyZv0C+tNxBovXjf3LFyqhKlrqCr4eA5IrY/8YvQegOFj4dNGtr0oKUKpr1c9heSpXdq2JZdq0qWPLaAt8RPK0lLh+O7KXOkjzN/fDEyjbnohOqllszCMeh4vpnDEn5SJ7yUEmGYXl2GQYZiKQOB+e1KnS4muVYniRV57t6t6NglQt4EjbUHo9Vn8LvNv4nF8eUjbvpptduRjkuyDrtQdSb9uQH45pQEFBnS402cOce7Wg/exgU0PeaGEfcBedRzdttdA==; 5:KrBUL9C1CV/nNCNqbxOOh+WjnWQvIGsQqrhV6d0Eo2QXRZ8RV/eYjgiOtTZNClRVEcPWgKGpTZ3azV8eShxIaoBP4K8/WeT69ecH98DtM8L8e+s4IuJhHyBERjs0EZ3SdLTjjwSxGAwkpkO73+VD5wi9zanYwyjP/sJ0uXCAHs0=; 7:uA5vc7Z7dOhIqf0vtpvF3zLc4dRG/XvnSnok4Py7bQwyuk1z1ELnLFdu4IaC1H+0eOXYV1jReCjM6eQObT+DWYprQIec3kz8k2Ly73tJtPmODa+/gOPDEu7lQeRFm4cbHUKgq89xXms9hUIN+DVIG7koJD2JSKb4R+mUml4zuef1zOAbO1W6mAF957WZgyCgW64eEoXHusDCda1qivM0y8WP0kwbNfKB3SBNIQGh6XlAUrbNilZzLtes5hVuvjCU x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 1a1042ec-9a3e-4de3-3cce-08d630471f07 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR04MB3161; x-ms-traffictypediagnostic: HE1PR04MB3161: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(192374486261705)(185117386973197); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231355)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(201708071742011)(7699051); SRVR:HE1PR04MB3161; BCL:0; PCL:0; RULEID:; SRVR:HE1PR04MB3161; x-forefront-prvs: 0823A5777B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(366004)(396003)(346002)(376002)(199004)(189003)(13464003)(256004)(26005)(14454004)(2501003)(5250100002)(71200400001)(71190400001)(105586002)(2900100001)(106356001)(316002)(99286004)(86362001)(478600001)(486006)(7696005)(14444005)(72206003)(11346002)(6246003)(476003)(53546011)(446003)(6506007)(102836004)(8936002)(110136005)(76176011)(74316002)(3846002)(81156014)(305945005)(33656002)(66066001)(6116002)(7736002)(186003)(8676002)(81166006)(68736007)(5660300001)(2906002)(229853002)(25786009)(4326008)(97736004)(53936002)(6436002)(9686003)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR04MB3161; H:HE1PR04MB1530.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: lSeVToyn3sPBG3+DAh+9ZDLqgmifys1P6XN8qex4TEdhBO5V5wqYid9iE2I0C6oDxKvz+OVUvyZ7hDvRI8ZcHFyYYicZ6XfdU+A7h1NYJ+CjmPPQh7eFgG6PdPI6+/vcOWT9Lfy53q/jlw+PwlgFrASURm2n3wCK7YEGlh3AO9VVTc4BJPN6dLFhdvE6qhQndzDbfEg0abePz6Rz4a9bqWJ20CbNSeK7UwzuJrAvZ5smICCzy4l5z1bhDbQ8fwQfJdMH/iQBeC6Bc2uji+F3hW/YvWIKAjiSwPB10omBvhcaPFQ262kWNc3Q0DzPDcLutEi10idgJpnwVTcLDt763NWqTJTlDQO95pv/d7fLJY4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a1042ec-9a3e-4de3-3cce-08d630471f07 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2018 13:32:13.9320 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3161 Subject: Re: [dpdk-dev] [PATCH 03/10] crypto/caam_jr: add HW config for job rings 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: Fri, 12 Oct 2018 13:32:15 -0000 SGkgQWtoaWwsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWtoaWwg R295YWwNCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDE4LCAyMDE4IDc6MDcgUE0NCj4gVG86 IEdhZ2FuZGVlcCBTaW5naCA8Ry5TaW5naEBueHAuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBI ZW1hbnQgQWdyYXdhbCA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT4NCj4gU3ViamVjdDogUmU6IFtk cGRrLWRldl0gW1BBVENIIDAzLzEwXSBjcnlwdG8vY2FhbV9qcjogYWRkIEhXIGNvbmZpZyBmb3Ig am9iDQo+IHJpbmdzDQo+IA0KPiBIaSBHYWdhbiwNCj4gDQo+IE9uIDkvMTMvMjAxOCAxMTozOCBB TSwgR2FnYW5kZWVwIFNpbmdoIHdyb3RlOg0KPiA+IEZyb206IEhlbWFudCBBZ3Jhd2FsIDxoZW1h bnQuYWdyYXdhbEBueHAuY29tPg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogR2FnYW5kZWVwIFNp bmdoIDxnLnNpbmdoQG54cC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogSGVtYW50IEFncmF3YWwg PGhlbWFudC5hZ3Jhd2FsQG54cC5jb20+DQo+ID4gLS0tDQo+ID4gICBkcml2ZXJzL2NyeXB0by9j YWFtX2pyL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgNiArDQo+ID4gICBkcml2ZXJzL2NyeXB0 by9jYWFtX2pyL2NhYW1fanIuYyAgICAgICAgICAgICB8IDMyOSArKysrKysrKysrKy0NCj4gPiAg IGRyaXZlcnMvY3J5cHRvL2NhYW1fanIvY2FhbV9qcl9jb25maWcuaCAgICAgIHwgMjA3ICsrKysr KysrDQo+ID4gICBkcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanJfaHcuYyAgICAgICAgICB8 IDM2NSArKysrKysrKysrKysrKw0KPiA+ICAgZHJpdmVycy9jcnlwdG8vY2FhbV9qci9jYWFtX2py X2h3X3NwZWNpZmljLmggfCA1MDMgKysrKysrKysrKysrKysrKysrKw0KPiA+ICAgZHJpdmVycy9j cnlwdG8vY2FhbV9qci9jYWFtX2pyX3B2dC5oICAgICAgICAgfCAyODUgKysrKysrKysrKysNCj4g PiAgIGRyaXZlcnMvY3J5cHRvL2NhYW1fanIvY2FhbV9qcl91aW8uYyAgICAgICAgIHwgNDkxICsr KysrKysrKysrKysrKysrKw0KPiA+ICAgZHJpdmVycy9jcnlwdG8vY2FhbV9qci9tZXNvbi5idWls ZCAgICAgICAgICAgfCAgIDUgKy0NCj4gPiAgIDggZmlsZXMgY2hhbmdlZCwgMjE4OCBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Y3J5cHRvL2NhYW1fanIvY2FhbV9qcl9jb25maWcuaA0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvY3J5cHRvL2NhYW1fanIvY2FhbV9qcl9ody5jDQo+ID4gICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9jcnlwdG8vY2FhbV9qci9jYWFtX2pyX2h3X3NwZWNpZmljLmgNCj4gPiAg IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanJfcHZ0LmgN Cj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanJf dWlvLmMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL01ha2Vm aWxlDQo+ID4gYi9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL01ha2VmaWxlIGluZGV4IDQ2ZDc1MmFm Ny4uOGI4NjNiNGFmIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvY3J5cHRvL2NhYW1fanIvTWFr ZWZpbGUNCj4gPiArKysgYi9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL01ha2VmaWxlDQo+ID4gQEAg LTE5LDcgKzE5LDEwIEBAIENGTEFHUyArPSAtTzMNCj4gPiAgIENGTEFHUyArPSAkKFdFUlJPUl9G TEFHUykNCj4gPiAgIGVuZGlmDQo+ID4NCj4gPiArQ0ZMQUdTICs9IC1JJChSVEVfU0RLKS9kcml2 ZXJzL2J1cy9kcGFhL2luY2x1ZGUNCj4gPiAgIENGTEFHUyArPSAtSSQoUlRFX1NESykvZHJpdmVy cy9jcnlwdG8vY2FhbV9qcg0KPiA+ICsjc2hhcmluZyB0aGUgaHcgZmxpYiBoZWFkZXJzIGZyb20g ZHBhYTJfc2VjIHBtZCBDRkxBR1MgKz0NCj4gPiArLUkkKFJURV9TREspL2RyaXZlcnMvY3J5cHRv L2RwYWEyX3NlYy8NCj4gPiAgIENGTEFHUyArPSAtSSQoUlRFX1NESykvbGliL2xpYnJ0ZV9lYWwv Y29tbW9uL2luY2x1ZGUNCj4gPiAgIENGTEFHUyArPSAtSSQoUlRFX1NESykvbGliL2xpYnJ0ZV9l YWwvbGludXhhcHAvZWFsDQo+ID4NCj4gPiBAQCAtMzAsMTEgKzMzLDE0IEBAIEVYUE9SVF9NQVAg Oj0gcnRlX3BtZF9jYWFtX2pyX3ZlcnNpb24ubWFwDQo+ID4gICBMSUJBQklWRVIgOj0gMQ0KPiA+ DQo+ID4gICAjIGxpYnJhcnkgc291cmNlIGZpbGVzDQo+ID4gK1NSQ1MtJChDT05GSUdfUlRFX0xJ QlJURV9QTURfQ0FBTV9KUikgKz0gY2FhbV9qcl9ody5jDQo+ID4gK1NSQ1MtJChDT05GSUdfUlRF X0xJQlJURV9QTURfQ0FBTV9KUikgKz0gY2FhbV9qcl91aW8uYw0KPiA+ICAgU1JDUy0kKENPTkZJ R19SVEVfTElCUlRFX1BNRF9DQUFNX0pSKSArPSBjYWFtX2pyLmMNCj4gPiAgICMgbGlicmFyeSBk ZXBlbmRlbmNpZXMNCj4gPg0KPiA+ICAgTERMSUJTICs9IC1scnRlX2VhbCAtbHJ0ZV9tYnVmIC1s cnRlX21lbXBvb2wgLWxydGVfcmluZw0KPiA+ICAgTERMSUJTICs9IC1scnRlX2NyeXB0b2Rldg0K PiA+ICtMRExJQlMgKz0gLWxydGVfYnVzX2RwYWENCj4gPiAgIExETElCUyArPSAtbHJ0ZV9idXNf dmRldg0KPiA+DQo+ID4gICBpbmNsdWRlICQoUlRFX1NESykvbWsvcnRlLmxpYi5taw0KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanIuYw0KPiA+IGIvZHJpdmVy cy9jcnlwdG8vY2FhbV9qci9jYWFtX2pyLmMNCj4gPiBpbmRleCA2ODc3OWNiYTUuLjlkNWY1Yjc5 YiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanIuYw0KPiA+ ICsrKyBiL2RyaXZlcnMvY3J5cHRvL2NhYW1fanIvY2FhbV9qci5jDQo+ID4gQEAgLTE2LDEzICsx NiwxNDYgQEANCj4gPiAgICNpbmNsdWRlIDxydGVfbWFsbG9jLmg+DQo+ID4gICAjaW5jbHVkZSA8 cnRlX3NlY3VyaXR5X2RyaXZlci5oPg0KPiA+ICAgI2luY2x1ZGUgPHJ0ZV9oZXhkdW1wLmg+DQo+ ID4gKyNpbmNsdWRlIDxjYWFtX2pyX2NvbmZpZy5oPg0KPiBQbGVhc2UgZ2l2ZSBvbmUgbGluZSBi cmVhayBiZXR3ZWVuIHRoZSBydGVfIGluY2x1ZGVzIGFuZCBkcml2ZXIgc3BlY2lmaWMgaW5jbHVk ZXMNCm9rDQo+ID4NCj4gPiArLyogUlRBIGhlYWRlciBmaWxlcyAqLw0KPiA+ICsjaW5jbHVkZSA8 aHcvZGVzYy9jb21tb24uaD4NCj4gPiArI2luY2x1ZGUgPG9mLmg+DQo+ID4gKyNpbmNsdWRlIDxj YWFtX2pyX2h3X3NwZWNpZmljLmg+DQo+ID4gKyNpbmNsdWRlIDxjYWFtX2pyX3B2dC5oPg0KPiA+ ICAgI2luY2x1ZGUgPGNhYW1fanJfbG9nLmg+DQo+ID4NCj4gPiAgICNkZWZpbmUgQ1JZUFRPREVW X05BTUVfQ0FBTV9KUl9QTUQJY3J5cHRvX2NhYW1fanINCj4gPiAgIHN0YXRpYyB1aW50OF90IGNy eXB0b2Rldl9kcml2ZXJfaWQ7DQo+ID4gICBpbnQgY2FhbV9qcl9sb2d0eXBlOw0KPiA+DQo+ID4g K2VudW0gcnRhX3NlY19lcmEgcnRhX3NlY19lcmE7DQo+ID4gKw0KPiA+ICsvKiBMaXN0cyB0aGUg c3RhdGVzIHBvc3NpYmxlIGZvciB0aGUgU0VDIHVzZXIgc3BhY2UgZHJpdmVyLiAqLyBlbnVtDQo+ ID4gK3NlY19kcml2ZXJfc3RhdGVfZSB7DQo+ID4gKwlTRUNfRFJJVkVSX1NUQVRFX0lETEUsCQkv KiBEcml2ZXIgbm90IGluaXRpYWxpemVkICovDQo+ID4gKwlTRUNfRFJJVkVSX1NUQVRFX1NUQVJU RUQsCS8qIERyaXZlciBpbml0aWFsaXplZCBhbmQgY2FuIGJlIHVzZWQqLw0KPiA+ICsJU0VDX0RS SVZFUl9TVEFURV9SRUxFQVNFLAkvKiBEcml2ZXIgcmVsZWFzZSBpcyBpbiBwcm9ncmVzcyAqLw0K PiA+ICt9Ow0KPiA+ICsNCj4gPiArLyogSm9iIHJpbmdzIHVzZWQgZm9yIGNvbW11bmljYXRpb24g d2l0aCBTRUMgSFcgKi8gc3RhdGljIHN0cnVjdA0KPiA+ICtzZWNfam9iX3JpbmdfdCBnX2pvYl9y aW5nc1tNQVhfU0VDX0pPQl9SSU5HU107DQo+ID4gKw0KPiA+ICsvKiBUaGUgY3VycmVudCBzdGF0 ZSBvZiBTRUMgdXNlciBzcGFjZSBkcml2ZXIgKi8gc3RhdGljIGVudW0NCj4gPiArc2VjX2RyaXZl cl9zdGF0ZV9lIGdfZHJpdmVyX3N0YXRlID0gU0VDX0RSSVZFUl9TVEFURV9JRExFOw0KPiA+ICsN Cj4gPiArLyogVGhlIG51bWJlciBvZiBqb2IgcmluZ3MgdXNlZCBieSBTRUMgdXNlciBzcGFjZSBk cml2ZXIgKi8gc3RhdGljDQo+ID4gK2ludCBnX2pvYl9yaW5nc19ubzsgc3RhdGljIGludCBnX2pv Yl9yaW5nc19tYXg7DQo+ID4gKw0KPiA+ICsvKiBAYnJpZWYgUG9sbCB0aGUgSFcgZm9yIGFscmVh ZHkgcHJvY2Vzc2VkIGpvYnMgaW4gdGhlIEpSDQo+ID4gKyAqIGFuZCBzaWxlbnRseSBkaXNjYXJk IHRoZSBhdmFpbGFibGUgam9icyBvciBub3RpZnkgdGhlbSB0byBVQQ0KPiA+ICsgKiB3aXRoIGlu ZGljYXRlZCBlcnJvciBjb2RlLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gW2luLG91dF0gIGpv Yl9yaW5nICAgICAgICBUaGUgam9iIHJpbmcgdG8gcG9sbC4NCj4gPiArICogQHBhcmFtIFtpbl0g IGRvX25vdGlmeSAgICAgICAgICAgQ2FuIGJlICNUUlVFIG9yICNGQUxTRS4gSW5kaWNhdGVzIGlm DQo+ID4gKyAqCQkJCSAgICBkZXNjcmlwdG9ycyBhcmUgdG8gYmUgZGlzY2FyZGVkDQo+ID4gKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIG5vdGlmaWVkIHRvIFVBIHdpdGgg Z2l2ZW4gZXJyb3JfY29kZS4NCj4gPiArICogQHBhcmFtIFtvdXRdIG5vdGlmaWVkX2Rlc2NzICAg IE51bWJlciBvZiBub3RpZmllZCBkZXNjcmlwdG9ycy4gQ2FuIGJlDQo+IE5VTEwNCj4gPiArICoJ CQkJCWlmIGRvX25vdGlmeSBpcyAjRkFMU0UNCj4gPiArICovDQo+ID4gK3N0YXRpYyB2b2lkIGh3 X2ZsdXNoX2pvYl9yaW5nKHN0cnVjdCBzZWNfam9iX3JpbmdfdCAqam9iX3JpbmcsDQo+ID4gKwkJ CSAgICAgIHVpbnQzMl90IGRvX25vdGlmeSwNCj4gPiArCQkJICAgICAgdWludDMyX3QgKm5vdGlm aWVkX2Rlc2NzKQ0KPiBzdGF0aWMgdm9pZCBzaG91bGQgYmUgaW4gYSBzZXBhcmF0ZSBsaW5lLi4g UGxlYXNlIGNoZWNrIGluIHJlc3Qgb2YgdGhlIGNvZGUgYXMgd2VsbC4NCkkgd2lsbCBoYW5kbGVk IGFsbCBvZiB0aGVtIGluIG5leHQgdmVyc2lvbi4NCj4gPiArew0KPiA+ICsJaW50MzJfdCBqb2Jz X25vX3RvX2Rpc2NhcmQgPSAwOw0KPiA+ICsJaW50MzJfdCBkaXNjYXJkZWRfZGVzY3Nfbm8gPSAw Ow0KPiA+ICsNCj4gPiArCUNBQU1fSlJfREVCVUcoIkpyWyVwXSBwaVslZF0gY2lbJWRdLkZsdXNo aW5nIGpyIG5vdGlmeSBkZXNjPVslZF0iLA0KPiA+ICsJCWpvYl9yaW5nLCBqb2JfcmluZy0+cGlk eCwgam9iX3JpbmctPmNpZHgsIGRvX25vdGlmeSk7DQo+ID4gKw0KPiA+ICsJam9ic19ub190b19k aXNjYXJkID0gaHdfZ2V0X25vX2ZpbmlzaGVkX2pvYnMoam9iX3JpbmcpOw0KPiA+ICsNCj4gPiAr CS8qIERpc2NhcmQgYWxsIGpvYnMgKi8NCj4gPiArCUNBQU1fSlJfREVCVUcoIkpyWyVwXSBwaVsl ZF0gY2lbJWRdLkRpc2NhcmRpbmcgJWQgZGVzY3MiLA0KPiA+ICsJCSAgam9iX3JpbmcsIGpvYl9y aW5nLT5waWR4LCBqb2JfcmluZy0+Y2lkeCwNCj4gPiArCQkgIGpvYnNfbm9fdG9fZGlzY2FyZCk7 DQo+ID4gKw0KPiA+ICsJd2hpbGUgKGpvYnNfbm9fdG9fZGlzY2FyZCA+IGRpc2NhcmRlZF9kZXNj c19ubykgew0KPiA+ICsJCS8qIEdldCBjb21wbGV0ZWQgZGVzY3JpcHRvciAqLw0KPiA+ICsjaWYg MA0KPiA+ICsJCS8qVE9ETyBpZiB3ZSB3YW50IHRvIGRvIHNvbWV0aGluZyB3aXRoIGRlc2MqLw0K PiA+ICsJCS8qIFNpbmNlIHRoZSBtZW1vcnkgaXMgY29udGlnb3VzLCB0aGVuIFAyViB0cmFuc2xh dGlvbiBpcyBhDQo+ID4gKwkJICogbWVyZSBhZGRpdGlvbiB0byB0aGUgYmFzZSBkZXNjcmlwdG9y IHBoeXNpY2FsIGFkZHJlc3MNCj4gPiArCQkgKi8NCj4gPiArCQljdXJyZW50X2Rlc2MgPSBqb2Jf cmluZy0+b3V0cHV0X3Jpbmdbam9iX3JpbmctPmNpZHhdLmRlc2M7DQo+ID4gKyNlbmRpZg0KPiBQ bGVhc2UgcmVtb3ZlIGRlYWQgY29kZS4NCm9rDQo+ID4gKw0KPiA+ICsJCWRpc2NhcmRlZF9kZXNj c19ubysrOw0KPiA+ICsJCS8qIE5vdyBpbmNyZW1lbnQgdGhlIGNvbnN1bWVyIGluZGV4IGZvciB0 aGUgY3VycmVudCBqb2IgcmluZywNCj4gPiArCQkgKiBBRlRFUiBzYXZpbmcgam9iIGluIHRlbXBv cmFyeSBsb2NhdGlvbiENCj4gPiArCQkgKiBJbmNyZW1lbnQgdGhlIGNvbnN1bWVyIGluZGV4IGZv ciB0aGUgY3VycmVudCBqb2IgcmluZw0KPiA+ICsJCSAqLw0KPiA+ICsJCWpvYl9yaW5nLT5jaWR4 ID0gU0VDX0NJUkNVTEFSX0NPVU5URVIoam9iX3JpbmctPmNpZHgsDQo+ID4gKwkJCQkJIFNFQ19K T0JfUklOR19TSVpFKTsNCj4gPiArDQo+ID4gKwkJaHdfcmVtb3ZlX2VudHJpZXMoam9iX3Jpbmcs IDEpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWlmIChkb19ub3RpZnkgPT0gdHJ1ZSkgew0KPiA+ ICsJCUFTU0VSVChub3RpZmllZF9kZXNjcyAhPSBOVUxMKTsNCj4gPiArCQkqbm90aWZpZWRfZGVz Y3MgPSBkaXNjYXJkZWRfZGVzY3Nfbm87DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gKw0K PiA+ICsvKiBAYnJpZWYgRmx1c2ggam9iIHJpbmdzIG9mIGFueSBwcm9jZXNzZWQgZGVzY3MuDQo+ ID4gKyAqIFRoZSBwcm9jZXNzZWQgZGVzY3MgYXJlIHNpbGVudGx5IGRyb3BwZWQsDQo+ID4gKyAq IFdJVEhPVVQgYmVpbmcgbm90aWZpZWQgdG8gVUEuDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgdm9p ZCBjbG9zZV9qb2JfcmluZyhzdHJ1Y3Qgc2VjX2pvYl9yaW5nX3QgKmpvYl9yaW5nKSB7DQo+ID4g KwlpZiAoam9iX3JpbmctPmlycV9mZCkgew0KPiA+ICsJCS8qIFByb2R1Y2VyIGluZGV4IGlzIGZy b3plbi4gSWYgY29uc3VtZXIgaW5kZXggaXMgbm90IGVxdWFsDQo+ID4gKwkJICogd2l0aCBwcm9k dWNlciBpbmRleCwgdGhlbiB3ZSBoYXZlIGRlc2NzIHRvIGZsdXNoLg0KPiA+ICsJCSAqLw0KPiA+ ICsJCXdoaWxlIChqb2JfcmluZy0+cGlkeCAhPSBqb2JfcmluZy0+Y2lkeCkNCj4gPiArCQkJaHdf Zmx1c2hfam9iX3Jpbmcoam9iX3JpbmcsIGZhbHNlLCBOVUxMKTsNCj4gPiArDQo+ID4gKwkJLyog ZnJlZSB0aGUgdWlvIGpvYiByaW5nICovDQo+ID4gKwkJZnJlZV9qb2JfcmluZyhqb2JfcmluZy0+ aXJxX2ZkKTsNCj4gPiArCQlqb2JfcmluZy0+aXJxX2ZkID0gMDsNCj4gPiArCQljYWFtX2pyX2Rt YV9mcmVlKGpvYl9yaW5nLT5pbnB1dF9yaW5nKTsNCj4gPiArCQljYWFtX2pyX2RtYV9mcmVlKGpv Yl9yaW5nLT5vdXRwdXRfcmluZyk7DQo+ID4gKw0KPiA+ICsJCWdfam9iX3JpbmdzX25vLS07DQo+ ID4gKw0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiogQGJyaWVmIFJlbGVhc2UgdGhl IHNvZnR3YXJlIGFuZCBoYXJkd2FyZSByZXNvdXJjZXMgdGllZCB0byBhIGpvYiByaW5nLg0KPiA+ ICsgKiBAcGFyYW0gW2luXSBqb2JfcmluZyBUaGUgam9iIHJpbmcNCj4gPiArICoNCj4gPiArICog QHJldHZhbCAgMCBmb3Igc3VjY2Vzcw0KPiA+ICsgKiBAcmV0dmFsICAtMSBmb3IgZXJyb3INCj4g PiArICovDQo+ID4gK3N0YXRpYyBpbnQgc2h1dGRvd25fam9iX3Jpbmcoc3RydWN0IHNlY19qb2Jf cmluZ190ICpqb2JfcmluZykgew0KPiA+ICsJaW50IHJldCA9IDA7DQo+ID4gKw0KPiA+ICsJQVNT RVJUKGpvYl9yaW5nICE9IE5VTEwpOw0KPiA+ICsJcmV0ID0gaHdfc2h1dGRvd25fam9iX3Jpbmco am9iX3JpbmcpOw0KPiA+ICsJU0VDX0FTU0VSVChyZXQgPT0gMCwgcmV0LA0KPiA+ICsJCSJGYWls ZWQgdG8gc2h1dGRvd24gaGFyZHdhcmUgam9iIHJpbmcgJXAiLA0KPiA+ICsJCWpvYl9yaW5nKTsN Cj4gPiArDQo+ID4gKwlpZiAoam9iX3JpbmctPmNvYWxlc2NpbmdfZW4pDQo+ID4gKwkJaHdfam9i X3JpbmdfZGlzYWJsZV9jb2FsZXNjaW5nKGpvYl9yaW5nKTsNCj4gPiArDQo+ID4gKwlpZiAoam9i X3JpbmctPmpyX21vZGUgIT0gU0VDX05PVElGSUNBVElPTl9UWVBFX1BPTEwpIHsNCj4gPiArCQly ZXQgPSBjYWFtX2pyX2Rpc2FibGVfaXJxcyhqb2JfcmluZy0+aXJxX2ZkKTsNCj4gPiArCQlTRUNf QVNTRVJUKHJldCA9PSAwLCByZXQsDQo+ID4gKwkJIkZhaWxlZCB0byBkaXNhYmxlIGlycXMgZm9y IGpvYiByaW5nICVwIiwNCj4gPiArCQlqb2JfcmluZyk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJ cmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+DQo+ID4gICAvKg0KPiA+ICAgICogQGJyaWVmIFJlbGVh c2UgdGhlIHJlc291cmNlcyB1c2VkIGJ5IHRoZSBTRUMgdXNlciBzcGFjZSBkcml2ZXIuDQo+ID4g QEAgLTQyLDMxICsxNzUsMTk1IEBAIGludCBjYWFtX2pyX2xvZ3R5cGU7DQo+ID4gICBzdGF0aWMg aW50DQo+ID4gICBjYWFtX2pyX2Rldl91bmluaXQoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldikN Cj4gPiAgIHsNCj4gPiArCXN0cnVjdCBzZWNfam9iX3JpbmdfdCAqaW50ZXJuYWxzOw0KPiA+DQo+ ID4gICAJaWYgKGRldiA9PSBOVUxMKQ0KPiA+ICAgCQlyZXR1cm4gLUVOT0RFVjsNCj4gPg0KPiA+ ICsJaW50ZXJuYWxzID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArCXJ0ZV9mcmVlKGRl di0+c2VjdXJpdHlfY3R4KTsNCj4gPiArDQo+ID4gKw0KPiA+ICsJLyogSWYgYW55IGRlc2NyaXB0 b3JzIGluIGZsaWdodCAsIHBvbGwgYW5kIHdhaXQNCj4gPiArCSAqIHVudGlsIGFsbCBkZXNjcmlw dG9ycyBhcmUgcmVjZWl2ZWQgYW5kIHNpbGVudGx5IGRpc2NhcmRlZC4NCj4gPiArCSAqLw0KPiA+ ICsJaWYgKGludGVybmFscykgew0KPiA+ICsJCXNodXRkb3duX2pvYl9yaW5nKGludGVybmFscyk7 DQo+ID4gKwkJY2xvc2Vfam9iX3JpbmcoaW50ZXJuYWxzKTsNCj4gPiArCQlydGVfbWVtcG9vbF9m cmVlKGludGVybmFscy0+Y3R4X3Bvb2wpOw0KPiA+ICsJfQ0KPiA+DQo+ID4gICAJQ0FBTV9KUl9J TkZPKCJDbG9zaW5nIERQQUFfU0VDIGRldmljZSAlcyIsIGRldi0+ZGF0YS0+bmFtZSk7DQo+IERQ QUFfU0VDPz8/IGNoZWNrIHJlc3Qgb2YgdGhlIGNvZGUgYXMgd2VsbA0KTWVzc2FnZSB3aWxsIGJl IHVwZGF0ZWQgaW4gbmV4dCB2ZXJzaW9uLg0KPiA+DQo+ID4gKwkvKiBsYXN0IGNhYW0ganIgaW5z dGFuY2UpICovDQo+ID4gKwlpZiAoZ19qb2JfcmluZ3Nfbm8gPT0gMCkNCj4gPiArCQlnX2RyaXZl cl9zdGF0ZSA9IFNFQ19EUklWRVJfU1RBVEVfSURMRTsNCj4gPg0KPiA+IC0JcmV0dXJuIDA7DQo+ ID4gKwlyZXR1cm4gU0VDX1NVQ0NFU1M7DQo+ID4gICB9DQo+ID4NCj4gPiArLyogQGJyaWVmIElu aXRpYWxpemUgdGhlIHNvZnR3YXJlIGFuZCBoYXJkd2FyZSByZXNvdXJjZXMgdGllZCB0byBhIGpv YiByaW5nLg0KPiAuLiBbc25pcF0NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vY2Fh bV9qci9jYWFtX2pyX2h3X3NwZWNpZmljLmgNCj4gPiBiL2RyaXZlcnMvY3J5cHRvL2NhYW1fanIv Y2FhbV9qcl9od19zcGVjaWZpYy5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl eCAwMDAwMDAwMDAuLjdjODkwOWQyYg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2 ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanJfaHdfc3BlY2lmaWMuaA0KPiA+IEBAIC0wLDAgKzEs NTAzIEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4g PiArICogQ29weXJpZ2h0IDIwMTcgTlhQDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBD QUFNX0pSX0hXX1NQRUNJRklDX0gNCj4gPiArI2RlZmluZSBDQUFNX0pSX0hXX1NQRUNJRklDX0gN Cj4gPiArDQo+ID4gKyNpbmNsdWRlIDxjYWFtX2pyX2NvbmZpZy5oPg0KPiA+ICsNCj4gPiArLyoN Cj4gPiArICogT2Zmc2V0IHRvIHRoZSByZWdpc3RlcnMgb2YgYSBqb2IgcmluZy4NCj4gPiArICog SXMgZGlmZmVyZW50IGZvciBlYWNoIGpvYiByaW5nLg0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBD SEFOX0JBU0UoanIpICAgKChzaXplX3QpKGpyKS0+cmVnaXN0ZXJfYmFzZV9hZGRyKQ0KPiA+ICsN Cj4gPiArI2lmbmRlZiB1bmxpa2VseQ0KPiA+ICsjZGVmaW5lIHVubGlrZWx5KHgpICAgICBfX2J1 aWx0aW5fZXhwZWN0KCEhKHgpLCAwKQ0KPiA+ICsjZW5kaWYNCj4gbGlrZWx5L3VubGlrZWx5IGFy ZSBhbHJlYWR5IGRlZmluZWQgaW4gRFBESw0KT2ssIHdpbGwgYmUgcmVtb3ZlZC4NCj4gPiArDQo+ IC4uIFtzbmlwXQ0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSBydGVfaW92YV90DQo+ID4gK2Nh YW1fanJfbWVtX3Z0b3Aodm9pZCAqdmFkZHIpDQo+ID4gK3sNCj4gPiArCWNvbnN0IHN0cnVjdCBy dGVfbWVtc2VnICptczsNCj4gPiArDQo+ID4gKwltcyA9IHJ0ZV9tZW1fdmlydDJtZW1zZWcodmFk ZHIsIE5VTEwpOw0KPiA+ICsJaWYgKG1zKQ0KPiA+ICsJCXJldHVybiBtcy0+aW92YSArIFJURV9Q VFJfRElGRih2YWRkciwgbXMtPmFkZHIpOw0KPiA+ICsJcmV0dXJuIChzaXplX3QpTlVMTDsNCj4g PiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSB2b2lkICoNCj4gPiArY2FhbV9qcl9kbWFf cHRvdihydGVfaW92YV90IHBhZGRyKQ0KPiA+ICt7DQo+ID4gKwlyZXR1cm4gcnRlX21lbV9pb3Zh MnZpcnQocGFkZHIpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBWaXJ0dWFsIHRvIHBoeXNpY2Fs IGFkZHJlc3MgY29udmVyc2lvbiAqLyBzdGF0aWMgaW5saW5lIHJ0ZV9pb3ZhX3QNCj4gPiArY2Fh bV9qcl9kbWFfdnRvcCh2b2lkICpwdHIpIHsNCj4gPiArCS8vcmV0dXJuIHJ0ZV9tYWxsb2Nfdmly dDJpb3ZhKHB0cik7DQo+IHJlbW92ZSB0aGlzIGNvbW1lbnQuDQpvaw0KPiA+ICsJcmV0dXJuIGNh YW1fanJfbWVtX3Z0b3AocHRyKTsNCj4gPiArfQ0KPiA+ICsNCj4gPg0KDQo=