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 AE9F043929; Mon, 22 Jan 2024 14:00:28 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5FF4F402C9; Mon, 22 Jan 2024 14:00:28 +0100 (CET) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 226CD4028B for ; Mon, 22 Jan 2024 14:00:27 +0100 (CET) Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4TJVcV4qntz6JB4t; Mon, 22 Jan 2024 20:57:30 +0800 (CST) Received: from frapeml100008.china.huawei.com (unknown [7.182.85.131]) by mail.maildlp.com (Postfix) with ESMTPS id EA98B140A70; Mon, 22 Jan 2024 21:00:24 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100008.china.huawei.com (7.182.85.131) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 22 Jan 2024 14:00:24 +0100 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.035; Mon, 22 Jan 2024 14:00:24 +0100 From: Konstantin Ananyev To: "jerinj@marvell.com" , "dev@dpdk.org" , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko CC: "ferruh.yigit@xilinx.com" , "ajit.khaparde@broadcom.com" , "aboyer@pensando.io" , "beilei.xing@intel.com" , "bruce.richardson@intel.com" , "chas3@att.com" , "chenbo.xia@intel.com" , "ciara.loftus@intel.com" , "dsinghrawat@marvell.com" , "ed.czeck@atomicrules.com" , "evgenys@amazon.com" , "grive@u256.net" , "g.singh@nxp.com" , "haiyue.wang@intel.com" , "hkalra@marvell.com" , "heinrich.kuhn@corigine.com" , "hemant.agrawal@nxp.com" , "hyonkim@cisco.com" , "igorch@amazon.com" , "irusskikh@marvell.com" , "jgrajcia@cisco.com" , "jasvinder.singh@intel.com" , "jianwang@trustnetic.com" , "jiawenwu@trustnetic.com" , "jingjing.wu@intel.com" , "johndale@cisco.com" , "john.miller@atomicrules.com" , "linville@tuxdriver.com" , "keith.wiles@intel.com" , "kirankumark@marvell.com" , "lironh@marvell.com" , "longli@microsoft.com" , "mw@semihalf.com" , "spinler@cesnet.cz" , "matan@nvidia.com" , "matt.peters@windriver.com" , "maxime.coquelin@redhat.com" , "mk@semihalf.com" , "humin (Q)" , "pnalla@marvell.com" , "ndabilpuram@marvell.com" , "qiming.yang@intel.com" , "qi.z.zhang@intel.com" , "radhac@marvell.com" , "rahul.lakkireddy@chelsio.com" , "rmody@marvell.com" , "rosen.xu@intel.com" , "sachin.saxena@oss.nxp.com" , "skoteshwar@marvell.com" , "shshaikh@marvell.com" , "shaibran@amazon.com" , "shepard.siegel@atomicrules.com" , "asomalap@amd.com" , "somnath.kotur@broadcom.com" , "sthemmin@microsoft.com" , "steven.webster@windriver.com" , "skori@marvell.com" , "mtetsuyah@gmail.com" , "vburru@marvell.com" , "viacheslavo@nvidia.com" , "xiao.w.wang@intel.com" , "Wangxiaoyun (Cloud)" , "Zhuangyuzeng (Yisen)" , "yongwang@vmware.com" , "Xuanziyang (William)" , "cristian.dumitrescu@intel.com" , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= Subject: RE: [dpdk-dev] [v2] ethdev: support Tx queue used count Thread-Topic: [dpdk-dev] [v2] ethdev: support Tx queue used count Thread-Index: AQHaSfOWG+giV8N4R0WrLus1V/b7u7Dl0LuQ Date: Mon, 22 Jan 2024 13:00:24 +0000 Message-ID: <02136387f2374c428143ca432103e094@huawei.com> References: <20240111151745.3800170-1-jerinj@marvell.com> <20240118094742.594900-1-jerinj@marvell.com> In-Reply-To: <20240118094742.594900-1-jerinj@marvell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.48.145.143] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 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 DQoNCj4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluakBtYXJ2ZWxsLmNvbT4NCj4gDQo+IEludHJv ZHVjZSBhIG5ldyBBUEkgdG8gcmV0cmlldmUgdGhlIG51bWJlciBvZiB1c2VkIGRlc2NyaXB0b3Jz DQo+IGluIGEgVHggcXVldWUuIEFwcGxpY2F0aW9ucyBjYW4gbGV2ZXJhZ2UgdGhpcyBBUEkgaW4g dGhlIGZhc3QgcGF0aCB0bw0KPiBpbnNwZWN0IHRoZSBUeCBxdWV1ZSBvY2N1cGFuY3kgYW5kIHRh a2UgYXBwcm9wcmlhdGUgYWN0aW9ucyBiYXNlZCBvbiB0aGUNCj4gYXZhaWxhYmxlIGZyZWUgZGVz Y3JpcHRvcnMuDQo+IA0KPiBBIG5vdGFibGUgdXNlIGNhc2UgY291bGQgYmUgaW1wbGVtZW50aW5n IFJhbmRvbSBFYXJseSBEaXNjYXJkIChSRUQpDQo+IGluIHNvZnR3YXJlIGJhc2VkIG9uIFR4IHF1 ZXVlIG9jY3VwYW5jeS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEplcmluIEphY29iIDxqZXJpbmpA bWFydmVsbC5jb20+DQo+IFJldmlld2VkLWJ5OiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnli Y2hlbmtvQG9rdGV0bGFicy5ydT4NCj4gQWNrZWQtYnk6IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFy dHNoYXJlc3lzdGVtcy5jb20+DQo+IC0tLQ0KPiAgZGV2dG9vbHMvbGliYWJpZ2FpbC5hYmlnbm9y ZSAgICAgICAgICAgfCAgMyArDQo+ICBkb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMucnN0ICAgICAg ICAgICB8IDEwICsrKysNCj4gIGRvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9kZWZhdWx0LmluaSAg IHwgIDEgKw0KPiAgZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yNF8wMy5yc3QgfCAgNSAr Kw0KPiAgbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmggICAgICAgICAgICAgfCAgMiArDQo+ICBs aWIvZXRoZGV2L2V0aGRldl9wcml2YXRlLmMgICAgICAgICAgICB8ICAxICsNCj4gIGxpYi9ldGhk ZXYvZXRoZGV2X3RyYWNlX3BvaW50cy5jICAgICAgIHwgIDMgKw0KPiAgbGliL2V0aGRldi9ydGVf ZXRoZGV2LmggICAgICAgICAgICAgICAgfCA4MCArKysrKysrKysrKysrKysrKysrKysrKysrKw0K PiAgbGliL2V0aGRldi9ydGVfZXRoZGV2X2NvcmUuaCAgICAgICAgICAgfCAgNyArKy0NCj4gIGxp Yi9ldGhkZXYvcnRlX2V0aGRldl90cmFjZV9mcC5oICAgICAgIHwgIDggKysrDQo+ICBsaWIvZXRo ZGV2L3ZlcnNpb24ubWFwICAgICAgICAgICAgICAgICB8ICAxICsNCj4gIDExIGZpbGVzIGNoYW5n ZWQsIDEyMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiB2MjoNCj4gLSBSZW5h bWUgX25pY19mZWF0dXJlc190eF9xdWV1ZV91c2VkX2NvdW50IHRvIF9uaWNfZmVhdHVyZXNfdHhf cXVldWVfY291bnQNCj4gLSBGaXggdHJhY2UgZW1pc3Npb24gb2YgY2FzZSBmb3BzLT50eF9xdWV1 ZV9jb3VudCA9PSBOVUxMDQo+IC0gUmVuYW1lIHR4X3F1ZXVlX2lkIHRvIHF1ZXVlX2lkIGluIGlt cGxlbWVudGF0aW9uIHN5bWJvbHMgYW5kIHByaW50cw0KPiAtIEFkZGVkICJnb3RvIG91dCIgZm9y IGJldHRlciBlcnJvciBoYW5kbGluZw0KPiAtIEFkZCByZWxlYXNlIG5vdGUNCj4gLSBBZGRlZCBs aWJhYmlnYWlsIHN1cHByZXNzaW9uIHJ1bGUgZm9yIHRoZSByZXNlcnZlZDIgZmllbGQgdXBkYXRl DQo+IC0gRml4IGFsbCBvcmRlcmluZyBhbmQgZ3JvdXBpbmcsIGVtcHR5IGxpbmUgY29tbWVudCBm cm9tIEZlcnJ1aA0KPiAtIEFkZGVkIGZvbGxvd2luZyBub3RlcyBpbiBkb3h5Z2VuIGRvY3VtZW50 YXRpb24gZm9yIGJldHRlciBjbGFyaXR5IG9uIEFQSSB1c2FnZQ0KPiAgKiBAbm90ZSBUaGVyZSBp cyBubyByZXF1aXJlbWVudCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gYmVmb3JlIHJ0ZV9ldGhfdHhf YnVyc3QoKSBpbnZvY2F0aW9uLg0KPiAgKiBAbm90ZSBVdGlsaXplIHRoaXMgZnVuY3Rpb24gZXhj bHVzaXZlbHkgd2hlbiB0aGUgY2FsbGVyIG5lZWRzIHRvIGRldGVybWluZSB0aGUgdXNlZCBxdWV1 ZSBjb3VudA0KPiAgKiBhY3Jvc3MgYWxsIGRlc2NyaXB0b3JzIG9mIGEgVHggcXVldWUuIElmIHRo ZSB1c2UgY2FzZSBvbmx5IGludm9sdmVzIGNoZWNraW5nIHRoZSBzdGF0dXMgb2YgYQ0KPiAgKiBz cGVjaWZpYyBkZXNjcmlwdG9yIHNsb3QsIG9wdCBmb3IgcnRlX2V0aF90eF9kZXNjcmlwdG9yX3N0 YXR1cygpIGluc3RlYWQuDQo+IA0KPiByZmMuLnYxOg0KPiAtIFVwZGF0ZWQgQVBJIHNpbWlsYXIg dG8gcnRlX2V0aF9yeF9xdWV1ZV9jb3VudCgpIHdoZXJlIGl0IHJldHVybnMNCj4gInVzZWQiIGNv dW50IGluc3RlYWQgb2YgImZyZWUiIGNvdW50DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZGV2dG9vbHMv bGliYWJpZ2FpbC5hYmlnbm9yZSBiL2RldnRvb2xzL2xpYmFiaWdhaWwuYWJpZ25vcmUNCj4gaW5k ZXggMjFiOGNkNjExMy4uZDZlOThjNmY1MiAxMDA2NDQNCj4gLS0tIGEvZGV2dG9vbHMvbGliYWJp Z2FpbC5hYmlnbm9yZQ0KPiArKysgYi9kZXZ0b29scy9saWJhYmlnYWlsLmFiaWdub3JlDQo+IEBA IC0zMywzICszMyw2IEBADQo+ICA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7DQo+ICA7IFRlbXBvcmFyeSBleGNlcHRpb25zIHRpbGwgbmV4dCBtYWpv ciBBQkkgdmVyc2lvbiA7DQo+ICA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7DQo+ICtbc3VwcHJlc3NfdHlwZV0NCj4gKwluYW1lID0gcnRlX2V0aF9m cF9vcHMNCj4gKwloYXNfZGF0YV9tZW1iZXJfaW5zZXJ0ZWRfYmV0d2VlbiA9IHtvZmZzZXRfb2Yo cmVzZXJ2ZWQyKSwgZW5kfQ0KPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVz LnJzdCBiL2RvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy5yc3QNCj4gaW5kZXggZjdkOTk4MDg0OS4u ZjM4OTQxYzcxOSAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzLnJzdA0K PiArKysgYi9kb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMucnN0DQo+IEBAIC02OTcsNiArNjk3LDE2 IEBAIG9yICJVbmF2YWlsYWJsZS4iDQo+ICAqICoqW3JlbGF0ZWRdICAgIEFQSSoqOiBgYHJ0ZV9l dGhfdHhfZGVzY3JpcHRvcl9zdGF0dXMoKWBgLg0KPiANCj4gDQo+ICsuLiBfbmljX2ZlYXR1cmVz X3R4X3F1ZXVlX2NvdW50Og0KPiArDQo+ICtUeCBxdWV1ZSBjb3VudA0KPiArLS0tLS0tLS0tLS0t LS0NCj4gKw0KPiArU3VwcG9ydHMgdG8gZ2V0IHRoZSBudW1iZXIgb2YgdXNlZCBkZXNjcmlwdG9y cyBvZiBhIFR4IHF1ZXVlLg0KPiArDQo+ICsqICoqW2ltcGxlbWVudHNdIGV0aF9kZXZfb3BzKio6 IGBgdHhfcXVldWVfY291bnRgYC4NCj4gKyogKipbcmVsYXRlZF0gQVBJKio6IGBgcnRlX2V0aF90 eF9xdWV1ZV9jb3VudCgpYGAuDQo+ICsNCj4gIC4uIF9uaWNfZmVhdHVyZXNfYmFzaWNfc3RhdHM6 DQo+IA0KPiAgQmFzaWMgc3RhdHMNCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvbmljcy9mZWF0 dXJlcy9kZWZhdWx0LmluaSBiL2RvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9kZWZhdWx0LmluaQ0K PiBpbmRleCA2ZDUwMjM2MjkyLi41MTE1OTYzMTM2IDEwMDY0NA0KPiAtLS0gYS9kb2MvZ3VpZGVz L25pY3MvZmVhdHVyZXMvZGVmYXVsdC5pbmkNCj4gKysrIGIvZG9jL2d1aWRlcy9uaWNzL2ZlYXR1 cmVzL2RlZmF1bHQuaW5pDQo+IEBAIC01OSw2ICs1OSw3IEBAIFBhY2tldCB0eXBlIHBhcnNpbmcg ID0NCj4gIFRpbWVzeW5jICAgICAgICAgICAgID0NCj4gIFJ4IGRlc2NyaXB0b3Igc3RhdHVzID0N Cj4gIFR4IGRlc2NyaXB0b3Igc3RhdHVzID0NCj4gK1R4IHF1ZXVlIGNvdW50ICAgICAgID0NCj4g IEJhc2ljIHN0YXRzICAgICAgICAgID0NCj4gIEV4dGVuZGVkIHN0YXRzICAgICAgID0NCj4gIFN0 YXRzIHBlciBxdWV1ZSAgICAgID0NCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcmVsX25vdGVz L3JlbGVhc2VfMjRfMDMucnN0IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yNF8wMy5y c3QNCj4gaW5kZXggYzRmYzhhZDU4My4uMTZkZDM2NzE3OCAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1 aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yNF8wMy5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9yZWxf bm90ZXMvcmVsZWFzZV8yNF8wMy5yc3QNCj4gQEAgLTY1LDYgKzY1LDExIEBAIE5ldyBGZWF0dXJl cw0KPiAgICAqIEFkZGVkIGBgUlRFX0ZMT1dfSVRFTV9UWVBFX1JBTkRPTWBgIHRvIG1hdGNoIHJh bmRvbSB2YWx1ZS4NCj4gICAgKiBBZGRlZCBgYFJURV9GTE9XX0ZJRUxEX1JBTkRPTWBgIHRvIHJl cHJlc2VudCBpdCBpbiBmaWVsZCBJRCBzdHJ1Y3QuDQo+IA0KPiArKiAqKiBTdXBwb3J0IGZvciBn ZXR0aW5nIHRoZSBudW1iZXIgb2YgdXNlZCBkZXNjcmlwdG9ycyBvZiBhIFR4IHF1ZXVlLiAqKg0K PiArDQo+ICsgICogQWRkZWQgYSBmYXRoIHBhdGggZnVuY3Rpb24gYGBydGVfZXRoX3R4X3F1ZXVl X2NvdW50YGAgdG8gZ2V0IHRoZSBudW1iZXIgb2YgdXNlZA0KPiArICAgIGRlc2NyaXB0b3JzIG9m IGEgVHggcXVldWUuDQo+ICsNCj4gDQo+ICBSZW1vdmVkIEl0ZW1zDQo+ICAtLS0tLS0tLS0tLS0t DQo+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaCBiL2xpYi9ldGhkZXYv ZXRoZGV2X2RyaXZlci5oDQo+IGluZGV4IGI0ODJjZDEyYmIuLmYwNWY2OGE2N2MgMTAwNjQ0DQo+ IC0tLSBhL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQo+ICsrKyBiL2xpYi9ldGhkZXYvZXRo ZGV2X2RyaXZlci5oDQo+IEBAIC01OCw2ICs1OCw4IEBAIHN0cnVjdCBydGVfZXRoX2RldiB7DQo+ ICAJZXRoX3J4X3F1ZXVlX2NvdW50X3QgcnhfcXVldWVfY291bnQ7DQo+ICAJLyoqIENoZWNrIHRo ZSBzdGF0dXMgb2YgYSBSeCBkZXNjcmlwdG9yICovDQo+ICAJZXRoX3J4X2Rlc2NyaXB0b3Jfc3Rh dHVzX3QgcnhfZGVzY3JpcHRvcl9zdGF0dXM7DQo+ICsJLyoqIEdldCB0aGUgbnVtYmVyIG9mIHVz ZWQgVHggZGVzY3JpcHRvcnMgKi8NCj4gKwlldGhfdHhfcXVldWVfY291bnRfdCB0eF9xdWV1ZV9j b3VudDsNCj4gIAkvKiogQ2hlY2sgdGhlIHN0YXR1cyBvZiBhIFR4IGRlc2NyaXB0b3IgKi8NCj4g IAlldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXNfdCB0eF9kZXNjcmlwdG9yX3N0YXR1czsNCj4gIAkv KiogUG9pbnRlciB0byBQTUQgdHJhbnNtaXQgbWJ1ZnMgcmV1c2UgZnVuY3Rpb24gKi8NCj4gZGlm ZiAtLWdpdCBhL2xpYi9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuYyBiL2xpYi9ldGhkZXYvZXRoZGV2 X3ByaXZhdGUuYw0KPiBpbmRleCBhNjU2ZGYyOTNjLi42MjY1MjQ1NThhIDEwMDY0NA0KPiAtLS0g YS9saWIvZXRoZGV2L2V0aGRldl9wcml2YXRlLmMNCj4gKysrIGIvbGliL2V0aGRldi9ldGhkZXZf cHJpdmF0ZS5jDQo+IEBAIC0yNzMsNiArMjczLDcgQEAgZXRoX2Rldl9mcF9vcHNfc2V0dXAoc3Ry dWN0IHJ0ZV9ldGhfZnBfb3BzICpmcG8sDQo+ICAJZnBvLT50eF9wa3RfcHJlcGFyZSA9IGRldi0+ dHhfcGt0X3ByZXBhcmU7DQo+ICAJZnBvLT5yeF9xdWV1ZV9jb3VudCA9IGRldi0+cnhfcXVldWVf Y291bnQ7DQo+ICAJZnBvLT5yeF9kZXNjcmlwdG9yX3N0YXR1cyA9IGRldi0+cnhfZGVzY3JpcHRv cl9zdGF0dXM7DQo+ICsJZnBvLT50eF9xdWV1ZV9jb3VudCA9IGRldi0+dHhfcXVldWVfY291bnQ7 DQo+ICAJZnBvLT50eF9kZXNjcmlwdG9yX3N0YXR1cyA9IGRldi0+dHhfZGVzY3JpcHRvcl9zdGF0 dXM7DQo+ICAJZnBvLT5yZWN5Y2xlX3R4X21idWZzX3JldXNlID0gZGV2LT5yZWN5Y2xlX3R4X21i dWZzX3JldXNlOw0KPiAgCWZwby0+cmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGwgPSBkZXYt PnJlY3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsOw0KPiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRl di9ldGhkZXZfdHJhY2VfcG9pbnRzLmMgYi9saWIvZXRoZGV2L2V0aGRldl90cmFjZV9wb2ludHMu Yw0KPiBpbmRleCA5MWY3MWQ4NjhiLi5iZDZkZDRlNzhhIDEwMDY0NA0KPiAtLS0gYS9saWIvZXRo ZGV2L2V0aGRldl90cmFjZV9wb2ludHMuYw0KPiArKysgYi9saWIvZXRoZGV2L2V0aGRldl90cmFj ZV9wb2ludHMuYw0KPiBAQCAtMzcsNiArMzcsOSBAQCBSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIo cnRlX2V0aF90cmFjZV9jYWxsX3J4X2NhbGxiYWNrcywNCj4gIFJURV9UUkFDRV9QT0lOVF9SRUdJ U1RFUihydGVfZXRoX3RyYWNlX2NhbGxfdHhfY2FsbGJhY2tzLA0KPiAgCWxpYi5ldGhkZXYuY2Fs bF90eF9jYWxsYmFja3MpDQo+IA0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9ldGhf dHJhY2VfdHhfcXVldWVfY291bnQsDQo+ICsJbGliLmV0aGRldi50eF9xdWV1ZV9jb3VudCkNCj4g Kw0KPiAgUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9ldGhfdHJhY2VfaXRlcmF0b3JfaW5p dCwNCj4gIAlsaWIuZXRoZGV2Lml0ZXJhdG9yX2luaXQpDQo+IA0KPiBkaWZmIC0tZ2l0IGEvbGli L2V0aGRldi9ydGVfZXRoZGV2LmggYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuaA0KPiBpbmRleCBi N2Y1MmUwM2E1Li4yNjg3YzIzZmE2IDEwMDY0NA0KPiAtLS0gYS9saWIvZXRoZGV2L3J0ZV9ldGhk ZXYuaA0KPiArKysgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuaA0KPiBAQCAtNjgyMyw2ICs2ODIz LDg2IEBAIHJ0ZV9ldGhfcmVjeWNsZV9tYnVmcyh1aW50MTZfdCByeF9wb3J0X2lkLCB1aW50MTZf dCByeF9xdWV1ZV9pZCwNCj4gIF9fcnRlX2V4cGVyaW1lbnRhbA0KPiAgaW50IHJ0ZV9ldGhfYnVm ZmVyX3NwbGl0X2dldF9zdXBwb3J0ZWRfaGRyX3B0eXBlcyh1aW50MTZfdCBwb3J0X2lkLCB1aW50 MzJfdCAqcHR5cGVzLCBpbnQgbnVtKTsNCj4gDQo+ICsvKioNCj4gKyAqIEB3YXJuaW5nDQo+ICsg KiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2UsIG9yIGJlIHJlbW92ZWQsIHdp dGhvdXQgcHJpb3Igbm90aWNlDQo+ICsgKg0KPiArICogR2V0IHRoZSBudW1iZXIgb2YgdXNlZCBk ZXNjcmlwdG9ycyBvZiBhIFR4IHF1ZXVlDQo+ICsgKg0KPiArICogVGhpcyBmdW5jdGlvbiByZXRy aWV2ZXMgdGhlIG51bWJlciBvZiB1c2VkIGRlc2NyaXB0b3JzIG9mIGEgdHJhbnNtaXQgcXVldWUu DQo+ICsgKiBBcHBsaWNhdGlvbnMgY2FuIHVzZSB0aGlzIEFQSSBpbiB0aGUgZmFzdCBwYXRoIHRv IGluc3BlY3QgVHggcXVldWUgb2NjdXBhbmN5IGFuZCB0YWtlDQo+ICsgKiBhcHByb3ByaWF0ZSBh Y3Rpb25zIGJhc2VkIG9uIHRoZSBhdmFpbGFibGUgZnJlZSBkZXNjcmlwdG9ycy4NCj4gKyAqIEFu IGV4YW1wbGUgYWN0aW9uIGNvdWxkIGJlIGltcGxlbWVudGluZyB0aGUgUmFuZG9tIEVhcmx5IERp c2NhcmQgKFJFRCkuDQo+ICsgKg0KPiArICogU2luY2UgaXQncyBhIGZhc3QtcGF0aCBmdW5jdGlv biwgbm8gY2hlY2sgaXMgcGVyZm9ybWVkIG9uIHBvcnRfaWQgYW5kDQo+ICsgKiBxdWV1ZV9pZC4g VGhlIGNhbGxlciBtdXN0IHRoZXJlZm9yZSBlbnN1cmUgdGhhdCB0aGUgcG9ydCBpcyBlbmFibGVk DQo+ICsgKiBhbmQgdGhlIHF1ZXVlIGlzIGNvbmZpZ3VyZWQgYW5kIHJ1bm5pbmcuDQo+ICsgKg0K PiArICogQHBhcmFtIHBvcnRfaWQNCj4gKyAqICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUg ZGV2aWNlLg0KPiArICogQHBhcmFtIHF1ZXVlX2lkDQo+ICsgKiAgIFRoZSBpbmRleCBvZiB0aGUg dHJhbnNtaXQgcXVldWUuDQo+ICsgKiAgIFRoZSB2YWx1ZSBtdXN0IGJlIGluIHRoZSByYW5nZSBb MCwgbmJfdHhfcXVldWUgLSAxXSBwcmV2aW91c2x5IHN1cHBsaWVkDQo+ICsgKiAgIHRvIHJ0ZV9l dGhfZGV2X2NvbmZpZ3VyZSgpLg0KPiArICogQHJldHVybg0KPiArICogIFRoZSBudW1iZXIgb2Yg dXNlZCBkZXNjcmlwdG9ycyBpbiB0aGUgc3BlY2lmaWMgcXVldWUsIG9yOg0KPiArICogICAtICgt RU5PREVWKSBpZiAqcG9ydF9pZCogaXMgaW52YWxpZC4gRW5hYmxlZCBvbmx5IHdoZW4gUlRFX0VU SERFVl9ERUJVR19UWCBpcyBlbmFibGVkDQo+ICsgKiAgIC0gKC1FSU5WQUwpIGlmICpxdWV1ZV9p ZCogaXMgaW52YWxpZC4gRW5hYmxlZCBvbmx5IHdoZW4gUlRFX0VUSERFVl9ERUJVR19UWCBpcyBl bmFibGVkDQo+ICsgKiAgIC0gKC1FTk9UU1VQKSBpZiB0aGUgZGV2aWNlIGRvZXMgbm90IHN1cHBv cnQgdGhpcyBmdW5jdGlvbi4NCj4gKyAqDQo+ICsgKiBAbm90ZSBUaGlzIGZ1bmN0aW9uIGlzIGRl c2lnbmVkIGZvciBmYXN0LXBhdGggdXNlLg0KPiArICogQG5vdGUgVGhlcmUgaXMgbm8gcmVxdWly ZW1lbnQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBydGVfZXRoX3R4X2J1cnN0KCkgaW52 b2NhdGlvbi4NCj4gKyAqIEBub3RlIFV0aWxpemUgdGhpcyBmdW5jdGlvbiBleGNsdXNpdmVseSB3 aGVuIHRoZSBjYWxsZXIgbmVlZHMgdG8gZGV0ZXJtaW5lIHRoZSB1c2VkIHF1ZXVlIGNvdW50DQo+ ICsgKiBhY3Jvc3MgYWxsIGRlc2NyaXB0b3JzIG9mIGEgVHggcXVldWUuIElmIHRoZSB1c2UgY2Fz ZSBvbmx5IGludm9sdmVzIGNoZWNraW5nIHRoZSBzdGF0dXMgb2YgYQ0KPiArICogc3BlY2lmaWMg ZGVzY3JpcHRvciBzbG90LCBvcHQgZm9yIHJ0ZV9ldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXMoKSBp bnN0ZWFkLg0KPiArICovDQo+ICsNCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiArc3RhdGljIGlu bGluZSBpbnQNCj4gK3J0ZV9ldGhfdHhfcXVldWVfY291bnQodWludDE2X3QgcG9ydF9pZCwgdWlu dDE2X3QgcXVldWVfaWQpDQo+ICt7DQo+ICsJc3RydWN0IHJ0ZV9ldGhfZnBfb3BzICpmb3BzOw0K PiArCXZvaWQgKnFkOw0KPiArCWludCByYzsNCj4gKw0KPiArI2lmZGVmIFJURV9FVEhERVZfREVC VUdfVFgNCj4gKwlpZiAocG9ydF9pZCA+PSBSVEVfTUFYX0VUSFBPUlRTIHx8ICFydGVfZXRoX2Rl dl9pc192YWxpZF9wb3J0KHBvcnRfaWQpKSB7DQo+ICsJCVJURV9FVEhERVZfTE9HX0xJTkUoRVJS LCAiSW52YWxpZCBwb3J0X2lkPSV1IiwgcG9ydF9pZCk7DQo+ICsJCXJjID0gLUVOT0RFVjsNCj4g KwkJZ290byBvdXQ7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKHF1ZXVlX2lkID49IFJURV9NQVhfUVVF VUVTX1BFUl9QT1JUKSB7DQo+ICsJCVJURV9FVEhERVZfTE9HX0xJTkUoRVJSLCAiSW52YWxpZCBx dWV1ZV9pZD0ldSBmb3IgcG9ydF9pZD0ldSIsDQo+ICsJCQkJICAgIHF1ZXVlX2lkLCBwb3J0X2lk KTsNCj4gKwkJcmMgPSAtRUlOVkFMOw0KPiArCQlnb3RvIG91dDsNCj4gKwl9DQo+ICsjZW5kaWYN Cj4gKw0KPiArCS8qIEZldGNoIHBvaW50ZXIgdG8gVHggcXVldWUgZGF0YSAqLw0KPiArCWZvcHMg PSAmcnRlX2V0aF9mcF9vcHNbcG9ydF9pZF07DQo+ICsJcWQgPSBmb3BzLT50eHEuZGF0YVtxdWV1 ZV9pZF07DQo+ICsNCj4gKyNpZmRlZiBSVEVfRVRIREVWX0RFQlVHX1RYDQo+ICsJaWYgKHFkID09 IE5VTEwpIHsNCj4gKwkJUlRFX0VUSERFVl9MT0dfTElORShFUlIsICJJbnZhbGlkIHF1ZXVlX2lk PSV1IGZvciBwb3J0X2lkPSV1IiwNCj4gKwkJCQkgICAgcXVldWVfaWQsIHBvcnRfaWQpOw0KPiAr CQlyYyA9IC1FSU5WQUw7DQo+ICsJCWdvdG8gb3V0Ow0KPiArCX0NCj4gKyNlbmRpZg0KPiArCWlm IChmb3BzLT50eF9xdWV1ZV9jb3VudCA9PSBOVUxMKSB7DQo+ICsJCXJjID0gLUVOT1RTVVA7DQo+ ICsJCWdvdG8gb3V0Ow0KPiArCX0NCj4gKw0KPiArCXJjID0gZm9wcy0+dHhfcXVldWVfY291bnQo cWQpOw0KPiArDQo+ICtvdXQ6DQo+ICsJcnRlX2V0aF90cmFjZV90eF9xdWV1ZV9jb3VudChwb3J0 X2lkLCBxdWV1ZV9pZCwgcmMpOw0KPiArCXJldHVybiByYzsNCj4gK30NCj4gICNpZmRlZiBfX2Nw bHVzcGx1cw0KPiAgfQ0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9l dGhkZXZfY29yZS5oIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2X2NvcmUuaA0KPiBpbmRleCA0YmZh Zjc5YzZjLi5hMThmMjQyY2E0IDEwMDY0NA0KPiAtLS0gYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXZf Y29yZS5oDQo+ICsrKyBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldl9jb3JlLmgNCj4gQEAgLTUwLDYg KzUwLDkgQEAgdHlwZWRlZiB1aW50MzJfdCAoKmV0aF9yeF9xdWV1ZV9jb3VudF90KSh2b2lkICpy eHEpOw0KPiAgLyoqIEBpbnRlcm5hbCBDaGVjayB0aGUgc3RhdHVzIG9mIGEgUnggZGVzY3JpcHRv ciAqLw0KPiAgdHlwZWRlZiBpbnQgKCpldGhfcnhfZGVzY3JpcHRvcl9zdGF0dXNfdCkodm9pZCAq cnhxLCB1aW50MTZfdCBvZmZzZXQpOw0KPiANCj4gKy8qKiBAaW50ZXJuYWwgR2V0IG51bWJlciBv ZiB1c2VkIGRlc2NyaXB0b3JzIG9uIGEgdHJhbnNtaXQgcXVldWUuICovDQo+ICt0eXBlZGVmIGlu dCAoKmV0aF90eF9xdWV1ZV9jb3VudF90KSh2b2lkICp0eHEpOw0KPiArDQo+ICAvKiogQGludGVy bmFsIENoZWNrIHRoZSBzdGF0dXMgb2YgYSBUeCBkZXNjcmlwdG9yICovDQo+ICB0eXBlZGVmIGlu dCAoKmV0aF90eF9kZXNjcmlwdG9yX3N0YXR1c190KSh2b2lkICp0eHEsIHVpbnQxNl90IG9mZnNl dCk7DQo+IA0KPiBAQCAtMTE2LDcgKzExOSw5IEBAIHN0cnVjdCBydGVfZXRoX2ZwX29wcyB7DQo+ ICAJZXRoX3R4X2Rlc2NyaXB0b3Jfc3RhdHVzX3QgdHhfZGVzY3JpcHRvcl9zdGF0dXM7DQo+ICAJ LyoqIENvcHkgdXNlZCBtYnVmcyBmcm9tIFR4IG1idWYgcmluZyBpbnRvIFJ4LiAqLw0KPiAgCWV0 aF9yZWN5Y2xlX3R4X21idWZzX3JldXNlX3QgcmVjeWNsZV90eF9tYnVmc19yZXVzZTsNCj4gLQl1 aW50cHRyX3QgcmVzZXJ2ZWQyWzJdOw0KPiArCS8qKiBHZXQgdGhlIG51bWJlciBvZiB1c2VkIFR4 IGRlc2NyaXB0b3JzLiAqLw0KPiArCWV0aF90eF9xdWV1ZV9jb3VudF90IHR4X3F1ZXVlX2NvdW50 Ow0KPiArCXVpbnRwdHJfdCByZXNlcnZlZDJbMV07DQo+ICAJLyoqQH0qLw0KPiANCj4gIH0gX19y dGVfY2FjaGVfYWxpZ25lZDsNCj4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldl90 cmFjZV9mcC5oIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2X3RyYWNlX2ZwLmgNCj4gaW5kZXggMTg2 MjcxYzlmZi4uNDBiNmU0NzU2YiAxMDA2NDQNCj4gLS0tIGEvbGliL2V0aGRldi9ydGVfZXRoZGV2 X3RyYWNlX2ZwLmgNCj4gKysrIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2X3RyYWNlX2ZwLmgNCj4g QEAgLTczLDYgKzczLDE0IEBAIFJURV9UUkFDRV9QT0lOVF9GUCgNCj4gIAlydGVfdHJhY2VfcG9p bnRfZW1pdF91NjQoY291bnQpOw0KPiAgKQ0KPiANCj4gK1JURV9UUkFDRV9QT0lOVF9GUCgNCj4g KwlydGVfZXRoX3RyYWNlX3R4X3F1ZXVlX2NvdW50LA0KPiArCVJURV9UUkFDRV9QT0lOVF9BUkdT KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLCBpbnQgcmMpLA0KPiArCXJ0ZV90 cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91 MTYocXVldWVfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyYyk7DQo+ICspDQo+ ICsNCj4gICNpZmRlZiBfX2NwbHVzcGx1cw0KPiAgfQ0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQg YS9saWIvZXRoZGV2L3ZlcnNpb24ubWFwIGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiBpbmRl eCBhMDUwYmFhYjBmLi43M2E3ODhkOTFhIDEwMDY0NA0KPiAtLS0gYS9saWIvZXRoZGV2L3ZlcnNp b24ubWFwDQo+ICsrKyBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gQEAgLTMxOSw2ICszMTks NyBAQCBFWFBFUklNRU5UQUwgew0KPiANCj4gIAkjIGFkZGVkIGluIDI0LjAzDQo+ICAJcnRlX2V0 aF9maW5kX3Jzc19hbGdvOw0KPiArCXJ0ZV9ldGhfdHhfcXVldWVfY291bnQ7DQo+ICB9Ow0KPiAN Cj4gIElOVEVSTkFMIHsNCj4gLS0NCg0KQWNrZWQtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29u c3RhbnRpbi5hbmFueWV2QGh1YXdlaS5jb20+DQoNCj4gMi40My4wDQoNCg==