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 7CB0F4416A; Thu, 6 Jun 2024 14:28:18 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6C1E540EAB; Thu, 6 Jun 2024 14:28:18 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id BAD98402E7 for ; Thu, 6 Jun 2024 14:28:17 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Vw3Qc5Xpwz6K6fy; Thu, 6 Jun 2024 20:23:36 +0800 (CST) Received: from frapeml100006.china.huawei.com (unknown [7.182.85.201]) by mail.maildlp.com (Postfix) with ESMTPS id F196C1400E7; Thu, 6 Jun 2024 20:28:15 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100006.china.huawei.com (7.182.85.201) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 6 Jun 2024 14:28:15 +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; Thu, 6 Jun 2024 14:28:15 +0200 From: Konstantin Ananyev To: Paul Szczepanek , "dev@dpdk.org" CC: "mb@smartsharesystems.com" , Jack Bond-Preston , Nathan Brown Subject: RE: [PATCH v13 2/6] mempool: add functions to get extra mempool info Thread-Topic: [PATCH v13 2/6] mempool: add functions to get extra mempool info Thread-Index: AQHasnWI2Fsv56oZjUGo8W2Uw/oTCLG6sLjw Date: Thu, 6 Jun 2024 12:28:15 +0000 Message-ID: <3fc68050355a4d018088c758823cd0ec@huawei.com> References: <20230927150854.3670391-2-paul.szczepanek@arm.com> <20240530094042.1960212-1-paul.szczepanek@arm.com> <20240530094042.1960212-3-paul.szczepanek@arm.com> In-Reply-To: <20240530094042.1960212-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.188.246] 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 IHRoZXNlIG5ldyBmdW5jdGlvbnMuDQoNCkxHVE0gaW4gZ2VuZXJhbCwgZmV3IG5pdHMvc3VnZ2Vz dGlvbnMgYmVsb3cuDQogDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBQYXVsIFN6Y3plcGFuZWsgPHBh dWwuc3pjemVwYW5la0Bhcm0uY29tPg0KPiBSZXZpZXdlZC1ieTogSmFjayBCb25kLVByZXN0b24g PGphY2suYm9uZC1wcmVzdG9uQGZvc3MuYXJtLmNvbT4NCj4gUmV2aWV3ZWQtYnk6IE5hdGhhbiBC cm93biA8bmF0aGFuLmJyb3duQGFybS5jb20+DQo+IEFja2VkLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8 bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiAtLS0NCj4gIGFwcC90ZXN0L3Rlc3RfbWVtcG9v bC5jICAgfCA3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxp Yi9tZW1wb29sL3J0ZV9tZW1wb29sLmMgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysrKw0K PiAgbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCB8IDQxICsrKysrKysrKysrKysrKysrKysrKysN Cj4gIGxpYi9tZW1wb29sL3ZlcnNpb24ubWFwICAgfCAgMyArKw0KPiAgNCBmaWxlcyBjaGFuZ2Vk LCAxNjMgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0L3Rlc3RfbWVt cG9vbC5jIGIvYXBwL3Rlc3QvdGVzdF9tZW1wb29sLmMNCj4gaW5kZXggYWQ3ZWJkNjM2My4uZjMy ZDRhM2JiOSAxMDA2NDQNCj4gLS0tIGEvYXBwL3Rlc3QvdGVzdF9tZW1wb29sLmMNCj4gKysrIGIv YXBwL3Rlc3QvdGVzdF9tZW1wb29sLmMNCj4gQEAgLTg0MywxMiArODQzLDE3IEBAIHRlc3RfbWVt cG9vbCh2b2lkKQ0KPiAgCWludCByZXQgPSAtMTsNCj4gIAl1aW50MzJfdCBuYl9vYmpzID0gMDsN Cj4gIAl1aW50MzJfdCBuYl9tZW1fY2h1bmtzID0gMDsNCj4gKwl2b2lkICpzdGFydCA9IE5VTEw7 DQo+ICsJc2l6ZV90IGxlbmd0aCA9IDA7DQo+ICsJc2l6ZV90IGFsaWdubWVudCA9IDA7DQo+ICsJ Ym9vbCByZXRfYm9vbCA9IGZhbHNlOw0KPiAgCXN0cnVjdCBydGVfbWVtcG9vbCAqbXBfY2FjaGUg PSBOVUxMOw0KPiAgCXN0cnVjdCBydGVfbWVtcG9vbCAqbXBfbm9jYWNoZSA9IE5VTEw7DQo+ICAJ c3RydWN0IHJ0ZV9tZW1wb29sICptcF9zdGFja19hbm9uID0gTlVMTDsNCj4gIAlzdHJ1Y3QgcnRl X21lbXBvb2wgKm1wX3N0YWNrX21lbXBvb2xfaXRlciA9IE5VTEw7DQo+ICAJc3RydWN0IHJ0ZV9t ZW1wb29sICptcF9zdGFjayA9IE5VTEw7DQo+ICAJc3RydWN0IHJ0ZV9tZW1wb29sICpkZWZhdWx0 X3Bvb2wgPSBOVUxMOw0KPiArCXN0cnVjdCBydGVfbWVtcG9vbCAqbXBfYWxpZ25tZW50ID0gTlVM TDsNCj4gIAlzdHJ1Y3QgbXBfZGF0YSBjYl9hcmcgPSB7DQo+ICAJCS5yZXQgPSAtMQ0KPiAgCX07 DQo+IEBAIC05NjcsNiArOTcyLDcxIEBAIHRlc3RfbWVtcG9vbCh2b2lkKQ0KPiAgCX0NCj4gIAly dGVfbWVtcG9vbF9vYmpfaXRlcihkZWZhdWx0X3Bvb2wsIG15X29ial9pbml0LCBOVUxMKTsNCj4g DQo+ICsJaWYgKHJ0ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2UoZGVmYXVsdF9wb29sLCAmc3RhcnQs ICZsZW5ndGgsIE5VTEwpKSB7DQo+ICsJCXByaW50ZigiY2Fubm90IGdldCBtZW0gcmFuZ2UgZnJv bSBkZWZhdWx0IG1lbXBvb2xcbiIpOw0KPiArCQlHT1RPX0VSUihyZXQsIGVycik7DQo+ICsJfQ0K PiArDQo+ICsJaWYgKHJ0ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2UoTlVMTCwgTlVMTCwgTlVMTCwg TlVMTCkgIT0gLUVJTlZBTCkgew0KPiArCQlwcmludGYoInJ0ZV9tZW1wb29sX2dldF9tZW1fcmFu Z2UgZmFpbGVkIHRvIHJldHVybiAtRUlOVkFMICINCj4gKwkJCQkid2hlbiBwYXNzZWQgaW52YWxp ZCBhcmd1bWVudHNcbiIpOw0KPiArCQlHT1RPX0VSUihyZXQsIGVycik7DQo+ICsJfQ0KPiArDQo+ ICsJaWYgKHN0YXJ0ID09IE5VTEwgfHwgbGVuZ3RoIDwgKE1FTVBPT0xfU0laRSAqIE1FTVBPT0xf RUxUX1NJWkUpKSB7DQo+ICsJCXByaW50ZigibWVtIHJhbmdlIG9mIGRlZmF1bHQgbWVtcG9vbCBp cyBpbnZhbGlkXG4iKTsNCj4gKwkJR09UT19FUlIocmV0LCBlcnIpOw0KPiArCX0NCj4gKw0KPiAr CS8qIGJ5IGRlZmF1bHQgbWVtcG9vbCBvYmplY3RzIGFyZSBhbGlnbmVkIGJ5IFJURV9NRU1QT09M X0FMSUdOICovDQo+ICsJYWxpZ25tZW50ID0gcnRlX21lbXBvb2xfZ2V0X29ial9hbGlnbm1lbnQo ZGVmYXVsdF9wb29sKTsNCj4gKwlpZiAoYWxpZ25tZW50ICE9IFJURV9NRU1QT09MX0FMSUdOKSB7 DQo+ICsJCXByaW50ZigicnRlX21lbXBvb2xfZ2V0X29ial9hbGlnbm1lbnQgcmV0dXJuZWQgd3Jv bmcgdmFsdWUsICINCj4gKwkJCQkiZXhwZWN0ZWQgJXp1LCByZXR1cm5lZCAlenVcbiIsDQo+ICsJ CQkJKHNpemVfdClSVEVfTUVNUE9PTF9BTElHTiwgYWxpZ25tZW50KTsNCj4gKwkJR09UT19FUlIo cmV0LCBlcnIpOw0KPiArCX0NCj4gKw0KPiArCS8qIGNyZWF0ZSBhIG1lbXBvb2wgd2l0aCBhIFJU RV9NRU1QT09MX0ZfTk9fQ0FDSEVfQUxJR04gZmxhZyAqLw0KPiArCW1wX2FsaWdubWVudCA9IHJ0 ZV9tZW1wb29sX2NyZWF0ZSgidGVzdF9hbGlnbm1lbnQiLA0KPiArCQkxLCA4LCAvKiB0aGUgc21h bGwgc2l6ZSBndWFyYW50ZWVzIHNpbmdsZSBtZW1vcnkgY2h1bmsgKi8NCj4gKwkJMCwgMCwgTlVM TCwgTlVMTCwgbXlfb2JqX2luaXQsIE5VTEwsDQo+ICsJCVNPQ0tFVF9JRF9BTlksIFJURV9NRU1Q T09MX0ZfTk9fQ0FDSEVfQUxJR04pOw0KPiArDQo+ICsJaWYgKG1wX2FsaWdubWVudCA9PSBOVUxM KSB7DQo+ICsJCXByaW50ZigiY2Fubm90IGFsbG9jYXRlIG1lbXBvb2wgd2l0aCAiDQo+ICsJCQkJ IlJURV9NRU1QT09MX0ZfTk9fQ0FDSEVfQUxJR04gZmxhZ1xuIik7DQo+ICsJCUdPVE9fRVJSKHJl dCwgZXJyKTsNCj4gKwl9DQo+ICsNCj4gKwkvKiBtZW1wb29sIHdhcyBjcmVhdGVkIHdpdGggUlRF X01FTVBPT0xfRl9OT19DQUNIRV9BTElHTg0KPiArCSAqIGFuZCBtaW5pbXVtIGFsaWdubWVudCBp cyBleHBlY3RlZCB3aGljaCBpcyBzaXplb2YodWludDY0X3QpDQo+ICsJICovDQo+ICsJYWxpZ25t ZW50ID0gcnRlX21lbXBvb2xfZ2V0X29ial9hbGlnbm1lbnQobXBfYWxpZ25tZW50KTsNCj4gKwlp ZiAoYWxpZ25tZW50ICE9IHNpemVvZih1aW50NjRfdCkpIHsNCj4gKwkJcHJpbnRmKCJydGVfbWVt cG9vbF9nZXRfb2JqX2FsaWdubWVudCByZXR1cm5lZCB3cm9uZyB2YWx1ZSwgIg0KPiArCQkJCSJl eHBlY3RlZCAlenUsIHJldHVybmVkICV6dVxuIiwNCj4gKwkJCQkoc2l6ZV90KXNpemVvZih1aW50 NjRfdCksIGFsaWdubWVudCk7DQo+ICsJCUdPVE9fRVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsN Cj4gKwlhbGlnbm1lbnQgPSBydGVfbWVtcG9vbF9nZXRfb2JqX2FsaWdubWVudChOVUxMKTsNCj4g KwlpZiAoYWxpZ25tZW50ICE9IDApIHsNCj4gKwkJcHJpbnRmKCJydGVfbWVtcG9vbF9nZXRfb2Jq X2FsaWdubWVudCBmYWlsZWQgdG8gcmV0dXJuIDAgZm9yICINCj4gKwkJCQkiIGFuIGludmFsaWQg bWVtcG9vbFxuIik7DQo+ICsJCUdPVE9fRVJSKHJldCwgZXJyKTsNCj4gKwl9DQo+ICsNCj4gKwlp ZiAocnRlX21lbXBvb2xfZ2V0X21lbV9yYW5nZShtcF9hbGlnbm1lbnQsIE5VTEwsIE5VTEwsICZy ZXRfYm9vbCkpIHsNCj4gKwkJcHJpbnRmKCJjYW5ub3QgZ2V0IG1lbSByYW5nZSBmcm9tIG1lbXBv b2xcbiIpOw0KPiArCQlHT1RPX0VSUihyZXQsIGVycik7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKCFy ZXRfYm9vbCkgew0KPiArCQlwcmludGYoIm1lbXBvb2wgbm90IGNvbnRpZ3VvdXNcbiIpOw0KPiAr CQlHT1RPX0VSUihyZXQsIGVycik7DQo+ICsJfQ0KPiArDQo+ICAJLyogcmV0cmlldmUgdGhlIG1l bXBvb2wgZnJvbSBpdHMgbmFtZSAqLw0KPiAgCWlmIChydGVfbWVtcG9vbF9sb29rdXAoInRlc3Rf bm9jYWNoZSIpICE9IG1wX25vY2FjaGUpIHsNCj4gIAkJcHJpbnRmKCJDYW5ub3QgbG9va3VwIG1l bXBvb2wgZnJvbSBpdHMgbmFtZVxuIik7DQo+IEBAIC0xMDM5LDYgKzExMDksNyBAQCB0ZXN0X21l bXBvb2wodm9pZCkNCj4gIAlydGVfbWVtcG9vbF9mcmVlKG1wX3N0YWNrX21lbXBvb2xfaXRlcik7 DQo+ICAJcnRlX21lbXBvb2xfZnJlZShtcF9zdGFjayk7DQo+ICAJcnRlX21lbXBvb2xfZnJlZShk ZWZhdWx0X3Bvb2wpOw0KPiArCXJ0ZV9tZW1wb29sX2ZyZWUobXBfYWxpZ25tZW50KTsNCj4gDQo+ ICAJcmV0dXJuIHJldDsNCj4gIH0NCj4gZGlmZiAtLWdpdCBhL2xpYi9tZW1wb29sL3J0ZV9tZW1w b29sLmMgYi9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5jDQo+IGluZGV4IDEyMzkwYTJjODEuLmIy NTUxNTcyZWQgMTAwNjQ0DQo+IC0tLSBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMNCj4gKysr IGIvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuYw0KPiBAQCAtMTM4Niw2ICsxMzg2LDU0IEBAIHZv aWQgcnRlX21lbXBvb2xfd2Fsayh2b2lkICgqZnVuYykoc3RydWN0IHJ0ZV9tZW1wb29sICosIHZv aWQgKiksDQo+ICAJcnRlX21jZmdfbWVtcG9vbF9yZWFkX3VubG9jaygpOw0KPiAgfQ0KPiANCj4g K2ludCBydGVfbWVtcG9vbF9nZXRfbWVtX3JhbmdlKHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsDQoN CklmIHBvc3NpYmxlOiAiY29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sICogbXAiLg0KIA0KDQo+ICsJ CXZvaWQgKiptZW1fcmFuZ2Vfc3RhcnQsIHNpemVfdCAqbWVtX3JhbmdlX2xlbmd0aCwNCj4gKwkJ Ym9vbCAqY29udGlndW91cykNCg0KSnVzciBhcyBhIHN1Z2dlc3Rpb246IGluc3RlYWQgb2YgaGF2 aW5nIDMgZGlmZmVyZW50IHBhcmFtcywgcHJvYmFibHkgY3JlYXRlIGFuDQphZ2dyZWdhdGUgc3Ry dWN0IGZvciB0aGVtOg0Kc3RydWN0IHJ0ZV9tZW1wb29sX3JhbmdlIHsNCiAgICB1aW50cHRyX3Qg c3RhcnQ7DQogICAgc2l6ZV90IGxlbmd0aDsNCiAgICBib29sIGNvbnRpZ3VvdXM7DQogfTsNCkFu ZCB0aGVuIHBhc3MgcG9pbnRlciB0byB0aGF0IHN0cnVjdCBhcyBhIHBhcmFtZXRlciB0byBmaWxs DQoNCj4gK3sNCj4gKwlpZiAobXAgPT0gTlVMTCkNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsN Cj4gKwl2b2lkICphZGRyZXNzX2xvdyA9ICh2b2lkICopVUlOVFBUUl9NQVg7DQo+ICsJdm9pZCAq YWRkcmVzc19oaWdoID0gMDsNCj4gKwlzaXplX3QgYWRkcmVzc19kaWZmID0gMDsNCj4gKwlzaXpl X3QgbWVtX3RvdGFsX3NpemUgPSAwOw0KPiArCXN0cnVjdCBydGVfbWVtcG9vbF9tZW1oZHIgKmhk cjsNCj4gKw0KPiArCS8qIGdvIHRocm91Z2ggbWVtb3J5IGNodW5rcyBhbmQgZmluZCB0aGUgbG93 ZXN0IGFuZCBoaWdoZXN0IGFkZHJlc3NlcyAqLw0KPiArCVNUQUlMUV9GT1JFQUNIKGhkciwgJm1w LT5tZW1fbGlzdCwgbmV4dCkgew0KPiArCQlpZiAoYWRkcmVzc19sb3cgPiBoZHItPmFkZHIpDQo+ ICsJCQlhZGRyZXNzX2xvdyA9IGhkci0+YWRkcjsNCj4gKwkJaWYgKGFkZHJlc3NfaGlnaCA8IFJU RV9QVFJfQUREKGhkci0+YWRkciwgaGRyLT5sZW4pKQ0KPiArCQkJYWRkcmVzc19oaWdoID0gUlRF X1BUUl9BREQoaGRyLT5hZGRyLCBoZHItPmxlbik7DQo+ICsJCW1lbV90b3RhbF9zaXplICs9IGhk ci0+bGVuOw0KPiArCX0NCj4gKw0KPiArCS8qIGNoZWNrIGlmIG1lbXBvb2wgd2FzIG5vdCBwb3B1 bGF0ZWQgeWV0IChubyBtZW1vcnkgY2h1bmtzKSAqLw0KPiArCWlmIChhZGRyZXNzX2xvdyA9PSAo dm9pZCAqKVVJTlRQVFJfTUFYKQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCWFkZHJl c3NfZGlmZiA9IChzaXplX3QpUlRFX1BUUl9ESUZGKGFkZHJlc3NfaGlnaCwgYWRkcmVzc19sb3cp Ow0KPiArCWlmIChtZW1fcmFuZ2Vfc3RhcnQgIT0gTlVMTCkNCj4gKwkJKm1lbV9yYW5nZV9zdGFy dCA9IGFkZHJlc3NfbG93Ow0KPiArCWlmIChtZW1fcmFuZ2VfbGVuZ3RoICE9IE5VTEwpDQo+ICsJ CSptZW1fcmFuZ2VfbGVuZ3RoID0gYWRkcmVzc19kaWZmOw0KPiArCWlmIChjb250aWd1b3VzICE9 IE5VTEwpDQo+ICsJCSpjb250aWd1b3VzID0gKG1lbV90b3RhbF9zaXplID09IGFkZHJlc3NfZGlm ZikgPyB0cnVlIDogZmFsc2U7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc2l6 ZV90IHJ0ZV9tZW1wb29sX2dldF9vYmpfYWxpZ25tZW50KHN0cnVjdCBydGVfbWVtcG9vbCAqbXAp DQoNCkFnYWluOiBjb25zdCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wOw0KDQo+ICt7DQo+ICsJaWYg KG1wID09IE5VTEwpDQo+ICsJCXJldHVybiAwOw0KPiArDQo+ICsJaWYgKG1wLT5mbGFncyAmIFJU RV9NRU1QT09MX0ZfTk9fQ0FDSEVfQUxJR04pDQo+ICsJCXJldHVybiBzaXplb2YodWludDY0X3Qp Ow0KPiArCWVsc2UNCj4gKwkJcmV0dXJuIFJURV9NRU1QT09MX0FMSUdOOw0KPiArfQ0KPiArDQo+ ICBzdHJ1Y3QgbWVtcG9vbF9jYWxsYmFja19kYXRhIHsNCj4gIAlUQUlMUV9FTlRSWShtZW1wb29s X2NhbGxiYWNrX2RhdGEpIGNhbGxiYWNrczsNCj4gIAlydGVfbWVtcG9vbF9ldmVudF9jYWxsYmFj ayAqZnVuYzsNCj4gZGlmZiAtLWdpdCBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmggYi9saWIv bWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+IGluZGV4IDIzZmQ1Yzg0NjUuLjhhOTc4MTRiMzkgMTAw NjQ0DQo+IC0tLSBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4gKysrIGIvbGliL21lbXBv b2wvcnRlX21lbXBvb2wuaA0KPiBAQCAtMTkxNyw2ICsxOTE3LDQ3IEBAIHVpbnQzMl90IHJ0ZV9t ZW1wb29sX2NhbGNfb2JqX3NpemUodWludDMyX3QgZWx0X3NpemUsIHVpbnQzMl90IGZsYWdzLA0K PiAgdm9pZCBydGVfbWVtcG9vbF93YWxrKHZvaWQgKCpmdW5jKShzdHJ1Y3QgcnRlX21lbXBvb2wg Kiwgdm9pZCAqYXJnKSwNCj4gIAkJICAgICAgdm9pZCAqYXJnKTsNCj4gDQo+ICsvKioNCj4gKyAq IEB3YXJuaW5nDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0 aG91dCBwcmlvciBub3RpY2UuDQo+ICsgKg0KPiArICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHRo ZSBtZW1vcnkgcmFuZ2UgdXNlZCBieSB0aGUgbWVtcG9vbC4NCj4gKyAqDQo+ICsgKiBAcGFyYW1b aW5dIG1wDQo+ICsgKiAgIFBvaW50ZXIgdG8gYW4gaW5pdGlhbGl6ZWQgbWVtcG9vbC4NCj4gKyAq IEBwYXJhbVtvdXRdIG1lbV9yYW5nZV9zdGFydA0KPiArICogICBSZXR1cm5zIGxvd2VzdCBhZGRy ZXNzIGluIG1lbXBvb2wuIE1heSBiZSBOVUxMLg0KPiArICogQHBhcmFtW291dF0gbWVtX3Jhbmdl X2xlbmd0aA0KPiArICogICBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG1lbW9yeSByYW5nZSBj b250YWluaW5nIGFsbCB0aGUNCj4gKyAqICAgdmlydHVhbCBhZGRyZXNzZXMgaW4gdGhlIG1lbW9y eSBwb29sLiBNYXkgYmUgTlVMTC4NCj4gKyAqIEBwYXJhbVtvdXRdIGNvbnRpZ3VvdXMNCj4gKyAq ICAgUmV0dXJucyB0cnVlIGlmIHZpcnR1YWwgYWRkcmVzc2VzIGluIHRoZSBtZW1vcnkgYWxsb2Nh dGVkIGZvciB0aGUNCj4gKyAqICAgbWVtcG9vbCBhcmUgY29udGlndW91cy4gTWF5IGJlIE5VTEwu DQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgIDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBtZW1wb29s IGlzIG5vdCB2YWxpZC4NCj4gKyAqDQo+ICsgKiovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4g K2ludCBydGVfbWVtcG9vbF9nZXRfbWVtX3JhbmdlKHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsDQo+ ICsJCXZvaWQgKiptZW1fcmFuZ2Vfc3RhcnQsIHNpemVfdCAqbWVtX3JhbmdlX2xlbmd0aCwNCj4g KwkJYm9vbCAqY29udGlndW91cyk7DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAq IEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGlj ZS4NCj4gKyAqDQo+ICsgKiBSZXR1cm4gb2JqZWN0IGFsaWdubWVudC4NCj4gKyAqDQo+ICsgKiBA cGFyYW1baW5dIG1wDQo+ICsgKiAgIFBvaW50ZXIgdG8gYSBtZW1wb29sLg0KPiArICoNCj4gKyAq IEByZXR1cm4NCj4gKyAqICAgT2JqZWN0IGFsaWdubWVudCBpZiBtcCBpcyB2YWxpZC4gMCBpZiBt cCBpcyBOVUxMLg0KPiArICoNCj4gKyAqKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiArc2l6 ZV90IHJ0ZV9tZW1wb29sX2dldF9vYmpfYWxpZ25tZW50KHN0cnVjdCBydGVfbWVtcG9vbCAqbXAp Ow0KPiArDQo+ICAvKioNCj4gICAqIEBpbnRlcm5hbCBHZXQgcGFnZSBzaXplIHVzZWQgZm9yIG1l bXBvb2wgb2JqZWN0IGFsbG9jYXRpb24uDQo+ICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVybmFs IHRvIG1lbXBvb2wgbGlicmFyeSBhbmQgbWVtcG9vbCBkcml2ZXJzLg0KPiBkaWZmIC0tZ2l0IGEv bGliL21lbXBvb2wvdmVyc2lvbi5tYXAgYi9saWIvbWVtcG9vbC92ZXJzaW9uLm1hcA0KPiBpbmRl eCA0NzMyNzc0MDBjLi4wMmRmNjM0YjJhIDEwMDY0NA0KPiAtLS0gYS9saWIvbWVtcG9vbC92ZXJz aW9uLm1hcA0KPiArKysgYi9saWIvbWVtcG9vbC92ZXJzaW9uLm1hcA0KPiBAQCAtNTAsNiArNTAs OSBAQCBFWFBFUklNRU5UQUwgew0KPiAgCV9fcnRlX21lbXBvb2xfdHJhY2VfZ2V0X2NvbnRpZ19i bG9ja3M7DQo+ICAJX19ydGVfbWVtcG9vbF90cmFjZV9kZWZhdWx0X2NhY2hlOw0KPiAgCV9fcnRl X21lbXBvb2xfdHJhY2VfY2FjaGVfZmx1c2g7DQo+ICsJIyBhZGRlZCBpbiAyNC4wNw0KPiArCXJ0 ZV9tZW1wb29sX2dldF9tZW1fcmFuZ2U7DQo+ICsJcnRlX21lbXBvb2xfZ2V0X29ial9hbGlnbm1l bnQ7DQo+ICB9Ow0KPiANCj4gIElOVEVSTkFMIHsNCj4gLS0NCj4gMi4yNS4xDQoNCg==