From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 720DA1B8B7 for ; Mon, 17 Dec 2018 12:23:07 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Dec 2018 03:23:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,365,1539673200"; d="scan'208";a="304448688" Received: from irsmsx102.ger.corp.intel.com ([163.33.3.155]) by fmsmga005.fm.intel.com with ESMTP; 17 Dec 2018 03:23:05 -0800 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.26]) by IRSMSX102.ger.corp.intel.com ([169.254.2.29]) with mapi id 14.03.0415.000; Mon, 17 Dec 2018 11:23:04 +0000 From: "Dumitrescu, Cristian" To: Eelco Chaudron CC: "dev@dpdk.org" Thread-Topic: [PATCH v2 1/2] lib/librte_meter: add RFC4115 trTCM meter support Thread-Index: AQHUh9a/9mzTQ17wYk2JCJxy3lep3aWC5Log Date: Mon, 17 Dec 2018 11:23:03 +0000 Message-ID: <3EB4FA525960D640B5BDFFD6A3D891268E815CC9@IRSMSX108.ger.corp.intel.com> References: <154349092011.97477.3656507689358504128.stgit@dbuild> <154349094093.97477.334423559319666002.stgit@dbuild> In-Reply-To: <154349094093.97477.334423559319666002.stgit@dbuild> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2UzMDI0OTMtODQwMC00NmI1LWJjMTEtMjAzZWVlN2VkYWEwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiakF3bEgxc0NsXC9ya25lTDZoU3JkUjVpZ2dreWJSUmhpaVRDZURCa3ZseERybElqQmZ0NVJkOStod25RRzVZSGsifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 1/2] lib/librte_meter: add RFC4115 trTCM meter support 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: Mon, 17 Dec 2018 11:23:08 -0000 SGkgRWVsY28sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRWVsY28g Q2hhdWRyb24gW21haWx0bzplY2hhdWRyb0ByZWRoYXQuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwg Tm92ZW1iZXIgMjksIDIwMTggMTE6MjkgQU0NCj4gVG86IER1bWl0cmVzY3UsIENyaXN0aWFuIDxj cmlzdGlhbi5kdW1pdHJlc2N1QGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZw0KPiBTdWJq ZWN0OiBbUEFUQ0ggdjIgMS8yXSBsaWIvbGlicnRlX21ldGVyOiBhZGQgUkZDNDExNSB0clRDTSBt ZXRlciBzdXBwb3J0DQo+IA0KPiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgUkZDNDExNSB0 clRDTSBtZXRlcnMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBFZWxjbyBDaGF1ZHJvbiA8ZWNoYXVk cm9AcmVkaGF0LmNvbT4NCj4gLS0tDQo+ICBsaWIvbGlicnRlX21ldGVyL3J0ZV9tZXRlci5jICAg ICAgICAgICB8ICAgNDAgKysrKysNCj4gIGxpYi9saWJydGVfbWV0ZXIvcnRlX21ldGVyLmggICAg ICAgICAgIHwgIDIzNg0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiAgbGli L2xpYnJ0ZV9tZXRlci9ydGVfbWV0ZXJfdmVyc2lvbi5tYXAgfCAgICA5ICsNCj4gIDMgZmlsZXMg Y2hhbmdlZCwgMjY5IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt LWdpdCBhL2xpYi9saWJydGVfbWV0ZXIvcnRlX21ldGVyLmMgYi9saWIvbGlicnRlX21ldGVyL3J0 ZV9tZXRlci5jDQo+IGluZGV4IDQ3M2Y2OWFiYS4uODE3NjgwZGJiIDEwMDY0NA0KPiAtLS0gYS9s aWIvbGlicnRlX21ldGVyL3J0ZV9tZXRlci5jDQo+ICsrKyBiL2xpYi9saWJydGVfbWV0ZXIvcnRl X21ldGVyLmMNCj4gQEAgLTExMCwzICsxMTAsNDMgQEAgcnRlX21ldGVyX3RydGNtX2NvbmZpZyhz dHJ1Y3QgcnRlX21ldGVyX3RydGNtDQo+ICptLA0KPiANCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4g Kw0KPiAraW50IF9fcnRlX2V4cGVyaW1lbnRhbA0KPiArcnRlX21ldGVyX3RydGNtX3JmYzQxMTVf cHJvZmlsZV9jb25maWcoc3RydWN0IHJ0ZV9tZXRlcl90cnRjbV9wcm9maWxlDQo+ICpwLA0KPiAr CXN0cnVjdCBydGVfbWV0ZXJfdHJ0Y21fcGFyYW1zICpwYXJhbXMpDQo+ICt7DQo+ICsJdWludDY0 X3QgaHogPSBydGVfZ2V0X3RzY19oeigpOw0KPiArDQo+ICsJLyogQ2hlY2sgaW5wdXQgcGFyYW1l dGVycyAqLw0KPiArCWlmICgocCA9PSBOVUxMKSB8fA0KPiArCQkocGFyYW1zID09IE5VTEwpIHx8 DQo+ICsJCShwYXJhbXMtPmNpciAhPSAwICYmIHBhcmFtcy0+Y2JzID09IDApIHx8DQo+ICsJCShw YXJhbXMtPmVpciAhPSAwICYmIHBhcmFtcy0+ZWJzID09IDApKQ0KPiArCQlyZXR1cm4gLUVJTlZB TDsNCj4gKw0KPiArCS8qIEluaXRpYWxpemUgdHJUQ00gcnVuLXRpbWUgc3RydWN0dXJlICovDQo+ ICsJcC0+Y2JzID0gcGFyYW1zLT5jYnM7DQo+ICsJcC0+ZWJzID0gcGFyYW1zLT5lYnM7DQo+ICsJ cnRlX21ldGVyX2dldF90Yl9wYXJhbXMoaHosIHBhcmFtcy0+Y2lyLCAmcC0+Y2lyX3BlcmlvZCwN Cj4gKwkJJnAtPmNpcl9ieXRlc19wZXJfcGVyaW9kKTsNCj4gKwlydGVfbWV0ZXJfZ2V0X3RiX3Bh cmFtcyhoeiwgcGFyYW1zLT5laXIsICZwLT5laXJfcGVyaW9kLA0KPiArCQkmcC0+ZWlyX2J5dGVz X3Blcl9wZXJpb2QpOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK2ludCBfX3J0 ZV9leHBlcmltZW50YWwNCj4gK3J0ZV9tZXRlcl90cnRjbV9yZmM0MTE1X2NvbmZpZyhzdHJ1Y3Qg cnRlX21ldGVyX3RydGNtICptLA0KPiArCXN0cnVjdCBydGVfbWV0ZXJfdHJ0Y21fcHJvZmlsZSAq cCkNCj4gK3sNCj4gKwkvKiBDaGVjayBpbnB1dCBwYXJhbWV0ZXJzICovDQo+ICsJaWYgKChtID09 IE5VTEwpIHx8IChwID09IE5VTEwpKQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCS8q IEluaXRpYWxpemUgdHJUQ00gcnVuLXRpbWUgc3RydWN0dXJlICovDQo+ICsJbS0+dGltZV90YyA9 IG0tPnRpbWVfdGUgPSBydGVfZ2V0X3RzY19jeWNsZXMoKTsNCj4gKwltLT50YyA9IHAtPmNiczsN Cj4gKwltLT50ZSA9IHAtPmViczsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiBkaWZmIC0t Z2l0IGEvbGliL2xpYnJ0ZV9tZXRlci9ydGVfbWV0ZXIuaCBiL2xpYi9saWJydGVfbWV0ZXIvcnRl X21ldGVyLmgNCj4gaW5kZXggNThhMDUxNTgzLi5jM2Y4OGQwY2IgMTAwNjQ0DQo+IC0tLSBhL2xp Yi9saWJydGVfbWV0ZXIvcnRlX21ldGVyLmgNCj4gKysrIGIvbGliL2xpYnJ0ZV9tZXRlci9ydGVf bWV0ZXIuaA0KPiBAQCAtMTYsNiArMTYsNyBAQCBleHRlcm4gIkMiIHsNCj4gICAqIFRyYWZmaWMg bWV0ZXJpbmcgYWxnb3JpdGhtczoNCj4gICAqICAgIDEuIFNpbmdsZSBSYXRlIFRocmVlIENvbG9y IE1hcmtlciAoc3JUQ00pOiBkZWZpbmVkIGJ5IElFVEYgUkZDIDI2OTcNCj4gICAqICAgIDIuIFR3 byBSYXRlIFRocmVlIENvbG9yIE1hcmtlciAodHJUQ00pOiBkZWZpbmVkIGJ5IElFVEYgUkZDIDI2 OTgNCj4gKyAqICAgIDMuIFR3byBSYXRlIFRocmVlIENvbG9yIE1hcmtlciAodHJUQ00pOiBkZWZp bmVkIGJ5IElFVEYgUkZDIDQxMTUNCj4gICAqDQo+ICAgKioqLw0KPiANCj4gQEAgLTQzLDE0ICs0 NCwyNSBAQCBzdHJ1Y3QgcnRlX21ldGVyX3NydGNtX3BhcmFtcyB7DQo+ICAJdWludDY0X3QgZWJz OyAvKio8IEV4Y2VzcyBCdXJzdCBTaXplIChFQlMpLiAgTWVhc3VyZWQgaW4gYnl0ZXMuICovDQo+ ICB9Ow0KPiANCj4gLS8qKiB0clRDTSBwYXJhbWV0ZXJzIHBlciBtZXRlcmVkIHRyYWZmaWMgZmxv dy4gVGhlIENJUiwgUElSLCBDQlMgYW5kIFBCUw0KPiBwYXJhbWV0ZXJzDQo+IC1vbmx5IGNvdW50 IGJ5dGVzIG9mIElQIHBhY2tldHMgYW5kIGRvIG5vdCBpbmNsdWRlIGxpbmsgc3BlY2lmaWMgaGVh ZGVycy4gUElSDQo+IGhhcyB0bw0KPiAtYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIENJUi4g Qm90aCBDQlMgb3IgRUJTIGhhdmUgdG8gYmUgZ3JlYXRlciB0aGFuDQo+IHplcm8uICovDQo+ICsv KiogdHJUQ00gcGFyYW1ldGVycyBwZXIgbWV0ZXJlZCB0cmFmZmljIGZsb3cuIFRoZSBDSVIsIFBJ Ui9FSVQsIENCUyBhbmQNCj4gUEJTL0VCUw0KPiArcGFyYW1ldGVycyBvbmx5IGNvdW50IGJ5dGVz IG9mIElQIHBhY2tldHMgYW5kIGRvIG5vdCBpbmNsdWRlIGxpbmsgc3BlY2lmaWMNCj4gK2hlYWRl cnMuDQo+ICsNCj4gKy0gRm9yIFJGQzI2OTggb3BlcmF0aW9ucyBQSVIgaGFzIHRvIGJlIGdyZWF0 ZXIgdGhhbiBvciBlcXVhbCB0byBDSVIuIEJvdGgNCj4gQ0JTDQo+ICsgIG9yIEVCUyBoYXZlIHRv IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLg0KPiArLSBGb3IgUkZDNDExNSBvcGVyYXRpb25zIENCUyBh bmQgRUJTIG5lZWQgdG8gYmUgZ3JlYXRlciB0aGFuIHplcm8gaWYgQ0lSDQo+IGFuZA0KPiArICBF SVIgYXJlIG5vbmUtemVybyByZXNwZWN0aXZlbHkuKi8NCj4gIHN0cnVjdCBydGVfbWV0ZXJfdHJ0 Y21fcGFyYW1zIHsNCj4gIAl1aW50NjRfdCBjaXI7IC8qKjwgQ29tbWl0dGVkIEluZm9ybWF0aW9u IFJhdGUgKENJUikuIE1lYXN1cmVkIGluDQo+IGJ5dGVzIHBlciBzZWNvbmQuICovDQo+IC0JdWlu dDY0X3QgcGlyOyAvKio8IFBlYWsgSW5mb3JtYXRpb24gUmF0ZSAoUElSKS4gTWVhc3VyZWQgaW4g Ynl0ZXMNCj4gcGVyIHNlY29uZC4gKi8NCj4gLQl1aW50NjRfdCBjYnM7IC8qKjwgQ29tbWl0dGVk IEJ1cnN0IFNpemUgKENCUykuIE1lYXN1cmVkIGluIGJ5ZXMuICovDQo+IC0JdWludDY0X3QgcGJz OyAvKio8IFBlYWsgQnVyc3QgU2l6ZSAoUEJTKS4gTWVhc3VyZWQgaW4gYnl0ZXMuICovDQo+ICsJ dW5pb24gew0KPiArCQl1aW50NjRfdCBwaXI7IC8qKjwgUGVhayBJbmZvcm1hdGlvbiBSYXRlIChQ SVIpLiBNZWFzdXJlZCBpbg0KPiBieXRlcyBwZXIgc2Vjb25kLiAqLw0KPiArCQl1aW50NjRfdCBl aXI7IC8qKjwgRXhjZXNzIEluZm9ybWF0aW9uIFJhdGUgKEVJUikuIE1lYXN1cmVkIGluDQo+IGJ5 dGVzIHBlciBzZWNvbmQuICovDQo+ICsJfTsNCj4gKwl1aW50NjRfdCBjYnM7IC8qKjwgQ29tbWl0 dGVkIEJ1cnN0IFNpemUgKENCUykuIE1lYXN1cmVkIGluIGJ5dGVzLg0KPiAqLw0KPiArCXVuaW9u IHsNCj4gKwkJdWludDY0X3QgcGJzOyAvKio8IFBlYWsgQnVyc3QgU2l6ZSAoUEJTKS4gTWVhc3Vy ZWQgaW4gYnl0ZXMuDQo+ICovDQo+ICsJCXVpbnQ2NF90IGViczsgLyoqPCBFeGNlc3MgQnVyc3Qg U2l6ZSAoRUJTKS4gTWVhc3VyZWQgaW4NCj4gYnl0ZXMuICovDQo+ICsJfTsNCj4gIH07DQo+IA0K DQpJbiBvcmRlciB0byBwcmV2ZW50IGNvbXBsaWNhdGluZyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFu ZC9vciBjcmVhdGluZyBmYWxzZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBhbGdzLCBwbGVhc2UgY3Jl YXRlIGEgc2VwYXJhdGUgZGF0YSBzdHJ1Y3R1cmUgc3RydWN0IHJ0ZV9tZXRlcl90cnRjbV9yZmM0 MTE1X3BhcmFtcy4NCg0KVGhpcyBpcyBhbHNvIGlubGluZSB3aXRoIHRoZSBuYW1pbmcgY29udmVu dGlvbnMgZnJvbSBsaWJydGVfZXRoZGV2L3J0ZV9tdHIuaA0KDQo+ICAvKioNCj4gQEAgLTk4LDYg KzExMCwyMiBAQCBydGVfbWV0ZXJfc3J0Y21fcHJvZmlsZV9jb25maWcoc3RydWN0DQo+IHJ0ZV9t ZXRlcl9zcnRjbV9wcm9maWxlICpwLA0KPiAgaW50DQo+ICBydGVfbWV0ZXJfdHJ0Y21fcHJvZmls ZV9jb25maWcoc3RydWN0IHJ0ZV9tZXRlcl90cnRjbV9wcm9maWxlICpwLA0KPiAgCXN0cnVjdCBy dGVfbWV0ZXJfdHJ0Y21fcGFyYW1zICpwYXJhbXMpOw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0K PiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Ig bm90aWNlDQo+ICsgKg0KPiArICogdHJUQ00gUkZDIDQxMTUgcHJvZmlsZSBjb25maWd1cmF0aW9u DQo+ICsgKg0KPiArICogQHBhcmFtIHANCj4gKyAqICAgIFBvaW50ZXIgdG8gcHJlLWFsbG9jYXRl ZCB0clRDTSBwcm9maWxlIGRhdGEgc3RydWN0dXJlDQo+ICsgKiBAcGFyYW0gcGFyYW1zDQo+ICsg KiAgICB0clRDTSBwcm9maWxlIHBhcmFtZXRlcnMNCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgIDAg dXBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG90aGVyd2lzZQ0KPiArICovDQo+ICtpbnQgX19ydGVf ZXhwZXJpbWVudGFsDQo+ICtydGVfbWV0ZXJfdHJ0Y21fcmZjNDExNV9wcm9maWxlX2NvbmZpZyhz dHJ1Y3QgcnRlX21ldGVyX3RydGNtX3Byb2ZpbGUNCj4gKnAsDQo+ICsJc3RydWN0IHJ0ZV9tZXRl cl90cnRjbV9wYXJhbXMgKnBhcmFtcyk7DQo+IA0KPiAgLyoqDQo+ICAgKiBzclRDTSBjb25maWd1 cmF0aW9uIHBlciBtZXRlcmVkIHRyYWZmaWMgZmxvdw0KPiBAQCAtMTI3LDYgKzE1NSwyMyBAQCBp bnQNCj4gIHJ0ZV9tZXRlcl90cnRjbV9jb25maWcoc3RydWN0IHJ0ZV9tZXRlcl90cnRjbSAqbSwN Cj4gIAlzdHJ1Y3QgcnRlX21ldGVyX3RydGNtX3Byb2ZpbGUgKnApOw0KPiANCj4gKy8qKg0KPiAr ICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3 aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIHRyVENNIFJGQyA0MTE1IGNvbmZpZ3Vy YXRpb24gcGVyIG1ldGVyZWQgdHJhZmZpYyBmbG93DQo+ICsgKg0KPiArICogQHBhcmFtIG0NCj4g KyAqICAgIFBvaW50ZXIgdG8gcHJlLWFsbG9jYXRlZCB0clRDTSBkYXRhIHN0cnVjdHVyZQ0KPiAr ICogQHBhcmFtIHANCj4gKyAqICAgIHRyVENNIHByb2ZpbGUuIE5lZWRzIHRvIGJlIHZhbGlkLg0K PiArICogQHJldHVybg0KPiArICogICAgMCB1cG9uIHN1Y2Nlc3MsIGVycm9yIGNvZGUgb3RoZXJ3 aXNlDQo+ICsgKi8NCj4gK2ludCBfX3J0ZV9leHBlcmltZW50YWwNCj4gK3J0ZV9tZXRlcl90cnRj bV9yZmM0MTE1X2NvbmZpZyhzdHJ1Y3QgcnRlX21ldGVyX3RydGNtICptLA0KPiArCXN0cnVjdCBy dGVfbWV0ZXJfdHJ0Y21fcHJvZmlsZSAqcCk7DQo+ICsNCj4gIC8qKg0KPiAgICogc3JUQ00gY29s b3IgYmxpbmQgdHJhZmZpYyBtZXRlcmluZw0KPiAgICoNCj4gQEAgLTIxMyw2ICsyNTgsNTUgQEAg cnRlX21ldGVyX3RydGNtX2NvbG9yX2F3YXJlX2NoZWNrKHN0cnVjdA0KPiBydGVfbWV0ZXJfdHJ0 Y20gKm0sDQo+ICAJdWludDMyX3QgcGt0X2xlbiwNCj4gIAllbnVtIHJ0ZV9tZXRlcl9jb2xvciBw a3RfY29sb3IpOw0KPiANCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1F TlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4g KyAqIHRyVENNIFJGQzQxMTUgY29sb3IgYmxpbmQgdHJhZmZpYyBtZXRlcmluZw0KPiArICoNCj4g KyAqIEBwYXJhbSBtDQo+ICsgKiAgICBIYW5kbGUgdG8gdHJUQ00gaW5zdGFuY2UNCj4gKyAqIEBw YXJhbSBwDQo+ICsgKiAgICB0clRDTSBwcm9maWxlIHNwZWNpZmllZCBhdCB0clRDTSBvYmplY3Qg Y3JlYXRpb24gdGltZQ0KPiArICogQHBhcmFtIHRpbWUNCj4gKyAqICAgIEN1cnJlbnQgQ1BVIHRp bWUgc3RhbXAgKG1lYXN1cmVkIGluIENQVSBjeWNsZXMpDQo+ICsgKiBAcGFyYW0gcGt0X2xlbg0K PiArICogICAgTGVuZ3RoIG9mIHRoZSBjdXJyZW50IElQIHBhY2tldCAobWVhc3VyZWQgaW4gYnl0 ZXMpDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgICBDb2xvciBhc3NpZ25lZCB0byB0aGUgY3VycmVu dCBJUCBwYWNrZXQNCj4gKyAqLw0KPiArc3RhdGljIGlubGluZSBlbnVtIHJ0ZV9tZXRlcl9jb2xv ciBfX3J0ZV9leHBlcmltZW50YWwNCj4gK3J0ZV9tZXRlcl90cnRjbV9yZmM0MTE1X2NvbG9yX2Js aW5kX2NoZWNrKHN0cnVjdCBydGVfbWV0ZXJfdHJ0Y20gKm0sDQo+ICsJc3RydWN0IHJ0ZV9tZXRl cl90cnRjbV9wcm9maWxlICpwLA0KPiArCXVpbnQ2NF90IHRpbWUsDQo+ICsJdWludDMyX3QgcGt0 X2xlbik7DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRB TDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAq IHRyVENNIFJGQzQxMTUgY29sb3IgYXdhcmUgdHJhZmZpYyBtZXRlcmluZw0KPiArICoNCj4gKyAq IEBwYXJhbSBtDQo+ICsgKiAgICBIYW5kbGUgdG8gdHJUQ00gaW5zdGFuY2UNCj4gKyAqIEBwYXJh bSBwDQo+ICsgKiAgICB0clRDTSBwcm9maWxlIHNwZWNpZmllZCBhdCB0clRDTSBvYmplY3QgY3Jl YXRpb24gdGltZQ0KPiArICogQHBhcmFtIHRpbWUNCj4gKyAqICAgIEN1cnJlbnQgQ1BVIHRpbWUg c3RhbXAgKG1lYXN1cmVkIGluIENQVSBjeWNsZXMpDQo+ICsgKiBAcGFyYW0gcGt0X2xlbg0KPiAr ICogICAgTGVuZ3RoIG9mIHRoZSBjdXJyZW50IElQIHBhY2tldCAobWVhc3VyZWQgaW4gYnl0ZXMp DQo+ICsgKiBAcGFyYW0gcGt0X2NvbG9yDQo+ICsgKiAgICBJbnB1dCBjb2xvciBvZiB0aGUgY3Vy cmVudCBJUCBwYWNrZXQNCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgIENvbG9yIGFzc2lnbmVkIHRv IHRoZSBjdXJyZW50IElQIHBhY2tldA0KPiArICovDQo+ICtzdGF0aWMgaW5saW5lIGVudW0gcnRl X21ldGVyX2NvbG9yIF9fcnRlX2V4cGVyaW1lbnRhbA0KPiArcnRlX21ldGVyX3RydGNtX3JmYzQx MTVfY29sb3JfYXdhcmVfY2hlY2soc3RydWN0IHJ0ZV9tZXRlcl90cnRjbSAqbSwNCj4gKwlzdHJ1 Y3QgcnRlX21ldGVyX3RydGNtX3Byb2ZpbGUgKnAsDQo+ICsJdWludDY0X3QgdGltZSwNCj4gKwl1 aW50MzJfdCBwa3RfbGVuLA0KPiArCWVudW0gcnRlX21ldGVyX2NvbG9yIHBrdF9jb2xvcik7DQo+ ICsNCj4gIC8qDQo+ICAgKiBJbmxpbmUgaW1wbGVtZW50YXRpb24gb2YgcnVuLXRpbWUgbWV0aG9k cw0KPiAgICoNCj4gQEAgLTIzOSwxNiArMzMzLDI4IEBAIHN0cnVjdCBydGVfbWV0ZXJfc3J0Y20g ew0KPiAgc3RydWN0IHJ0ZV9tZXRlcl90cnRjbV9wcm9maWxlIHsNCj4gIAl1aW50NjRfdCBjYnM7 DQo+ICAJLyoqPCBVcHBlciBsaW1pdCBmb3IgQyB0b2tlbiBidWNrZXQgKi8NCj4gLQl1aW50NjRf dCBwYnM7DQo+IC0JLyoqPCBVcHBlciBsaW1pdCBmb3IgUCB0b2tlbiBidWNrZXQgKi8NCj4gKwl1 bmlvbiB7DQo+ICsJCXVpbnQ2NF90IHBiczsNCj4gKwkJLyoqPCBVcHBlciBsaW1pdCBmb3IgUCB0 b2tlbiBidWNrZXQgKi8NCj4gKwkJdWludDY0X3QgZWJzOw0KPiArCQkvKio8IFVwcGVyIGxpbWl0 IGZvciBFIHRva2VuIGJ1Y2tldCAqLw0KPiArCX07DQo+ICAJdWludDY0X3QgY2lyX3BlcmlvZDsN Cj4gIAkvKio8IE51bWJlciBvZiBDUFUgY3ljbGVzIGZvciBvbmUgdXBkYXRlIG9mIEMgdG9rZW4g YnVja2V0ICovDQo+ICAJdWludDY0X3QgY2lyX2J5dGVzX3Blcl9wZXJpb2Q7DQo+ICAJLyoqPCBO dW1iZXIgb2YgYnl0ZXMgdG8gYWRkIHRvIEMgdG9rZW4gYnVja2V0IG9uIGVhY2ggdXBkYXRlICov DQo+IC0JdWludDY0X3QgcGlyX3BlcmlvZDsNCj4gLQkvKio8IE51bWJlciBvZiBDUFUgY3ljbGVz IGZvciBvbmUgdXBkYXRlIG9mIFAgdG9rZW4gYnVja2V0ICovDQo+IC0JdWludDY0X3QgcGlyX2J5 dGVzX3Blcl9wZXJpb2Q7DQo+IC0JLyoqPCBOdW1iZXIgb2YgYnl0ZXMgdG8gYWRkIHRvIFAgdG9r ZW4gYnVja2V0IG9uIGVhY2ggdXBkYXRlICovDQo+ICsJdW5pb24gew0KPiArCQl1aW50NjRfdCBw aXJfcGVyaW9kOw0KPiArCQkvKio8IE51bWJlciBvZiBDUFUgY3ljbGVzIGZvciBvbmUgdXBkYXRl IG9mIFAgdG9rZW4gYnVja2V0DQo+ICovDQo+ICsJCXVpbnQ2NF90IGVpcl9wZXJpb2Q7DQo+ICsJ CS8qKjwgTnVtYmVyIG9mIENQVSBjeWNsZXMgZm9yIG9uZSB1cGRhdGUgb2YgRSB0b2tlbiBidWNr ZXQNCj4gKi8NCj4gKwl9Ow0KPiArCXVuaW9uIHsNCj4gKwkJdWludDY0X3QgcGlyX2J5dGVzX3Bl cl9wZXJpb2Q7DQo+ICsJCS8qKjwgTnVtYmVyIG9mIGJ5dGVzIHRvIGFkZCB0byBQIHRva2VuIGJ1 Y2tldCBvbiBlYWNoDQo+IHVwZGF0ZSAqLw0KPiArCQl1aW50NjRfdCBlaXJfYnl0ZXNfcGVyX3Bl cmlvZDsNCj4gKwkJLyoqPCBOdW1iZXIgb2YgYnl0ZXMgdG8gYWRkIHRvIEUgdG9rZW4gYnVja2V0 IG9uIGVhY2gNCj4gdXBkYXRlICovDQo+ICsJfTsNCj4gIH07DQo+IA0KDQpTYW1lIGhlcmUsIHBs ZWFzZSBjcmVhdGUgZGVkaWNhdGVkIGRhdGEgc3RydWN0dXJlIHN0cnVjdCBydGVfbWV0ZXJfdHJ0 Y21fcmZjNDExNV9wcm9maWxlLg0KDQo+ICAvKioNCj4gQEAgLTI1OCwxMiArMzY0LDIwIEBAIHN0 cnVjdCBydGVfbWV0ZXJfdHJ0Y21fcHJvZmlsZSB7DQo+ICBzdHJ1Y3QgcnRlX21ldGVyX3RydGNt IHsNCj4gIAl1aW50NjRfdCB0aW1lX3RjOw0KPiAgCS8qKjwgVGltZSBvZiBsYXRlc3QgdXBkYXRl IG9mIEMgdG9rZW4gYnVja2V0ICovDQo+IC0JdWludDY0X3QgdGltZV90cDsNCj4gLQkvKio8IFRp bWUgb2YgbGF0ZXN0IHVwZGF0ZSBvZiBFIHRva2VuIGJ1Y2tldCAqLw0KPiArCXVuaW9uIHsNCj4g KwkJdWludDY0X3QgdGltZV90cDsNCj4gKwkJLyoqPCBUaW1lIG9mIGxhdGVzdCB1cGRhdGUgb2Yg UCB0b2tlbiBidWNrZXQgKi8NCj4gKwkJdWludDY0X3QgdGltZV90ZTsNCj4gKwkJLyoqPCBUaW1l IG9mIGxhdGVzdCB1cGRhdGUgb2YgRSB0b2tlbiBidWNrZXQgKi8NCj4gKwl9Ow0KPiAgCXVpbnQ2 NF90IHRjOw0KPiAgCS8qKjwgTnVtYmVyIG9mIGJ5dGVzIGN1cnJlbnRseSBhdmFpbGFibGUgaW4g Y29tbWl0dGVkKEMpIHRva2VuDQo+IGJ1Y2tldCAqLw0KPiAtCXVpbnQ2NF90IHRwOw0KPiAtCS8q KjwgTnVtYmVyIG9mIGJ5dGVzIGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIHBlYWsoUCkgdG9r ZW4NCj4gYnVja2V0ICovDQo+ICsJdW5pb24gew0KPiArCQl1aW50NjRfdCB0cDsNCj4gKwkJLyoq PCBOdW1iZXIgb2YgYnl0ZXMgY3VycmVudGx5IGF2YWlsYWJsZSBpbiB0aGUgcGVhayhQKQ0KPiB0 b2tlbiBidWNrZXQgKi8NCj4gKwkJdWludDY0X3QgdGU7DQo+ICsJCS8qKjwgTnVtYmVyIG9mIGJ5 dGVzIGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIGV4Y2VzcyhFKQ0KPiB0b2tlbiBidWNrZXQg Ki8NCj4gKwl9Ow0KPiAgfTsNCj4gDQoNClNhbWUgaGVyZSwgcGxlYXNlIGNyZWF0ZSBkZWRpY2F0 ZWQgZGF0YSBzdHJ1Y3R1cmUgc3RydWN0IHJ0ZV9tZXRlcl90cnRjbV9yZmM0MTE1Lg0KDQo+ICBz dGF0aWMgaW5saW5lIGVudW0gcnRlX21ldGVyX2NvbG9yDQo+IEBAIC00MzQsNiArNTQ4LDk2IEBA IHJ0ZV9tZXRlcl90cnRjbV9jb2xvcl9hd2FyZV9jaGVjayhzdHJ1Y3QNCj4gcnRlX21ldGVyX3Ry dGNtICptLA0KPiAgCXJldHVybiBlX1JURV9NRVRFUl9HUkVFTjsNCj4gIH0NCj4gDQo+ICtzdGF0 aWMgaW5saW5lIGVudW0gcnRlX21ldGVyX2NvbG9yIF9fcnRlX2V4cGVyaW1lbnRhbA0KPiArcnRl X21ldGVyX3RydGNtX3JmYzQxMTVfY29sb3JfYmxpbmRfY2hlY2soc3RydWN0IHJ0ZV9tZXRlcl90 cnRjbSAqbSwNCj4gKwlzdHJ1Y3QgcnRlX21ldGVyX3RydGNtX3Byb2ZpbGUgKnAsDQo+ICsJdWlu dDY0X3QgdGltZSwNCj4gKwl1aW50MzJfdCBwa3RfbGVuKQ0KPiArew0KPiArCXVpbnQ2NF90IHRp bWVfZGlmZl90YywgdGltZV9kaWZmX3RlLCBuX3BlcmlvZHNfdGMsIG5fcGVyaW9kc190ZSwgdGMs DQo+IHRlOw0KPiArDQo+ICsJLyogQnVja2V0IHVwZGF0ZSAqLw0KPiArCXRpbWVfZGlmZl90YyA9 IHRpbWUgLSBtLT50aW1lX3RjOw0KPiArCXRpbWVfZGlmZl90ZSA9IHRpbWUgLSBtLT50aW1lX3Rl Ow0KPiArCW5fcGVyaW9kc190YyA9IHRpbWVfZGlmZl90YyAvIHAtPmNpcl9wZXJpb2Q7DQo+ICsJ bl9wZXJpb2RzX3RlID0gdGltZV9kaWZmX3RlIC8gcC0+ZWlyX3BlcmlvZDsNCj4gKwltLT50aW1l X3RjICs9IG5fcGVyaW9kc190YyAqIHAtPmNpcl9wZXJpb2Q7DQo+ICsJbS0+dGltZV90ZSArPSBu X3BlcmlvZHNfdGUgKiBwLT5laXJfcGVyaW9kOw0KPiArDQo+ICsJdGMgPSBtLT50YyArIG5fcGVy aW9kc190YyAqIHAtPmNpcl9ieXRlc19wZXJfcGVyaW9kOw0KPiArCWlmICh0YyA+IHAtPmNicykN Cj4gKwkJdGMgPSBwLT5jYnM7DQo+ICsNCj4gKwl0ZSA9IG0tPnRlICsgbl9wZXJpb2RzX3RlICog cC0+ZWlyX2J5dGVzX3Blcl9wZXJpb2Q7DQo+ICsJaWYgKHRlID4gcC0+ZWJzKQ0KPiArCQl0ZSA9 IHAtPmViczsNCj4gKw0KPiArCS8qIENvbG9yIGxvZ2ljICovDQo+ICsJaWYgKHRjID49IHBrdF9s ZW4pIHsNCj4gKwkJbS0+dGMgPSB0YyAtIHBrdF9sZW47DQo+ICsJCW0tPnRlID0gdGU7DQo+ICsJ CXJldHVybiBlX1JURV9NRVRFUl9HUkVFTjsNCj4gKwl9IGVsc2UgaWYgKHRlID49IHBrdF9sZW4p IHsNCj4gKwkJbS0+dGMgPSB0YzsNCj4gKwkJbS0+dGUgPSB0ZSAtIHBrdF9sZW47DQo+ICsJCXJl dHVybiBlX1JURV9NRVRFUl9ZRUxMT1c7DQo+ICsJfQ0KPiArDQo+ICsJLyogSWYgd2UgZW5kIHVw IGhlcmUgdGhlIGNvbG9yIGlzIFJFRCAqLw0KPiArCW0tPnRjID0gdGM7DQo+ICsJbS0+dGUgPSB0 ZTsNCj4gKwlyZXR1cm4gZV9SVEVfTUVURVJfUkVEOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW5s aW5lIGVudW0gcnRlX21ldGVyX2NvbG9yIF9fcnRlX2V4cGVyaW1lbnRhbA0KPiArcnRlX21ldGVy X3RydGNtX3JmYzQxMTVfY29sb3JfYXdhcmVfY2hlY2soc3RydWN0IHJ0ZV9tZXRlcl90cnRjbSAq bSwNCj4gKwlzdHJ1Y3QgcnRlX21ldGVyX3RydGNtX3Byb2ZpbGUgKnAsDQo+ICsJdWludDY0X3Qg dGltZSwNCj4gKwl1aW50MzJfdCBwa3RfbGVuLA0KPiArCWVudW0gcnRlX21ldGVyX2NvbG9yIHBr dF9jb2xvcikNCj4gK3sNCj4gKwl1aW50NjRfdCB0aW1lX2RpZmZfdGMsIHRpbWVfZGlmZl90ZSwg bl9wZXJpb2RzX3RjLCBuX3BlcmlvZHNfdGUsIHRjLA0KPiB0ZTsNCj4gKw0KPiArCS8qIEJ1Y2tl dCB1cGRhdGUgKi8NCj4gKwl0aW1lX2RpZmZfdGMgPSB0aW1lIC0gbS0+dGltZV90YzsNCj4gKwl0 aW1lX2RpZmZfdGUgPSB0aW1lIC0gbS0+dGltZV90ZTsNCj4gKwluX3BlcmlvZHNfdGMgPSB0aW1l X2RpZmZfdGMgLyBwLT5jaXJfcGVyaW9kOw0KPiArCW5fcGVyaW9kc190ZSA9IHRpbWVfZGlmZl90 ZSAvIHAtPmVpcl9wZXJpb2Q7DQo+ICsJbS0+dGltZV90YyArPSBuX3BlcmlvZHNfdGMgKiBwLT5j aXJfcGVyaW9kOw0KPiArCW0tPnRpbWVfdGUgKz0gbl9wZXJpb2RzX3RlICogcC0+ZWlyX3Blcmlv ZDsNCj4gKw0KPiArCXRjID0gbS0+dGMgKyBuX3BlcmlvZHNfdGMgKiBwLT5jaXJfYnl0ZXNfcGVy X3BlcmlvZDsNCj4gKwlpZiAodGMgPiBwLT5jYnMpDQo+ICsJCXRjID0gcC0+Y2JzOw0KPiArDQo+ ICsJdGUgPSBtLT50ZSArIG5fcGVyaW9kc190ZSAqIHAtPmVpcl9ieXRlc19wZXJfcGVyaW9kOw0K PiArCWlmICh0ZSA+IHAtPmVicykNCj4gKwkJdGUgPSBwLT5lYnM7DQo+ICsNCj4gKwkvKiBDb2xv ciBsb2dpYyAqLw0KPiArCWlmIChwa3RfY29sb3IgPT0gZV9SVEVfTUVURVJfR1JFRU4pIHsNCj4g KwkJaWYgKHRjID49IHBrdF9sZW4pIHsNCj4gKwkJCW0tPnRjID0gdGMgLSBwa3RfbGVuOw0KPiAr CQkJbS0+dGUgPSB0ZTsNCj4gKwkJCXJldHVybiBlX1JURV9NRVRFUl9HUkVFTjsNCj4gKwkJfSBl bHNlIGlmICh0ZSA+PSBwa3RfbGVuKSB7DQo+ICsJCQltLT50YyA9IHRjOw0KPiArCQkJbS0+dGUg PSB0ZSAtIHBrdF9sZW47DQo+ICsJCQlyZXR1cm4gZV9SVEVfTUVURVJfWUVMTE9XOw0KPiArCQl9 DQo+ICsJfSBlbHNlIGlmIChwa3RfY29sb3IgPT0gZV9SVEVfTUVURVJfWUVMTE9XICYmIHRlID49 IHBrdF9sZW4pIHsNCj4gKwkJbS0+dGMgPSB0YzsNCj4gKwkJbS0+dGUgPSB0ZSAtIHBrdF9sZW47 DQo+ICsJCXJldHVybiBlX1JURV9NRVRFUl9ZRUxMT1c7DQo+ICsJfQ0KPiArDQo+ICsJLyogSWYg d2UgZW5kIHVwIGhlcmUgdGhlIGNvbG9yIGlzIFJFRCAqLw0KPiArCW0tPnRjID0gdGM7DQo+ICsJ bS0+dGUgPSB0ZTsNCj4gKwlyZXR1cm4gZV9SVEVfTUVURVJfUkVEOw0KPiArfQ0KPiArDQo+ICsN Cj4gICNpZmRlZiBfX2NwbHVzcGx1cw0KPiAgfQ0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9s aWIvbGlicnRlX21ldGVyL3J0ZV9tZXRlcl92ZXJzaW9uLm1hcA0KPiBiL2xpYi9saWJydGVfbWV0 ZXIvcnRlX21ldGVyX3ZlcnNpb24ubWFwDQo+IGluZGV4IGNiNzlmMGMyYi4uNGI0NjBkNTgwIDEw MDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX21ldGVyL3J0ZV9tZXRlcl92ZXJzaW9uLm1hcA0KPiAr KysgYi9saWIvbGlicnRlX21ldGVyL3J0ZV9tZXRlcl92ZXJzaW9uLm1hcA0KPiBAQCAtMTcsMyAr MTcsMTIgQEAgRFBES18xOC4wOCB7DQo+ICAJcnRlX21ldGVyX3NydGNtX3Byb2ZpbGVfY29uZmln Ow0KPiAgCXJ0ZV9tZXRlcl90cnRjbV9wcm9maWxlX2NvbmZpZzsNCj4gIH07DQo+ICsNCj4gK0VY UEVSSU1FTlRBTCB7DQo+ICsJZ2xvYmFsOg0KPiArDQo+ICsJcnRlX21ldGVyX3RydGNtX3JmYzQx MTVfY29sb3JfYXdhcmVfY2hlY2s7DQo+ICsJcnRlX21ldGVyX3RydGNtX3JmYzQxMTVfY29sb3Jf YmxpbmRfY2hlY2s7DQo+ICsJcnRlX21ldGVyX3RydGNtX3JmYzQxMTVfY29uZmlnOw0KPiArCXJ0 ZV9tZXRlcl90cnRjbV9yZmM0MTE1X3Byb2ZpbGVfY29uZmlnOw0KPiArfTsNCg0KUmVnYXJkcywN CkNyaXN0aWFuDQo=