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 AFD5C4305E; Mon, 14 Aug 2023 10:00:53 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7794943252; Mon, 14 Aug 2023 10:00:53 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id DDDBA40A7F; Mon, 14 Aug 2023 10:00:51 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id AB0EB205ED; Mon, 14 Aug 2023 10:00:51 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH v2 2/6] eal: adapt EAL to present rte optional atomics API Date: Mon, 14 Aug 2023 10:00:49 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87AEF@smartserver.smartshare.dk> In-Reply-To: <1691775136-6460-3-git-send-email-roretzla@linux.microsoft.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v2 2/6] eal: adapt EAL to present rte optional atomics API Thread-Index: AdnMedYvgvavCBwDT5OA6rjtrRy1DgCBElkg References: <1691717521-1025-1-git-send-email-roretzla@linux.microsoft.com> <1691775136-6460-1-git-send-email-roretzla@linux.microsoft.com> <1691775136-6460-3-git-send-email-roretzla@linux.microsoft.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Tyler Retzlaff" , Cc: , "Bruce Richardson" , "Honnappa Nagarahalli" , "Ruifeng Wang" , "Jerin Jacob" , "Sunil Kumar Kori" , =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "Joyce Kong" , "David Christensen" , "Konstantin Ananyev" , "David Hunt" , "Thomas Monjalon" , "David Marchand" 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 PiBGcm9tOiBUeWxlciBSZXR6bGFmZiBbbWFpbHRvOnJvcmV0emxhQGxpbnV4Lm1pY3Jvc29mdC5j b21dDQo+IFNlbnQ6IEZyaWRheSwgMTEgQXVndXN0IDIwMjMgMTkuMzINCj4gDQo+IEFkYXB0IHRo ZSBFQUwgcHVibGljIGhlYWRlcnMgdG8gdXNlIHJ0ZSBvcHRpb25hbCBhdG9taWNzIEFQSSBpbnN0 ZWFkIG9mDQo+IGRpcmVjdGx5IHVzaW5nIGFuZCBleHBvc2luZyB0b29sY2hhaW4gc3BlY2lmaWMg YXRvbWljIGJ1aWx0aW4gaW50cmluc2ljcy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFR5bGVyIFJl dHpsYWZmIDxyb3JldHpsYUBsaW51eC5taWNyb3NvZnQuY29tPg0KPiAtLS0NCg0KWy4uLl0NCg0K PiAtLS0gYS9hcHAvdGVzdC90ZXN0X21jc2xvY2suYw0KPiArKysgYi9hcHAvdGVzdC90ZXN0X21j c2xvY2suYw0KPiBAQCAtMzYsOSArMzYsOSBAQA0KPiAgICogICBsb2NrIG11bHRpcGxlIHRpbWVz Lg0KPiAgICovDQo+IA0KPiAtcnRlX21jc2xvY2tfdCAqcF9tbDsNCj4gLXJ0ZV9tY3Nsb2NrX3Qg KnBfbWxfdHJ5Ow0KPiAtcnRlX21jc2xvY2tfdCAqcF9tbF9wZXJmOw0KPiArcnRlX21jc2xvY2tf dCAqIF9fcnRlX2F0b21pYyBwX21sOw0KPiArcnRlX21jc2xvY2tfdCAqIF9fcnRlX2F0b21pYyBw X21sX3RyeTsNCj4gK3J0ZV9tY3Nsb2NrX3QgKiBfX3J0ZV9hdG9taWMgcF9tbF9wZXJmOw0KDQpB bHRob3VnaCB0aGlzIGxvb2tzIHdlaXJkLCBpdCBpcyBwb2ludGVycyB0aGVtc2VsdmVzLCBub3Qg dGhlIHN0cnVjdHVyZXMsIHRoYXQgYXJlIHVzZWQgYXRvbWljYWxseS4gU28gaXQgaXMgY29ycmVj dC4NCg0KPiBkaWZmIC0tZ2l0IGEvbGliL2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3BhdXNlLmgN Cj4gYi9saWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaA0KPiBpbmRleCBiZWJmYTk1 Li5jODE2ZTdkIDEwMDY0NA0KPiAtLS0gYS9saWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1 c2UuaA0KPiArKysgYi9saWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaA0KPiBAQCAt MzYsMTMgKzM2LDEzIEBADQo+ICAgKiAgQSAxNi1iaXQgZXhwZWN0ZWQgdmFsdWUgdG8gYmUgaW4g dGhlIG1lbW9yeSBsb2NhdGlvbi4NCj4gICAqIEBwYXJhbSBtZW1vcmRlcg0KPiAgICogIFR3byBk aWZmZXJlbnQgbWVtb3J5IG9yZGVycyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQ6DQo+IC0gKiAgX19B VE9NSUNfQUNRVUlSRSBhbmQgX19BVE9NSUNfUkVMQVhFRC4gVGhlc2UgbWFwIHRvDQo+ICsgKiAg cnRlX21lbW9yeV9vcmRlcl9hY3F1aXJlIGFuZCBydGVfbWVtb3J5X29yZGVyX3JlbGF4ZWQuIFRo ZXNlIG1hcCB0bw0KPiAgICogIEMrKzExIG1lbW9yeSBvcmRlcnMgd2l0aCB0aGUgc2FtZSBuYW1l cywgc2VlIHRoZSBDKysxMSBzdGFuZGFyZCBvcg0KPiAgICogIHRoZSBHQ0Mgd2lraSBvbiBhdG9t aWMgc3luY2hyb25pemF0aW9uIGZvciBkZXRhaWxlZCBkZWZpbml0aW9uLg0KDQpEZWxldGUgdGhl IGxhc3QgcGFydCBvZiB0aGUgZGVzY3JpcHRpb24sIHN0YXJ0aW5nIGF0ICJUaGVzZSBtYXAgdG8u Li4iLg0KDQo+ICAgKi8NCj4gIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gIHJ0 ZV93YWl0X3VudGlsX2VxdWFsXzE2KHZvbGF0aWxlIHVpbnQxNl90ICphZGRyLCB1aW50MTZfdCBl eHBlY3RlZCwNCj4gLQkJaW50IG1lbW9yZGVyKTsNCj4gKwkJcnRlX21lbW9yeV9vcmRlciBtZW1v cmRlcik7DQo+IA0KPiAgLyoqDQo+ICAgKiBXYWl0IGZvciAqYWRkciB0byBiZSB1cGRhdGVkIHdp dGggYSAzMi1iaXQgZXhwZWN0ZWQgdmFsdWUsIHdpdGggYSByZWxheGVkDQo+IEBAIC01NCwxMyAr NTQsMTMgQEANCj4gICAqICBBIDMyLWJpdCBleHBlY3RlZCB2YWx1ZSB0byBiZSBpbiB0aGUgbWVt b3J5IGxvY2F0aW9uLg0KPiAgICogQHBhcmFtIG1lbW9yZGVyDQo+ICAgKiAgVHdvIGRpZmZlcmVu dCBtZW1vcnkgb3JkZXJzIHRoYXQgY2FuIGJlIHNwZWNpZmllZDoNCj4gLSAqICBfX0FUT01JQ19B Q1FVSVJFIGFuZCBfX0FUT01JQ19SRUxBWEVELiBUaGVzZSBtYXAgdG8NCj4gKyAqICBydGVfbWVt b3J5X29yZGVyX2FjcXVpcmUgYW5kIHJ0ZV9tZW1vcnlfb3JkZXJfcmVsYXhlZC4gVGhlc2UgbWFw IHRvDQo+ICAgKiAgQysrMTEgbWVtb3J5IG9yZGVycyB3aXRoIHRoZSBzYW1lIG5hbWVzLCBzZWUg dGhlIEMrKzExIHN0YW5kYXJkIG9yDQo+ICAgKiAgdGhlIEdDQyB3aWtpIG9uIGF0b21pYyBzeW5j aHJvbml6YXRpb24gZm9yIGRldGFpbGVkIGRlZmluaXRpb24uDQoNCkRlbGV0ZSB0aGUgbGFzdCBw YXJ0IG9mIHRoZSBkZXNjcmlwdGlvbiwgc3RhcnRpbmcgYXQgIlRoZXNlIG1hcCB0by4uLiIuDQoN Cj4gICAqLw0KPiAgc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0KPiAgcnRlX3dhaXRf dW50aWxfZXF1YWxfMzIodm9sYXRpbGUgdWludDMyX3QgKmFkZHIsIHVpbnQzMl90IGV4cGVjdGVk LA0KPiAtCQlpbnQgbWVtb3JkZXIpOw0KPiArCQlydGVfbWVtb3J5X29yZGVyIG1lbW9yZGVyKTsN Cj4gDQo+ICAvKioNCj4gICAqIFdhaXQgZm9yICphZGRyIHRvIGJlIHVwZGF0ZWQgd2l0aCBhIDY0 LWJpdCBleHBlY3RlZCB2YWx1ZSwgd2l0aCBhIHJlbGF4ZWQNCj4gQEAgLTcyLDQyICs3Miw0MiBA QA0KPiAgICogIEEgNjQtYml0IGV4cGVjdGVkIHZhbHVlIHRvIGJlIGluIHRoZSBtZW1vcnkgbG9j YXRpb24uDQo+ICAgKiBAcGFyYW0gbWVtb3JkZXINCj4gICAqICBUd28gZGlmZmVyZW50IG1lbW9y eSBvcmRlcnMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkOg0KPiAtICogIF9fQVRPTUlDX0FDUVVJUkUg YW5kIF9fQVRPTUlDX1JFTEFYRUQuIFRoZXNlIG1hcCB0bw0KPiArICogIHJ0ZV9tZW1vcnlfb3Jk ZXJfYWNxdWlyZSBhbmQgcnRlX21lbW9yeV9vcmRlcl9yZWxheGVkLiBUaGVzZSBtYXAgdG8NCj4g ICAqICBDKysxMSBtZW1vcnkgb3JkZXJzIHdpdGggdGhlIHNhbWUgbmFtZXMsIHNlZSB0aGUgQysr MTEgc3RhbmRhcmQgb3INCj4gICAqICB0aGUgR0NDIHdpa2kgb24gYXRvbWljIHN5bmNocm9uaXph dGlvbiBmb3IgZGV0YWlsZWQgZGVmaW5pdGlvbi4NCg0KRGVsZXRlIHRoZSBsYXN0IHBhcnQgb2Yg dGhlIGRlc2NyaXB0aW9uLCBzdGFydGluZyBhdCAiVGhlc2UgbWFwIHRvLi4uIi4NCg0KPiAgICov DQo+ICBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQo+ICBydGVfd2FpdF91bnRpbF9l cXVhbF82NCh2b2xhdGlsZSB1aW50NjRfdCAqYWRkciwgdWludDY0X3QgZXhwZWN0ZWQsDQo+IC0J CWludCBtZW1vcmRlcik7DQo+ICsJCXJ0ZV9tZW1vcnlfb3JkZXIgbWVtb3JkZXIpOw0KDQpbLi4u XQ0KDQo+IEBAIC0xMjUsMTYgKzEyNSwxNiBAQA0KPiAgICogIEFuIGV4cGVjdGVkIHZhbHVlIHRv IGJlIGluIHRoZSBtZW1vcnkgbG9jYXRpb24uDQo+ICAgKiBAcGFyYW0gbWVtb3JkZXINCj4gICAq ICBUd28gZGlmZmVyZW50IG1lbW9yeSBvcmRlcnMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkOg0KPiAt ICogIF9fQVRPTUlDX0FDUVVJUkUgYW5kIF9fQVRPTUlDX1JFTEFYRUQuIFRoZXNlIG1hcCB0bw0K PiArICogIHJ0ZV9tZW1vcnlfb3JkZXJfYWNxdWlyZSBhbmQgcnRlX21lbW9yeV9vcmRlcl9yZWxh eGVkLiBUaGVzZSBtYXAgdG8NCj4gICAqICBDKysxMSBtZW1vcnkgb3JkZXJzIHdpdGggdGhlIHNh bWUgbmFtZXMsIHNlZSB0aGUgQysrMTEgc3RhbmRhcmQgb3INCj4gICAqICB0aGUgR0NDIHdpa2kg b24gYXRvbWljIHN5bmNocm9uaXphdGlvbiBmb3IgZGV0YWlsZWQgZGVmaW5pdGlvbi4NCg0KRGVs ZXRlIHRoZSBsYXN0IHBhcnQgb2YgdGhlIGRlc2NyaXB0aW9uLCBzdGFydGluZyBhdCAiVGhlc2Ug bWFwIHRvLi4uIi4NCg0KVGhlcmUgbWlnaHQgYmUgbW9yZSBzaW1pbGFyIGNvbW1lbnRzIHRoYXQg bmVlZCByZW1vdmFsOyBJIGhhdmVuJ3QgdHJpZWQgc2VhcmNoaW5nLg0KDQo+ICAgKi8NCj4gICNk ZWZpbmUgUlRFX1dBSVRfVU5USUxfTUFTS0VEKGFkZHIsIG1hc2ssIGNvbmQsIGV4cGVjdGVkLCBt ZW1vcmRlcikgZG8geyBcDQoNClsuLi5dDQoNCj4gLS0tIGEvbGliL2VhbC9pbmNsdWRlL2dlbmVy aWMvcnRlX3NwaW5sb2NrLmgNCj4gKysrIGIvbGliL2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3Nw aW5sb2NrLmgNCj4gQEAgLTI5LDcgKzI5LDcgQEANCj4gICAqIFRoZSBydGVfc3BpbmxvY2tfdCB0 eXBlLg0KPiAgICovDQo+ICB0eXBlZGVmIHN0cnVjdCBfX3J0ZV9sb2NrYWJsZSB7DQo+IC0Jdm9s YXRpbGUgaW50IGxvY2tlZDsgLyoqPCBsb2NrIHN0YXR1cyAwID0gdW5sb2NrZWQsIDEgPSBsb2Nr ZWQgKi8NCj4gKwl2b2xhdGlsZSBpbnQgX19ydGVfYXRvbWljIGxvY2tlZDsgLyoqPCBsb2NrIHN0 YXR1cyAwID0gdW5sb2NrZWQsIDEgPQ0KPiBsb2NrZWQgKi8NCg0KSSB0aGluayBfX3J0ZV9hdG9t aWMgc2hvdWxkIGJlIGJlZm9yZSB0aGUgdHlwZToNCgl2b2xhdGlsZSBfX3J0ZV9hdG9taWMgaW50 IGxvY2tlZDsgLyoqPCBsb2NrIHN0YXR1cyBbLi4uXQ0KQWx0ZXJuYXRpdmVseSAoanVzdCBtZW50 aW9uaW5nIGl0LCBJIGtub3cgd2UgZG9uJ3QgdXNlIHRoaXMgZm9ybSk6DQoJdm9sYXRpbGUgX19y dGVfYXRvbWljKGludCkgbG9ja2VkOyAvKio8IGxvY2sgc3RhdHVzIFsuLi5dDQoNClRoaW5raW5n IG9mIHdoZXJlIHlvdSB3b3VsZCBwdXQgImNvbnN0IiBtaWdodCBoZWxwLg0KDQpNYXliZSB5b3Vy IG9yZGVyIGlzIGFsc28gY29ycmVjdCwgc28gaXQgaXMgYSBtYXR0ZXIgb2YgcHJlZmVyZW5jZS4N Cg0KVGhlIERQREsgY29kaW5nIHN0eWxlIGd1aWRlbGluZXMgZG9lc24ndCBtZW50aW9uIHdoZXJl IHRvIHBsYWNlICJjb25zdCIsIGJ1dCBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCBzZWVtcyB0byB1 c2UgImNvbnN0IHVuc2lnbmVkIGludCIgYW5kICJjb25zdCBjaGFyICoiLg0KDQo+ICB9IHJ0ZV9z cGlubG9ja190Ow0KPiANCj4gIC8qKg0KDQpbLi4uXQ0KDQo+IC0tLSBhL2xpYi9lYWwvaW5jbHVk ZS9ydGVfbWNzbG9jay5oDQo+ICsrKyBiL2xpYi9lYWwvaW5jbHVkZS9ydGVfbWNzbG9jay5oDQo+ IEBAIC0zMyw4ICszMyw4IEBADQo+ICAgKiBUaGUgcnRlX21jc2xvY2tfdCB0eXBlLg0KPiAgICov DQo+ICB0eXBlZGVmIHN0cnVjdCBydGVfbWNzbG9jayB7DQo+IC0Jc3RydWN0IHJ0ZV9tY3Nsb2Nr ICpuZXh0Ow0KPiAtCWludCBsb2NrZWQ7IC8qIDEgaWYgdGhlIHF1ZXVlIGxvY2tlZCwgMCBvdGhl cndpc2UgKi8NCj4gKwlzdHJ1Y3QgcnRlX21jc2xvY2sgKiBfX3J0ZV9hdG9taWMgbmV4dDsNCg0K Q29ycmVjdCwgdGhlIHBvaW50ZXIgaXMgYXRvbWljLCBub3QgdGhlIHN0cnVjdC4NCg0KPiArCWlu dCBfX3J0ZV9hdG9taWMgbG9ja2VkOyAvKiAxIGlmIHRoZSBxdWV1ZSBsb2NrZWQsIDAgb3RoZXJ3 aXNlICovDQoNCkFnYWluLCBJIHRoaW5rIF9fcnRlX2F0b21pYyBzaG91bGQgYmUgYmVmb3JlIHRo ZSB0eXBlOg0KCV9fcnRlX2F0b21pYyBpbnQgbG9ja2VkOyAvKiAxIGlmIHRoZSBxdWV1ZSBsb2Nr ZWQsIDAgb3RoZXJ3aXNlICovDQoNCj4gIH0gcnRlX21jc2xvY2tfdDsNCj4gDQoNClsuLi5dDQoN Cj4gQEAgLTEwMSwzNCArMTAxLDM0IEBADQo+ICAgKiAgIEEgcG9pbnRlciB0byB0aGUgbm9kZSBv ZiBNQ1MgbG9jayBwYXNzZWQgaW4gcnRlX21jc2xvY2tfbG9jay4NCj4gICAqLw0KPiAgc3RhdGlj IGlubGluZSB2b2lkDQo+IC1ydGVfbWNzbG9ja191bmxvY2socnRlX21jc2xvY2tfdCAqKm1zbCwg cnRlX21jc2xvY2tfdCAqbWUpDQo+ICtydGVfbWNzbG9ja191bmxvY2socnRlX21jc2xvY2tfdCAq IF9fcnRlX2F0b21pYyAqbXNsLCBydGVfbWNzbG9ja190ICoNCj4gX19ydGVfYXRvbWljIG1lKQ0K PiAgew0KPiAgCS8qIENoZWNrIGlmIHRoZXJlIGFyZSBtb3JlIG5vZGVzIGluIHRoZSBxdWV1ZS4g Ki8NCj4gLQlpZiAobGlrZWx5KF9fYXRvbWljX2xvYWRfbigmbWUtPm5leHQsIF9fQVRPTUlDX1JF TEFYRUQpID09IE5VTEwpKSB7DQo+ICsJaWYgKGxpa2VseShydGVfYXRvbWljX2xvYWRfZXhwbGlj aXQoJm1lLT5uZXh0LCBydGVfbWVtb3J5X29yZGVyX3JlbGF4ZWQpDQo+ID09IE5VTEwpKSB7DQo+ ICAJCS8qIE5vLCBsYXN0IG1lbWJlciBpbiB0aGUgcXVldWUuICovDQo+IC0JCXJ0ZV9tY3Nsb2Nr X3QgKnNhdmVfbWUgPSBfX2F0b21pY19sb2FkX24oJm1lLCBfX0FUT01JQ19SRUxBWEVEKTsNCj4g KwkJcnRlX21jc2xvY2tfdCAqc2F2ZV9tZSA9IHJ0ZV9hdG9taWNfbG9hZF9leHBsaWNpdCgmbWUs DQo+IHJ0ZV9tZW1vcnlfb3JkZXJfcmVsYXhlZCk7DQo+IA0KPiAgCQkvKiBSZWxlYXNlIHRoZSBs b2NrIGJ5IHNldHRpbmcgaXQgdG8gTlVMTCAqLw0KPiAtCQlpZiAobGlrZWx5KF9fYXRvbWljX2Nv bXBhcmVfZXhjaGFuZ2Vfbihtc2wsICZzYXZlX21lLCBOVUxMLCAwLA0KPiAtCQkJCV9fQVRPTUlD X1JFTEVBU0UsIF9fQVRPTUlDX1JFTEFYRUQpKSkNCj4gKwkJaWYgKGxpa2VseShydGVfYXRvbWlj X2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KG1zbCwNCj4gJnNhdmVfbWUsIE5VTEws DQo+ICsJCQkJcnRlX21lbW9yeV9vcmRlcl9yZWxlYXNlLA0KPiBydGVfbWVtb3J5X29yZGVyX3Jl bGF4ZWQpKSkNCj4gIAkJCXJldHVybjsNCj4gDQo+ICAJCS8qIFNwZWN1bGF0aXZlIGV4ZWN1dGlv biB3b3VsZCBiZSBhbGxvd2VkIHRvIHJlYWQgaW4gdGhlDQo+ICAJCSAqIHdoaWxlLWxvb3AgZmly c3QuIFRoaXMgaGFzIHRoZSBwb3RlbnRpYWwgdG8gY2F1c2UgYQ0KPiAgCQkgKiBkZWFkbG9jay4g TmVlZCBhIGxvYWQgYmFycmllci4NCj4gIAkJICovDQo+IC0JCV9fYXRvbWljX3RocmVhZF9mZW5j ZShfX0FUT01JQ19BQ1FVSVJFKTsNCj4gKwkJX19ydGVfYXRvbWljX3RocmVhZF9mZW5jZShydGVf bWVtb3J5X29yZGVyX2FjcXVpcmUpOw0KPiAgCQkvKiBNb3JlIG5vZGVzIGFkZGVkIHRvIHRoZSBx dWV1ZSBieSBvdGhlciBDUFVzLg0KPiAgCQkgKiBXYWl0IHVudGlsIHRoZSBuZXh0IHBvaW50ZXIg aXMgc2V0Lg0KPiAgCQkgKi8NCj4gLQkJdWludHB0cl90ICpuZXh0Ow0KPiAtCQluZXh0ID0gKHVp bnRwdHJfdCAqKSZtZS0+bmV4dDsNCj4gKwkJdWludHB0cl90IF9fcnRlX2F0b21pYyAqbmV4dDsN Cj4gKwkJbmV4dCA9ICh1aW50cHRyX3QgX19ydGVfYXRvbWljICopJm1lLT5uZXh0Ow0KDQpUaGlz IHdheSBhcm91bmQsIEkgdGhpbms6DQoJCV9fcnRlX2F0b21pYyB1aW50cHRyX3QgKm5leHQ7DQoJ CW5leHQgPSAoX19ydGVfYXRvbWljIHVpbnRwdHJfdCAqKSZtZS0+bmV4dDsNCg0KWy4uLl0NCg0K PiAtLS0gYS9saWIvZWFsL2luY2x1ZGUvcnRlX3BmbG9jay5oDQo+ICsrKyBiL2xpYi9lYWwvaW5j bHVkZS9ydGVfcGZsb2NrLmgNCj4gQEAgLTQxLDggKzQxLDggQEANCj4gICAqLw0KPiAgc3RydWN0 IHJ0ZV9wZmxvY2sgew0KPiAgCXN0cnVjdCB7DQo+IC0JCXVpbnQxNl90IGluOw0KPiAtCQl1aW50 MTZfdCBvdXQ7DQo+ICsJCXVpbnQxNl90IF9fcnRlX2F0b21pYyBpbjsNCj4gKwkJdWludDE2X3Qg X19ydGVfYXRvbWljIG91dDsNCg0KQWdhaW4sIEkgdGhpbmsgX19ydGVfYXRvbWljIHNob3VsZCBi ZSBiZWZvcmUgdGhlIHR5cGU6DQoJCV9fcnRlX2F0b21pYyB1aW50MTZfdCBpbjsNCgkJX19ydGVf YXRvbWljIHVpbnQxNl90IG91dDsNCg0KPiAgCX0gcmQsIHdyOw0KPiAgfTsNCg0KWy4uLl0NCg0K PiAtLS0gYS9saWIvZWFsL2luY2x1ZGUvcnRlX3NlcWNvdW50LmgNCj4gKysrIGIvbGliL2VhbC9p bmNsdWRlL3J0ZV9zZXFjb3VudC5oDQo+IEBAIC0zMiw3ICszMiw3IEBADQo+ICAgKiBUaGUgUlRF IHNlcWNvdW50IHR5cGUuDQo+ICAgKi8NCj4gIHR5cGVkZWYgc3RydWN0IHsNCj4gLQl1aW50MzJf dCBzbjsgLyoqPCBBIHNlcXVlbmNlIG51bWJlciBmb3IgdGhlIHByb3RlY3RlZCBkYXRhLiAqLw0K PiArCXVpbnQzMl90IF9fcnRlX2F0b21pYyBzbjsgLyoqPCBBIHNlcXVlbmNlIG51bWJlciBmb3Ig dGhlIHByb3RlY3RlZCBkYXRhLg0KPiAqLw0KDQpBZ2FpbiwgSSB0aGluayBfX3J0ZV9hdG9taWMg c2hvdWxkIGJlIGJlZm9yZSB0aGUgdHlwZToNCglfX3J0ZV9hdG9taWMgdWludDMyX3Qgc247IC8q KjwgQSBzZXF1ZW5jZSBbLi4uXQ0KDQo+ICB9IHJ0ZV9zZXFjb3VudF90Ow0KDQpbLi4uXQ0KDQo+ IC0tLSBhL2xpYi9lYWwvaW5jbHVkZS9ydGVfdGlja2V0bG9jay5oDQo+ICsrKyBiL2xpYi9lYWwv aW5jbHVkZS9ydGVfdGlja2V0bG9jay5oDQo+IEBAIC0zMCwxMCArMzAsMTAgQEANCj4gICAqIFRo ZSBydGVfdGlja2V0bG9ja190IHR5cGUuDQo+ICAgKi8NCj4gIHR5cGVkZWYgdW5pb24gew0KPiAt CXVpbnQzMl90IHRpY2tldHM7DQo+ICsJdWludDMyX3QgX19ydGVfYXRvbWljIHRpY2tldHM7DQo+ ICAJc3RydWN0IHsNCj4gLQkJdWludDE2X3QgY3VycmVudDsNCj4gLQkJdWludDE2X3QgbmV4dDsN Cj4gKwkJdWludDE2X3QgX19ydGVfYXRvbWljIGN1cnJlbnQ7DQo+ICsJCXVpbnQxNl90IF9fcnRl X2F0b21pYyBuZXh0Ow0KDQpBZ2FpbiwgSSB0aGluayBfX3J0ZV9hdG9taWMgc2hvdWxkIGJlIGJl Zm9yZSB0aGUgdHlwZToNCgkJX19ydGVfYXRvbWljIHVpbnQxNl90IGN1cnJlbnQ7DQoJCV9fcnRl X2F0b21pYyB1aW50MTZfdCBuZXh0Ow0KDQo+ICAJfSBzOw0KPiAgfSBydGVfdGlja2V0bG9ja190 Ow0KDQoNCg0KPiBAQCAtMTI3LDcgKzEyOSw3IEBADQo+IA0KPiAgdHlwZWRlZiBzdHJ1Y3Qgew0K PiAgCXJ0ZV90aWNrZXRsb2NrX3QgdGw7IC8qKjwgdGhlIGFjdHVhbCB0aWNrZXRsb2NrICovDQo+ IC0JaW50IHVzZXI7IC8qKjwgY29yZSBpZCB1c2luZyBsb2NrLCBUSUNLRVRfTE9DS19JTlZBTElE X0lEIGZvciB1bnVzZWQgKi8NCj4gKwlpbnQgX19ydGVfYXRvbWljIHVzZXI7IC8qKjwgY29yZSBp ZCB1c2luZyBsb2NrLCBUSUNLRVRfTE9DS19JTlZBTElEX0lEDQo+IGZvciB1bnVzZWQgKi8NCg0K QWdhaW4sIEkgdGhpbmsgX19ydGVfYXRvbWljIHNob3VsZCBiZSBiZWZvcmUgdGhlIHR5cGU6DQoJ X19ydGVfYXRvbWljIGludCB1c2VyOyAvKio8IGNvcmUgaWQgWy4uLl0NCg0KPiAgCXVuc2lnbmVk IGludCBjb3VudDsgLyoqPCBjb3VudCBvZiB0aW1lIHRoaXMgbG9jayBoYXMgYmVlbiBjYWxsZWQg Ki8NCj4gIH0gcnRlX3RpY2tldGxvY2tfcmVjdXJzaXZlX3Q7DQoNClsuLi5dDQoNCj4gLS0tIGEv bGliL2VhbC9pbmNsdWRlL3J0ZV90cmFjZV9wb2ludC5oDQo+ICsrKyBiL2xpYi9lYWwvaW5jbHVk ZS9ydGVfdHJhY2VfcG9pbnQuaA0KPiBAQCAtMzMsNyArMzMsNyBAQA0KPiAgI2luY2x1ZGUgPHJ0 ZV9zdGRhdG9taWMuaD4NCj4gDQo+ICAvKiogVGhlIHRyYWNlcG9pbnQgb2JqZWN0LiAqLw0KPiAt dHlwZWRlZiB1aW50NjRfdCBydGVfdHJhY2VfcG9pbnRfdDsNCj4gK3R5cGVkZWYgdWludDY0X3Qg X19ydGVfYXRvbWljIHJ0ZV90cmFjZV9wb2ludF90Ow0KDQpBZ2FpbiwgSSB0aGluayBfX3J0ZV9h dG9taWMgc2hvdWxkIGJlIGJlZm9yZSB0aGUgdHlwZToNCnR5cGVkZWYgX19ydGVfYXRvbWljIHVp bnQ2NF90IHJ0ZV90cmFjZV9wb2ludF90Ow0KDQpbLi4uXQ0KDQpBdCB0aGUgcmlzayBvZiBoYXZp bmcgZ29uZSAic3BlZWQgYmxpbmQiIGJ5IGFsbCB0aGUgc2VhcmNoLXJlcGxhY2VzIGFsb25nIHRo ZSB3YXkuLi4NCg0KUmV2aWV3ZWQtYnk6IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lz dGVtcy5jb20+DQoNCg==