From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38EB2CD343F for ; Thu, 7 May 2026 15:27:32 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 45BBD4027E; Thu, 7 May 2026 17:27:31 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 9F0D94026A for ; Thu, 7 May 2026 17:27:29 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 5F46920628; Thu, 7 May 2026 17:27:29 +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 v7 1/4] lib/net: add IEEE 1588 PTP v2 protocol header definitions Date: Thu, 7 May 2026 17:27:26 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35F6585C@smartserver.smartshare.dk> In-Reply-To: <20260507134529.2573300-2-rajesh3.kumar@intel.com> X-MimeOLE: Produced By Microsoft Exchange V6.5 X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v7 1/4] lib/net: add IEEE 1588 PTP v2 protocol header definitions Thread-Index: Adzd+k16Pq8dc0n8TQy3h/TZ0qXnEQAMn3WQ References: <20260428010117.692626-1-rajesh3.kumar@intel.com> <20260507134529.2573300-1-rajesh3.kumar@intel.com> <20260507134529.2573300-2-rajesh3.kumar@intel.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Rajesh Kumar" , Cc: , , 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 PiBGcm9tOiBSYWplc2ggS3VtYXIgW21haWx0bzpyYWplc2gzLmt1bWFyQGludGVsLmNvbV0NCj4g U2VudDogVGh1cnNkYXksIDcgTWF5IDIwMjYgMTUuNDUNCj4gVG86IGRldkBkcGRrLm9yZw0KPiAN Cj4gQWRkIFBUUCAoUHJlY2lzaW9uIFRpbWUgUHJvdG9jb2wpIGhlYWRlciBzdHJ1Y3R1cmVzIGFu ZCBpbmxpbmUgaGVscGVyDQo+IGZ1bmN0aW9ucyB0byBsaWIvbmV0IGZvbGxvd2luZyBEUERLIGNv bnZlbnRpb25zIGZvciBwcm90b2NvbCBsaWJyYXJpZXMNCj4gKHNpbWlsYXIgdG8gcnRlX3RjcC5o LCBydGVfaXAuaCkuDQo+IA0KPiBQcm92aWRlcyB3aXJlLWZvcm1hdCBzdHJ1Y3R1cmVzIHdpdGgg ZW5kaWFuLWFubm90YXRlZCB0eXBlczoNCj4gICAtIHJ0ZV9wdHBfcG9ydF9pZDogMTAtYnl0ZSBw b3J0IGlkZW50aXR5IHdpdGggRVVJLTY0IGNsb2NrIElEDQo+ICAgLSBydGVfcHRwX2hkcjogMzQt Ynl0ZSBjb21tb24gbWVzc2FnZSBoZWFkZXIgd2l0aCBjb3JyZWN0aW9uRmllbGQNCj4gICAtIHJ0 ZV9wdHBfdGltZXN0YW1wOiAxMC1ieXRlIG5hbm9zZWNvbmQtcHJlY2lzaW9uIHRpbWVzdGFtcA0K PiANCj4gUFRQIG1lc3NhZ2UgdHlwZSBjb25zdGFudHMgZm9yIGFsbCBJRUVFIDE1ODgtMjAxOSBt ZXNzYWdlIHR5cGVzDQo+IChTeW5jLCBEZWxheV9SZXEsIEFubm91bmNlLCBNYW5hZ2VtZW50LCBl dGMuKSBhbmQgZmxhZyBmaWVsZCBiaXRzDQo+ICh0d28tc3RlcCwgdW5pY2FzdCwgbGVhcCBpbmRp Y2F0b3IpLg0KPiANCj4gSW5saW5lIGFjY2Vzc29yIGFuZCB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Ig cGVyZm9ybWFuY2U6DQo+ICAgLSBydGVfcHRwX21zZ190eXBlKCksIHJ0ZV9wdHBfdmVyc2lvbigp LCBydGVfcHRwX2RvbWFpbigpDQo+ICAgLSBydGVfcHRwX3NlcV9pZCgpLCBydGVfcHRwX2lzX2V2 ZW50KCksIHJ0ZV9wdHBfaXNfdHdvX3N0ZXAoKQ0KPiAgIC0gcnRlX3B0cF9jb3JyZWN0aW9uX25z KCksIHJ0ZV9wdHBfYWRkX2NvcnJlY3Rpb24oKQ0KPiAgIC0gcnRlX3B0cF90aW1lc3RhbXBfdG9f bnMoKSBmb3IgdGltZXN0YW1wIGNvbnZlcnNpb24NCj4gDQo+IFN1cHBvcnRzIGFsbCBQVFAgZW5j YXBzdWxhdGlvbnM6IEwyIChFdGhlclR5cGUgMHg4OEY3KSwgVkxBTi9RaW5RLA0KPiBVRFAvSVB2 NCwgYW5kIFVEUC9JUHY2IChwb3J0cyAzMTkvMzIwKS4NCj4gDQo+IEFsbCBpbmxpbmUgZnVuY3Rp b25zIOKAlCB6ZXJvIGZ1bmN0aW9uIGNhbGwgb3ZlcmhlYWQsIHN1aXRhYmxlIGZvcg0KPiByZWFs LXRpbWUgcGFja2V0IHByb2Nlc3NpbmcuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBSYWplc2ggS3Vt YXIgPHJhamVzaDMua3VtYXJAaW50ZWwuY29tPg0KDQpHcmVhdCBwcm9ncmVzcy4NCg0KTXkgbmV4 dCB3YXZlIG9mIGNvbW1lbnRzIGlubGluZSBiZWxvdy4gOi0pDQoNCj4gLS0tDQo+ICBNQUlOVEFJ TkVSUyAgICAgICAgIHwgICA2ICsNCj4gIGxpYi9uZXQvbWVzb24uYnVpbGQgfCAgIDEgKw0KPiAg bGliL25ldC9ydGVfcHRwLmggICB8IDI2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAyNzEgaW5zZXJ0aW9ucygrKQ0KPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9uZXQvcnRlX3B0cC5oDQo+IA0KPiBkaWZmIC0tZ2l0IGEv TUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUw0KPiBpbmRleCAwZjU1MzlmODUxLi5kYTMxYWRhODcx IDEwMDY0NA0KPiAtLS0gYS9NQUlOVEFJTkVSUw0KPiArKysgYi9NQUlOVEFJTkVSUw0KPiBAQCAt MTY2NSw2ICsxNjY1LDEyIEBAIEY6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9pcHNlY19saWIucnN0 DQo+ICBNOiBWbGFkaW1pciBNZWR2ZWRraW4gPHZsYWRpbWlyLm1lZHZlZGtpbkBpbnRlbC5jb20+ DQo+ICBGOiBhcHAvdGVzdC1zYWQvDQo+IA0KPiArUFRQIC0gbGliL25ldA0KDQpQbGVhc2UgcmVt b3ZlIGxpYi9uZXQgZnJvbSB0aGlzIGhlYWRsaW5lLg0KSW50ZWFkLCBzdWdnZXN0Og0KUFRQIChJ RUVFIDE1ODggUHJlY2lzaW9uIFRpbWUgUHJvdG9jb2wpDQoNCj4gK006IFJhamVzaCBLdW1hciA8 cmFqZXNoMy5rdW1hckBpbnRlbC5jb20+DQo+ICtGOiBsaWIvbmV0L3J0ZV9wdHAuaA0KPiArRjog ZXhhbXBsZXMvcHRwX3RhcF9yZWxheV9zdy8NCj4gK0Y6IGRvYy9ndWlkZXMvc2FtcGxlX2FwcF91 Zy9wdHBfdGFwX3JlbGF5X3N3LnJzdA0KPiArDQo+ICBQRENQIC0gRVhQRVJJTUVOVEFMDQo+ICBN OiBBbm9vYiBKb3NlcGggPGFub29iakBtYXJ2ZWxsLmNvbT4NCj4gIE06IFZvbG9keW15ciBGaWFs a28gPHZmaWFsa29AbWFydmVsbC5jb20+DQo+IGRpZmYgLS1naXQgYS9saWIvbmV0L21lc29uLmJ1 aWxkIGIvbGliL25ldC9tZXNvbi5idWlsZA0KPiBpbmRleCAzZmFkNWVkYzViLi42M2QxMzcxOWYz IDEwMDY0NA0KPiAtLS0gYS9saWIvbmV0L21lc29uLmJ1aWxkDQo+ICsrKyBiL2xpYi9uZXQvbWVz b24uYnVpbGQNCj4gQEAgLTI4LDYgKzI4LDcgQEAgaGVhZGVycyA9IGZpbGVzKA0KPiAgICAgICAg ICAncnRlX2dlbmV2ZS5oJywNCj4gICAgICAgICAgJ3J0ZV9sMnRwdjIuaCcsDQo+ICAgICAgICAg ICdydGVfcHBwLmgnLA0KPiArICAgICAgICAncnRlX3B0cC5oJywNCj4gICAgICAgICAgJ3J0ZV9p Yi5oJywNCj4gICkNCj4gDQo+IGRpZmYgLS1naXQgYS9saWIvbmV0L3J0ZV9wdHAuaCBiL2xpYi9u ZXQvcnRlX3B0cC5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAu LjY0OWI5NDRkMjkNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9saWIvbmV0L3J0ZV9wdHAuaA0K PiBAQCAtMCwwICsxLDI2NCBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0z LUNsYXVzZQ0KPiArICogQ29weXJpZ2h0KGMpIDIwMjYgSW50ZWwgQ29ycG9yYXRpb24NCj4gKyAq Lw0KPiArDQo+ICsjaWZuZGVmIF9SVEVfUFRQX0hfDQo+ICsjZGVmaW5lIF9SVEVfUFRQX0hfDQo+ ICsNCj4gKy8qKg0KPiArICogQGZpbGUNCj4gKyAqDQo+ICsgKiBQVFAgKElFRUUgMTU4OCkgcHJv dG9jb2wgZGVmaW5pdGlvbnMNCj4gKyAqLw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ ICsjaW5jbHVkZSA8c3RkYm9vbC5oPg0KPiArDQo+ICsjaW5jbHVkZSA8cnRlX2J5dGVvcmRlci5o Pg0KPiArI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gKw0KPiArI2lmZGVmIF9fY3BsdXNwbHVz DQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiArICogUFRQIENvbnN0 YW50cw0KPiArICovDQo+ICsNCj4gKy8qKiBQVFAgb3ZlciBVRFAgZXZlbnQgcG9ydCAoU3luYywg RGVsYXlfUmVxLCBQRGVsYXlfUmVxLA0KPiBQRGVsYXlfUmVzcCkuICovDQo+ICsjZGVmaW5lIFJU RV9QVFBfRVZFTlRfUE9SVCAgICAgICAgMzE5DQo+ICsNCj4gKy8qKiBQVFAgb3ZlciBVRFAgZ2Vu ZXJhbCBwb3J0IChGb2xsb3dfVXAsIERlbGF5X1Jlc3AsIEFubm91bmNlLCBldGMuKS4NCj4gKi8N Cj4gKyNkZWZpbmUgUlRFX1BUUF9HRU5FUkFMX1BPUlQgICAgICAzMjANCg0KVGhlIGxpYmMgaGVh ZGVyIDxuZXRpbmV0L2luLmg+IGRlZmluZXMgSVBQT1JUX3h4eC4NCldlIHNob3VsZCB1c2Ugc29t ZXRoaW5nIHNpbWlsYXI6DQojZGVmaW5lIFJURV9JUFBPUlRfUFRQX0VWRU5UIGFuZCBSVEVfSVBQ T1JUX1BUUF9HRU5FUkFMDQoNCj4gKw0KPiArLyoqIFBUUCBtdWx0aWNhc3QgTUFDIGFkZHJlc3M6 IDAxOjFCOjE5OjAwOjAwOjAwLiAqLw0KPiArI2RlZmluZSBSVEVfUFRQX01VTFRJQ0FTVF9NQUMg ICAgIHsgMHgwMSwgMHgxQiwgMHgxOSwgMHgwMCwgMHgwMCwgMHgwMA0KPiB9DQo+ICsNCj4gKy8q KiBQVFAgcGVlciBkZWxheSBtdWx0aWNhc3QgTUFDOiAwMTo4MDpDMjowMDowMDowRS4gKi8NCj4g KyNkZWZpbmUgUlRFX1BUUF9QREVMQVlfTVVMVElDQVNUX01BQyB7IDB4MDEsIDB4ODAsIDB4QzIs IDB4MDAsIDB4MDAsDQo+IDB4MEUgfQ0KDQpTaW1pbGFybHkgaGVyZTsgd2Ugc2hvdWxkIGVzdGFi bGlzaCBhIGNvbnZlbnRpb24gZm9yIE1BQyBhZGRyZXNzZXMsDQpsaWtlIFJURV9FVEhFUl9UWVBF X3h4eCBpbiBEUERLIDxsaWIvbmV0L3J0ZV9ldGhlci5oPi4NClN1Z2dlc3Q6DQpSVEVfRVRIRVJf QUREUl9QVFBfTVVMVElDQVNUIGFuZCBSVEVfRVRIRVJfQUREUl9QVFBfTVVMVElDQVNUX1BERUxB WQ0KDQpUaGlzIGFsc28gZm9sbG93cyB0aGUgZ2VuZXJhbCBuYW1pbmcgY29udmVudGlvbiBvZiBo YXZpbmcgdGhlIGJyb2FkZXN0IHNjb3BlIGlzIGZpcnN0IGFuZCB0aGUgbmFycm93ZXN0IHNjb3Bl IGxhc3QuDQoNCj4gKw0KPiArLyoNCj4gKyAqIFBUUCBNZXNzYWdlIFR5cGVzIChJRUVFIDE1ODgt MjAxOSBUYWJsZSAzNikNCj4gKyAqLw0KPiArDQo+ICsjZGVmaW5lIFJURV9QVFBfTVNHVFlQRV9T WU5DICAgICAgICAgICAgMHgwICAvKio8IFN5bmMgKGV2ZW50KS4gKi8NCj4gKyNkZWZpbmUgUlRF X1BUUF9NU0dUWVBFX0RFTEFZX1JFUSAgICAgICAweDEgIC8qKjwgRGVsYXlfUmVxIChldmVudCku DQo+ICovDQo+ICsjZGVmaW5lIFJURV9QVFBfTVNHVFlQRV9QREVMQVlfUkVRICAgICAgMHgyICAv Kio8IFBlZXJfRGVsYXlfUmVxDQo+IChldmVudCkuICovDQo+ICsjZGVmaW5lIFJURV9QVFBfTVNH VFlQRV9QREVMQVlfUkVTUCAgICAgMHgzICAvKio8IFBlZXJfRGVsYXlfUmVzcA0KPiAoZXZlbnQp LiAqLw0KPiArI2RlZmluZSBSVEVfUFRQX01TR1RZUEVfRk9MTE9XX1VQICAgICAgIDB4OCAgLyoq PCBGb2xsb3dfVXAgKGdlbmVyYWwpLg0KPiAqLw0KPiArI2RlZmluZSBSVEVfUFRQX01TR1RZUEVf REVMQVlfUkVTUCAgICAgIDB4OSAgLyoqPCBEZWxheV9SZXNwDQo+IChnZW5lcmFsKS4gKi8NCj4g KyNkZWZpbmUgUlRFX1BUUF9NU0dUWVBFX1BERUxBWV9SRVNQX0ZVICAweEEgIC8qKjwNCj4gUGVl cl9EZWxheV9SZXNwX0ZvbGxvd19VcC4gKi8NCg0KTWlzc2luZyBpbiB0aGUgZGVzY3JpcHRpb246 IChnZW5lcmFsKQ0KDQpGb3IgY29uc2lzdGVuY3ksIGNvbnNpZGVyIHJlbmFtaW5nIFJURV9QVFBf TVNHVFlQRV9GT0xMT1dfVVAgdG8gUlRFX1BUUF9NU0dUWVBFX0ZVLg0KDQo+ICsjZGVmaW5lIFJU RV9QVFBfTVNHVFlQRV9BTk5PVU5DRSAgICAgICAgMHhCICAvKio8IEFubm91bmNlIChnZW5lcmFs KS4NCj4gKi8NCj4gKyNkZWZpbmUgUlRFX1BUUF9NU0dUWVBFX1NJR05BTElORyAgICAgICAweEMg IC8qKjwgU2lnbmFsaW5nIChnZW5lcmFsKS4NCj4gKi8NCj4gKyNkZWZpbmUgUlRFX1BUUF9NU0dU WVBFX01BTkFHRU1FTlQgICAgICAweEQgIC8qKjwgTWFuYWdlbWVudA0KPiAoZ2VuZXJhbCkuICov DQo+ICsNCj4gKy8qDQo+ICsgKiBQVFAgRmxhZyBGaWVsZCBCaXRzIChJRUVFIDE1ODgtMjAxOSBU YWJsZSAzNykNCj4gKyAqDQo+ICsgKiBUaGVzZSBjb25zdGFudHMgYXJlIGZvciB1c2UgYWZ0ZXIg cnRlX2JlX3RvX2NwdV8xNihoZHItPmZsYWdzKS4NCj4gKyAqIGZsYWdGaWVsZFswXSAob2N0ZXQg NikgbWFwcyB0byBob3N0IGJpdHMgOC0xNS4NCj4gKyAqIGZsYWdGaWVsZFsxXSAob2N0ZXQgNykg bWFwcyB0byBob3N0IGJpdHMgMC03Lg0KPiArICovDQo+ICsNCj4gKyNkZWZpbmUgUlRFX1BUUF9G TEFHX1RXT19TVEVQICAgICgxIDw8IDkpICAgLyoqPCBUd28tc3RlcCBmbGFnLiAqLw0KPiArI2Rl ZmluZSBSVEVfUFRQX0ZMQUdfVU5JQ0FTVCAgICAgKDEgPDwgMTApICAvKio8IFVuaWNhc3QgZmxh Zy4gKi8NCj4gKyNkZWZpbmUgUlRFX1BUUF9GTEFHX0xJXzYxICAgICAgICgxIDw8IDApICAgLyoq PCBMZWFwIGluZGljYXRvciA2MS4gKi8NCj4gKyNkZWZpbmUgUlRFX1BUUF9GTEFHX0xJXzU5ICAg ICAgICgxIDw8IDEpICAgLyoqPCBMZWFwIGluZGljYXRvciA1OS4gKi8NCg0KV2UgZG9uJ3QgaGF2 ZSBhIFJURV9CSVQxNigpIG1hY3JvIGxpa2UgdGhlIFJURV9CSVQzMi82NCgpIG1hY3Jvcywgc28g bWF5YmUgdXNlOg0KDQojZGVmaW5lIFJURV9QVFBfRkxBR19UV09fU1RFUCAgICAoVUlOVDE2X0Mo MSkgPDwgOSkgICAvKio8IFR3by1zdGVwIGZsYWcuICovDQojZGVmaW5lIFJURV9QVFBfRkxBR19V TklDQVNUICAgICAoVUlOVDE2X0MoMSkgPDwgMTApICAvKio8IFVuaWNhc3QgZmxhZy4gKi8NCiNk ZWZpbmUgUlRFX1BUUF9GTEFHX0xJXzYxICAgICAgIChVSU5UMTZfQygxKSA8PCAwKSAgIC8qKjwg TGVhcCBpbmRpY2F0b3IgNjEuICovDQojZGVmaW5lIFJURV9QVFBfRkxBR19MSV81OSAgICAgICAo VUlOVDE2X0MoMSkgPDwgMSkgICAvKio8IExlYXAgaW5kaWNhdG9yIDU5LiAqLw0KDQo+ICsNCj4g Ky8qDQo+ICsgKiBQVFAgSGVhZGVyIFN0cnVjdHVyZXMgKElFRUUgMTU4OC0yMDE5KQ0KPiArICov DQo+ICsNCj4gKy8qKg0KPiArICogUFRQIFBvcnQgSWRlbnRpdHkgKDEwIGJ5dGVzKS4NCj4gKyAq Lw0KPiArc3RydWN0IF9fcnRlX3BhY2tlZF9iZWdpbiBydGVfcHRwX3BvcnRfaWQgew0KPiArCXVp bnQ4X3QgICAgY2xvY2tfaWRbOF07IC8qKjwgY2xvY2tJZGVudGl0eSAoRVVJLTY0KS4gKi8NCj4g KwlydGVfYmUxNl90IHBvcnRfbnVtYmVyOyAvKio8IHBvcnROdW1iZXIuICovDQo+ICt9IF9fcnRl X3BhY2tlZF9lbmQ7DQo+ICsNCj4gKy8qKg0KPiArICogUFRQIENvbW1vbiBNZXNzYWdlIEhlYWRl ciAoMzQgYnl0ZXMpLg0KPiArICovDQo+ICtzdHJ1Y3QgX19ydGVfcGFja2VkX2JlZ2luIHJ0ZV9w dHBfaGRyIHsNCj4gKwl1aW50OF90ICAgIG1zZ190eXBlOyAgICAgICAvKio8IHRyYW5zcG9ydFNw ZWNpZmljICg0KSB8DQo+IG1lc3NhZ2VUeXBlICg0KS4gKi8NCj4gKwl1aW50OF90ICAgIHZlcnNp b247ICAgICAgICAvKio8IG1pbm9yVmVyc2lvblBUUCAoNCkgfCB2ZXJzaW9uUFRQDQo+ICg0KS4g Ki8NCg0KVGhlIHR3byBmaWVsZHMgYWJvdmUgc2hvdWxkIGJlIHNwbGl0IGludG8gdGhlaXIgbmli YmxlcywgZm9yIGRpcmVjdCBhY2Nlc3MsIGxpa2UgdGhlIHZlcnNpb25faWhsIGZpZWxkIGluIHRo ZSBJUHY0IGhlYWRlcjoNCmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2RwZGsvdjI2LjAzL3Nv dXJjZS9saWIvbmV0L3J0ZV9pcDQuaCNMNDMNCg0KRS5nLjoNCg0KCV9fZXh0ZW5zaW9uX18NCgl1 bmlvbiB7DQoJCXVpbnQ4X3QgdHNfbXNndHlwZTsgICAgIC8qKjwgTWVzc2FnZSB0eXBlICovDQoJ CXN0cnVjdCB7DQojaWYgUlRFX0JZVEVfT1JERVIgPT0gUlRFX0xJVFRMRV9FTkRJQU4NCgkJCXVp bnQ4X3QgbXNnX3R5cGU6NDsgLyoqPCBtZXNzYWdlVHlwZSAqLw0KCQkJdWludDhfdCB0czo0OyAg ICAgICAvKio8IHRyYW5zcG9ydFNwZWNpZmljICovDQojZWxpZiBSVEVfQllURV9PUkRFUiA9PSBS VEVfQklHX0VORElBTg0KCQkJdWludDhfdCB0czo0OyAgICAgICAvKio8IHRyYW5zcG9ydFNwZWNp ZmljICovDQoJCQl1aW50OF90IG1zZ190eXBlOjQ7IC8qKjwgbWVzc2FnZVR5cGUgKi8NCiNlbmRp Zg0KCQl9Ow0KCX07DQoNCldhcm5pbmc6IEknbSBub3Qgc3VyZSBJIGdvdCB0aGUgbmliYmxlIG9y ZGVyIHJpZ2h0LiBNYWtlIHN1cmUgeW91IGRvISA6LSkNCg0KPiArCXJ0ZV9iZTE2X3QgbXNnX2xl bmd0aDsgICAgIC8qKjwgVG90YWwgbWVzc2FnZSBsZW5ndGggaW4gYnl0ZXMuICovDQo+ICsJdWlu dDhfdCAgICBkb21haW5fbnVtYmVyOyAgLyoqPCBQVFAgZG9tYWluICgwLTI1NSkuICovDQo+ICsJ dWludDhfdCAgICBtaW5vcl9zZG9faWQ7ICAgLyoqPCBtaW5vclNkb0lkIChJRUVFIDE1ODgtMjAx OSkuICovDQo+ICsJcnRlX2JlMTZfdCBmbGFnczsgICAgICAgICAgLyoqPCBGbGFnIGZpZWxkIChz ZWUgUlRFX1BUUF9GTEFHXyopLg0KPiAqLw0KPiArCXJ0ZV9iZTY0X3QgY29ycmVjdGlvbjsgICAg IC8qKjwgY29ycmVjdGlvbkZpZWxkIChzY2FsZWQgbnMsIDQ4LjE2DQo+IGZpeGVkKS4gKi8NCj4g KwlydGVfYmUzMl90IG1zZ190eXBlX3NwZWNpZmljOyAvKio8IG1lc3NhZ2VUeXBlU3BlY2lmaWMu ICovDQo+ICsJc3RydWN0IHJ0ZV9wdHBfcG9ydF9pZCBzb3VyY2VfcG9ydF9pZDsgLyoqPCBzb3Vy Y2VQb3J0SWRlbnRpdHkuDQo+ICovDQo+ICsJcnRlX2JlMTZfdCBzZXF1ZW5jZV9pZDsgICAgLyoq PCBzZXF1ZW5jZUlkLiAqLw0KPiArCXVpbnQ4X3QgICAgY29udHJvbDsgICAgICAgIC8qKjwgY29u dHJvbEZpZWxkIChkZXByZWNhdGVkIGluIDE1ODgtDQo+IDIwMTkpLiAqLw0KPiArCWludDhfdCAg ICAgbG9nX21zZ19pbnRlcnZhbDsgLyoqPCBsb2dNZXNzYWdlSW50ZXJ2YWwuICovDQo+ICt9IF9f cnRlX3BhY2tlZF9lbmQ7DQo+ICsNCj4gKy8qKg0KPiArICogUFRQIFRpbWVzdGFtcCAoMTAgYnl0 ZXMsIHVzZWQgaW4gU3luYy9EZWxheV9SZXEvRm9sbG93X1VwIGJvZGllcykuDQoNClRoZSBQVFAg dGltZXN0YW1wIG9yaWdvIHNob3VsZCBiZSBtZW50aW9uZWQgaGVyZS4NCkUuZy4gdGhlIFVOSVgg dGltZV90IG9yaWdvIGlzIEphbiAxc3QgMDA6MDA6MDAgMTk3MC4NCg0KPiArICovDQo+ICtzdHJ1 Y3QgX19ydGVfcGFja2VkX2JlZ2luIHJ0ZV9wdHBfdGltZXN0YW1wIHsNCj4gKwlydGVfYmUxNl90 IHNlY29uZHNfaGk7ICAgLyoqPCBVcHBlciAxNiBiaXRzIG9mIHNlY29uZHMuICovDQo+ICsJcnRl X2JlMzJfdCBzZWNvbmRzX2xvOyAgIC8qKjwgTG93ZXIgMzIgYml0cyBvZiBzZWNvbmRzLiAqLw0K PiArCXJ0ZV9iZTMyX3QgbmFub3NlY29uZHM7ICAvKio8IE5hbm9zZWNvbmRzICgwLTk5OTk5OTk5 OSkuICovDQo+ICt9IF9fcnRlX3BhY2tlZF9lbmQ7DQo+ICsNCj4gKy8qDQo+ICsgKiBJbmxpbmUg SGVscGVycw0KPiArICovDQo+ICsNCj4gKy8qKg0KPiArICogRXh0cmFjdCBQVFAgbWVzc2FnZSB0 eXBlIGZyb20gaGVhZGVyLg0KPiArICoNCj4gKyAqIEBwYXJhbSBoZHINCj4gKyAqICAgUG9pbnRl ciB0byBQVFAgaGVhZGVyLg0KPiArICogQHJldHVybg0KPiArICogICBNZXNzYWdlIHR5cGUgKDB4 MC0weEYpLg0KPiArICovDQo+ICtzdGF0aWMgaW5saW5lIHVpbnQ4X3QNCj4gK3J0ZV9wdHBfbXNn X3R5cGUoY29uc3Qgc3RydWN0IHJ0ZV9wdHBfaGRyICpoZHIpDQo+ICt7DQo+ICsJcmV0dXJuIGhk ci0+bXNnX3R5cGUgJiAweDBGOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIEV4dHJhY3QgdHJh bnNwb3J0LXNwZWNpZmljIGZpZWxkIGZyb20gaGVhZGVyLg0KPiArICoNCj4gKyAqIEBwYXJhbSBo ZHINCj4gKyAqICAgUG9pbnRlciB0byBQVFAgaGVhZGVyLg0KPiArICogQHJldHVybg0KPiArICog ICBUcmFuc3BvcnQtc3BlY2lmaWMgdmFsdWUgKHVwcGVyIG5pYmJsZSwgMHgwLTB4RikuDQo+ICsg Ki8NCj4gK3N0YXRpYyBpbmxpbmUgdWludDhfdA0KPiArcnRlX3B0cF90cmFuc3BvcnRfc3BlY2lm aWMoY29uc3Qgc3RydWN0IHJ0ZV9wdHBfaGRyICpoZHIpDQo+ICt7DQo+ICsJcmV0dXJuIChoZHIt Pm1zZ190eXBlID4+IDQpICYgMHgwRjsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgKiBFeHRyYWN0 IFBUUCB2ZXJzaW9uIGZyb20gaGVhZGVyLg0KPiArICoNCj4gKyAqIEBwYXJhbSBoZHINCj4gKyAq ICAgUG9pbnRlciB0byBQVFAgaGVhZGVyLg0KPiArICogQHJldHVybg0KPiArICogICBQVFAgdmVy c2lvbiBudW1iZXIgKHR5cGljYWxseSAyKS4NCj4gKyAqLw0KPiArc3RhdGljIGlubGluZSB1aW50 OF90DQo+ICtydGVfcHRwX3ZlcnNpb24oY29uc3Qgc3RydWN0IHJ0ZV9wdHBfaGRyICpoZHIpDQo+ ICt7DQo+ICsJcmV0dXJuIGhkci0+dmVyc2lvbiAmIDB4MEY7DQo+ICt9DQo+ICsNCj4gKy8qKg0K PiArICogR2V0IHNlcXVlbmNlIElEIGZyb20gUFRQIGhlYWRlciAoaG9zdCBieXRlIG9yZGVyKS4N Cj4gKyAqDQo+ICsgKiBAcGFyYW0gaGRyDQo+ICsgKiAgIFBvaW50ZXIgdG8gUFRQIGhlYWRlci4N Cj4gKyAqIEByZXR1cm4NCj4gKyAqICAgU2VxdWVuY2UgSUQgaW4gaG9zdCBieXRlIG9yZGVyLg0K PiArICovDQo+ICtzdGF0aWMgaW5saW5lIHVpbnQxNl90DQo+ICtydGVfcHRwX3NlcV9pZChjb25z dCBzdHJ1Y3QgcnRlX3B0cF9oZHIgKmhkcikNCj4gK3sNCj4gKwlyZXR1cm4gcnRlX2JlX3RvX2Nw dV8xNihoZHItPnNlcXVlbmNlX2lkKTsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgKiBHZXQgUFRQ IGRvbWFpbiBudW1iZXIuDQo+ICsgKg0KPiArICogQHBhcmFtIGhkcg0KPiArICogICBQb2ludGVy IHRvIFBUUCBoZWFkZXIuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgIERvbWFpbiBudW1iZXIgKDAt MjU1KS4NCj4gKyAqLw0KPiArc3RhdGljIGlubGluZSB1aW50OF90DQo+ICtydGVfcHRwX2RvbWFp bihjb25zdCBzdHJ1Y3QgcnRlX3B0cF9oZHIgKmhkcikNCj4gK3sNCj4gKwlyZXR1cm4gaGRyLT5k b21haW5fbnVtYmVyOw0KPiArfQ0KDQpUaGUgYWJvdmUgImdldCIgYWNjZXNzb3IgZnVuY3Rpb25z IGFyZSBzdXBlcmZsdW91cy4gUGxlYXNlIHJlbW92ZToNCnJ0ZV9wdHBfbXNnX3R5cGUoKQ0KcnRl X3B0cF90cmFuc3BvcnRfc3BlY2lmaWMoKQ0KcnRlX3B0cF92ZXJzaW9uKCkNCnJ0ZV9wdHBfc2Vx X2lkKCkNCnJ0ZV9wdHBfZG9tYWluKCkNCg0KPiArDQo+ICsvKioNCj4gKyAqIENoZWNrIGlmIFBU UCBtZXNzYWdlIHR5cGUgaXMgYW4gZXZlbnQgbWVzc2FnZS4NCj4gKyAqIEV2ZW50IG1lc3NhZ2Vz IChtc2dfdHlwZSAweDAtMHgzKSByZXF1aXJlIHRpbWVzdGFtcHMuDQo+ICsgKg0KPiArICogQHBh cmFtIG1zZ190eXBlDQo+ICsgKiAgIFBUUCBtZXNzYWdlIHR5cGUgdmFsdWUgKDB4MC0weEYpLg0K PiArICogQHJldHVybg0KPiArICogICB0cnVlIGlmIGV2ZW50IG1lc3NhZ2UsIGZhbHNlIG90aGVy d2lzZS4NCj4gKyAqLw0KPiArc3RhdGljIGlubGluZSBib29sDQo+ICtydGVfcHRwX2lzX2V2ZW50 KGludCBtc2dfdHlwZSkNCj4gK3sNCj4gKwlyZXR1cm4gbXNnX3R5cGUgPj0gMCAmJiBtc2dfdHlw ZSA8PSBSVEVfUFRQX01TR1RZUEVfUERFTEFZX1JFU1A7DQo+ICt9DQoNClN1Z2dlc3QgcGFzc2lu ZyB0aGUgcGFyYW1ldGVyIGFzIGNvbnN0IHN0cnVjdCBydGVfcHRwX2hkciAqaGRyLCBsaWtlIGlu IHJ0ZV9wdHBfaXNfdHdvX3N0ZXAoKSBiZWxvdy4NCg0KPiArDQo+ICsvKioNCj4gKyAqIENoZWNr IGlmIHRoZSB0d28tc3RlcCBmbGFnIGlzIHNldCBpbiBhIFBUUCBoZWFkZXIuDQo+ICsgKg0KPiAr ICogQHBhcmFtIGhkcg0KPiArICogICBQb2ludGVyIHRvIFBUUCBoZWFkZXIuDQo+ICsgKiBAcmV0 dXJuDQo+ICsgKiAgIHRydWUgaWYgdHdvLXN0ZXAgZmxhZyBpcyBzZXQuDQo+ICsgKi8NCj4gK3N0 YXRpYyBpbmxpbmUgYm9vbA0KPiArcnRlX3B0cF9pc190d29fc3RlcChjb25zdCBzdHJ1Y3QgcnRl X3B0cF9oZHIgKmhkcikNCj4gK3sNCj4gKwlyZXR1cm4gKHJ0ZV9iZV90b19jcHVfMTYoaGRyLT5m bGFncykgJiBSVEVfUFRQX0ZMQUdfVFdPX1NURVApICE9DQo+IDA7DQoNCkZhc3RlciB3YXk6DQpy ZXR1cm4gKGhkci0+ZmxhZ3MgJiBSVEVfQkUxNihSVEVfUFRQX0ZMQUdfVFdPX1NURVApKSAhPSAw Ow0KDQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogR2V0IGNvcnJlY3Rpb25GaWVsZCB2YWx1ZSBp biBuYW5vc2Vjb25kcyAoZnJvbSA0OC4xNiBmaXhlZC1wb2ludCkuDQo+ICsgKg0KPiArICogQHBh cmFtIGhkcg0KPiArICogICBQb2ludGVyIHRvIFBUUCBoZWFkZXIuDQo+ICsgKiBAcmV0dXJuDQo+ ICsgKiAgIENvcnJlY3Rpb24gdmFsdWUgaW4gbmFub3NlY29uZHMuDQo+ICsgKi8NCj4gK3N0YXRp YyBpbmxpbmUgaW50NjRfdA0KPiArcnRlX3B0cF9jb3JyZWN0aW9uX25zKGNvbnN0IHN0cnVjdCBy dGVfcHRwX2hkciAqaGRyKQ0KPiArew0KPiArCXJldHVybiAoaW50NjRfdClydGVfYmVfdG9fY3B1 XzY0KGhkci0+Y29ycmVjdGlvbikgPj4gMTY7DQo+ICt9DQoNClRoaXMgImdldCIgYWNjZXNzb3Ig ZnVuY3Rpb24gaXMgc3VwZXJmbHVvdXMuIFBsZWFzZSByZW1vdmU6DQpydGVfcHRwX2NvcnJlY3Rp b25fbnMoKQ0KDQpUaGUgImNvcnJlY3Rpb24iIGZpZWxkIGluIHRoZSBQVFAgaGVhZGVyIHN0cnVj dHVyZSBzaG91bGQgc3VmZmljaWVudGx5IGRlc2NyaWJlIHRoZSBmaWVsZCdzIGZpeGVkLXBvaW50 IGVuY29kaW5nLg0KDQo+ICsNCj4gKy8qKg0KPiArICogQWRkIGEgcmVzaWRlbmNlIHRpbWUgKGlu IG5hbm9zZWNvbmRzKSB0byB0aGUgY29ycmVjdGlvbkZpZWxkLg0KPiArICogVXNlZCBieSBUcmFu c3BhcmVudCBDbG9ja3MgdG8gYWNjb3VudCBmb3IgcmVsYXkgdHJhbnNpdCBkZWxheS4NCj4gKyAq IFRoZSBjb3JyZWN0aW9uRmllbGQgdXNlcyBJRUVFIDE1ODggc2NhbGVkIG5hbm9zZWNvbmRzICg0 OC4xNiBmaXhlZC0NCj4gcG9pbnQpLg0KPiArICoNCj4gKyAqIEBwYXJhbSBoZHINCj4gKyAqICAg UG9pbnRlciB0byBQVFAgaGVhZGVyICh3aWxsIGJlIG1vZGlmaWVkIGluLXBsYWNlKS4NCj4gKyAq IEBwYXJhbSByZXNpZGVuY2VfbnMNCj4gKyAqICAgUmVzaWRlbmNlIHRpbWUgaW4gbmFub3NlY29u ZHMgdG8gYWRkLg0KPiArICovDQo+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gK3J0ZV9wdHBfYWRk X2NvcnJlY3Rpb24oc3RydWN0IHJ0ZV9wdHBfaGRyICpoZHIsIGludDY0X3QgcmVzaWRlbmNlX25z KQ0KPiArew0KPiArCWludDY0X3QgY2YgPSAoaW50NjRfdClydGVfYmVfdG9fY3B1XzY0KGhkci0+ Y29ycmVjdGlvbik7DQo+ICsNCj4gKwljZiArPSAoaW50NjRfdCkoKHVpbnQ2NF90KXJlc2lkZW5j ZV9ucyA8PCAxNik7DQo+ICsJaGRyLT5jb3JyZWN0aW9uID0gcnRlX2NwdV90b19iZV82NChjZik7 DQo+ICt9DQoNCkkgZG9uJ3QgdGhpbmsgbmVnYXRpdmUgdGltZSBjYW4gYmUgYWRkZWQsIHNvIHBs ZWFzZSB1c2UgdWludDY0X3QgaW5zdGVhZCBvZiBpbnQ2NF90IGZvciB0aGUgcGFyYW1ldGVyIGFu ZCBpbnNpZGUgdGhlIGZ1bmN0aW9uLg0KDQpOb3RlIHRvIHJldmlld2VyczogInJlc2lkZW5jZSB0 aW1lIiBpcyB0aGUgdGVybSBpbiB0aGUgc3RhbmRhcmQuICJzb2pvdXJuIHRpbWUiIGlzIG5vdCB1 c2VkLg0KDQo+ICsNCj4gKy8qKg0KPiArICogQ29udmVydCBhIFBUUCB0aW1lc3RhbXAgc3RydWN0 dXJlIHRvIG5hbm9zZWNvbmRzIHNpbmNlIGVwb2NoLg0KPiArICoNCj4gKyAqIEBwYXJhbSB0cw0K PiArICogICBQb2ludGVyIHRvIFBUUCB0aW1lc3RhbXAuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAg IFRpbWUgaW4gbmFub3NlY29uZHMgc2luY2UgZXBvY2guDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxp bmUgdWludDY0X3QNCj4gK3J0ZV9wdHBfdGltZXN0YW1wX3RvX25zKGNvbnN0IHN0cnVjdCBydGVf cHRwX3RpbWVzdGFtcCAqdHMpDQo+ICt7DQo+ICsJdWludDY0X3Qgc2VjID0gKCh1aW50NjRfdCly dGVfYmVfdG9fY3B1XzE2KHRzLT5zZWNvbmRzX2hpKSA8PCAzMikNCj4gfA0KPiArCQkgICAgICAg cnRlX2JlX3RvX2NwdV8zMih0cy0+c2Vjb25kc19sbyk7DQo+ICsNCj4gKwlyZXR1cm4gc2VjICog MTAwMDAwMDAwMFVMTCArIHJ0ZV9iZV90b19jcHVfMzIodHMtPm5hbm9zZWNvbmRzKTsNCj4gK30N Cg0KMTAwMDAwMDAwMFVMTCAtPiBVSU5UNjRfQygxMDAwMDAwMDAwKQ0KDQo+ICsNCj4gKyNpZmRl ZiBfX2NwbHVzcGx1cw0KPiArfQ0KPiArI2VuZGlmDQo+ICsNCj4gKyNlbmRpZiAvKiBfUlRFX1BU UF9IXyAqLw0KPiAtLQ0KPiAyLjUzLjANCg0K