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 CCC07424C1; Mon, 10 Jun 2024 16:24:31 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 55978402A9; Mon, 10 Jun 2024 16:24:31 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 9C0AD40294 for ; Mon, 10 Jun 2024 16:24:29 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.231]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4VyYpy1vXCz6JB6Z; Mon, 10 Jun 2024 22:19:54 +0800 (CST) Received: from frapeml100007.china.huawei.com (unknown [7.182.85.133]) by mail.maildlp.com (Postfix) with ESMTPS id F37FB1400D4; Mon, 10 Jun 2024 22:24:26 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100007.china.huawei.com (7.182.85.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Mon, 10 Jun 2024 16:24:26 +0200 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.039; Mon, 10 Jun 2024 16:24:26 +0200 From: Konstantin Ananyev To: Paul Szczepanek , "dev@dpdk.org" CC: "mb@smartsharesystems.com" , Jack Bond-Preston , Nathan Brown Subject: RE: [PATCH v14 2/6] mempool: add functions to get extra mempool info Thread-Topic: [PATCH v14 2/6] mempool: add functions to get extra mempool info Thread-Index: AQHauO0S6n3UoeUNGU2ZCFJMjreTcbHBD9QA Date: Mon, 10 Jun 2024 14:24:26 +0000 Message-ID: <91c29c07d353422280fb50e5e80060b3@huawei.com> References: <20230927150854.3670391-1-paul.szczepanek@arm.com> <20240607151000.98562-1-paul.szczepanek@arm.com> <20240607151000.98562-3-paul.szczepanek@arm.com> In-Reply-To: <20240607151000.98562-3-paul.szczepanek@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.81.199.1] 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 DQoNCj4gQWRkIHR3byBmdW5jdGlvbnM6DQo+IC0gcnRlX21lbXBvb2xfZ2V0X21lbV9yYW5nZSAt IGdldCB2aXJ0dWFsIG1lbW9yeSByYW5nZQ0KPiBvZiB0aGUgb2JqZWN0cyBpbiB0aGUgbWVtcG9v bCwNCj4gLSBydGVfbWVtcG9vbF9nZXRfb2JqX2FsaWdubWVudCAtIGdldCBhbGlnbm1lbnQgb2YN Cj4gb2JqZWN0cyBpbiB0aGUgbWVtcG9vbC4NCj4gDQo+IEFkZCB0d28gdGVzdHMgdGhhdCB0ZXN0 IHRoZXNlIG5ldyBmdW5jdGlvbnMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBQYXVsIFN6Y3plcGFu ZWsgPHBhdWwuc3pjemVwYW5la0Bhcm0uY29tPg0KPiBSZXZpZXdlZC1ieTogSmFjayBCb25kLVBy ZXN0b24gPGphY2suYm9uZC1wcmVzdG9uQGZvc3MuYXJtLmNvbT4NCj4gUmV2aWV3ZWQtYnk6IE5h dGhhbiBCcm93biA8bmF0aGFuLmJyb3duQGFybS5jb20+DQo+IFJldmlld2VkLWJ5OiBNb3J0ZW4g QnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiBBY2tlZC1ieTogTW9ydGVuIEJy w7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gLS0tDQo+ICBhcHAvdGVzdC90ZXN0 X21lbXBvb2wuYyAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr DQo+ICBsaWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysr KysrKw0KPiAgbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCB8IDQ3ICsrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ICBsaWIvbWVtcG9vbC92ZXJzaW9uLm1hcCAgIHwgIDMgKysNCj4gIDQgZmls ZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9hcHAvdGVz dC90ZXN0X21lbXBvb2wuYyBiL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5jDQo+IGluZGV4IGFkN2Vi ZDYzNjMuLjNmN2JhNTg3MmQgMTAwNjQ0DQo+IC0tLSBhL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5j DQo+ICsrKyBiL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5jDQo+IEBAIC04NDMsMTYgKzg0MywxOSBA QCB0ZXN0X21lbXBvb2wodm9pZCkNCj4gIAlpbnQgcmV0ID0gLTE7DQo+ICAJdWludDMyX3QgbmJf b2JqcyA9IDA7DQo+ICAJdWludDMyX3QgbmJfbWVtX2NodW5rcyA9IDA7DQo+ICsJc2l6ZV90IGFs aWdubWVudCA9IDA7DQo+ICAJc3RydWN0IHJ0ZV9tZW1wb29sICptcF9jYWNoZSA9IE5VTEw7DQo+ ICAJc3RydWN0IHJ0ZV9tZW1wb29sICptcF9ub2NhY2hlID0gTlVMTDsNCj4gIAlzdHJ1Y3QgcnRl X21lbXBvb2wgKm1wX3N0YWNrX2Fub24gPSBOVUxMOw0KPiAgCXN0cnVjdCBydGVfbWVtcG9vbCAq bXBfc3RhY2tfbWVtcG9vbF9pdGVyID0gTlVMTDsNCj4gIAlzdHJ1Y3QgcnRlX21lbXBvb2wgKm1w X3N0YWNrID0gTlVMTDsNCj4gIAlzdHJ1Y3QgcnRlX21lbXBvb2wgKmRlZmF1bHRfcG9vbCA9IE5V TEw7DQo+ICsJc3RydWN0IHJ0ZV9tZW1wb29sICptcF9hbGlnbm1lbnQgPSBOVUxMOw0KPiAgCXN0 cnVjdCBtcF9kYXRhIGNiX2FyZyA9IHsNCj4gIAkJLnJldCA9IC0xDQo+ICAJfTsNCj4gIAljb25z dCBjaGFyICpkZWZhdWx0X3Bvb2xfb3BzID0gcnRlX21idWZfYmVzdF9tZW1wb29sX29wcygpOw0K PiArCXN0cnVjdCBydGVfbWVtcG9vbF9tZW1fcmFuZ2VfaW5mbyBtZW1fcmFuZ2UgPSB7IDAgfTsN Cj4gDQo+ICAJLyogY3JlYXRlIGEgbWVtcG9vbCAod2l0aG91dCBjYWNoZSkgKi8NCj4gIAltcF9u b2NhY2hlID0gcnRlX21lbXBvb2xfY3JlYXRlKCJ0ZXN0X25vY2FjaGUiLCBNRU1QT09MX1NJWkUs DQo+IEBAIC05NjcsNiArOTcwLDcyIEBAIHRlc3RfbWVtcG9vbCh2b2lkKQ0KPiAgCX0NCj4gIAly dGVfbWVtcG9vbF9vYmpfaXRlcihkZWZhdWx0X3Bvb2wsIG15X29ial9pbml0LCBOVUxMKTsNCj4g DQo+ICsJaWYgKHJ0ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2UoZGVmYXVsdF9wb29sLCAmbWVtX3Jh bmdlKSkgew0KPiArCQlwcmludGYoImNhbm5vdCBnZXQgbWVtIHJhbmdlIGZyb20gZGVmYXVsdCBt ZW1wb29sXG4iKTsNCj4gKwkJR09UT19FUlIocmV0LCBlcnIpOw0KPiArCX0NCj4gKw0KPiArCWlm IChydGVfbWVtcG9vbF9nZXRfbWVtX3JhbmdlKE5VTEwsIE5VTEwpICE9IC1FSU5WQUwpIHsNCj4g KwkJcHJpbnRmKCJydGVfbWVtcG9vbF9nZXRfbWVtX3JhbmdlIGZhaWxlZCB0byByZXR1cm4gLUVJ TlZBTCAiDQo+ICsJCQkJIndoZW4gcGFzc2VkIGludmFsaWQgYXJndW1lbnRzXG4iKTsNCj4gKwkJ R09UT19FUlIocmV0LCBlcnIpOw0KPiArCX0NCj4gKw0KPiArCWlmIChtZW1fcmFuZ2Uuc3RhcnQg PT0gTlVMTCB8fCBtZW1fcmFuZ2UubGVuZ3RoIDwNCj4gKwkJCShNRU1QT09MX1NJWkUgKiBNRU1Q T09MX0VMVF9TSVpFKSkgew0KPiArCQlwcmludGYoIm1lbSByYW5nZSBvZiBkZWZhdWx0IG1lbXBv b2wgaXMgaW52YWxpZFxuIik7DQo+ICsJCUdPVE9fRVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsN Cj4gKwkvKiBieSBkZWZhdWx0IG1lbXBvb2wgb2JqZWN0cyBhcmUgYWxpZ25lZCBieSBSVEVfTUVN UE9PTF9BTElHTiAqLw0KPiArCWFsaWdubWVudCA9IHJ0ZV9tZW1wb29sX2dldF9vYmpfYWxpZ25t ZW50KGRlZmF1bHRfcG9vbCk7DQo+ICsJaWYgKGFsaWdubWVudCAhPSBSVEVfTUVNUE9PTF9BTElH Tikgew0KPiArCQlwcmludGYoInJ0ZV9tZW1wb29sX2dldF9vYmpfYWxpZ25tZW50IHJldHVybmVk IHdyb25nIHZhbHVlLCAiDQo+ICsJCQkJImV4cGVjdGVkICV6dSwgcmV0dXJuZWQgJXp1XG4iLA0K PiArCQkJCShzaXplX3QpUlRFX01FTVBPT0xfQUxJR04sIGFsaWdubWVudCk7DQo+ICsJCUdPVE9f RVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsNCj4gKwkvKiBjcmVhdGUgYSBtZW1wb29sIHdpdGgg YSBSVEVfTUVNUE9PTF9GX05PX0NBQ0hFX0FMSUdOIGZsYWcgKi8NCj4gKwltcF9hbGlnbm1lbnQg PSBydGVfbWVtcG9vbF9jcmVhdGUoInRlc3RfYWxpZ25tZW50IiwNCj4gKwkJMSwgOCwgLyogdGhl IHNtYWxsIHNpemUgZ3VhcmFudGVlcyBzaW5nbGUgbWVtb3J5IGNodW5rICovDQo+ICsJCTAsIDAs IE5VTEwsIE5VTEwsIG15X29ial9pbml0LCBOVUxMLA0KPiArCQlTT0NLRVRfSURfQU5ZLCBSVEVf TUVNUE9PTF9GX05PX0NBQ0hFX0FMSUdOKTsNCj4gKw0KPiArCWlmIChtcF9hbGlnbm1lbnQgPT0g TlVMTCkgew0KPiArCQlwcmludGYoImNhbm5vdCBhbGxvY2F0ZSBtZW1wb29sIHdpdGggIg0KPiAr CQkJCSJSVEVfTUVNUE9PTF9GX05PX0NBQ0hFX0FMSUdOIGZsYWdcbiIpOw0KPiArCQlHT1RPX0VS UihyZXQsIGVycik7DQo+ICsJfQ0KPiArDQo+ICsJLyogbWVtcG9vbCB3YXMgY3JlYXRlZCB3aXRo IFJURV9NRU1QT09MX0ZfTk9fQ0FDSEVfQUxJR04NCj4gKwkgKiBhbmQgbWluaW11bSBhbGlnbm1l bnQgaXMgZXhwZWN0ZWQgd2hpY2ggaXMgc2l6ZW9mKHVpbnQ2NF90KQ0KPiArCSAqLw0KPiArCWFs aWdubWVudCA9IHJ0ZV9tZW1wb29sX2dldF9vYmpfYWxpZ25tZW50KG1wX2FsaWdubWVudCk7DQo+ ICsJaWYgKGFsaWdubWVudCAhPSBzaXplb2YodWludDY0X3QpKSB7DQo+ICsJCXByaW50ZigicnRl X21lbXBvb2xfZ2V0X29ial9hbGlnbm1lbnQgcmV0dXJuZWQgd3JvbmcgdmFsdWUsICINCj4gKwkJ CQkiZXhwZWN0ZWQgJXp1LCByZXR1cm5lZCAlenVcbiIsDQo+ICsJCQkJKHNpemVfdClzaXplb2Yo dWludDY0X3QpLCBhbGlnbm1lbnQpOw0KPiArCQlHT1RPX0VSUihyZXQsIGVycik7DQo+ICsJfQ0K PiArDQo+ICsJYWxpZ25tZW50ID0gcnRlX21lbXBvb2xfZ2V0X29ial9hbGlnbm1lbnQoTlVMTCk7 DQo+ICsJaWYgKGFsaWdubWVudCAhPSAwKSB7DQo+ICsJCXByaW50ZigicnRlX21lbXBvb2xfZ2V0 X29ial9hbGlnbm1lbnQgZmFpbGVkIHRvIHJldHVybiAwIGZvciAiDQo+ICsJCQkJIiBhbiBpbnZh bGlkIG1lbXBvb2xcbiIpOw0KPiArCQlHT1RPX0VSUihyZXQsIGVycik7DQo+ICsJfQ0KPiArDQo+ ICsJaWYgKHJ0ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2UobXBfYWxpZ25tZW50LCAmbWVtX3Jhbmdl KSkgew0KPiArCQlwcmludGYoImNhbm5vdCBnZXQgbWVtIHJhbmdlIGZyb20gbWVtcG9vbFxuIik7 DQo+ICsJCUdPVE9fRVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoIW1lbV9yYW5n ZS5pc19jb250aWd1b3VzKSB7DQo+ICsJCXByaW50ZigibWVtcG9vbCBub3QgY29udGlndW91c1xu Iik7DQo+ICsJCUdPVE9fRVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsNCj4gIAkvKiByZXRyaWV2 ZSB0aGUgbWVtcG9vbCBmcm9tIGl0cyBuYW1lICovDQo+ICAJaWYgKHJ0ZV9tZW1wb29sX2xvb2t1 cCgidGVzdF9ub2NhY2hlIikgIT0gbXBfbm9jYWNoZSkgew0KPiAgCQlwcmludGYoIkNhbm5vdCBs b29rdXAgbWVtcG9vbCBmcm9tIGl0cyBuYW1lXG4iKTsNCj4gQEAgLTEwMzksNiArMTEwOCw3IEBA IHRlc3RfbWVtcG9vbCh2b2lkKQ0KPiAgCXJ0ZV9tZW1wb29sX2ZyZWUobXBfc3RhY2tfbWVtcG9v bF9pdGVyKTsNCj4gIAlydGVfbWVtcG9vbF9mcmVlKG1wX3N0YWNrKTsNCj4gIAlydGVfbWVtcG9v bF9mcmVlKGRlZmF1bHRfcG9vbCk7DQo+ICsJcnRlX21lbXBvb2xfZnJlZShtcF9hbGlnbm1lbnQp Ow0KPiANCj4gIAlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiBkaWZmIC0tZ2l0IGEvbGliL21lbXBvb2wv cnRlX21lbXBvb2wuYyBiL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMNCj4gaW5kZXggMTIzOTBh MmM4MS4uNTRkMjgwNDE1MSAxMDA2NDQNCj4gLS0tIGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wu Yw0KPiArKysgYi9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5jDQo+IEBAIC0xMzg2LDYgKzEzODYs NTEgQEAgdm9pZCBydGVfbWVtcG9vbF93YWxrKHZvaWQgKCpmdW5jKShzdHJ1Y3QgcnRlX21lbXBv b2wgKiwgdm9pZCAqKSwNCj4gIAlydGVfbWNmZ19tZW1wb29sX3JlYWRfdW5sb2NrKCk7DQo+ICB9 DQo+IA0KPiAraW50IHJ0ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2UoY29uc3Qgc3RydWN0IHJ0ZV9t ZW1wb29sICptcCwNCj4gKwkJc3RydWN0IHJ0ZV9tZW1wb29sX21lbV9yYW5nZV9pbmZvICptZW1f cmFuZ2UpDQo+ICt7DQoNClRvIGZvbGxvdyBEUERLIGNvZGluZyBzdHlsZSBndWlkZToNCmludA0K cnRlX21lbXBvb2xfZ2V0X21lbV9yYW5nZSguLi4NCnNhbWUgZm9yIHRoZSBzZWNvbmQgZnVuY3Rp b24uIA0KIA0KDQo+ICsJaWYgKG1wID09IE5VTEwgfHwgbWVtX3JhbmdlID09IE5VTEwpDQo+ICsJ CXJldHVybiAtRUlOVkFMOw0KDQpBZ2FpbiwgdG8gZm9sbG93IERQREsgY29kaW5nIHN0eWxlOg0K VmFyaWFibGVzIHNob3VsZCBiZSBkZWNsYXJlZCBhdCB0aGUgc3RhcnQgb2YgYSBibG9jayBvZiBj b2RlIHJhdGhlciB0aGFuIGluIHRoZSBtaWRkbGUuDQpJLkUgLSBtb3ZlIHRoYXQgaW5wdXQgcGFy YW1zIGNoZWNrIGFmdGVyIGxvY2FsIHZhcnMgZGVmaW5pdGlvbiBibG9jay4gDQoNCldpdGggdGhh dCBjaGFuZ2VzIGluIHBsYWNlOg0KQWNrZWQtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3Rh bnRpbi5hbmFueWV2QGh1YXdlaS5jb20+DQoNCj4gKwl2b2lkICphZGRyZXNzX2xvdyA9ICh2b2lk ICopVUlOVFBUUl9NQVg7DQo+ICsJdm9pZCAqYWRkcmVzc19oaWdoID0gMDsNCj4gKwlzaXplX3Qg YWRkcmVzc19kaWZmID0gMDsNCj4gKwlzaXplX3QgdG90YWxfc2l6ZSA9IDA7DQo+ICsJc3RydWN0 IHJ0ZV9tZW1wb29sX21lbWhkciAqaGRyOw0KPiArDQo+ICsJLyogZ28gdGhyb3VnaCBtZW1vcnkg Y2h1bmtzIGFuZCBmaW5kIHRoZSBsb3dlc3QgYW5kIGhpZ2hlc3QgYWRkcmVzc2VzICovDQo+ICsJ U1RBSUxRX0ZPUkVBQ0goaGRyLCAmbXAtPm1lbV9saXN0LCBuZXh0KSB7DQo+ICsJCWlmIChhZGRy ZXNzX2xvdyA+IGhkci0+YWRkcikNCj4gKwkJCWFkZHJlc3NfbG93ID0gaGRyLT5hZGRyOw0KPiAr CQlpZiAoYWRkcmVzc19oaWdoIDwgUlRFX1BUUl9BREQoaGRyLT5hZGRyLCBoZHItPmxlbikpDQo+ ICsJCQlhZGRyZXNzX2hpZ2ggPSBSVEVfUFRSX0FERChoZHItPmFkZHIsIGhkci0+bGVuKTsNCj4g KwkJdG90YWxfc2l6ZSArPSBoZHItPmxlbjsNCj4gKwl9DQo+ICsNCj4gKwkvKiBjaGVjayBpZiBt ZW1wb29sIHdhcyBub3QgcG9wdWxhdGVkIHlldCAobm8gbWVtb3J5IGNodW5rcykgKi8NCj4gKwlp ZiAoYWRkcmVzc19sb3cgPT0gKHZvaWQgKilVSU5UUFRSX01BWCkNCj4gKwkJcmV0dXJuIC1FSU5W QUw7DQo+ICsNCj4gKwlhZGRyZXNzX2RpZmYgPSAoc2l6ZV90KVJURV9QVFJfRElGRihhZGRyZXNz X2hpZ2gsIGFkZHJlc3NfbG93KTsNCj4gKw0KPiArCW1lbV9yYW5nZS0+c3RhcnQgPSBhZGRyZXNz X2xvdzsNCj4gKwltZW1fcmFuZ2UtPmxlbmd0aCA9IGFkZHJlc3NfZGlmZjsNCj4gKwltZW1fcmFu Z2UtPmlzX2NvbnRpZ3VvdXMgPSAodG90YWxfc2l6ZSA9PSBhZGRyZXNzX2RpZmYpID8gdHJ1ZSA6 IGZhbHNlOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3NpemVfdCBydGVfbWVt cG9vbF9nZXRfb2JqX2FsaWdubWVudChjb25zdCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wKQ0KPiAr ew0KPiArCWlmIChtcCA9PSBOVUxMKQ0KPiArCQlyZXR1cm4gMDsNCg0KSW4gY2FzZSBvZiBtcD09 TlVMTCwgd291bGQgaXQgYmUgYmV0dGVyIHRvIHJldHVybiBuZWdhdGl2ZSBlcnJvciBjb2RlICgt RUlOVkFMIG9yIHNvKT8NCkluIHRoYXQgY2FzZSB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNoYW5n ZWQgdG8gcmV0dXJuIHNzaXplX3QgdGhvdWdoLg0KDQo+ICsNCj4gKwlpZiAobXAtPmZsYWdzICYg UlRFX01FTVBPT0xfRl9OT19DQUNIRV9BTElHTikNCj4gKwkJcmV0dXJuIHNpemVvZih1aW50NjRf dCk7DQo+ICsJZWxzZQ0KPiArCQlyZXR1cm4gUlRFX01FTVBPT0xfQUxJR047DQo+ICt9DQo+ICsN Cj4gIHN0cnVjdCBtZW1wb29sX2NhbGxiYWNrX2RhdGEgew0KPiAgCVRBSUxRX0VOVFJZKG1lbXBv b2xfY2FsbGJhY2tfZGF0YSkgY2FsbGJhY2tzOw0KPiAgCXJ0ZV9tZW1wb29sX2V2ZW50X2NhbGxi YWNrICpmdW5jOw0KPiBkaWZmIC0tZ2l0IGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCBiL2xp Yi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4gaW5kZXggMjNmZDVjODQ2NS4uOTkwNDkxYTdhNyAx MDA2NDQNCj4gLS0tIGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaA0KPiArKysgYi9saWIvbWVt cG9vbC9ydGVfbWVtcG9vbC5oDQo+IEBAIC0xOTE3LDYgKzE5MTcsNTMgQEAgdWludDMyX3QgcnRl X21lbXBvb2xfY2FsY19vYmpfc2l6ZSh1aW50MzJfdCBlbHRfc2l6ZSwgdWludDMyX3QgZmxhZ3Ms DQo+ICB2b2lkIHJ0ZV9tZW1wb29sX3dhbGsodm9pZCAoKmZ1bmMpKHN0cnVjdCBydGVfbWVtcG9v bCAqLCB2b2lkICphcmcpLA0KPiAgCQkgICAgICB2b2lkICphcmcpOw0KPiANCj4gKy8qKg0KPiAr ICogQSBzdHJ1Y3R1cmUgdXNlZCB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVt b3J5IHJhbmdlDQo+ICsgKiBvZiB0aGUgbWVtcG9vbC4NCj4gKyAqLw0KPiArc3RydWN0IHJ0ZV9t ZW1wb29sX21lbV9yYW5nZV9pbmZvIHsNCj4gKwkvKiogU3RhcnQgb2YgdGhlIG1lbW9yeSByYW5n ZSB1c2VkIGJ5IG1lbXBvb2wgb2JqZWN0cyAqLw0KPiArCXZvaWQgKnN0YXJ0Ow0KPiArCS8qKiBM ZW5ndGggb2YgdGhlIG1lbW9yeSByYW5nZSB1c2VkIGJ5IG1lbXBvb2wgb2JqZWN0cyAqLw0KPiAr CXNpemVfdCBsZW5ndGg7DQo+ICsJLyoqIEFyZSBhbGwgbWVtb3J5IGFkZHJlc3NlcyB1c2VkIGJ5 IG1lbXBvb2wgb2JqZWN0cyBjb250aWd1b3VzICovDQo+ICsJYm9vbCBpc19jb250aWd1b3VzOw0K PiArfTsNCj4gKw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFM OiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiArICoNCj4gKyAq IEdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVtb3J5IHJhbmdlIHVzZWQgYnkgdGhlIG1lbXBv b2wuDQo+ICsgKg0KPiArICogQHBhcmFtW2luXSBtcA0KPiArICogICBQb2ludGVyIHRvIGFuIGlu aXRpYWxpemVkIG1lbXBvb2wuDQo+ICsgKiBAcGFyYW1bb3V0XSBtZW1fcmFuZ2UNCj4gKyAqICAg UG9pbnRlciB0byBzdHJ1Y3Qgd2hpY2ggaXMgdXNlZCB0byByZXR1cm4gbG93ZXN0IGFkZHJlc3Ms DQo+ICsgKiAgIGxlbmd0aCBvZiB0aGUgbWVtb3J5IHJhbmdlIGNvbnRhaW5pbmcgYWxsIHRoZSBh ZGRyZXNzZXMsDQo+ICsgKiAgIGFuZCB3aGV0aGVyIHRoZXNlIGFkZHJlc3NlcyBhcmUgY29udGln dW91cy4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgMCBvbiBzdWNjZXNzLCAtRUlOVkFMIGlmIG1l bXBvb2wgaXMgbm90IHZhbGlkIG9yIG1lbV9yYW5nZSBpcyBOVUxMLg0KPiArICoqLw0KPiArX19y dGVfZXhwZXJpbWVudGFsDQo+ICtpbnQgcnRlX21lbXBvb2xfZ2V0X21lbV9yYW5nZShjb25zdCBz dHJ1Y3QgcnRlX21lbXBvb2wgKm1wLA0KPiArCQlzdHJ1Y3QgcnRlX21lbXBvb2xfbWVtX3Jhbmdl X2luZm8gKm1lbV9yYW5nZSk7DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBi IEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4N Cj4gKyAqDQo+ICsgKiBSZXR1cm4gb2JqZWN0IGFsaWdubWVudC4NCj4gKyAqDQo+ICsgKiBAcGFy YW1baW5dIG1wDQo+ICsgKiAgIFBvaW50ZXIgdG8gYSBtZW1wb29sLg0KPiArICogQHJldHVybg0K PiArICogICBPYmplY3QgYWxpZ25tZW50IGlmIG1wIGlzIHZhbGlkLiAwIGlmIG1wIGlzIE5VTEwu DQo+ICsgKg0KPiArICoqLw0KPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ICtzaXplX3QgcnRlX21l bXBvb2xfZ2V0X29ial9hbGlnbm1lbnQoY29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sICptcCk7DQo+ ICsNCj4gIC8qKg0KPiAgICogQGludGVybmFsIEdldCBwYWdlIHNpemUgdXNlZCBmb3IgbWVtcG9v bCBvYmplY3QgYWxsb2NhdGlvbi4NCj4gICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZXJuYWwgdG8g bWVtcG9vbCBsaWJyYXJ5IGFuZCBtZW1wb29sIGRyaXZlcnMuDQo+IGRpZmYgLS1naXQgYS9saWIv bWVtcG9vbC92ZXJzaW9uLm1hcCBiL2xpYi9tZW1wb29sL3ZlcnNpb24ubWFwDQo+IGluZGV4IDQ3 MzI3NzQwMGMuLjAyZGY2MzRiMmEgMTAwNjQ0DQo+IC0tLSBhL2xpYi9tZW1wb29sL3ZlcnNpb24u bWFwDQo+ICsrKyBiL2xpYi9tZW1wb29sL3ZlcnNpb24ubWFwDQo+IEBAIC01MCw2ICs1MCw5IEBA IEVYUEVSSU1FTlRBTCB7DQo+ICAJX19ydGVfbWVtcG9vbF90cmFjZV9nZXRfY29udGlnX2Jsb2Nr czsNCj4gIAlfX3J0ZV9tZW1wb29sX3RyYWNlX2RlZmF1bHRfY2FjaGU7DQo+ICAJX19ydGVfbWVt cG9vbF90cmFjZV9jYWNoZV9mbHVzaDsNCj4gKwkjIGFkZGVkIGluIDI0LjA3DQo+ICsJcnRlX21l bXBvb2xfZ2V0X21lbV9yYW5nZTsNCj4gKwlydGVfbWVtcG9vbF9nZXRfb2JqX2FsaWdubWVudDsN Cj4gIH07DQo+IA0KPiAgSU5URVJOQUwgew0KPiAtLQ0KPiAyLjI1LjENCg0K