From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: Re: [PATCH v5] x86/altp2m: Aggregate get entry and populate into common funcs Date: Wed, 17 Apr 2019 12:22:08 -0600 Message-ID: References: <20190416084531.5084-1-aisaila@bitdefender.com> <51aac97d-3773-f3df-204d-55912f5915db@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hGpCs-0007PW-2K for xen-devel@lists.xenproject.org; Wed, 17 Apr 2019 18:22:50 +0000 Received: by mail-wr1-f45.google.com with SMTP id r4so33167460wrq.8 for ; Wed, 17 Apr 2019 11:22:45 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Alexandru Stefan ISAILA Cc: "wei.liu2@citrix.com" , "rcojocaru@bitdefender.com" , "george.dunlap@eu.citrix.com" , "andrew.cooper3@citrix.com" , George Dunlap , "jbeulich@suse.com" , "xen-devel@lists.xenproject.org" , "roger.pau@citrix.com" List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBcHIgMTcsIDIwMTkgYXQgMToxNSBBTSBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQQo8 YWlzYWlsYUBiaXRkZWZlbmRlci5jb20+IHdyb3RlOgo+Cj4KPgo+IE9uIDE2LjA0LjIwMTkgMTg6 MDcsIEdlb3JnZSBEdW5sYXAgd3JvdGU6Cj4gPiBPbiA0LzE2LzE5IDM6MTkgUE0sIFRhbWFzIEsg TGVuZ3llbCB3cm90ZToKPiA+PiBPbiBUdWUsIEFwciAxNiwgMjAxOSBhdCA4OjAyIEFNIEdlb3Jn ZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4gd3JvdGU6Cj4gPj4+Cj4gPj4+IE9u IDQvMTYvMTkgMjo0NCBQTSwgVGFtYXMgSyBMZW5neWVsIHdyb3RlOgo+ID4+Pj4gT24gVHVlLCBB cHIgMTYsIDIwMTkgYXQgMjo0NSBBTSBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQQo+ID4+Pj4gPGFp c2FpbGFAYml0ZGVmZW5kZXIuY29tPiB3cm90ZToKPiA+Pj4+Pgo+ID4+Pj4+IFRoZSBjb2RlIGZv ciBnZXR0aW5nIHRoZSBlbnRyeSBhbmQgdGhlbiBwb3B1bGF0aW5nIHdhcyByZXBlYXRlZCBpbgo+ ID4+Pj4+IHAybV9jaGFuZ2VfYWx0cDJtX2dmbigpIGFuZCBpbiBwMm1fc2V0X2FsdHAybV9tZW1f YWNjZXNzKCkuCj4gPj4+Pj4KPiA+Pj4+PiBUaGUgY29kZSBpcyBub3cgaW4gb25lIHBsYWNlIHdp dGggYSBib29sIHBhcmFtIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGNob29zZQo+ID4+Pj4+IGlmIGl0 IHBvcHVsYXRlcyBhZnRlciBnZXRfZW50cnkoKS4KPiA+Pj4+Pgo+ID4+Pj4+IElmIHJlbWFwcGlu ZyBpcyBiZWluZyBkb25lIHRoZW4gYm90aCB0aGUgb2xkIGFuZCBuZXcgZ2ZuJ3Mgc2hvdWxkIGJl Cj4gPj4+Pj4gdW5zaGFyZWQgaW4gdGhlIGhvc3RwMm0gZm9yIGtlZXBpbmcgdGhpbmdzIGNvbnNp c3RlbnQuIFRoZSBwYWdlIHR5cGUKPiA+Pj4+PiBvZiBvbGRfZ2ZuIHdhcyBhbHJlYWR5IGNoZWNr ZWQgd2hldGhlciBpdCdzIHAybV9yYW1fcncgYW5kIGJhaWwgaWYgaXQKPiA+Pj4+PiB3YXNuJ3Qg c28gZnVuY3Rpb25hbGl0eS13aXNlIHRoaXMganVzdCBzaW1wbGlmaWVzIHRoaW5ncyBhcyBhIHVz ZXIKPiA+Pj4+PiBkb2Vzbid0IGhhdmUgdG8gcmVxdWVzdCB1bnNoYXJpbmcgbWFudWFsbHkgYmVm b3JlIHJlbWFwcGluZy4KPiA+Pj4+PiBOb3csIGlmIHRoZSBuZXdfZ2ZuIGlzIGludmFsaWQgaXQg c2hvdWxkbid0IHF1ZXJ5IHRoZSBob3N0cDJtIGFzCj4gPj4+Pj4gdGhhdCBpcyBlZmZlY3RpdmVs eSBhIHJlcXVlc3QgdG8gcmVtb3ZlIHRoZSBlbnRyeSBmcm9tIHRoZSBhbHRwMm0uCj4gPj4+Pj4g QnV0IHByb3ZpZGVkIHRoYXQgc2NlbmFyaW8gaXMgdXNlZCBvbmx5IHdoZW4gcmVtb3ZpbmcgZW50 cmllcyB0aGF0Cj4gPj4+Pj4gd2VyZSBwcmV2aW91c2x5IHJlbWFwcGVkL2NvcGllZCB0byB0aGUg YWx0cDJtLCB0aG9zZSBlbnRyaWVzIGFscmVhZHkKPiA+Pj4+PiB3ZW50IHRocm91Z2ggUDJNX0FM TE9DIHwgUDJNX1VOU0hBUkUgYmVmb3JlLCBzbyBpdCB3b24ndCBoYXZlIGFuCj4gPj4+Pj4gYWZm ZWN0IHNvIHRoZSBjb3JlIGZ1bmN0aW9uIGdldF9hbHRwMm1fZW50cnkoKSBpcyBjYWxsaW5nCj4g Pj4+Pj4gX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKCkgd2l0aCBQMk1fQUxMT0MgfCBQMk1fVU5TSEFS RS4KPiA+Pj4+Pgo+ID4+Pj4+IGFsdHAybV9nZXRfZW50cnlfZGlyZWN0KCkgaXMgYWxzbyBjYWxs ZWQgaW4gcDJtX3NldF9zdXBwcmVzc192ZSgpCj4gPj4+Pj4gYmVjYXVzZSBvbiBhIG5ldyBhbHRw Mm0gdmlldyB0aGUgZnVuY3Rpb24gd2lsbCBmYWlsIHdpdGggaW52YWxpZCBtZm4gaWYKPiA+Pj4+ PiBwMm0tPnNldF9lbnRyeSgpIHdhcyBub3QgY2FsbGVkIGJlZm9yZS4KPiA+Pj4+Pgo+ID4+Pj4+ IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRydSBJc2FpbGEgPGFpc2FpbGFAYml0ZGVmZW5kZXIuY29t Pgo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0 cml4LmNvbT4KPiA+Pj4+PiBSZXZpZXdlZC1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxh cEBjaXRyaXguY29tPgo+ID4+Pj4+Cj4gPj4+Pj4gLS0tCj4gPj4+Pj4gQ2hhbmdlcyBzaW5jZSBW NDoKPiA+Pj4+PiAgICAgICAgICAtIEFkZCBhbHRwMm0gdG8gcGF0Y2ggbmFtZQo+ID4+Pj4+ICAg ICAgICAgIC0gQ2hhbmdlIGZ1bmMgbmFtZSBmcm9tIGdldF9hbHRwMm1fZW50cnkoKSB0bwo+ID4+ Pj4+IGFsdHAybV9nZXRfZW50cnkoKS4KPiA+Pj4+PiAtLS0KPiA+Pj4+PiAgIHhlbi9hcmNoL3g4 Ni9tbS9tZW1fYWNjZXNzLmMgfCAzMCArKy0tLS0tLS0tLS0tCj4gPj4+Pj4gICB4ZW4vYXJjaC94 ODYvbW0vcDJtLmMgICAgICAgIHwgODQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tCj4gPj4+Pj4gICB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgIHwgMTcgKysrKysrKysK PiA+Pj4+PiAgIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25z KC0pCj4gPj4+Pj4KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL21lbV9hY2Nl c3MuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNjZXNzLmMKPiA+Pj4+PiBpbmRleCBhMTQ0YmIw Y2U0Li5kZGZlMDE2OWMwIDEwMDY0NAo+ID4+Pj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1f YWNjZXNzLmMKPiA+Pj4+PiArKysgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jCj4gPj4+ Pj4gQEAgLTI2MiwzNSArMjYyLDExIEBAIGludCBwMm1fc2V0X2FsdHAybV9tZW1fYWNjZXNzKHN0 cnVjdCBkb21haW4gKmQsIHN0cnVjdCBwMm1fZG9tYWluICpocDJtLAo+ID4+Pj4+ICAgICAgIG1m bl90IG1mbjsKPiA+Pj4+PiAgICAgICBwMm1fdHlwZV90IHQ7Cj4gPj4+Pj4gICAgICAgcDJtX2Fj Y2Vzc190IG9sZF9hOwo+ID4+Pj4+IC0gICAgdW5zaWduZWQgaW50IHBhZ2Vfb3JkZXI7Cj4gPj4+ Pj4gLSAgICB1bnNpZ25lZCBsb25nIGdmbl9sID0gZ2ZuX3goZ2ZuKTsKPiA+Pj4+PiAgICAgICBp bnQgcmM7Cj4gPj4+Pj4KPiA+Pj4+PiAtICAgIG1mbiA9IGFwMm0tPmdldF9lbnRyeShhcDJtLCBn Zm4sICZ0LCAmb2xkX2EsIDAsIE5VTEwsIE5VTEwpOwo+ID4+Pj4+IC0KPiA+Pj4+PiAtICAgIC8q IENoZWNrIGhvc3QgcDJtIGlmIG5vIHZhbGlkIGVudHJ5IGluIGFsdGVybmF0ZSAqLwo+ID4+Pj4+ IC0gICAgaWYgKCAhbWZuX3ZhbGlkKG1mbikgKQo+ID4+Pj4+IC0gICAgewo+ID4+Pj4+IC0KPiA+ Pj4+PiAtICAgICAgICBtZm4gPSBfX2dldF9nZm5fdHlwZV9hY2Nlc3MoaHAybSwgZ2ZuX2wsICZ0 LCAmb2xkX2EsCj4gPj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAy TV9BTExPQyB8IFAyTV9VTlNIQVJFLCAmcGFnZV9vcmRlciwgMCk7Cj4gPj4+Pj4gLQo+ID4+Pj4+ IC0gICAgICAgIHJjID0gLUVTUkNIOwo+ID4+Pj4+IC0gICAgICAgIGlmICggIW1mbl92YWxpZCht Zm4pIHx8IHQgIT0gcDJtX3JhbV9ydyApCj4gPj4+Pj4gLSAgICAgICAgICAgIHJldHVybiByYzsK PiA+Pj4+PiAtCj4gPj4+Pj4gLSAgICAgICAgLyogSWYgdGhpcyBpcyBhIHN1cGVycGFnZSwgY29w eSB0aGF0IGZpcnN0ICovCj4gPj4+Pj4gLSAgICAgICAgaWYgKCBwYWdlX29yZGVyICE9IFBBR0Vf T1JERVJfNEsgKQo+ID4+Pj4+IC0gICAgICAgIHsKPiA+Pj4+PiAtICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBtYXNrID0gfigoMVVMIDw8IHBhZ2Vfb3JkZXIpIC0gMSk7Cj4gPj4+Pj4gLSAgICAg ICAgICAgIGdmbl90IGdmbjIgPSBfZ2ZuKGdmbl9sICYgbWFzayk7Cj4gPj4+Pj4gLSAgICAgICAg ICAgIG1mbl90IG1mbjIgPSBfbWZuKG1mbl94KG1mbikgJiBtYXNrKTsKPiA+Pj4+PiAtCj4gPj4+ Pj4gLSAgICAgICAgICAgIHJjID0gYXAybS0+c2V0X2VudHJ5KGFwMm0sIGdmbjIsIG1mbjIsIHBh Z2Vfb3JkZXIsIHQsIG9sZF9hLCAxKTsKPiA+Pj4+PiAtICAgICAgICAgICAgaWYgKCByYyApCj4g Pj4+Pj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcmM7Cj4gPj4+Pj4gLSAgICAgICAgfQo+ID4+ Pj4+IC0gICAgfQo+ID4+Pj4+ICsgICAgcmMgPSBhbHRwMm1fZ2V0X2VudHJ5X3ByZXBvcHVsYXRl KGFwMm0sIGdmbiwgJm1mbiwgJnQsICZvbGRfYSk7Cj4gPj4+Pj4gKyAgICBpZiAoIHJjICkKPiA+ Pj4+PiArICAgICAgICByZXR1cm4gcmM7Cj4gPj4+Pj4KPiA+Pj4+PiAgICAgICAvKgo+ID4+Pj4+ ICAgICAgICAqIEluaGVyaXQgdGhlIG9sZCBzdXBwcmVzcyAjVkUgYml0IHZhbHVlIGlmIGl0IGlz IGFscmVhZHkgc2V0LCBvciBzZXQgaXQKPiA+Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCj4gPj4+Pj4gaW5kZXggOWU4MWEzMGNj NC4uN2JlZGZkNTkzYiAxMDA2NDQKPiA+Pj4+PiAtLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMK PiA+Pj4+PiArKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKPiA+Pj4+Cj4gPj4+PiBXb3VsZG4n dCBpdCBtYWtlIG1vcmUgc2Vuc2UgdG8gc3RhcnQgYWRkaW5nIG5ldyBhbHRwMm0gZnVuY3Rpb25z IHRvCj4gPj4+PiBtbS9hbHRwMm0uYyBpbnN0ZWFkPyBQcm9iYWJseSB0aGUgYWx0cDJtIGZ1bmN0 aW9ucyBmcm9tIG1tL3AybS5jIGNvdWxkCj4gPj4+PiBhbHNvIGJlIHJlbG9jYXRlZCB0aGVyZSBh dCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUuCj4gPj4+Pgo+ID4+Pj4+IEBAIC00NzgsNiArNDc4 LDQzIEBAIHZvaWQgcDJtX3VubG9ja19hbmRfdGxiX2ZsdXNoKHN0cnVjdCBwMm1fZG9tYWluICpw Mm0pCj4gPj4+Pj4gICAgICAgICAgIG1tX3dyaXRlX3VubG9jaygmcDJtLT5sb2NrKTsKPiA+Pj4+ PiAgIH0KPiA+Pj4+Pgo+ID4+Pj4+ICtpbnQgYWx0cDJtX2dldF9lbnRyeShzdHJ1Y3QgcDJtX2Rv bWFpbiAqYXAybSwKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IGdm biwgbWZuX3QgKm1mbiwgcDJtX3R5cGVfdCAqdCwKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHAybV9hY2Nlc3NfdCAqYSwgYm9vbCBwcmVwb3B1bGF0ZSkKPiA+Pj4+PiArewo+ ID4+Pj4+ICsgICAgKm1mbiA9IGFwMm0tPmdldF9lbnRyeShhcDJtLCBnZm4sIHQsIGEsIDAsIE5V TEwsIE5VTEwpOwo+ID4+Pj4+ICsKPiA+Pj4+PiArICAgIC8qIENoZWNrIGhvc3QgcDJtIGlmIG5v IHZhbGlkIGVudHJ5IGluIGFsdGVybmF0ZSAqLwo+ID4+Pj4+ICsgICAgaWYgKCAhbWZuX3ZhbGlk KCptZm4pICYmICFwMm1faXNfaG9zdHAybShhcDJtKSApCj4gPj4+Pj4gKyAgICB7Cj4gPj4+Pj4g KyAgICAgICAgc3RydWN0IHAybV9kb21haW4gKmhwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oYXAybS0+ ZG9tYWluKTsKPiA+Pj4+PiArICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlcjsKPiA+Pj4+ PiArICAgICAgICBpbnQgcmM7Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsgICAgICAgICptZm4gPSBfX2dl dF9nZm5fdHlwZV9hY2Nlc3MoaHAybSwgZ2ZuX3goZ2ZuKSwgdCwgYSwKPiA+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFLCAm cGFnZV9vcmRlciwgMCk7Cj4gPj4+Pgo+ID4+Pj4gU28gZGVzcGl0ZSB0aGUgbmFtZSBiZWluZyBh bHRwMm1fZ2V0X2VudHJ5IHlvdSBub3cgcmV0dXJuIGFuIGVudHJ5Cj4gPj4+PiBmcm9tIHRoZSBo b3N0cDJtLCBldmVuIGlmIHByZXBvcHVsYXRlIGlzIGZhbHNlLiBJZiB0aGUgY2FsbGVyIGtub3dz IGl0Cj4gPj4+PiBkb2Vzbid0IHdhbnQgdGhhdCBlbnRyeSB0byBiZSBjb3BpZWQgaW50byB0aGUg YWx0cDJtLCB3aHkgbm90IGhhdmUgaXQKPiA+Pj4+IGNhbGwgX19nZXRfZ2ZuX3R5cGVfYWNjZXNz IGl0c2VsZiBmb3IgdGhlIGhvc3RwMm0/IElNSE8gdGhpcyBpcyBqdXN0Cj4gPj4+PiBjb25mdXNp bmcgYW5kIGRvZXNuJ3QgaGVscCByZWFkYWJpbGl0eSBvZiB0aGUgYWx0cDJtIGNvZGUuCj4gPj4+ Cj4gPj4+IFlvdSByZXR1cm4gdGhlIGFwMm0gZW50cnkgaWYgaXQncyBwcmVzZW50LCBvciB0aGUg aHAybSBlbnRyeSBpZiBpdCdzCj4gPj4+IG5vdC4gIEl0J3Mgbm90IGEgbG90IG9mIGR1cGxpY2F0 aW9uLCBidXQgaXQgbWFrZXMgdGhlIGxvZ2ljIGNsZWFuZXIgSQo+ID4+PiB0aGluazsgd2h5IG5v dCBkZWR1cGxpY2F0ZSBpdD8KPiA+Pgo+ID4+IEkgaGF2ZSBubyBwcm9ibGVtIHdpdGggbWFraW5n IHRoZSBjb2RlIG1vcmUgc3RyZWFtbGluZWQuIFRoZSBwcm9ibGVtIEkKPiA+PiBoYXZlIGlzIHRo YXQgdGhlIGZ1bmN0aW9uJ3MgbmFtZSBkb2Vzbid0IHN1Z2dlc3QgaXQgd291bGQgZ2V0IHlvdQo+ ID4+IGFueXRoaW5nIGJ1dCB0aGUgZW50cnkgZnJvbSB0aGUgc3BlY2lmaWVkIGFsdHAybS4gU28g eW91IGNvdWxkIGJlCj4gPj4gcmVhZGluZyB0aGUgY29kZSBhc3N1bWluZyB5b3UgYXJlIGRlYWxp bmcgd2l0aCBhbiBlbnRyeSBmcm9tIHRoYXQKPiA+PiBzcGVjaWZpZWQgdGFibGUgd2hlbiBpbiBm YWN0IHlvdSBhcmUgbm90LiBUaGF0IGlzIG5vdCBhbiBleHBlY3RlZAo+ID4+IGJlaGF2aW9yIGJh c2VkIG9uIGp1c3QgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLiBUaGlzIGlzIGdvaW5nIHRvIG1h a2UKPiA+PiByZWFkaW5nIHRoZSBhbHRwMm0gY29kZSB0aGF0IG11Y2ggaGFyZGVyIGluIHRoZSBm dXR1cmUuCj4gPgo+ID4gUmlnaHQgLS0gSSB3YXNuJ3QgYSBodWdlIGZhbiBvZiAnZGlyZWN0JyBl aXRoZXI7IGl0IGRpZG4ndCByZWFsbHkgY29udmV5Cj4gPiB0byBtZSAxMDAlIHdoYXQgdGhlIGZ1 bmN0aW9uIGRpZC4gIE15IFBvQyBoYWQgInNlZXRocm91Z2giLCBidXQgdGhhdAo+ID4gd2Fzbid0 IHRoYXQgZ3JlYXQgZWl0aGVyLiAgIlBlZWsiPyAgQW55IG90aGVyIHN1Z2dlc3Rpb25zPwo+ID4K PiA+IE90aGVyIG9wdGlvbnM6Cj4gPgo+ID4gKiBJZiB3ZSBoYXZlIGEgc2luZ2xlIGZ1bmN0aW9u IHdpdGggYSAjZGVmaW5lLCB0aGlzIG1pZ2h0IGdldCBhIGJpdAo+ID4gZWFzaWVyOyAgd2UgY291 bGQgaGF2ZSBvbmUgYmUgQVAyTUdFVF9kb250X3ByZXBvcHVsYXRlIG9yIHNvbWV0aGluZy4KPiA+ Cj4gPiAoIFdlIGNvdWxkIGhhdmUgdGhlICJjb3JlIiBmdW5jdGlvbiBuYW1lZCBfYWx0cDJtX2dl dF9lbnRyeSwgYW5kIGhhdmUKPiA+IGFsdHAybV9nZXRfZW50cnkoKSBjYWxsIHdpdGggcHJlcG9w dWxhdGUgPSBmYWxzZSwgYW5kCj4gPiBhbHRwMm1fZ2V0X2VudHJ5X3ByZXBvcHVsYXRlKCkgY2Fs bCBpdCB3aXRoIHByZXBvcHVsYXRlID0gdHJ1ZS4KPgo+IFRoaXMgb3B0aW9uIHdpdGggbm8gZGVm aW5lcyBzZWVtcyB0byBzb2x2ZSBtb3JlIG9mIHRoZSBuYW1pbmcgcHJvYmxlbXMKPiBidXQgaXQg d2lsbCBzdGlsbCBpbnRyb2R1Y2UgdGhlIHNwYWdoZXR0aSBjb2RlLiBJIHZvdGUgZm9yIHRoaXMg b25lIGFuZAo+IGlmIFRhbWFzIGFncmVlcyBJIHdpbGwgaGF2ZSBpdCB0aGlzIHdheSBpbiB0aGUg bmV4dCB2ZXJzaW9uLgo+CgpIYXZpbmcgYWx0cDJtX2dldF9lbnRyeSBhbmQgYWx0cDJtX2dldF9l bnRyeV9wcmVwb3B1bGF0ZSBzZWVtIHRvIGJlIGEKYmV0dGVyIG5hbWUgZm9yIHRoZW0sIGFzIGxv bmcgYXMgYWx0cDJtX2dldF9lbnRyeSBkb2Vzbid0IHJldHVybiBhbgplbnRyeSBmcm9tIHRoZSBo b3N0cDJtIGlmIHRoZXJlIGlzbid0IG9uZSBpbiB0aGUgYWx0cDJtLCBhbmQKYWx0cDJtX2dldF9l bnRyeV9wcmVwb3B1bGF0ZSByZXR1cm5zIGFuIGVudHJ5IG9ubHkgaWYgcHJlcG9wdWxhdGlvbgph Y3R1YWxseSB3b3JrZWQuIEluIGJvdGggb2YgdGhvc2UgY2FzZXMgdGhlIGZ1bmN0aW9ucyB3b3Vs ZCBvbmx5CnJldHVybiBlbnRyaWVzIGZyb20gdGhlIGFsdHAybSwgYXMgdGhlaXIgbmFtZSBhY3R1 YWxseSBzdWdnZXN0cy4KClRhbWFzCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs 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 X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B695C282DA for ; Wed, 17 Apr 2019 18:23:15 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BE79320674 for ; Wed, 17 Apr 2019 18:23:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=tklengyel.com header.i=@tklengyel.com header.b="iSLA9BSl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BE79320674 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=tklengyel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hGpCs-0007Pg-TO; Wed, 17 Apr 2019 18:22:50 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hGpCs-0007PW-2K for xen-devel@lists.xenproject.org; Wed, 17 Apr 2019 18:22:50 +0000 X-Inumbo-ID: cd68c784-613d-11e9-92d7-bc764e045a96 Received: from rs224.mailgun.us (unknown [209.61.151.224]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id cd68c784-613d-11e9-92d7-bc764e045a96; Wed, 17 Apr 2019 18:22:47 +0000 (UTC) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=tklengyel.com; q=dns/txt; s=krs; t=1555525367; h=Content-Type: Cc: To: Subject: Message-ID: Date: From: In-Reply-To: References: MIME-Version: Sender; bh=hlItPLXB8FWhtpJxuprXv5SuA7yYeHLVmTweca1AwL0=; b=iSLA9BSlcwOe0+sYnPEc8oCph0aEnFt7Km661FjAr5SeaGof4tX3wFGbRZQjDXtGJFah1pQt ev+aoqCgks3lzE8uHoqw3n/F+AVvG/KZNLkccy6SlW7P2nR5v8OdPwbNTUZFp6f1vnud7XU6 ersajOLvV61hYoS8HDchzOGvHiQ= X-Mailgun-Sending-Ip: 209.61.151.224 X-Mailgun-Sid: WyIyYTNmOCIsICJ4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmciLCAiY2Q4NDAiXQ== Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mxa.mailgun.org with ESMTP id 5cb76ef5.7f8722081b70-smtp-out-n01; Wed, 17 Apr 2019 18:22:45 -0000 (UTC) Received: by mail-wr1-f45.google.com with SMTP id r4so33167460wrq.8 for ; Wed, 17 Apr 2019 11:22:45 -0700 (PDT) X-Gm-Message-State: APjAAAWPJIgwvTG2R8Pj40fkvqR9Uhtq+x2iv7GzN1v1U92TKAV9mUWO fX3Kej+3e+JiLNjF+locEmLeRZuJZnKuCtK7gII= X-Google-Smtp-Source: APXvYqx+gMUvzTICO7lVqIbHpA+6JwXoXC1EWmuK8GjMLzr+FiShT6hG3RkDzvC8Nyy1bry/cK5xx9/Vkvj8M7vM0BA= X-Received: by 2002:adf:e4c2:: with SMTP id v2mr10189575wrm.124.1555525364740; Wed, 17 Apr 2019 11:22:44 -0700 (PDT) MIME-Version: 1.0 References: <20190416084531.5084-1-aisaila@bitdefender.com> <51aac97d-3773-f3df-204d-55912f5915db@citrix.com> In-Reply-To: From: Tamas K Lengyel Date: Wed, 17 Apr 2019 12:22:08 -0600 X-Gmail-Original-Message-ID: Message-ID: To: Alexandru Stefan ISAILA Subject: Re: [Xen-devel] [PATCH v5] x86/altp2m: Aggregate get entry and populate into common funcs X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: "wei.liu2@citrix.com" , "rcojocaru@bitdefender.com" , "george.dunlap@eu.citrix.com" , "andrew.cooper3@citrix.com" , George Dunlap , "jbeulich@suse.com" , "xen-devel@lists.xenproject.org" , "roger.pau@citrix.com" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190417182208.MyF5xNlME6cMFMDr9qSg1tgnJhhtBCtFJYaw2kT0Zg8@z> T24gV2VkLCBBcHIgMTcsIDIwMTkgYXQgMToxNSBBTSBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQQo8 YWlzYWlsYUBiaXRkZWZlbmRlci5jb20+IHdyb3RlOgo+Cj4KPgo+IE9uIDE2LjA0LjIwMTkgMTg6 MDcsIEdlb3JnZSBEdW5sYXAgd3JvdGU6Cj4gPiBPbiA0LzE2LzE5IDM6MTkgUE0sIFRhbWFzIEsg TGVuZ3llbCB3cm90ZToKPiA+PiBPbiBUdWUsIEFwciAxNiwgMjAxOSBhdCA4OjAyIEFNIEdlb3Jn ZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4gd3JvdGU6Cj4gPj4+Cj4gPj4+IE9u IDQvMTYvMTkgMjo0NCBQTSwgVGFtYXMgSyBMZW5neWVsIHdyb3RlOgo+ID4+Pj4gT24gVHVlLCBB cHIgMTYsIDIwMTkgYXQgMjo0NSBBTSBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQQo+ID4+Pj4gPGFp c2FpbGFAYml0ZGVmZW5kZXIuY29tPiB3cm90ZToKPiA+Pj4+Pgo+ID4+Pj4+IFRoZSBjb2RlIGZv ciBnZXR0aW5nIHRoZSBlbnRyeSBhbmQgdGhlbiBwb3B1bGF0aW5nIHdhcyByZXBlYXRlZCBpbgo+ ID4+Pj4+IHAybV9jaGFuZ2VfYWx0cDJtX2dmbigpIGFuZCBpbiBwMm1fc2V0X2FsdHAybV9tZW1f YWNjZXNzKCkuCj4gPj4+Pj4KPiA+Pj4+PiBUaGUgY29kZSBpcyBub3cgaW4gb25lIHBsYWNlIHdp dGggYSBib29sIHBhcmFtIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGNob29zZQo+ID4+Pj4+IGlmIGl0 IHBvcHVsYXRlcyBhZnRlciBnZXRfZW50cnkoKS4KPiA+Pj4+Pgo+ID4+Pj4+IElmIHJlbWFwcGlu ZyBpcyBiZWluZyBkb25lIHRoZW4gYm90aCB0aGUgb2xkIGFuZCBuZXcgZ2ZuJ3Mgc2hvdWxkIGJl Cj4gPj4+Pj4gdW5zaGFyZWQgaW4gdGhlIGhvc3RwMm0gZm9yIGtlZXBpbmcgdGhpbmdzIGNvbnNp c3RlbnQuIFRoZSBwYWdlIHR5cGUKPiA+Pj4+PiBvZiBvbGRfZ2ZuIHdhcyBhbHJlYWR5IGNoZWNr ZWQgd2hldGhlciBpdCdzIHAybV9yYW1fcncgYW5kIGJhaWwgaWYgaXQKPiA+Pj4+PiB3YXNuJ3Qg c28gZnVuY3Rpb25hbGl0eS13aXNlIHRoaXMganVzdCBzaW1wbGlmaWVzIHRoaW5ncyBhcyBhIHVz ZXIKPiA+Pj4+PiBkb2Vzbid0IGhhdmUgdG8gcmVxdWVzdCB1bnNoYXJpbmcgbWFudWFsbHkgYmVm b3JlIHJlbWFwcGluZy4KPiA+Pj4+PiBOb3csIGlmIHRoZSBuZXdfZ2ZuIGlzIGludmFsaWQgaXQg c2hvdWxkbid0IHF1ZXJ5IHRoZSBob3N0cDJtIGFzCj4gPj4+Pj4gdGhhdCBpcyBlZmZlY3RpdmVs eSBhIHJlcXVlc3QgdG8gcmVtb3ZlIHRoZSBlbnRyeSBmcm9tIHRoZSBhbHRwMm0uCj4gPj4+Pj4g QnV0IHByb3ZpZGVkIHRoYXQgc2NlbmFyaW8gaXMgdXNlZCBvbmx5IHdoZW4gcmVtb3ZpbmcgZW50 cmllcyB0aGF0Cj4gPj4+Pj4gd2VyZSBwcmV2aW91c2x5IHJlbWFwcGVkL2NvcGllZCB0byB0aGUg YWx0cDJtLCB0aG9zZSBlbnRyaWVzIGFscmVhZHkKPiA+Pj4+PiB3ZW50IHRocm91Z2ggUDJNX0FM TE9DIHwgUDJNX1VOU0hBUkUgYmVmb3JlLCBzbyBpdCB3b24ndCBoYXZlIGFuCj4gPj4+Pj4gYWZm ZWN0IHNvIHRoZSBjb3JlIGZ1bmN0aW9uIGdldF9hbHRwMm1fZW50cnkoKSBpcyBjYWxsaW5nCj4g Pj4+Pj4gX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKCkgd2l0aCBQMk1fQUxMT0MgfCBQMk1fVU5TSEFS RS4KPiA+Pj4+Pgo+ID4+Pj4+IGFsdHAybV9nZXRfZW50cnlfZGlyZWN0KCkgaXMgYWxzbyBjYWxs ZWQgaW4gcDJtX3NldF9zdXBwcmVzc192ZSgpCj4gPj4+Pj4gYmVjYXVzZSBvbiBhIG5ldyBhbHRw Mm0gdmlldyB0aGUgZnVuY3Rpb24gd2lsbCBmYWlsIHdpdGggaW52YWxpZCBtZm4gaWYKPiA+Pj4+ PiBwMm0tPnNldF9lbnRyeSgpIHdhcyBub3QgY2FsbGVkIGJlZm9yZS4KPiA+Pj4+Pgo+ID4+Pj4+ IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRydSBJc2FpbGEgPGFpc2FpbGFAYml0ZGVmZW5kZXIuY29t Pgo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0 cml4LmNvbT4KPiA+Pj4+PiBSZXZpZXdlZC1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxh cEBjaXRyaXguY29tPgo+ID4+Pj4+Cj4gPj4+Pj4gLS0tCj4gPj4+Pj4gQ2hhbmdlcyBzaW5jZSBW NDoKPiA+Pj4+PiAgICAgICAgICAtIEFkZCBhbHRwMm0gdG8gcGF0Y2ggbmFtZQo+ID4+Pj4+ICAg ICAgICAgIC0gQ2hhbmdlIGZ1bmMgbmFtZSBmcm9tIGdldF9hbHRwMm1fZW50cnkoKSB0bwo+ID4+ Pj4+IGFsdHAybV9nZXRfZW50cnkoKS4KPiA+Pj4+PiAtLS0KPiA+Pj4+PiAgIHhlbi9hcmNoL3g4 Ni9tbS9tZW1fYWNjZXNzLmMgfCAzMCArKy0tLS0tLS0tLS0tCj4gPj4+Pj4gICB4ZW4vYXJjaC94 ODYvbW0vcDJtLmMgICAgICAgIHwgODQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tCj4gPj4+Pj4gICB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgIHwgMTcgKysrKysrKysK PiA+Pj4+PiAgIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25z KC0pCj4gPj4+Pj4KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL21lbV9hY2Nl c3MuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNjZXNzLmMKPiA+Pj4+PiBpbmRleCBhMTQ0YmIw Y2U0Li5kZGZlMDE2OWMwIDEwMDY0NAo+ID4+Pj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1f YWNjZXNzLmMKPiA+Pj4+PiArKysgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jCj4gPj4+ Pj4gQEAgLTI2MiwzNSArMjYyLDExIEBAIGludCBwMm1fc2V0X2FsdHAybV9tZW1fYWNjZXNzKHN0 cnVjdCBkb21haW4gKmQsIHN0cnVjdCBwMm1fZG9tYWluICpocDJtLAo+ID4+Pj4+ICAgICAgIG1m bl90IG1mbjsKPiA+Pj4+PiAgICAgICBwMm1fdHlwZV90IHQ7Cj4gPj4+Pj4gICAgICAgcDJtX2Fj Y2Vzc190IG9sZF9hOwo+ID4+Pj4+IC0gICAgdW5zaWduZWQgaW50IHBhZ2Vfb3JkZXI7Cj4gPj4+ Pj4gLSAgICB1bnNpZ25lZCBsb25nIGdmbl9sID0gZ2ZuX3goZ2ZuKTsKPiA+Pj4+PiAgICAgICBp bnQgcmM7Cj4gPj4+Pj4KPiA+Pj4+PiAtICAgIG1mbiA9IGFwMm0tPmdldF9lbnRyeShhcDJtLCBn Zm4sICZ0LCAmb2xkX2EsIDAsIE5VTEwsIE5VTEwpOwo+ID4+Pj4+IC0KPiA+Pj4+PiAtICAgIC8q IENoZWNrIGhvc3QgcDJtIGlmIG5vIHZhbGlkIGVudHJ5IGluIGFsdGVybmF0ZSAqLwo+ID4+Pj4+ IC0gICAgaWYgKCAhbWZuX3ZhbGlkKG1mbikgKQo+ID4+Pj4+IC0gICAgewo+ID4+Pj4+IC0KPiA+ Pj4+PiAtICAgICAgICBtZm4gPSBfX2dldF9nZm5fdHlwZV9hY2Nlc3MoaHAybSwgZ2ZuX2wsICZ0 LCAmb2xkX2EsCj4gPj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAy TV9BTExPQyB8IFAyTV9VTlNIQVJFLCAmcGFnZV9vcmRlciwgMCk7Cj4gPj4+Pj4gLQo+ID4+Pj4+ IC0gICAgICAgIHJjID0gLUVTUkNIOwo+ID4+Pj4+IC0gICAgICAgIGlmICggIW1mbl92YWxpZCht Zm4pIHx8IHQgIT0gcDJtX3JhbV9ydyApCj4gPj4+Pj4gLSAgICAgICAgICAgIHJldHVybiByYzsK PiA+Pj4+PiAtCj4gPj4+Pj4gLSAgICAgICAgLyogSWYgdGhpcyBpcyBhIHN1cGVycGFnZSwgY29w eSB0aGF0IGZpcnN0ICovCj4gPj4+Pj4gLSAgICAgICAgaWYgKCBwYWdlX29yZGVyICE9IFBBR0Vf T1JERVJfNEsgKQo+ID4+Pj4+IC0gICAgICAgIHsKPiA+Pj4+PiAtICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBtYXNrID0gfigoMVVMIDw8IHBhZ2Vfb3JkZXIpIC0gMSk7Cj4gPj4+Pj4gLSAgICAg ICAgICAgIGdmbl90IGdmbjIgPSBfZ2ZuKGdmbl9sICYgbWFzayk7Cj4gPj4+Pj4gLSAgICAgICAg ICAgIG1mbl90IG1mbjIgPSBfbWZuKG1mbl94KG1mbikgJiBtYXNrKTsKPiA+Pj4+PiAtCj4gPj4+ Pj4gLSAgICAgICAgICAgIHJjID0gYXAybS0+c2V0X2VudHJ5KGFwMm0sIGdmbjIsIG1mbjIsIHBh Z2Vfb3JkZXIsIHQsIG9sZF9hLCAxKTsKPiA+Pj4+PiAtICAgICAgICAgICAgaWYgKCByYyApCj4g Pj4+Pj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcmM7Cj4gPj4+Pj4gLSAgICAgICAgfQo+ID4+ Pj4+IC0gICAgfQo+ID4+Pj4+ICsgICAgcmMgPSBhbHRwMm1fZ2V0X2VudHJ5X3ByZXBvcHVsYXRl KGFwMm0sIGdmbiwgJm1mbiwgJnQsICZvbGRfYSk7Cj4gPj4+Pj4gKyAgICBpZiAoIHJjICkKPiA+ Pj4+PiArICAgICAgICByZXR1cm4gcmM7Cj4gPj4+Pj4KPiA+Pj4+PiAgICAgICAvKgo+ID4+Pj4+ ICAgICAgICAqIEluaGVyaXQgdGhlIG9sZCBzdXBwcmVzcyAjVkUgYml0IHZhbHVlIGlmIGl0IGlz IGFscmVhZHkgc2V0LCBvciBzZXQgaXQKPiA+Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCj4gPj4+Pj4gaW5kZXggOWU4MWEzMGNj NC4uN2JlZGZkNTkzYiAxMDA2NDQKPiA+Pj4+PiAtLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMK PiA+Pj4+PiArKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKPiA+Pj4+Cj4gPj4+PiBXb3VsZG4n dCBpdCBtYWtlIG1vcmUgc2Vuc2UgdG8gc3RhcnQgYWRkaW5nIG5ldyBhbHRwMm0gZnVuY3Rpb25z IHRvCj4gPj4+PiBtbS9hbHRwMm0uYyBpbnN0ZWFkPyBQcm9iYWJseSB0aGUgYWx0cDJtIGZ1bmN0 aW9ucyBmcm9tIG1tL3AybS5jIGNvdWxkCj4gPj4+PiBhbHNvIGJlIHJlbG9jYXRlZCB0aGVyZSBh dCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUuCj4gPj4+Pgo+ID4+Pj4+IEBAIC00NzgsNiArNDc4 LDQzIEBAIHZvaWQgcDJtX3VubG9ja19hbmRfdGxiX2ZsdXNoKHN0cnVjdCBwMm1fZG9tYWluICpw Mm0pCj4gPj4+Pj4gICAgICAgICAgIG1tX3dyaXRlX3VubG9jaygmcDJtLT5sb2NrKTsKPiA+Pj4+ PiAgIH0KPiA+Pj4+Pgo+ID4+Pj4+ICtpbnQgYWx0cDJtX2dldF9lbnRyeShzdHJ1Y3QgcDJtX2Rv bWFpbiAqYXAybSwKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IGdm biwgbWZuX3QgKm1mbiwgcDJtX3R5cGVfdCAqdCwKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHAybV9hY2Nlc3NfdCAqYSwgYm9vbCBwcmVwb3B1bGF0ZSkKPiA+Pj4+PiArewo+ ID4+Pj4+ICsgICAgKm1mbiA9IGFwMm0tPmdldF9lbnRyeShhcDJtLCBnZm4sIHQsIGEsIDAsIE5V TEwsIE5VTEwpOwo+ID4+Pj4+ICsKPiA+Pj4+PiArICAgIC8qIENoZWNrIGhvc3QgcDJtIGlmIG5v IHZhbGlkIGVudHJ5IGluIGFsdGVybmF0ZSAqLwo+ID4+Pj4+ICsgICAgaWYgKCAhbWZuX3ZhbGlk KCptZm4pICYmICFwMm1faXNfaG9zdHAybShhcDJtKSApCj4gPj4+Pj4gKyAgICB7Cj4gPj4+Pj4g KyAgICAgICAgc3RydWN0IHAybV9kb21haW4gKmhwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oYXAybS0+ ZG9tYWluKTsKPiA+Pj4+PiArICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlcjsKPiA+Pj4+ PiArICAgICAgICBpbnQgcmM7Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsgICAgICAgICptZm4gPSBfX2dl dF9nZm5fdHlwZV9hY2Nlc3MoaHAybSwgZ2ZuX3goZ2ZuKSwgdCwgYSwKPiA+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFLCAm cGFnZV9vcmRlciwgMCk7Cj4gPj4+Pgo+ID4+Pj4gU28gZGVzcGl0ZSB0aGUgbmFtZSBiZWluZyBh bHRwMm1fZ2V0X2VudHJ5IHlvdSBub3cgcmV0dXJuIGFuIGVudHJ5Cj4gPj4+PiBmcm9tIHRoZSBo b3N0cDJtLCBldmVuIGlmIHByZXBvcHVsYXRlIGlzIGZhbHNlLiBJZiB0aGUgY2FsbGVyIGtub3dz IGl0Cj4gPj4+PiBkb2Vzbid0IHdhbnQgdGhhdCBlbnRyeSB0byBiZSBjb3BpZWQgaW50byB0aGUg YWx0cDJtLCB3aHkgbm90IGhhdmUgaXQKPiA+Pj4+IGNhbGwgX19nZXRfZ2ZuX3R5cGVfYWNjZXNz IGl0c2VsZiBmb3IgdGhlIGhvc3RwMm0/IElNSE8gdGhpcyBpcyBqdXN0Cj4gPj4+PiBjb25mdXNp bmcgYW5kIGRvZXNuJ3QgaGVscCByZWFkYWJpbGl0eSBvZiB0aGUgYWx0cDJtIGNvZGUuCj4gPj4+ Cj4gPj4+IFlvdSByZXR1cm4gdGhlIGFwMm0gZW50cnkgaWYgaXQncyBwcmVzZW50LCBvciB0aGUg aHAybSBlbnRyeSBpZiBpdCdzCj4gPj4+IG5vdC4gIEl0J3Mgbm90IGEgbG90IG9mIGR1cGxpY2F0 aW9uLCBidXQgaXQgbWFrZXMgdGhlIGxvZ2ljIGNsZWFuZXIgSQo+ID4+PiB0aGluazsgd2h5IG5v dCBkZWR1cGxpY2F0ZSBpdD8KPiA+Pgo+ID4+IEkgaGF2ZSBubyBwcm9ibGVtIHdpdGggbWFraW5n IHRoZSBjb2RlIG1vcmUgc3RyZWFtbGluZWQuIFRoZSBwcm9ibGVtIEkKPiA+PiBoYXZlIGlzIHRo YXQgdGhlIGZ1bmN0aW9uJ3MgbmFtZSBkb2Vzbid0IHN1Z2dlc3QgaXQgd291bGQgZ2V0IHlvdQo+ ID4+IGFueXRoaW5nIGJ1dCB0aGUgZW50cnkgZnJvbSB0aGUgc3BlY2lmaWVkIGFsdHAybS4gU28g eW91IGNvdWxkIGJlCj4gPj4gcmVhZGluZyB0aGUgY29kZSBhc3N1bWluZyB5b3UgYXJlIGRlYWxp bmcgd2l0aCBhbiBlbnRyeSBmcm9tIHRoYXQKPiA+PiBzcGVjaWZpZWQgdGFibGUgd2hlbiBpbiBm YWN0IHlvdSBhcmUgbm90LiBUaGF0IGlzIG5vdCBhbiBleHBlY3RlZAo+ID4+IGJlaGF2aW9yIGJh c2VkIG9uIGp1c3QgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLiBUaGlzIGlzIGdvaW5nIHRvIG1h a2UKPiA+PiByZWFkaW5nIHRoZSBhbHRwMm0gY29kZSB0aGF0IG11Y2ggaGFyZGVyIGluIHRoZSBm dXR1cmUuCj4gPgo+ID4gUmlnaHQgLS0gSSB3YXNuJ3QgYSBodWdlIGZhbiBvZiAnZGlyZWN0JyBl aXRoZXI7IGl0IGRpZG4ndCByZWFsbHkgY29udmV5Cj4gPiB0byBtZSAxMDAlIHdoYXQgdGhlIGZ1 bmN0aW9uIGRpZC4gIE15IFBvQyBoYWQgInNlZXRocm91Z2giLCBidXQgdGhhdAo+ID4gd2Fzbid0 IHRoYXQgZ3JlYXQgZWl0aGVyLiAgIlBlZWsiPyAgQW55IG90aGVyIHN1Z2dlc3Rpb25zPwo+ID4K PiA+IE90aGVyIG9wdGlvbnM6Cj4gPgo+ID4gKiBJZiB3ZSBoYXZlIGEgc2luZ2xlIGZ1bmN0aW9u IHdpdGggYSAjZGVmaW5lLCB0aGlzIG1pZ2h0IGdldCBhIGJpdAo+ID4gZWFzaWVyOyAgd2UgY291 bGQgaGF2ZSBvbmUgYmUgQVAyTUdFVF9kb250X3ByZXBvcHVsYXRlIG9yIHNvbWV0aGluZy4KPiA+ Cj4gPiAoIFdlIGNvdWxkIGhhdmUgdGhlICJjb3JlIiBmdW5jdGlvbiBuYW1lZCBfYWx0cDJtX2dl dF9lbnRyeSwgYW5kIGhhdmUKPiA+IGFsdHAybV9nZXRfZW50cnkoKSBjYWxsIHdpdGggcHJlcG9w dWxhdGUgPSBmYWxzZSwgYW5kCj4gPiBhbHRwMm1fZ2V0X2VudHJ5X3ByZXBvcHVsYXRlKCkgY2Fs bCBpdCB3aXRoIHByZXBvcHVsYXRlID0gdHJ1ZS4KPgo+IFRoaXMgb3B0aW9uIHdpdGggbm8gZGVm aW5lcyBzZWVtcyB0byBzb2x2ZSBtb3JlIG9mIHRoZSBuYW1pbmcgcHJvYmxlbXMKPiBidXQgaXQg d2lsbCBzdGlsbCBpbnRyb2R1Y2UgdGhlIHNwYWdoZXR0aSBjb2RlLiBJIHZvdGUgZm9yIHRoaXMg b25lIGFuZAo+IGlmIFRhbWFzIGFncmVlcyBJIHdpbGwgaGF2ZSBpdCB0aGlzIHdheSBpbiB0aGUg bmV4dCB2ZXJzaW9uLgo+CgpIYXZpbmcgYWx0cDJtX2dldF9lbnRyeSBhbmQgYWx0cDJtX2dldF9l bnRyeV9wcmVwb3B1bGF0ZSBzZWVtIHRvIGJlIGEKYmV0dGVyIG5hbWUgZm9yIHRoZW0sIGFzIGxv bmcgYXMgYWx0cDJtX2dldF9lbnRyeSBkb2Vzbid0IHJldHVybiBhbgplbnRyeSBmcm9tIHRoZSBo b3N0cDJtIGlmIHRoZXJlIGlzbid0IG9uZSBpbiB0aGUgYWx0cDJtLCBhbmQKYWx0cDJtX2dldF9l bnRyeV9wcmVwb3B1bGF0ZSByZXR1cm5zIGFuIGVudHJ5IG9ubHkgaWYgcHJlcG9wdWxhdGlvbgph Y3R1YWxseSB3b3JrZWQuIEluIGJvdGggb2YgdGhvc2UgY2FzZXMgdGhlIGZ1bmN0aW9ucyB3b3Vs ZCBvbmx5CnJldHVybiBlbnRyaWVzIGZyb20gdGhlIGFsdHAybSwgYXMgdGhlaXIgbmFtZSBhY3R1 YWxseSBzdWdnZXN0cy4KClRhbWFzCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs