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 27362A328D for ; Tue, 22 Oct 2019 11:37:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 006A81BE82; Tue, 22 Oct 2019 11:37:03 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 2F0664C9D for ; Tue, 22 Oct 2019 11:37:02 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Oct 2019 02:37:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,326,1566889200"; d="scan'208";a="191407231" Received: from irsmsx109.ger.corp.intel.com ([163.33.3.23]) by orsmga008.jf.intel.com with ESMTP; 22 Oct 2019 02:36:58 -0700 Received: from irsmsx111.ger.corp.intel.com (10.108.20.4) by IRSMSX109.ger.corp.intel.com (163.33.3.23) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 22 Oct 2019 10:36:57 +0100 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.252]) by irsmsx111.ger.corp.intel.com ([169.254.2.123]) with mapi id 14.03.0439.000; Tue, 22 Oct 2019 10:36:57 +0100 From: "Ananyev, Konstantin" To: David Marchand , Gavin Hu CC: dev , nd , Thomas Monjalon , Stephen Hemminger , Hemant Agrawal , Jerin Jacob Kollanukkaran , Pavan Nikhilesh , "Honnappa Nagarahalli" , "Ruifeng Wang (Arm Technology China)" , Phil Yang , Steve Capper Thread-Topic: [dpdk-dev] [PATCH v8 2/6] eal: add the APIs to wait until equal Thread-Index: AQHVh/TfoilnXxemWkG5fqMNF23LVqdlaCaAgAD3g2A= Date: Tue, 22 Oct 2019 09:36:56 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725801A8C6DDF9@IRSMSX104.ger.corp.intel.com> References: <1561911676-37718-1-git-send-email-gavin.hu@arm.com> <1571651279-51857-1-git-send-email-gavin.hu@arm.com> <1571651279-51857-3-git-send-email-gavin.hu@arm.com> In-Reply-To: Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWUxOTE3ODctZDFhYy00OWY2LTkwN2UtNjVkMjAyMWE2ZTJkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiWUZWRVBhb2h3cmhZYkpyYUxPQ3lEVEx1ZFhvUG9LaFZ2MnF4UnhDRWI4V1wvM0dYb0FTSG13SDcrbDZEK3oyQ1QifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v8 2/6] eal: add the APIs to wait until equal 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" PiA+IFRoZSBydGVfd2FpdF91bnRpbF9lcXVhbF94eCBBUElzIGFic3RyYWN0IHRoZSBmdW5jdGlv bmFsaXR5IG9mDQo+ID4gJ3BvbGxpbmcgZm9yIGEgbWVtb3J5IGxvY2F0aW9uIHRvIGJlY29tZSBl cXVhbCB0byBhIGdpdmVuIHZhbHVlJy4NCj4gPg0KPiA+IEFkZCB0aGUgUlRFX0FSTV9VU0VfV0ZF IGNvbmZpZ3VyYXRpb24gZW50cnkgZm9yIGFhcmNoNjQsIGRpc2FibGVkDQo+ID4gYnkgZGVmYXVs dC4gV2hlbiBpdCBpcyBlbmFibGVkLCB0aGUgYWJvdmUgQVBJcyB3aWxsIGNhbGwgV0ZFIGluc3Ry dWN0aW9uDQo+ID4gdG8gc2F2ZSBDUFUgY3ljbGVzIGFuZCBwb3dlci4NCj4gPg0KPiA+IEZyb20g YSBWTSwgd2hlbiBjYWxsaW5nIHRoaXMgQVBJIG9uIGFhcmNoNjQsIGl0IG1heSB0cmFwIGluIGFu ZCBvdXQgdG8NCj4gPiByZWxlYXNlIHZDUFVzIHdoZXJlYXMgY2F1c2UgaGlnaCBleGl0IGxhdGVu Y3kuIFNpbmNlIGtlcm5lbCA0LjE4LjIwIGFuDQo+ID4gYWRhcHRpdmUgdHJhcHBpbmcgbWVjaGFu aXNtIGlzIGludHJvZHVjZWQgdG8gYmFsYW5jZSB0aGUgbGF0ZW5jeSBhbmQNCj4gPiB3b3JrbG9h ZC4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEdhdmluIEh1IDxnYXZpbi5odUBhcm0uY29tPg0K PiA+IFJldmlld2VkLWJ5OiBSdWlmZW5nIFdhbmcgPHJ1aWZlbmcud2FuZ0Bhcm0uY29tPg0KPiA+ IFJldmlld2VkLWJ5OiBTdGV2ZSBDYXBwZXIgPHN0ZXZlLmNhcHBlckBhcm0uY29tPg0KPiA+IFJl dmlld2VkLWJ5OiBPbGEgTGlsamVkYWhsIDxvbGEubGlsamVkYWhsQGFybS5jb20+DQo+ID4gUmV2 aWV3ZWQtYnk6IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxob25uYXBwYS5uYWdhcmFoYWxsaUBhcm0u Y29tPg0KPiA+IFJldmlld2VkLWJ5OiBQaGlsIFlhbmcgPHBoaWwueWFuZ0Bhcm0uY29tPg0KPiA+ IEFja2VkLWJ5OiBQYXZhbiBOaWtoaWxlc2ggPHBiaGFnYXZhdHVsYUBtYXJ2ZWxsLmNvbT4NCj4g PiBBY2tlZC1ieTogSmVyaW4gSmFjb2IgPGplcmluakBtYXJ2ZWxsLmNvbT4NCj4gPiAtLS0NCj4g PiAgY29uZmlnL2FybS9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MSArDQo+ID4gIGNvbmZpZy9jb21tb25fYmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDUgKysNCj4gPiAgLi4uL2NvbW1vbi9pbmNsdWRlL2FyY2gvYXJtL3J0ZV9wYXVzZV82 NC5oICAgICAgICAgfCAyNiArKysrKysNCj4gPiAgbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1 ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaCAgfCA5MyArKysrKysrKysrKysrKysrKysrKysrDQo+ID4g IDQgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQg YS9jb25maWcvYXJtL21lc29uLmJ1aWxkIGIvY29uZmlnL2FybS9tZXNvbi5idWlsZA0KPiA+IGlu ZGV4IDk3OTAxOGUuLmI0YjRjYWMgMTAwNjQ0DQo+ID4gLS0tIGEvY29uZmlnL2FybS9tZXNvbi5i dWlsZA0KPiA+ICsrKyBiL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQNCj4gPiBAQCAtMjYsNiArMjYs NyBAQCBmbGFnc19jb21tb25fZGVmYXVsdCA9IFsNCj4gPiAgICAgICAgIFsnUlRFX0xJQlJURV9B VlBfUE1EJywgZmFsc2VdLA0KPiA+DQo+ID4gICAgICAgICBbJ1JURV9TQ0hFRF9WRUNUT1InLCBm YWxzZV0sDQo+ID4gKyAgICAgICBbJ1JURV9BUk1fVVNFX1dGRScsIGZhbHNlXSwNCj4gPiAgXQ0K PiA+DQo+ID4gIGZsYWdzX2dlbmVyaWMgPSBbDQo+ID4gZGlmZiAtLWdpdCBhL2NvbmZpZy9jb21t b25fYmFzZSBiL2NvbmZpZy9jb21tb25fYmFzZQ0KPiA+IGluZGV4IGU4NDNhMjEuLmM4MTIxNTYg MTAwNjQ0DQo+ID4gLS0tIGEvY29uZmlnL2NvbW1vbl9iYXNlDQo+ID4gKysrIGIvY29uZmlnL2Nv bW1vbl9iYXNlDQo+ID4gQEAgLTExMSw2ICsxMTEsMTEgQEAgQ09ORklHX1JURV9NQVhfVkZJT19D T05UQUlORVJTPTY0DQo+ID4gIENPTkZJR19SVEVfTUFMTE9DX0RFQlVHPW4NCj4gPiAgQ09ORklH X1JURV9FQUxfTlVNQV9BV0FSRV9IVUdFUEFHRVM9bg0KPiA+ICBDT05GSUdfUlRFX1VTRV9MSUJC U0Q9bg0KPiA+ICsjIFVzZSBXRkUgaW5zdHJ1Y3Rpb25zIHRvIGltcGxlbWVudCB0aGUgcnRlX3dh aXRfZm9yX2VxdWFsX3h4eCBBUElzLA0KPiA+ICsjIGNhbGxpbmcgdGhlc2UgQVBJcyBwdXQgdGhl IGNvcmVzIGluIGxvdyBwb3dlciBzdGF0ZSB3aGlsZSB3YWl0aW5nDQo+ID4gKyMgZm9yIHRoZSBt ZW1vcnkgYWRkcmVzcyB0byBiZWNvbWUgZXF1YWwgdG8gdGhlIGV4cGVjdGVkIHZhbHVlLg0KPiA+ ICsjIFRoaXMgaXMgc3VwcG9ydGVkIG9ubHkgYnkgYWFyY2g2NC4NCj4gPiArQ09ORklHX1JURV9B Uk1fVVNFX1dGRT1uDQo+ID4NCj4gPiAgIw0KPiA+ICAjIFJlY29nbml6ZS9pZ25vcmUgdGhlIEFW WC9BVlg1MTIgQ1BVIGZsYWdzIGZvciBwZXJmb3JtYW5jZS9wb3dlciB0ZXN0aW5nLg0KPiA+IGRp ZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL2FybS9ydGVfcGF1 c2VfNjQuaCBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gvYXJtL3J0ZV9wYXVz ZV82NC5oDQo+ID4gaW5kZXggOTM4OTVkMy4uZWI4ZjczZSAxMDA2NDQNCj4gPiAtLS0gYS9saWIv bGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL2FybS9ydGVfcGF1c2VfNjQuaA0KPiA+ICsr KyBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gvYXJtL3J0ZV9wYXVzZV82NC5o DQo+ID4gQEAgLTEsNSArMSw2IEBADQo+ID4gIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMy1DbGF1c2UNCj4gPiAgICogQ29weXJpZ2h0KGMpIDIwMTcgQ2F2aXVtLCBJbmMNCj4gPiAr ICogQ29weXJpZ2h0KGMpIDIwMTkgQXJtIExpbWl0ZWQNCj4gPiAgICovDQo+IA0KPiBCZWZvcmUg aW5jbHVkaW5nIGdlbmVyaWMvcnRlX3BhdXNlLmgsIHB1dCBhIGNoZWNrIGxpa2U6DQo+IA0KPiAj aWZkZWYgUlRFX0FSTV9VU0VfV0ZFDQo+ICNkZWZpbmUgUlRFX0FSQ0hfSEFTX1dGRQ0KPiAjZW5k aWYNCj4gDQo+ICNpbmNsdWRlICJnZW5lcmljL3J0ZV9wYXVzZS5oIg0KPiANCj4gPg0KPiA+ICAj aWZuZGVmIF9SVEVfUEFVU0VfQVJNNjRfSF8NCj4gPiBAQCAtMTcsNiArMTgsMzEgQEAgc3RhdGlj IGlubGluZSB2b2lkIHJ0ZV9wYXVzZSh2b2lkKQ0KPiA+ICAgICAgICAgYXNtIHZvbGF0aWxlKCJ5 aWVsZCIgOjo6ICJtZW1vcnkiKTsNCj4gPiAgfQ0KPiA+DQo+ID4gKyNpZmRlZiBSVEVfQVJNX1VT RV9XRkUNCj4gPiArI2RlZmluZSBzZXYoKSAgeyBhc20gdm9sYXRpbGUoInNldiIgOiA6IDogIm1l bW9yeSIpIH0NCj4gPiArI2RlZmluZSB3ZmUoKSAgeyBhc20gdm9sYXRpbGUoIndmZSIgOiA6IDog Im1lbW9yeSIpIH0NCj4gPiArDQo+ID4gKyNkZWZpbmUgX19XQUlUX1VOVElMX0VRVUFMKHR5cGUs IHNpemUsIGFkZHIsIGV4cGVjdGVkLCBtZW1vcmRlcikgXA0KPiA+ICtfX3J0ZV9leHBlcmltZW50 YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IA0KPiBU aGUgZXhwZXJpbWVudGFsIHRhZyBpcyB1bm5lY2Vzc2FyeSBoZXJlLg0KPiBXZSBvbmx5IG5lZWQg aXQgaW4gdGhlIGZ1bmN0aW9uIHByb3RvdHlwZSAoaW4gdGhlIGdlbmVyaWMgaGVhZGVyKS4NCj4g DQo+ID4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICtydGVfd2FpdF91bnRpbF9lcXVhbF8jI3NpemUo dm9sYXRpbGUgdHlwZSAqIGFkZHIsIHR5cGUgZXhwZWN0ZWQsXA0KPiA+ICtpbnQgbWVtb3JkZXIp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4g K3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCj4gPiArICAgICAgIGlmIChfX2F0b21pY19sb2FkX24oYWRkciwgbWVtb3JkZXIp ICE9IGV4cGVjdGVkKSB7ICAgICAgXA0KPiA+ICsgICAgICAgICAgICAgICBzZXYoKTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAg ICAgICAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgd2ZlKCk7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAgICAgICB9IHdo aWxlIChfX2F0b21pY19sb2FkX24oYWRkciwgbWVtb3JkZXIpICE9IGV4cGVjdGVkKTsgIFwNCj4g PiArICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQo+ID4gK30NCj4gPiArX19XQUlUX1VOVElMX0VRVUFMKHVpbnQx Nl90LCAxNiwgYWRkciwgZXhwZWN0ZWQsIG1lbW9yZGVyKQ0KPiA+ICtfX1dBSVRfVU5USUxfRVFV QUwodWludDMyX3QsIDMyLCBhZGRyLCBleHBlY3RlZCwgbWVtb3JkZXIpDQo+ID4gK19fV0FJVF9V TlRJTF9FUVVBTCh1aW50NjRfdCwgNjQsIGFkZHIsIGV4cGVjdGVkLCBtZW1vcmRlcikNCj4gPiAr DQo+ID4gKyN1bmRlZiBfX1dBSVRfVU5USUxfRVFVQUwNCg0KTWlnaHQgYmUgaW5zdGVhZCBvZiBk ZWZpbmluZy91bmRlZmluaW5nIHRoZXNlIG1hY3JvcywganVzdA0KZGVmaW5lIGV4cGxpY2l0bHkg dGhlc2UgMyBmdW5jdGlvbnM/DQpOb3cgdGhleSBhcmUgcmVhbGx5IHNtYWxsLCBzbyBJIHRoaW5r IGl0IHdvdWxkIGJlIGFuIGVhc2llci9jbGVhbmVyIHdheS4NClllcywgYSBiaXQgb2YgY29kZSBk dXBsaWNhdGlvbiwgYnV0IGFzIEkgc2FpZCB0aGV5IGFyZSByZWFsbHkgc21hbGwgbm93Lg0KU2Ft ZSB0aG91Z2h0IGFib3V0IGdlbmVyaWMgdmVyc2lvbi4NCg0KPiANCj4gTWlzc2luZyAjdW5kZWYg b24gc2V2IGFuZCB3ZmUgbWFjcm9zLg0KDQpBY3R1YWxseSBzaG91bGQgd2UgdW5kZWZpbmUgdGhl bT8NCk9yIHNob3VsZCB3ZSBhZGQgcnRlXyBwcmVmaXggKHdoaWNoIGlzIG5lZWRlZCBhbnl3YXkg SSBzdXBwb3NlKQ0KYW5kIGhhdmUgdGhlbSBhbHdheXMgZGVmaW5lZD8NCk1pZ2h0IGJlIHlvdSBj YW4gcmV1c2UgdGhlbSBpbiBvdGhlciBhcm0gc3BlY2lmaWMgcGxhY2VzIHRvbyAoc3BpbmxvY2ss IHJ3bG9jaywgZXRjLikNCkFjdHVhbGx5IHByb2JhYmx5IGl0IGlzIHBvc3NpYmxlIHRvIG1ha2Ug dGhlbSBlaXRoZXIgZW1pdGluZyBhIHByb3BlciBpbnN0cnVjdGlvbnMgb3IgTk9QLA0KdGhlbiB5 b3UnbGwgbmVlZCBSVEVfQVJNX1VTRV9XRkUgb25seSBhcm91bmQgdGhlc2UgbWFjcm9zLg0KDQpJ LkUNCg0KI2lmZGVmIFJURV9BUk1fVVNFX1dGRQ0KI2RlZmluZSBydGVfc2V2KCkgIHsgYXNtIHZv bGF0aWxlKCJzZXYiIDogOiA6ICJtZW1vcnkiKSB9DQojZGVmaW5lIHJ0ZV93ZmUoKSAgeyBhc20g dm9sYXRpbGUoIndmZSIgOiA6IDogIm1lbW9yeSIpIH0NCiNlbHNlDQpzdGF0aWMgaW5saW5lIHZv aWQgcnRlX3Nldih2b2lkKQ0Kew0KfQ0Kc3RhdGljIGlubGluZSB2b2lkIHJ0ZV93ZmUodm9pZCkN CnsNCglydGVfcGF1c2UoKTsNCn0NCiNlbmRpZg0KDQpBbmQgdGhlbiBqdXN0IG9uZSBjb21tb24g dmVyc2lvbiBvZiBfd2FpdF8gZnVuY3Rpb3M6DQoNCnN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5l IHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KcnRlX3dhaXRf dW50aWxfZXF1YWxfMzIodm9sYXRpbGUgdHlwZSAqIGFkZHIsIHR5cGUgZXhwZWN0ZWQsIGludCBt ZW1vcmRlcikNCnsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCglpZiAoX19hdG9taWNfbG9hZF9uKGFkZHIsIG1lbW9yZGVyKSAh PSBleHBlY3RlZCkgeyAgICANCgkJcnRlX3NldigpOw0KCQlkbyB7DQoJICAgICAgICAgICAgICAg ICAgICAgICBydGVfd2ZlKCk7DQoJICAgICAgICAgICAgICB9IHdoaWxlIChfX2F0b21pY19sb2Fk X24oYWRkciwgbWVtb3JkZXIpICE9IGV4cGVjdGVkKTsNCgkgIH0gDQp9DQogDQoNCj4gDQo+IA0K PiA+ICsNCj4gPiArI2VuZGlmIC8qIFJURV9BUk1fVVNFX1dGRSAqLw0KPiA+ICsNCj4gPiAgI2lm ZGVmIF9fY3BsdXNwbHVzDQo+ID4gIH0NCj4gPiAgI2VuZGlmDQo+ID4gZGlmZiAtLWdpdCBhL2xp Yi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2dlbmVyaWMvcnRlX3BhdXNlLmggYi9saWIvbGli cnRlX2VhbC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ID4gaW5kZXggNTJi ZDRkYi4uODA1OTdhOSAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX2VhbC9jb21tb24vaW5j bHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9u L2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaA0KPiA+IEBAIC0xLDUgKzEsNiBAQA0KPiA+ICAv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ID4gICAqIENvcHlyaWdo dChjKSAyMDE3IENhdml1bSwgSW5jDQo+ID4gKyAqIENvcHlyaWdodChjKSAyMDE5IEFybSBMaW1p dGVkDQo+ID4gICAqLw0KPiA+DQo+ID4gICNpZm5kZWYgX1JURV9QQVVTRV9IXw0KPiA+IEBAIC0x Miw2ICsxMywxMSBAQA0KPiA+ICAgKg0KPiA+ICAgKi8NCj4gPg0KPiA+ICsjaW5jbHVkZSA8c3Rk aW50Lmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfY29tbW9uLmg+DQo+ID4gKyNpbmNsdWRlIDxydGVf YXRvbWljLmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfY29tcGF0Lmg+DQo+ID4gKw0KPiA+ICAvKioN Cj4gPiAgICogUGF1c2UgQ1BVIGV4ZWN1dGlvbiBmb3IgYSBzaG9ydCB3aGlsZQ0KPiA+ICAgKg0K PiA+IEBAIC0yMCw0ICsyNiw5MSBAQA0KPiA+ICAgKi8NCj4gPiAgc3RhdGljIGlubGluZSB2b2lk IHJ0ZV9wYXVzZSh2b2lkKTsNCj4gPg0KPiA+ICsvKioNCj4gPiArICogQHdhcm5pbmcNCj4gPiAr ICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlLCBvciBiZSByZW1vdmVkLCB3 aXRob3V0IHByaW9yIG5vdGljZQ0KPiA+ICsgKg0KPiA+ICsgKiBXYWl0IGZvciAqYWRkciB0byBi ZSB1cGRhdGVkIHdpdGggYSAxNi1iaXQgZXhwZWN0ZWQgdmFsdWUsIHdpdGggYSByZWxheGVkDQo+ ID4gKyAqIG1lbW9yeSBvcmRlcmluZyBtb2RlbCBtZWFuaW5nIHRoZSBsb2FkcyBhcm91bmQgdGhp cyBBUEkgY2FuIGJlIHJlb3JkZXJlZC4NCj4gPiArICoNCj4gPiArICogQHBhcmFtIGFkZHINCj4g PiArICogIEEgcG9pbnRlciB0byB0aGUgbWVtb3J5IGxvY2F0aW9uLg0KPiA+ICsgKiBAcGFyYW0g ZXhwZWN0ZWQNCj4gPiArICogIEEgMTYtYml0IGV4cGVjdGVkIHZhbHVlIHRvIGJlIGluIHRoZSBt ZW1vcnkgbG9jYXRpb24uDQo+ID4gKyAqIEBwYXJhbSBtZW1vcmRlcg0KPiA+ICsgKiAgVHdvIGRp ZmZlcmVudCBtZW1vcnkgb3JkZXJzIHRoYXQgY2FuIGJlIHNwZWNpZmllZDoNCj4gPiArICogIF9f QVRPTUlDX0FDUVVJUkUgYW5kIF9fQVRPTUlDX1JFTEFYRUQuIFRoZXNlIG1hcCB0bw0KPiA+ICsg KiAgQysrMTEgbWVtb3J5IG9yZGVycyB3aXRoIHRoZSBzYW1lIG5hbWVzLCBzZWUgdGhlIEMrKzEx IHN0YW5kYXJkIG9yDQo+ID4gKyAqICB0aGUgR0NDIHdpa2kgb24gYXRvbWljIHN5bmNocm9uaXph dGlvbiBmb3IgZGV0YWlsZWQgZGVmaW5pdGlvbi4NCj4gPiArICovDQo+ID4gK19fcnRlX2V4cGVy aW1lbnRhbA0KPiA+ICtzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQo+ID4gK3J0ZV93 YWl0X3VudGlsX2VxdWFsXzE2KHZvbGF0aWxlIHVpbnQxNl90ICphZGRyLCB1aW50MTZfdCBleHBl Y3RlZCwNCj4gPiAraW50IG1lbW9yZGVyKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAd2Fy bmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2UsIG9yIGJl IHJlbW92ZWQsIHdpdGhvdXQgcHJpb3Igbm90aWNlDQo+ID4gKyAqDQo+ID4gKyAqIFdhaXQgZm9y ICphZGRyIHRvIGJlIHVwZGF0ZWQgd2l0aCBhIDMyLWJpdCBleHBlY3RlZCB2YWx1ZSwgd2l0aCBh IHJlbGF4ZWQNCj4gPiArICogbWVtb3J5IG9yZGVyaW5nIG1vZGVsIG1lYW5pbmcgdGhlIGxvYWRz IGFyb3VuZCB0aGlzIEFQSSBjYW4gYmUgcmVvcmRlcmVkLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFy YW0gYWRkcg0KPiA+ICsgKiAgQSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgbG9jYXRpb24uDQo+ID4g KyAqIEBwYXJhbSBleHBlY3RlZA0KPiA+ICsgKiAgQSAzMi1iaXQgZXhwZWN0ZWQgdmFsdWUgdG8g YmUgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbi4NCj4gPiArICogQHBhcmFtIG1lbW9yZGVyDQo+ID4g KyAqICBUd28gZGlmZmVyZW50IG1lbW9yeSBvcmRlcnMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkOg0K PiA+ICsgKiAgX19BVE9NSUNfQUNRVUlSRSBhbmQgX19BVE9NSUNfUkVMQVhFRC4gVGhlc2UgbWFw IHRvDQo+ID4gKyAqICBDKysxMSBtZW1vcnkgb3JkZXJzIHdpdGggdGhlIHNhbWUgbmFtZXMsIHNl ZSB0aGUgQysrMTEgc3RhbmRhcmQgb3INCj4gPiArICogIHRoZSBHQ0Mgd2lraSBvbiBhdG9taWMg c3luY2hyb25pemF0aW9uIGZvciBkZXRhaWxlZCBkZWZpbml0aW9uLg0KPiA+ICsgKi8NCj4gPiAr X19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQN Cj4gPiArcnRlX3dhaXRfdW50aWxfZXF1YWxfMzIodm9sYXRpbGUgdWludDMyX3QgKmFkZHIsIHVp bnQzMl90IGV4cGVjdGVkLA0KPiA+ICtpbnQgbWVtb3JkZXIpOw0KPiA+ICsNCj4gPiArLyoqDQo+ ID4gKyAqIEB3YXJuaW5nDQo+ID4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNo YW5nZSwgb3IgYmUgcmVtb3ZlZCwgd2l0aG91dCBwcmlvciBub3RpY2UNCj4gPiArICoNCj4gPiAr ICogV2FpdCBmb3IgKmFkZHIgdG8gYmUgdXBkYXRlZCB3aXRoIGEgNjQtYml0IGV4cGVjdGVkIHZh bHVlLCB3aXRoIGEgcmVsYXhlZA0KPiA+ICsgKiBtZW1vcnkgb3JkZXJpbmcgbW9kZWwgbWVhbmlu ZyB0aGUgbG9hZHMgYXJvdW5kIHRoaXMgQVBJIGNhbiBiZSByZW9yZGVyZWQuDQo+ID4gKyAqDQo+ ID4gKyAqIEBwYXJhbSBhZGRyDQo+ID4gKyAqICBBIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBsb2Nh dGlvbi4NCj4gPiArICogQHBhcmFtIGV4cGVjdGVkDQo+ID4gKyAqICBBIDY0LWJpdCBleHBlY3Rl ZCB2YWx1ZSB0byBiZSBpbiB0aGUgbWVtb3J5IGxvY2F0aW9uLg0KPiA+ICsgKiBAcGFyYW0gbWVt b3JkZXINCj4gPiArICogIFR3byBkaWZmZXJlbnQgbWVtb3J5IG9yZGVycyB0aGF0IGNhbiBiZSBz cGVjaWZpZWQ6DQo+ID4gKyAqICBfX0FUT01JQ19BQ1FVSVJFIGFuZCBfX0FUT01JQ19SRUxBWEVE LiBUaGVzZSBtYXAgdG8NCj4gPiArICogIEMrKzExIG1lbW9yeSBvcmRlcnMgd2l0aCB0aGUgc2Ft ZSBuYW1lcywgc2VlIHRoZSBDKysxMSBzdGFuZGFyZCBvcg0KPiA+ICsgKiAgdGhlIEdDQyB3aWtp IG9uIGF0b21pYyBzeW5jaHJvbml6YXRpb24gZm9yIGRldGFpbGVkIGRlZmluaXRpb24uDQo+ID4g KyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArc3RhdGljIF9fcnRlX2Fsd2F5c19p bmxpbmUgdm9pZA0KPiA+ICtydGVfd2FpdF91bnRpbF9lcXVhbF82NCh2b2xhdGlsZSB1aW50NjRf dCAqYWRkciwgdWludDY0X3QgZXhwZWN0ZWQsDQo+ID4gK2ludCBtZW1vcmRlcik7DQo+ID4gKw0K PiANCj4gSGVyZSwgY2hhbmdlIHRoaXMgY2hlY2sgdG86DQo+IA0KPiAjaWZuZGVmIFJURV9BUkNI X0hBU19XRkUNCj4gDQo+IA0KPiA+ICsjaWZuZGVmIFJURV9BUk1fVVNFX1dGRQ0KDQpNaWdodCBi ZSBzb21ldGhpbmcgYXJjaCBuZXV0cmFsIGluIG5hbWUgaGVyZT8NClJURV9XQUlUX1VOVElMX0VR VUFMX0FSQ0hfREVGSU5FRCBvciBzbz8NCg0KPiA+ICsjZGVmaW5lIF9fV0FJVF9VTlRJTF9FUVVB TCh0eXBlLCBzaXplLCBhZGRyLCBleHBlY3RlZCwgbWVtb3JkZXIpIFwNCj4gPiArX19ydGVfZXhw ZXJpbWVudGFsIFwNCj4gPiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gK3J0ZV93YWl0X3VudGlsX2Vx dWFsXyMjc2l6ZSh2b2xhdGlsZSB0eXBlICogYWRkciwgdHlwZSBleHBlY3RlZCxcDQo+ID4gK2lu dCBtZW1vcmRlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCj4gPiAreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgaWYgKF9fYXRvbWljX2xvYWRfbihhZGRy LCBtZW1vcmRlcikgIT0gZXhwZWN0ZWQpIHsgICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgIGRv IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9wYXVzZSgpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICAgICAgICAgfSB3aGlsZSAoX19hdG9t aWNfbG9hZF9uKGFkZHIsIG1lbW9yZGVyKSAhPSBleHBlY3RlZCk7ICBcDQo+ID4gKyAgICAgICB9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KPiA+ICt9DQo+ID4gK19fV0FJVF9VTlRJTF9FUVVBTCh1aW50MTZfdCwgMTYsIGFk ZHIsIGV4cGVjdGVkLCBtZW1vcmRlcikNCj4gPiArX19XQUlUX1VOVElMX0VRVUFMKHVpbnQzMl90 LCAzMiwgYWRkciwgZXhwZWN0ZWQsIG1lbW9yZGVyKQ0KPiA+ICtfX1dBSVRfVU5USUxfRVFVQUwo dWludDY0X3QsIDY0LCBhZGRyLCBleHBlY3RlZCwgbWVtb3JkZXIpDQo+ID4gKw0KPiA+ICsjdW5k ZWYgX19XQUlUX1VOVElMX0VRVUFMDQo+ID4gKw0KPiA+ICsjZW5kaWYgLyogUlRFX0FSTV9VU0Vf V0ZFICovDQo+ID4gKw0KPiA+ICAjZW5kaWYgLyogX1JURV9QQVVTRV9IXyAqLw0KPiA+IC0tDQo+ ID4gMi43LjQNCj4gPg0KPiANCj4gVGhhbmtzLg0KPiANCj4gLS0NCj4gRGF2aWQgTWFyY2hhbmQN Cg0K