From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id B873D1BEE5 for ; Wed, 27 Jun 2018 11:09:27 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Jun 2018 02:09:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,278,1526367600"; d="scan'208";a="52262430" Received: from kmsmsx155.gar.corp.intel.com ([172.21.73.106]) by orsmga007.jf.intel.com with ESMTP; 27 Jun 2018 02:09:25 -0700 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.131]) by KMSMSX155.gar.corp.intel.com ([169.254.15.164]) with mapi id 14.03.0319.002; Wed, 27 Jun 2018 17:09:24 +0800 From: "Zhao1, Wei" To: "Zhang, Qi Z" , "dev@dpdk.org" CC: "Lu, Wenzhuo" Thread-Topic: [PATCH v4] net/fm10k: add support for check descriptor status APIs Thread-Index: AQHUCgTPfIErxi52wkult08TNE5UyaRzx3HwgAADGxCAAA4tgA== Date: Wed, 27 Jun 2018 09:09:23 +0000 Message-ID: References: <1529653997-59726-1-git-send-email-wei.zhao1@intel.com> <1529655607-38664-1-git-send-email-wei.zhao1@intel.com> <039ED4275CED7440929022BC67E706115323F1E1@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <039ED4275CED7440929022BC67E706115323F1E1@SHSMSX103.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [172.30.20.205] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4] net/fm10k: add support for check descriptor status APIs 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, 27 Jun 2018 09:09:28 -0000 DQpIaaOsIHFpDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFpoYW5nLCBR aSBaDQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAyNywgMjAxOCA0OjE5IFBNDQo+IFRvOiBaaGFv MSwgV2VpIDx3ZWkuemhhbzFAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBMdSwgV2Vu emh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjRdIG5l dC9mbTEwazogYWRkIHN1cHBvcnQgZm9yIGNoZWNrIGRlc2NyaXB0b3Igc3RhdHVzDQo+IEFQSXMN Cj4gDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFpo YW5nLCBRaSBaDQo+ID4gU2VudDogV2VkbmVzZGF5LCBKdW5lIDI3LCAyMDE4IDQ6MTEgUE0NCj4g PiBUbzogWmhhbzEsIFdlaSA8d2VpLnpoYW8xQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ IENjOiBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6 IFtQQVRDSCB2NF0gbmV0L2ZtMTBrOiBhZGQgc3VwcG9ydCBmb3IgY2hlY2sgZGVzY3JpcHRvcg0K PiA+IHN0YXR1cyBBUElzDQo+ID4NCj4gPiBIaSBXZWk6DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBaaGFvMSwgV2VpDQo+ID4gPiBTZW50OiBGcmlk YXksIEp1bmUgMjIsIDIwMTggNDoyMCBQTQ0KPiA+ID4gVG86IGRldkBkcGRrLm9yZw0KPiA+ID4g Q2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IFpoYW5nLCBRaSBaDQo+ID4g PiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBaaGFvMSwgV2VpIDx3ZWkuemhhbzFAaW50ZWwuY29t Pg0KPiA+ID4gU3ViamVjdDogW1BBVENIIHY0XSBuZXQvZm0xMGs6IGFkZCBzdXBwb3J0IGZvciBj aGVjayBkZXNjcmlwdG9yDQo+ID4gPiBzdGF0dXMgQVBJcw0KPiA+ID4NCj4gPiA+IEZtMTBrIG5p YyBuZWVkIHRvIHN1cHBvcnQgY2hlY2sgZGVzY3JpcHRvciBzdGF0dXMgQVBJcywgdGhleSBhcmUN Cj4gPiA+IHJ0ZV9ldGhfcnhfZGVzY3JpcHRvcl9zdGF0dXMgYW5kIHJ0ZV9ldGhfdHhfZGVzY3Jp cHRvcl9zdGF0dXMuDQo+ID4gPiBTbywgdGhpcyBwYXRjaCBhZGQgb3BzIHdpdGggZnVuY3Rpb24g cG9pbnRlciB0aGF0IGVuYWJsZSBmZWF0dXJlLg0KPiA+ID4NCj4gDQo+IEhvdyBhYm91dCBqdXN0 IHNpbXBsaWZpZWQgdG8NCj4gInJ0ZV9ldGhfcnhfZGVzY3JpdHByX3N0YXR1cyBhbmQgcnRlX2V0 aF90eF9kZXNjcmlwdG9yX3N0YXR1cyBpcyBzdXBwb3J0ZWQNCj4gYnkgZm0xMEs/Ig0KPiANCg0K T2ssIEkgaGF2ZSBhbHNvIHVwZGF0ZSB0aGlzIGdpdCBsb2cgaW4gaWdiIHBhdGNoDQpodHRwczov L3BhdGNoZXMuZHBkay5vcmcvcGF0Y2gvNDE2NDUvDQoNCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFdl aSBaaGFvIDx3ZWkuemhhbzFAaW50ZWwuY29tPg0KPiA+ID4NCj4gPiA+IC0tLQ0KPiA+ID4NCj4g PiA+IHYyOg0KPiA+ID4gLWZpeCBERCBjaGVjayBlcnJvciBpbiB0eCBkZXNjcmlwdG9yDQo+ID4g Pg0KPiA+ID4gdjM6DQo+ID4gPiAtZml4IEREIGNoZWNrIGluZGV4IGVycm9yDQo+ID4gPg0KPiA+ ID4gdjQ6DQo+ID4gPiAtZml4IGVycm9yIGluIFJTIGJpdCBsaXN0IHBvbGwNCj4gPiA+DQo+ID4g PiAtLS0NCj4gPiA+IC0tLQ0KPiA+ID4gIGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMThf MDgucnN0IHwgIDYgKysrDQo+ID4gPiAgZHJpdmVycy9uZXQvZm0xMGsvZm0xMGsuaCAgICAgICAg ICAgICAgfCAgNyArKysNCj4gPiA+ICBkcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhkZXYuYyAg ICAgICB8ICAyICsNCj4gPiA+ICBkcml2ZXJzL25ldC9mbTEway9mbTEwa19yeHR4LmMgICAgICAg ICB8IDc4DQo+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiAg NCBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdp dCBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMThfMDgucnN0DQo+ID4gPiBiL2RvYy9n dWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMThfMDgucnN0DQo+ID4gPiBpbmRleCA1YmMyM2M1Li41 YmFhMDllIDEwMDY0NA0KPiA+ID4gLS0tIGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8x OF8wOC5yc3QNCj4gPiA+ICsrKyBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMThfMDgu cnN0DQo+ID4gPiBAQCAtNDEsNiArNDEsMTIgQEAgTmV3IEZlYXR1cmVzDQo+ID4gPiAgICAgICBB bHNvLCBtYWtlIHN1cmUgdG8gc3RhcnQgdGhlIGFjdHVhbCB0ZXh0IGF0IHRoZSBtYXJnaW4uDQo+ ID4gPg0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCj4gPiA+DQo+ID4gPiArKiAqKkFkZGVkIGZtMTBrIGV0aGVybmV0IGRyaXZlciB0 byBzdXBwb3J0IGNoZWNrIGRlc2NyaXB0b3Igc3RhdHVzDQo+ID4gPiArQVBJcy4qKg0KPiA+ID4g Kw0KPiA+ID4gKyAgICBGbTEwayBuaWMgbmVlZCB0byBzdXBwb3J0IGNoZWNrIGRlc2NyaXB0b3Ig c3RhdHVzIEFQSXMsIHRoZXkgYXJlDQo+ID4gPiArICAgIHJ0ZV9ldGhfcnhfZGVzY3JpcHRvcl9z dGF0dXMgYW5kIHJ0ZV9ldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXMuDQo+ID4gPiArICAgIGFkZCBv cHMgcG9pbnRlciB3aXRoIG5ldyBmdW5jdGlvbiB3aGljaCBlbmFibGUgZmVhdHVyZS4NCj4gPiA+ ICsNCj4gPiA+DQo+ID4gPiAgQVBJIENoYW5nZXMNCj4gPiA+ICAtLS0tLS0tLS0tLQ0KPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrLmggYi9kcml2ZXJzL25ldC9mbTEw ay9mbTEway5oDQo+ID4gPiBpbmRleA0KPiA+ID4gZWYzMDc4MC4uMWJjMmMxOCAxMDA2NDQNCj4g PiA+IC0tLSBhL2RyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrLmgNCj4gPiA+ICsrKyBiL2RyaXZlcnMv bmV0L2ZtMTBrL2ZtMTBrLmgNCj4gPiA+IEBAIC0zMjksNiArMzI5LDEzIEBAIHVpbnQxNl90IGZt MTBrX3JlY3Zfc2NhdHRlcmVkX3BrdHModm9pZA0KPiA+ID4gKnJ4X3F1ZXVlLCBpbnQgIGZtMTBr X2Rldl9yeF9kZXNjcmlwdG9yX2RvbmUodm9pZCAqcnhfcXVldWUsDQo+ID4gPiB1aW50MTZfdCBv ZmZzZXQpOw0KPiA+ID4NCj4gPiA+ICtpbnQNCj4gPiA+ICtmbTEwa19kZXZfcnhfZGVzY3JpcHRv cl9zdGF0dXModm9pZCAqcnhfcXVldWUsIHVpbnQxNl90IG9mZnNldCk7DQo+ID4gPiArDQo+ID4g PiAraW50DQo+ID4gPiArZm0xMGtfZGV2X3R4X2Rlc2NyaXB0b3Jfc3RhdHVzKHZvaWQgKnJ4X3F1 ZXVlLCB1aW50MTZfdCBvZmZzZXQpOw0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+ID4gIHVpbnQxNl90 IGZtMTBrX3htaXRfcGt0cyh2b2lkICp0eF9xdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoqdHhfcGt0 cywNCj4gPiA+ICAJdWludDE2X3QgbmJfcGt0cyk7DQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX2V0aGRldi5jDQo+ID4gPiBiL2RyaXZlcnMvbmV0L2Zt MTBrL2ZtMTBrX2V0aGRldi5jDQo+ID4gPiBpbmRleCAzZmYxYjBlLi5lYTJmMmJmIDEwMDY0NA0K PiA+ID4gLS0tIGEvZHJpdmVycy9uZXQvZm0xMGsvZm0xMGtfZXRoZGV2LmMNCj4gPiA+ICsrKyBi L2RyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX2V0aGRldi5jDQo+ID4gPiBAQCAtMjgzNyw2ICsyODM3 LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBldGhfZGV2X29wcw0KPiA+ID4gZm0xMGtfZXRoX2Rl dl9vcHMgPSB7DQo+ID4gPiAgCS50eF9xdWV1ZV9zZXR1cAkJPSBmbTEwa190eF9xdWV1ZV9zZXR1 cCwNCj4gPiA+ICAJLnR4X3F1ZXVlX3JlbGVhc2UJPSBmbTEwa190eF9xdWV1ZV9yZWxlYXNlLA0K PiA+ID4gIAkucnhfZGVzY3JpcHRvcl9kb25lCT0gZm0xMGtfZGV2X3J4X2Rlc2NyaXB0b3JfZG9u ZSwNCj4gPiA+ICsJLnJ4X2Rlc2NyaXB0b3Jfc3RhdHVzID0gZm0xMGtfZGV2X3J4X2Rlc2NyaXB0 b3Jfc3RhdHVzLA0KPiA+ID4gKwkudHhfZGVzY3JpcHRvcl9zdGF0dXMgPSBmbTEwa19kZXZfdHhf ZGVzY3JpcHRvcl9zdGF0dXMsDQo+ID4gPiAgCS5yeF9xdWV1ZV9pbnRyX2VuYWJsZQk9IGZtMTBr X2Rldl9yeF9xdWV1ZV9pbnRyX2VuYWJsZSwNCj4gPiA+ICAJLnJ4X3F1ZXVlX2ludHJfZGlzYWJs ZQk9IGZtMTBrX2Rldl9yeF9xdWV1ZV9pbnRyX2Rpc2FibGUsDQo+ID4gPiAgCS5yZXRhX3VwZGF0 ZQkJPSBmbTEwa19yZXRhX3VwZGF0ZSwNCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9m bTEway9mbTEwa19yeHR4LmMNCj4gPiA+IGIvZHJpdmVycy9uZXQvZm0xMGsvZm0xMGtfcnh0eC5j IGluZGV4IDkzMjA3NDguLmRhYTJiMzIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL25ldC9m bTEway9mbTEwa19yeHR4LmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX3J4 dHguYw0KPiA+ID4gQEAgLTM4OSw2ICszODksODQgQEAgZm0xMGtfZGV2X3J4X2Rlc2NyaXB0b3Jf ZG9uZSh2b2lkDQo+ICpyeF9xdWV1ZSwNCj4gPiA+IHVpbnQxNl90IG9mZnNldCkNCj4gPiA+ICAJ cmV0dXJuIHJldDsNCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4gK2ludA0KPiA+ID4gK2ZtMTBrX2Rl dl9yeF9kZXNjcmlwdG9yX3N0YXR1cyh2b2lkICpyeF9xdWV1ZSwgdWludDE2X3Qgb2Zmc2V0KSB7 DQo+ID4gPiArCXZvbGF0aWxlIHVuaW9uIGZtMTBrX3J4X2Rlc2MgKnJ4ZHA7DQo+ID4gPiArCXN0 cnVjdCBmbTEwa19yeF9xdWV1ZSAqcnhxID0gcnhfcXVldWU7DQo+ID4gPiArCXVpbnQxNl90IG5i X2hvbGQsIHRyaWdnZXJfbGFzdDsNCj4gPiA+ICsJdWludDE2X3QgZGVzYzsNCj4gPiA+ICsJaW50 IHJldDsNCj4gPiA+ICsNCj4gPiA+ICsJaWYgKHVubGlrZWx5KG9mZnNldCA+PSByeHEtPm5iX2Rl c2MpKSB7DQo+ID4gPiArCQlQTURfRFJWX0xPRyhFUlIsICJJbnZhbGlkIFJYIGRlc2NyaXB0b3Ig b2Zmc2V0ICV1IiwNCj4gb2Zmc2V0KTsNCj4gPiA+ICsJCXJldHVybiAwOw0KPiA+ID4gKwl9DQo+ ID4gPiArDQo+ID4gPiArCWlmIChyeHEtPm5leHRfdHJpZ2dlciA8IHJ4cS0+YWxsb2NfdGhyZXNo KQ0KPiA+ID4gKwkJdHJpZ2dlcl9sYXN0ID0gcnhxLT5uZXh0X3RyaWdnZXIgKw0KPiA+ID4gKwkJ CQkJcnhxLT5uYl9kZXNjIC0gcnhxLT5hbGxvY190aHJlc2g7DQo+ID4gPiArCWVsc2UNCj4gPiA+ ICsJCXRyaWdnZXJfbGFzdCA9IHJ4cS0+bmV4dF90cmlnZ2VyIC0gcnhxLT5hbGxvY190aHJlc2g7 DQo+ID4gPiArDQo+ID4gPiArCWlmIChyeHEtPm5leHRfZGQgPCB0cmlnZ2VyX2xhc3QpDQo+ID4g PiArCQluYl9ob2xkID0gcnhxLT5uZXh0X2RkICsgcnhxLT5uYl9kZXNjIC0gdHJpZ2dlcl9sYXN0 Ow0KPiA+ID4gKwllbHNlDQo+ID4gPiArCQluYl9ob2xkID0gcnhxLT5uZXh0X2RkIC0gdHJpZ2dl cl9sYXN0Ow0KPiA+ID4gKw0KPiA+ID4gKwlpZiAob2Zmc2V0ID49IHJ4cS0+bmJfZGVzYyAtIG5i X2hvbGQpDQo+ID4gPiArCQlyZXR1cm4gUlRFX0VUSF9SWF9ERVNDX1VOQVZBSUw7DQo+ID4gPiAr DQo+ID4gPiArCWRlc2MgPSByeHEtPm5leHRfZGQgKyBvZmZzZXQ7DQo+ID4gPiArCWlmIChkZXNj ID49IHJ4cS0+bmJfZGVzYykNCj4gPiA+ICsJCWRlc2MgLT0gcnhxLT5uYl9kZXNjOw0KPiA+ID4g Kw0KPiA+ID4gKwlyeGRwID0gJnJ4cS0+aHdfcmluZ1tkZXNjXTsNCj4gPiA+ICsNCj4gPiA+ICsJ cmV0ID0gISEocnhkcC0+dy5zdGF0dXMgJg0KPiA+ID4gKwkJCXJ0ZV9jcHVfdG9fbGVfMTYoRk0x MEtfUlhEX1NUQVRVU19ERCkpOw0KPiA+ID4gKw0KPiA+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ID4g K30NCj4gPiA+ICsNCj4gPiA+ICtpbnQNCj4gPiA+ICtmbTEwa19kZXZfdHhfZGVzY3JpcHRvcl9z dGF0dXModm9pZCAqdHhfcXVldWUsIHVpbnQxNl90IG9mZnNldCkgew0KPiA+ID4gKwl2b2xhdGls ZSBzdHJ1Y3QgZm0xMGtfdHhfZGVzYyAqdHhkcDsNCj4gPiA+ICsJc3RydWN0IGZtMTBrX3R4X3F1 ZXVlICp0eHEgPSB0eF9xdWV1ZTsNCj4gPiA+ICsJdWludDE2X3QgZGVzYzsNCj4gPiA+ICsJdWlu dDE2X3QgY291bnQsIG5leHRfcnMgPSB0eHEtPm5iX2Rlc2M7DQo+ID4gPiArCXN0cnVjdCBmaWZv IHJzX3RyYWNrZXIgPSB0eHEtPnJzX3RyYWNrZXI7DQo+ID4gPiArCXN0cnVjdCBmaWZvICpyID0g JnJzX3RyYWNrZXI7DQo+ID4gPiArDQo+ID4gPiArCWlmICh1bmxpa2VseShvZmZzZXQgPj0gdHhx LT5uYl9kZXNjKSkNCj4gPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ID4gKw0KPiA+ID4gKwlk ZXNjID0gdHhxLT5uZXh0X2ZyZWUgKyBvZmZzZXQ7DQo+ID4gPiArCS8qIGdvIHRvIG5leHQgZGVz YyB0aGF0IGhhcyB0aGUgUlMgYml0ICovDQo+ID4gPiArCWRlc2MgPSAoZGVzYyAvIHR4cS0+cnNf dGhyZXNoICsgMSkgKg0KPiA+ID4gKwkJdHhxLT5yc190aHJlc2ggLSAxOw0KPiA+ID4gKw0KPiA+ ID4gKwlpZiAoZGVzYyA+PSB0eHEtPm5iX2Rlc2MpIHsNCj4gPiA+ICsJCWRlc2MgLT0gdHhxLT5u Yl9kZXNjOw0KPiA+ID4gKwkJaWYgKGRlc2MgPj0gdHhxLT5uYl9kZXNjKQ0KPiA+ID4gKwkJCWRl c2MgLT0gdHhxLT5uYl9kZXNjOw0KPiA+ID4gKwl9DQo+ID4gPiArDQo+ID4gPiArCXItPmhlYWQg PSByLT5saXN0Ow0KPiA+ID4gKwlmb3IgKGNvdW50ID0gMDsgci0+aGVhZCAhPSByLT5lbmRwOyBj b3VudCsrKSB7DQo+ID4NCj4gPiBJIGRpZG4ndCBzZWUgdGhlIG5lY2Vzc2FyeSB0byBoYXZlICJj b3VudCIgaGVyZS4NCj4gPg0KPiA+IE90aGVycyBJIGRpZG4ndCBzZWUgaXNzdWUsIGJ0dywgY291 bGQgeW91IHJlYmFzZSBvbiBkcGRrLW5leHQtbmV0LWludGVsPw0KPiA+DQo+ID4gVGhhbmtzDQo+ ID4gUWkNCj4gPg0KPiA+DQo+ID4gPiArCQlpZiAoKnItPmhlYWQgPj0gZGVzYyAmJiAqci0+aGVh ZCA8IG5leHRfcnMpDQo+ID4gPiArCQkJbmV4dF9ycyA9ICpyLT5oZWFkOw0KPiA+ID4gKwkJKyty LT5oZWFkOw0KPiA+ID4gKwl9DQo+ID4gPiArDQo+ID4gPiArCXR4ZHAgPSAmdHhxLT5od19yaW5n W25leHRfcnNdOw0KPiA+ID4gKwlpZiAodHhkcC0+ZmxhZ3MgJiBGTTEwS19UWERfRkxBR19ET05F KQ0KPiA+ID4gKwkJcmV0dXJuIFJURV9FVEhfVFhfREVTQ19ET05FOw0KPiA+ID4gKw0KPiA+ID4g KwlyZXR1cm4gUlRFX0VUSF9UWF9ERVNDX0ZVTEw7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4g IC8qDQo+ID4gPiAgICogRnJlZSBtdWx0aXBsZSBUWCBtYnVmIGF0IGEgdGltZSBpZiB0aGV5IGFy ZSBpbiB0aGUgc2FtZSBwb29sDQo+ID4gPiAgICoNCj4gPiA+IC0tDQo+ID4gPiAyLjcuNQ0KDQo=