From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [RFC 1/6] rangeset_new() refactoring Date: Thu, 16 Feb 2017 12:14:27 +0000 Message-ID: References: <1487246610-8298-1-git-send-email-andrii.anisov@gmail.com> <1487246610-8298-2-git-send-email-andrii.anisov@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceKxC-0005o1-2f for xen-devel@lists.xenproject.org; Thu, 16 Feb 2017 12:14:30 +0000 In-Reply-To: <1487246610-8298-2-git-send-email-andrii.anisov@gmail.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: 'Andrii Anisov' , "xen-devel@lists.xenproject.org" Cc: Wei Liu , "sstabellini@kernel.org" , "andrii_anisov@epam.com" , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , "jbeulich@suse.com" , Ian Jackson List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEFuZHJpaSBBbmlzb3YgW21haWx0 bzphbmRyaWkuYW5pc292QGdtYWlsLmNvbV0KPiBTZW50OiAxNiBGZWJydWFyeSAyMDE3IDEyOjAz Cj4gVG86IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IENjOiBhbmRyaWlfYW5pc292 QGVwYW0uY29tOyBBbmRyZXcgQ29vcGVyCj4gPEFuZHJldy5Db29wZXIzQGNpdHJpeC5jb20+OyBH ZW9yZ2UgRHVubGFwCj4gPEdlb3JnZS5EdW5sYXBAY2l0cml4LmNvbT47IElhbiBKYWNrc29uIDxJ YW4uSmFja3NvbkBjaXRyaXguY29tPjsKPiBqYmV1bGljaEBzdXNlLmNvbTsga29ucmFkLndpbGtA b3JhY2xlLmNvbTsgUGF1bCBEdXJyYW50Cj4gPFBhdWwuRHVycmFudEBjaXRyaXguY29tPjsgc3N0 YWJlbGxpbmlAa2VybmVsLm9yZzsgVGltIChYZW4ub3JnKQo+IDx0aW1AeGVuLm9yZz47IFdlaSBM aXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cj4gU3ViamVjdDogW1JGQyAxLzZdIHJhbmdlc2V0X25l dygpIHJlZmFjdG9yaW5nCj4gCj4gRnJvbTogQW5kcmlpIEFuaXNvdiA8YW5kcmlpX2FuaXNvdkBl cGFtLmNvbT4KPiAKPiByYW5nZXNldF9uZXcgaXMgbWFkZSBkb21haW4gYWdub3N0aWMuIFRoZSBk b21haW4gc3BlY2lmaWMgY29kZQo+IGlzIG1vdmVkIHRvIGNvbW1vbi9kb21haW4uYzpkb21haW5f cmFuZ2VzZXRfbmV3KCkuCj4gCj4gSXQgaXMgc3RpbGwgbGVmdCBhIHJhbmdlc2V0cyBsaXN0IGZ1 bmN0aW9uYWxpdHk6IHJhbmdlc2V0X25ldygpIGlzCj4gcmV0dXJuaW5nIGl0cyBsaXN0IGhlYWQg aWYgcmVxdWVzdGVkLiBUaGlzIHdvdWxkIGJlIHJlY29uc2lkZXJlZAo+IGZ1cnRoZXIuCj4gCj4g U2lnbmVkLW9mZi1ieTogQW5kcmlpIEFuaXNvdiA8YW5kcmlpX2FuaXNvdkBlcGFtLmNvbT4KPiAt LS0KPiAgeGVuL2FyY2gveDg2L2RvbWFpbi5jICAgICAgfCAgMiArLQo+ICB4ZW4vYXJjaC94ODYv aHZtL2lvcmVxLmMgICB8ICA0ICsrLS0KPiAgeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgfCAg NCArKy0tCj4gIHhlbi9hcmNoL3g4Ni9zZXR1cC5jICAgICAgIHwgIDQgKystLQo+ICB4ZW4vY29t bW9uL2RvbWFpbi5jICAgICAgICB8IDIyICsrKysrKysrKysrKysrKysrKysrLS0KPiAgeGVuL2Nv bW1vbi9yYW5nZXNldC5jICAgICAgfCAxMiArKysrLS0tLS0tLS0KPiAgeGVuL2luY2x1ZGUveGVu L2RvbWFpbi5oICAgfCAgMyArKysKPiAgeGVuL2luY2x1ZGUveGVuL3Jhbmdlc2V0LmggfCAxOSAr KysrKysrKysrKy0tLS0tLS0tCj4gIDggZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwg MjUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYyBi L3hlbi9hcmNoL3g4Ni9kb21haW4uYwo+IGluZGV4IGVhZTY0M2YuLjkzZjE4ZDcgMTAwNjQ0Cj4g LS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbi5jCj4gKysrIGIveGVuL2FyY2gveDg2L2RvbWFpbi5j Cj4gQEAgLTYzMCw3ICs2MzAsNyBAQCBpbnQgYXJjaF9kb21haW5fY3JlYXRlKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkCj4gaW50IGRvbWNyX2ZsYWdzLAo+ICAgICAgICAgIGQtPmFyY2gueDg2 X21vZGVsICA9IGJvb3RfY3B1X2RhdGEueDg2X21vZGVsOwo+IAo+ICAgICAgICAgIGQtPmFyY2gu aW9wb3J0X2NhcHMgPQo+IC0gICAgICAgICAgICByYW5nZXNldF9uZXcoZCwgIkkvTyBQb3J0cyIs IFJBTkdFU0VURl9wcmV0dHlwcmludF9oZXgpOwo+ICsgICAgICAgICAgICBkb21haW5fcmFuZ2Vz ZXRfbmV3KGQsICJJL08gUG9ydHMiLCBSQU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4KTsKPiAgICAg ICAgICByYyA9IC1FTk9NRU07Cj4gICAgICAgICAgaWYgKCBkLT5hcmNoLmlvcG9ydF9jYXBzID09 IE5VTEwgKQo+ICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwo+IGluZGV4IDg4MDcx YWIuLjZkZjE5MWQgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCj4gKysr IGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCj4gQEAgLTUyMCw4ICs1MjAsOCBAQCBzdGF0aWMg aW50IGh2bV9pb3JlcV9zZXJ2ZXJfYWxsb2NfcmFuZ2VzZXRzKHN0cnVjdAo+IGh2bV9pb3JlcV9z ZXJ2ZXIgKnMsCj4gICAgICAgICAgaWYgKCByYyApCj4gICAgICAgICAgICAgIGdvdG8gZmFpbDsK PiAKPiAtICAgICAgICBzLT5yYW5nZVtpXSA9IHJhbmdlc2V0X25ldyhzLT5kb21haW4sIG5hbWUs Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkFOR0VTRVRGX3ByZXR0eXBy aW50X2hleCk7Cj4gKyAgICAgICAgcy0+cmFuZ2VbaV0gPSBkb21haW5fcmFuZ2VzZXRfbmV3KHMt PmRvbWFpbiwgbmFtZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUkFOR0VTRVRGX3ByZXR0eXByaW50X2hleCk7Cj4gCj4gICAgICAgICAgeGZyZWUobmFtZSk7 Cj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9t bS9wMm0uYwo+IGluZGV4IDZhNDUxODUuLjQ2MzAxYWQgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gv eDg2L21tL3AybS5jCj4gKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCj4gQEAgLTEyMiw4ICsx MjIsOCBAQCBzdGF0aWMgaW50IHAybV9pbml0X2hvc3RwMm0oc3RydWN0IGRvbWFpbiAqZCkKPiAK PiAgICAgIGlmICggcDJtICkKPiAgICAgIHsKPiAtICAgICAgICBwMm0tPmxvZ2RpcnR5X3Jhbmdl cyA9IHJhbmdlc2V0X25ldyhkLCAibG9nLWRpcnR5IiwKPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSQU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4KTsKPiArICAg ICAgICBwMm0tPmxvZ2RpcnR5X3JhbmdlcyA9IGRvbWFpbl9yYW5nZXNldF9uZXcoZCwgImxvZy1k aXJ0eSIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJBTkdFU0VURl9wcmV0dHlwcmludF9oZXgpOwo+ICAgICAgICAgIGlmICggcDJtLT5sb2dk aXJ0eV9yYW5nZXMgKQo+ICAgICAgICAgIHsKPiAgICAgICAgICAgICAgZC0+YXJjaC5wMm0gPSBw Mm07Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3Nl dHVwLmMKPiBpbmRleCBiMTMwNjcxLi42OWE5NjFjIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4 Ni9zZXR1cC5jCj4gKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKPiBAQCAtMTQxOSw4ICsxNDE5 LDggQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZwo+IG1i aV9wKQo+ICAgICAgLyogTG93IG1hcHBpbmdzIHdlcmUgb25seSBuZWVkZWQgZm9yIHNvbWUgQklP UyB0YWJsZSBwYXJzaW5nLiAqLwo+ICAgICAgemFwX2xvd19tYXBwaW5ncygpOwo+IAo+IC0gICAg bW1pb19yb19yYW5nZXMgPSByYW5nZXNldF9uZXcoTlVMTCwgInIvbyBtbWlvIHJhbmdlcyIsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSQU5HRVNFVEZfcHJldHR5cHJpbnRf aGV4KTsKPiArICAgIG1taW9fcm9fcmFuZ2VzID0gcmFuZ2VzZXRfbmV3KCJyL28gbW1pbyByYW5n ZXMiLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkFOR0VTRVRGX3ByZXR0 eXByaW50X2hleCwgTlVMTCk7Cj4gCj4gICAgICBpbml0X2FwaWNfbWFwcGluZ3MoKTsKPiAKPiBk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9tYWluLmMKPiBp bmRleCAzYWJhY2E5Li4xYjliYzNjIDEwMDY0NAo+IC0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMK PiArKysgYi94ZW4vY29tbW9uL2RvbWFpbi5jCj4gQEAgLTMyOSw4ICszMjksOCBAQCBzdHJ1Y3Qg ZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9taWQsCj4gdW5zaWduZWQgaW50IGRvbWNy X2ZsYWdzLAo+ICAgICAgcmFuZ2VzZXRfZG9tYWluX2luaXRpYWxpc2UoZCk7Cj4gICAgICBpbml0 X3N0YXR1cyB8PSBJTklUX3Jhbmdlc2V0Owo+IAo+IC0gICAgZC0+aW9tZW1fY2FwcyA9IHJhbmdl c2V0X25ldyhkLCAiSS9PIE1lbW9yeSIsCj4gUkFOR0VTRVRGX3ByZXR0eXByaW50X2hleCk7Cj4g LSAgICBkLT5pcnFfY2FwcyAgID0gcmFuZ2VzZXRfbmV3KGQsICJJbnRlcnJ1cHRzIiwgMCk7Cj4g KyAgICBkLT5pb21lbV9jYXBzID0gZG9tYWluX3Jhbmdlc2V0X25ldyhkLCAiSS9PIE1lbW9yeSIs Cj4gUkFOR0VTRVRGX3ByZXR0eXByaW50X2hleCk7Cj4gKyAgICBkLT5pcnFfY2FwcyAgID0gZG9t YWluX3Jhbmdlc2V0X25ldyhkLCAiSW50ZXJydXB0cyIsIDApOwo+ICAgICAgaWYgKCAoZC0+aW9t ZW1fY2FwcyA9PSBOVUxMKSB8fCAoZC0+aXJxX2NhcHMgPT0gTlVMTCkgKQo+ICAgICAgICAgIGdv dG8gZmFpbDsKPiAKPiBAQCAtMTUzNyw2ICsxNTM3LDI0IEBAIGludCBjb250aW51ZV9oeXBlcmNh bGxfb25fY3B1KAo+ICAgICAgcmV0dXJuIDA7Cj4gIH0KPiAKPiArc3RydWN0IHJhbmdlc2V0ICpk b21haW5fcmFuZ2VzZXRfbmV3KHN0cnVjdCBkb21haW4gKmQsIGNoYXIgKm5hbWUsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gK3sK PiArICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQ7Cj4gKyAgICBzdHJ1Y3QgcmFuZ2VzZXQgKnIg PSByYW5nZXNldF9uZXcobmFtZSwgZmxhZ3MsICZoZWFkKTsKPiArCj4gKyAgICBpZiAoIGQgIT0g TlVMTCApCgpTaG91bGRuJ3QgZCA9PSBOVUxMIGJlIGEgaGFyZCBlcnJvciBub3csIGluIHdoaWNo IHlvdSBjb3VsZCBwYXNzIGQtPnJhbmdlc2V0cyBkaXJlY3RseSBpbnRvIHJhbmdlc2V0X25ldygp ICh1bmRlciBsb2NrKS4KCiAgUGF1bAoKPiArICAgIHsKPiArICAgICAgICBzcGluX2xvY2soJmQt PnJhbmdlc2V0c19sb2NrKTsKPiArICAgICAgICBsaXN0X2FkZChoZWFkLCAmZC0+cmFuZ2VzZXRz KTsKPiArICAgICAgICBzcGluX3VubG9jaygmZC0+cmFuZ2VzZXRzX2xvY2spOwo+ICsgICAgfQo+ ICsKPiArICAgIHJldHVybiByOwo+ICt9Cj4gKwo+ICsKPiArCj4gIC8qCj4gICAqIExvY2FsIHZh cmlhYmxlczoKPiAgICogbW9kZTogQwo+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3Jhbmdlc2V0 LmMgYi94ZW4vY29tbW9uL3Jhbmdlc2V0LmMKPiBpbmRleCA2YzYyOTNjLi40NzhkMjMyIDEwMDY0 NAo+IC0tLSBhL3hlbi9jb21tb24vcmFuZ2VzZXQuYwo+ICsrKyBiL3hlbi9jb21tb24vcmFuZ2Vz ZXQuYwo+IEBAIC0zMjIsOCArMzIyLDggQEAgYm9vbF90IHJhbmdlc2V0X2lzX2VtcHR5KAo+ICAg ICAgcmV0dXJuICgociA9PSBOVUxMKSB8fCBsaXN0X2VtcHR5KCZyLT5yYW5nZV9saXN0KSk7Cj4g IH0KPiAKPiAtc3RydWN0IHJhbmdlc2V0ICpyYW5nZXNldF9uZXcoCj4gLSAgICBzdHJ1Y3QgZG9t YWluICpkLCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gK3N0cnVjdCByYW5nZXNl dCAqcmFuZ2VzZXRfbmV3KGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBmbGFncywKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqKmhlYWQpCj4gIHsKPiAg ICAgIHN0cnVjdCByYW5nZXNldCAqcjsKPiAKPiBAQCAtMzQ3LDEyICszNDcsOCBAQCBzdHJ1Y3Qg cmFuZ2VzZXQgKnJhbmdlc2V0X25ldygKPiAgICAgICAgICBzbnByaW50ZihyLT5uYW1lLCBzaXpl b2Yoci0+bmFtZSksICIobm8gbmFtZSkiKTsKPiAgICAgIH0KPiAKPiAtICAgIGlmICggKHItPmRv bWFpbiA9IGQpICE9IE5VTEwgKQo+IC0gICAgewo+IC0gICAgICAgIHNwaW5fbG9jaygmZC0+cmFu Z2VzZXRzX2xvY2spOwo+IC0gICAgICAgIGxpc3RfYWRkKCZyLT5yYW5nZXNldF9saXN0LCAmZC0+ cmFuZ2VzZXRzKTsKPiAtICAgICAgICBzcGluX3VubG9jaygmZC0+cmFuZ2VzZXRzX2xvY2spOwo+ IC0gICAgfQo+ICsgICAgaWYgKGhlYWQpCj4gKyAgICAgICAgKmhlYWQgPSAmci0+cmFuZ2VzZXRf bGlzdDsKPiAKPiAgICAgIHJldHVybiByOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3hlbi9kb21haW4uaCBiL3hlbi9pbmNsdWRlL3hlbi9kb21haW4uaAo+IGluZGV4IGJjZTBlYTEu LmNkNjJlNmUgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2RvbWFpbi5oCj4gKysrIGIv eGVuL2luY2x1ZGUveGVuL2RvbWFpbi5oCj4gQEAgLTEwOCw0ICsxMDgsNyBAQCBzdHJ1Y3Qgdm51 bWFfaW5mbyB7Cj4gCj4gIHZvaWQgdm51bWFfZGVzdHJveShzdHJ1Y3Qgdm51bWFfaW5mbyAqdm51 bWEpOwo+IAo+ICtzdHJ1Y3QgcmFuZ2VzZXQgKmRvbWFpbl9yYW5nZXNldF9uZXcoc3RydWN0IGRv bWFpbiAqZCwgY2hhciAqbmFtZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBmbGFncyk7Cj4gKwo+ICAjZW5kaWYgLyogX19YRU5fRE9NQUlOX0hf XyAqLwo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcmFuZ2VzZXQuaCBiL3hlbi9pbmNs dWRlL3hlbi9yYW5nZXNldC5oCj4gaW5kZXggYWE2NDA4Mi4uMzk1YmE2MiAxMDA2NDQKPiAtLS0g YS94ZW4vaW5jbHVkZS94ZW4vcmFuZ2VzZXQuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9yYW5n ZXNldC5oCj4gQEAgLTEzLDYgKzEzLDcgQEAKPiAgI2luY2x1ZGUgPHhlbi90eXBlcy5oPgo+IAo+ ICBzdHJ1Y3QgZG9tYWluOwo+ICtzdHJ1Y3QgbGlzdF9oZWFkOwo+ICBzdHJ1Y3QgcmFuZ2VzZXQ7 Cj4gCj4gIC8qCj4gQEAgLTI4LDE1ICsyOSwxNyBAQCB2b2lkIHJhbmdlc2V0X2RvbWFpbl9kZXN0 cm95KAo+ICAgICAgc3RydWN0IGRvbWFpbiAqZCk7Cj4gCj4gIC8qCj4gLSAqIENyZWF0ZS9kZXN0 cm95IGEgcmFuZ2VzZXQuIE9wdGlvbmFsbHkgYXR0YWNoIHRvIHNwZWNpZmllZCBkb21haW4gQGQg Zm9yCj4gLSAqIGF1dG8tZGVzdHJ1Y3Rpb24gd2hlbiB0aGUgZG9tYWluIGRpZXMuIEEgbmFtZSBt YXkgYmUgc3BlY2lmaWVkLCBmb3IKPiB1c2UKPiAtICogaW4gZGVidWcgcHJldHR5LXByaW50aW5n LCBhbmQgdmFyaW91cyBSQU5HRVNFVEYgZmxhZ3MgKGRlZmluZWQgYmVsb3cpLgo+IC0gKgo+IC0g KiBJdCBpcyBpbnZhbGlkIHRvIHBlcmZvcm0gYW55IG9wZXJhdGlvbiBvbiBhIHJhbmdlc2V0IEBy IGFmdGVyIGNhbGxpbmcKPiAtICogcmFuZ2VzZXRfZGVzdHJveShyKS4KPiArICogQ3JlYXRlIGEg cmFuZ2VzZXQuIE9wdGlvbmFsbHkgYXR0YWNoIHRvIGEgc3BlY2lmaWVkIGxpc3QgQGhlYWQuCj4g KyAqIEEgbmFtZSBtYXkgYmUgc3BlY2lmaWVkLCBmb3IgdXNlIGluIGRlYnVnIHByZXR0eS1wcmlu dGluZywgYW5kIHZhcmlvdXMKPiArICogUkFOR0VTRVRGIGZsYWdzIChkZWZpbmVkIGJlbG93KS4K PiArICovCj4gK3N0cnVjdCByYW5nZXNldCAqcmFuZ2VzZXRfbmV3KGNoYXIgKm5hbWUsIHVuc2ln bmVkIGludCBmbGFncywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGxp c3RfaGVhZCAqKmhlYWQpOwo+ICsKPiArLyoKPiArICogRGVzdHJveSBhIHJhbmdlc2V0LiBJdCBp cyBpbnZhbGlkIHRvIHBlcmZvcm0gYW55IG9wZXJhdGlvbiBvbiBhIHJhbmdlc2V0Cj4gQHIKPiAr ICogYWZ0ZXIgY2FsbGluZyByYW5nZXNldF9kZXN0cm95KHIpLgo+ICAgKi8KPiAtc3RydWN0IHJh bmdlc2V0ICpyYW5nZXNldF9uZXcoCj4gLSAgICBzdHJ1Y3QgZG9tYWluICpkLCBjaGFyICpuYW1l LCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwo+ICB2b2lkIHJhbmdlc2V0X2Rlc3Ryb3koCj4gICAgICBz dHJ1Y3QgcmFuZ2VzZXQgKnIpOwo+IAo+IC0tCj4gMi43LjQKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK