From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH RFC 15/18] arm: Add ability to relocate Xen in over 4GB space Date: Thu, 19 May 2016 14:53:09 +0100 Message-ID: <573DC545.5040205@arm.com> References: <1463589161-4153-1-git-send-email-andrii.anisov@globallogic.com> <1463589161-4153-16-git-send-email-andrii.anisov@globallogic.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1463589161-4153-16-git-send-email-andrii.anisov@globallogic.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andrii Anisov , embedded-pv-devel@lists.xenproject.org Cc: Iurii Konovalenko , Stefano Stabellini , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SGVsbG8sCgpPbiAxOC8wNS8xNiAxNzozMiwgQW5kcmlpIEFuaXNvdiB3cm90ZToKPiBGcm9tOiBJ dXJpaSBLb25vdmFsZW5rbyA8aXVyaWkua29ub3ZhbGVua29AZ2xvYmFsbG9naWMuY29tPgo+Cj4g TW92ZSBYZW4gdG8gdGhlIGVuZCBvZiBwaHlzaWNhbCBtZW1vcnkKCkNhbiB5b3UgZXhwbGFpbiB3 aHk/IEFzIElhbiBjYW1wYmVsbCBzYWlkIG9uIHRoZSBwcmV2aW91cyB2ZXJzaW9uIHNlbnQgCmxh c3QgeWVhciBbMV0sIFhlbiBpdHNlbGYgKGkuZSAudGV4dCwgLmJzcyBhbmQgLmRhdGEsIG5vdCB0 aGUgeGVuaGVhcCAKaXRzZWxmKSBpcyBhdCBtb3N0IDJNQi4gQXJlIHlvdXIgY29uc3RyYWludHMg c3VjaCB0aGF0IGF0IGEgNEdCLTJNQiAKKGkuZS4gNDA5Nk0pIG9mIGxvd21lbSB3b3VsZCBub3Qg YmUgYWNjZXB0YWJsZT8KCkFsc28sIHRoaXMgcGF0Y2ggbG9va3MgdmVyeSBzaW1pbGFyIHRvIHRo ZSBvbmUgeW91IGhhdmUgc2VudCBsYXN0IHllYXIgClsyXS4gTW9zdCBvZiB0aGUgY29tbWVudHMg aW4gdGhpcyB0aHJlYWQgYXJlIHN0aWxsIHZhbGlkLCBzbyBJIHdpbGwgbm90IApyZXBlYXQgdGhl bSBoZXJlLgoKUmVnYXJkcywKCj4KPiBTaWduZWQtb2ZmLWJ5OiBJdXJpaSBLb25vdmFsZW5rbyA8 aXVyaWkua29ub3ZhbGVua29AZ2xvYmFsbG9naWMuY29tPgo+IC0tLQo+ICAgeGVuL1J1bGVzLm1r ICAgICAgICAgICAgICAgICAgIHwgIDEgKwo+ICAgeGVuL2FyY2gvYXJtL2FybTMyL2hlYWQuUyAg ICAgIHwgMjEgKysrKysrKysrKysrKysrKysrKystCj4gICB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1 aWxkLmMgICAgfCAgMiArLQo+ICAgeGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy9vbWFwNS5jIHwgMTcg KysrKysrKysrKysrKystLS0KPiAgIHhlbi9hcmNoL2FybS9wbGF0Zm9ybXMvcmNhcjIuYyB8ICA5 ICsrKysrKysrLQo+ICAgeGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgICAgIHwgMjEgKysrKysr KysrKwo+KysrKysrKysrKy0KPiAgIHhlbi9hcmNoL2FybS9zbXBib290LmMgICAgICAgICB8IDMz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+ICAgNyBmaWxlcyBjaGFuZ2VkLCA5 MyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS94ZW4vUnVs ZXMubWsgYi94ZW4vUnVsZXMubWsKPiBpbmRleCBmZWIwOGQ2Li5mYmQzNGE1IDEwMDY0NAo+IC0t LSBhL3hlbi9SdWxlcy5tawo+ICsrKyBiL3hlbi9SdWxlcy5tawo+IEBAIC02NCw2ICs2NCw3IEBA IENGTEFHUy0kKEhBU19QQ0kpICAgICAgICs9IC1ESEFTX1BDSQo+ICAgQ0ZMQUdTLSQoSEFTX0lP UE9SVFMpICAgKz0gLURIQVNfSU9QT1JUUwo+ICAgQ0ZMQUdTLSQoSEFTX1BEWCkgICAgICAgKz0g LURIQVNfUERYCj4gICBDRkxBR1MtJChmcmFtZV9wb2ludGVyKSArPSAtZm5vLW9taXQtZnJhbWUt cG9pbnRlciAtRENPTkZJR19GUkFNRV9QT0lOVEVSCj4gK0NGTEFHUy0kKEFSTTMyX1JFTE9DQVRF X09WRVJfNEdCKSArPSAtREFSTTMyX1JFTE9DQVRFX09WRVJfNEdCCj4KPiAgIGlmbmVxICgkKG1h eF9waHlzX2NwdXMpLCkKPiAgIENGTEFHUy15ICAgICAgICAgICAgICAgICs9IC1ETUFYX1BIWVNf Q1BVUz0kKG1heF9waHlzX2NwdXMpCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9hcm0zMi9o ZWFkLlMgYi94ZW4vYXJjaC9hcm0vYXJtMzIvaGVhZC5TCj4gaW5kZXggZTFmMjliZC4uYTY0NGQ2 ZCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vYXJtMzIvaGVhZC5TCj4gKysrIGIveGVuL2Fy Y2gvYXJtL2FybTMyL2hlYWQuUwo+IEBAIC0yNjIsOCArMjYyLDIxIEBAIGNwdV9pbml0X2RvbmU6 Cj4gICAgICAgICAgIGFkZCAgIHI0LCByNCwgcjEwICAgICAgICAgICAgLyogcjQgOj0gcGFkZHIg KGJvb3RfcGFnZXRhYmxlKSAqLwo+ICAgICAgICAgICBtb3YgICByNSwgIzAgICAgICAgICAgICAg ICAgIC8qIHI0OnI1IGlzIHBhZGRyIChib290X3BhZ2V0YWJsZSkgKi8KPiAgICAgICAgICAgbWNy ciAgQ1A2NChyNCwgcjUsIEhUVEJSKQo+ICsjaWZkZWYgQVJNMzJfUkVMT0NBVEVfT1ZFUl80R0IK PiArICAgICAgICB0ZXEgICByNywgIzAKPiArICAgICAgICBiZXEgICAxZiAgICAgICAgICAgICAg ICAgICAgIC8qIGNvbnN0cnVjdCBwYWdldGFibGUgaWYgQ1BVMCAqLwo+Cj4gLSAgICAgICAgLyog U2V0dXAgYm9vdF9wZ3RhYmxlOiAqLwo+ICsgICAgICAgIC8qU2tpcCBjb25zdHJ1Y3RpbmcgVExC cyBmb3Igc2Vjb25kYXJ5IENQVXMsIHVzZSBjb25zdHJhY3RlZCBieSBDUFUwKi8KPiArICAgICAg ICBQUklOVCgiLSBTa2lwIGNvbnN0cnVjdGlvbiBwYWdldGFibGUsIHVzaW5nIENQVTAgdGFibGUg QCIpCj4gKyAgICAgICAgbW92ICAgcjAsIHI1Cj4gKyAgICAgICAgYmwgICAgcHV0bgo+ICsgICAg ICAgIG1vdiAgIHIwLCByNAo+ICsgICAgICAgIGJsICAgIHB1dG4KPiArICAgICAgICBQUklOVCgi ICAtXHJcbiIpCj4gKyAgICAgICAgYm5lICAgc2tpcF9jb25zdHJ1Y3RpbmcKPiArI2VuZGlmCj4g Kwo+ICsxOiAgICAgIC8qIFNldHVwIGJvb3RfcGd0YWJsZTogKi8KPiAgICAgICAgICAgbGRyICAg cjEsID1ib290X3NlY29uZAo+ICAgICAgICAgICBhZGQgICByMSwgcjEsIHIxMCAgICAgICAgICAg IC8qIHIxIDo9IHBhZGRyIChib290X3NlY29uZCkgKi8KPgo+IEBAIC0zNDYsNiArMzU5LDcgQEAg dmlydHBoeXNfY2xhc2g6Cj4gICAgICAgICAgIFBSSU5UKCItIFVuYWJsZSB0byBidWlsZCBib290 IHBhZ2UgdGFibGVzIC0gdmlydCBhbmQgcGh5cyBhZGRyZXNzZXMgY2xhc2guIC1cclxuIikKPiAg ICAgICAgICAgYiAgICAgZmFpbAo+Cj4gK3NraXBfY29uc3RydWN0aW5nOgo+ICAgMToKPiAgICAg ICAgICAgUFJJTlQoIi0gVHVybmluZyBvbiBwYWdpbmcgLVxyXG4iKQo+Cj4gQEAgLTQyNyw2ICs0 NDEsMTEgQEAgcGFnaW5nOgo+ICAgICAgICAgICAgKiBzZXR1cCBpbiBpbml0X3NlY29uZGFyeV9w YWdldGFibGVzLiAqLwo+Cj4gICAgICAgICAgIGxkciAgIHI0LCA9aW5pdF90dGJyICAgICAgICAg LyogVkEgb2YgSFRUQlIgdmFsdWUgc3Rhc2hlZCBieSBDUFUgMCAqLwo+ICsjaWZkZWYgQVJNMzJf UkVMT0NBVEVfT1ZFUl80R0IKPiArICAgICAgICBsZHIgICByMSwgPV9zdGFydAo+ICsgICAgICAg IHN1YiByNCwgcjEKPiArICAgICAgICBhZGQgcjQsICNCT09UX1JFTE9DX1ZJUlRfU1RBUlQKPiAr I2VuZGlmCj4gICAgICAgICAgIGxkcmQgIHI0LCByNSwgW3I0XSAgICAgICAgICAgLyogQWN0dWFs IHZhbHVlICovCj4gICAgICAgICAgIGRzYgo+ICAgICAgICAgICBtY3JyICBDUDY0KHI0LCByNSwg SFRUQlIpCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9h cmNoL2FybS9kb21haW5fYnVpbGQuYwo+IGluZGV4IGI0ODcxOGQuLmYwNjc5MmUgMTAwNjQ0Cj4g LS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCj4gKysrIGIveGVuL2FyY2gvYXJtL2Rv bWFpbl9idWlsZC5jCj4gQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBm aW5kX2dudHRhYl9yZWdpb24oc3RydWN0IGRvbWFpbiAqZCwKPiAgICAgICBpZiAoIChraW5mby0+ Z250dGFiX3NpemUgPj4gUEFHRV9TSElGVCkgPCBtYXhfZ3JhbnRfZnJhbWVzICkKPiAgICAgICAg ICAgcGFuaWMoIkNhbm5vdCBmaW5kIGEgc3BhY2UgZm9yIHRoZSBncmFudCB0YWJsZSByZWdpb25c biIpOwo+Cj4gLSNpZmRlZiBDT05GSUdfQVJNXzMyCj4gKyNpZiBkZWZpbmVkKENPTkZJR19BUk1f MzIpICYmICFkZWZpbmVkKEFSTTMyX1JFTE9DQVRFX09WRVJfNEdCKQo+ICAgICAgIC8qCj4gICAg ICAgICogVGhlIGdudHRhYiByZWdpb24gbXVzdCBiZSB1bmRlciA0R0IgaW4gb3JkZXIgdG8gd29y ayB3aXRoIERPTTAKPiAgICAgICAgKiB1c2luZyBzaG9ydCBwYWdlIHRhYmxlLgo+IGRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL29tYXA1LmMgYi94ZW4vYXJjaC9hcm0vcGxhdGZv cm1zL29tYXA1LmMKPiBpbmRleCBhNDliYTYyLi5mZTc3Mzk3IDEwMDY0NAo+IC0tLSBhL3hlbi9h cmNoL2FybS9wbGF0Zm9ybXMvb21hcDUuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMv b21hcDUuYwo+IEBAIC0yNSw2ICsyNSwxMCBAQAo+ICAgI2luY2x1ZGUgPHhlbi92bWFwLmg+Cj4g ICAjaW5jbHVkZSA8YXNtL2lvLmg+Cj4KPiArI2lmZGVmIEFSTTMyX1JFTE9DQVRFX09WRVJfNEdC Cj4gK2V4dGVybiBwYWRkcl90IHhlbl9yZWxvY2F0aW9uX29mZnNldDsKPiArI2VuZGlmCj4gKwo+ ICAgc3RhdGljIHVpbnQxNl90IG51bV9kZW5bOF1bMl0gPSB7Cj4gICAgICAgeyAgICAgICAgIDAs ICAgICAgICAgIDAgfSwgIC8qIG5vdCB1c2VkICovCj4gICAgICAgeyAgMjYgKiAgNjQsICAyNiAq ICAxMjUgfSwgIC8qIDEyLjAgTWh6ICovCj4gQEAgLTEzMiw5ICsxMzYsMTYgQEAgc3RhdGljIGlu dCBfX2luaXQgb21hcDVfc21wX2luaXQodm9pZCkKPiAgICAgICB9Cj4KPiAgICAgICBwcmludGso IlNldCBBdXhDb3JlQm9vdDEgdG8gJSJQUklwYWRkciIgKCVwKVxuIiwKPiAtICAgICAgICAgICBf X3BhKGluaXRfc2Vjb25kYXJ5KSwgaW5pdF9zZWNvbmRhcnkpOwo+IC0gICAgd3JpdGVsKF9fcGEo aW5pdF9zZWNvbmRhcnkpLCB3dWdlbl9iYXNlICsgT01BUF9BVVhfQ09SRV9CT09UXzFfT0ZGU0VU KTsKPiAtCj4gKyAgICAgICAgICAgX19wYShpbml0X3NlY29uZGFyeSkKPiArI2lmZGVmIEFSTTMy X1JFTE9DQVRFX09WRVJfNEdCCj4gKyAgICAgICAgICAgIC0geGVuX3JlbG9jYXRpb25fb2Zmc2V0 Cj4gKyNlbmRpZgo+ICsJCQksIGluaXRfc2Vjb25kYXJ5KTsKPiArICAgIHdyaXRlbChfX3BhKGlu aXRfc2Vjb25kYXJ5KQo+ICsjaWZkZWYgQVJNMzJfUkVMT0NBVEVfT1ZFUl80R0IKPiArICAgICAg ICAgICAgLSB4ZW5fcmVsb2NhdGlvbl9vZmZzZXQKPiArI2VuZGlmCj4gKwkJCSwgd3VnZW5fYmFz ZSArIE9NQVBfQVVYX0NPUkVfQk9PVF8xX09GRlNFVCk7Cj4gICAgICAgcHJpbnRrKCJTZXQgQXV4 Q29yZUJvb3QwIHRvIDB4MjBcbiIpOwo+ICAgICAgIHdyaXRlbCgweDIwLCB3dWdlbl9iYXNlICsg T01BUF9BVVhfQ09SRV9CT09UXzBfT0ZGU0VUKTsKPgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9h cm0vcGxhdGZvcm1zL3JjYXIyLmMgYi94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL3JjYXIyLmMKPiBp bmRleCBiYjI1NzUxLi4yNjk3M2Y2IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9wbGF0Zm9y bXMvcmNhcjIuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMvcmNhcjIuYwo+IEBAIC0y NSw2ICsyNSw5IEBACj4gICAjZGVmaW5lIFJDQVIyX1JBTV9TSVpFICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MTAwMAo+ICAgI2RlZmluZSBSQ0FSMl9TTVBfU1RBUlRfT0ZGU0VUICAgICAgICAg ICAgICAgICAweEZGQwo+Cj4gKyNpZmRlZiBBUk0zMl9SRUxPQ0FURV9PVkVSXzRHQgo+ICtleHRl cm4gcGFkZHJfdCB4ZW5fcmVsb2NhdGlvbl9vZmZzZXQ7Cj4gKyNlbmRpZgo+ICAgc3RhdGljIGlu dCBfX2luaXQgcmNhcjJfc21wX2luaXQodm9pZCkKPiAgIHsKPiAgICAgICB2b2lkIF9faW9tZW0g KnByYW07Cj4gQEAgLTM4LDcgKzQxLDExIEBAIHN0YXRpYyBpbnQgX19pbml0IHJjYXIyX3NtcF9p bml0KHZvaWQpCj4gICAgICAgfQo+Cj4gICAgICAgLyogc2V0dXAgcmVzZXQgdmVjdG9ycyAqLwo+ IC0gICAgd3JpdGVsKF9fcGEoaW5pdF9zZWNvbmRhcnkpLCBwcmFtICsgUkNBUjJfU01QX1NUQVJU X09GRlNFVCk7Cj4gKyAgICB3cml0ZWwoX19wYShpbml0X3NlY29uZGFyeSkKPiArI2lmZGVmIEFS TTMyX1JFTE9DQVRFX09WRVJfNEdCCj4gKyAgICAgICAgICAgIC0geGVuX3JlbG9jYXRpb25fb2Zm c2V0Cj4gKyNlbmRpZgo+ICsgICAgICAgICAgICAsIHByYW0gKyBSQ0FSMl9TTVBfU1RBUlRfT0ZG U0VUKTsKPiAgICAgICBpb3VubWFwKHByYW0pOwo+Cj4gICAgICAgc2V2KCk7Cj4gZGlmZiAtLWdp dCBhL3hlbi9hcmNoL2FybS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKPiBpbmRleCA0 OGY3MzRmLi43ZTUwN2JjIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9zZXR1cC5jCj4gKysr IGIveGVuL2FyY2gvYXJtL3NldHVwLmMKPiBAQCAtMzk0LDkgKzM5NCwxMyBAQCBzdGF0aWMgcGFk ZHJfdCBfX2luaXQgZ2V0X3hlbl9wYWRkcih2b2lkKQo+ICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg bWVtYmFuayAqYmFuayA9ICZtaS0+YmFua1tpXTsKPiAgICAgICAgICAgcGFkZHJfdCBzLCBlOwo+ Cj4gKyAgICAgICAgLy9UT0RPOiBpbnZlc3RpZ2F0ZSByZWFzb24gd2h5IHdlIG5lZWQgY29udGln dW91cyBtZW1vcnkKPiArICAgICAgICAvL2FuZCBob3cgaXQgY2FuIGFmZmVjdCByZWxvY2F0aW9u IG9mIFhlbiBpbiBvdmVyIDRHQiBzcGFjZQo+ICsjaWZuZGVmIEFSTTMyX1JFTE9DQVRFX09WRVJf NEdCCj4gICAgICAgICAgIC8qIFdlIGNhbiBvbmx5IGRlYWwgd2l0aCBjb250aWd1b3VzIG1lbW9y eSBhdCB0aGUgbW9tZW50ICovCj4gICAgICAgICAgIGlmICggbGFzdF9lbmQgIT0gYmFuay0+c3Rh cnQgKQo+ICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyNlbmRpZgo+Cj4gICAgICAgICAgIGxhc3Rf ZW5kID0gYmFuay0+c3RhcnQgKyBiYW5rLT5zaXplOwo+Cj4gQEAgLTQwNyw3ICs0MTEsNyBAQCBz dGF0aWMgcGFkZHJfdCBfX2luaXQgZ2V0X3hlbl9wYWRkcih2b2lkKQo+ICAgICAgICAgICAgICAg aWYgKCAhZSApCj4gICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4KPiAtI2lmZGVmIENPTkZJ R19BUk1fMzIKPiArI2lmIGRlZmluZWQgKENPTkZJR19BUk1fMzIpICYmICFkZWZpbmVkKEFSTTMy X1JFTE9DQVRFX09WRVJfNEdCKQo+ICAgICAgICAgICAgICAgLyogWGVuIG11c3QgYmUgdW5kZXIg NEdCICovCj4gICAgICAgICAgICAgICBpZiAoIGUgPiAweDEwMDAwMDAwMFVMTCApCj4gICAgICAg ICAgICAgICAgICAgZSA9IDB4MTAwMDAwMDAwVUxMOwo+IEBAIC02OTgsNiArNzAyLDkgQEAgdm9p ZCBfX2luaXQgc2V0dXBfY2FjaGUodm9pZCkKPiAgICAgICBjYWNoZWxpbmVfYnl0ZXMgPSAxVSA8 PCAoNCArIChjY3NpZCAmIDB4NykpOwo+ICAgfQo+Cj4gKyNpZmRlZiBBUk0zMl9SRUxPQ0FURV9P VkVSXzRHQgo+ICtwYWRkcl90IHhlbl9yZWxvY2F0aW9uX29mZnNldDsKPiArI2VuZGlmCj4gICAv KiBDIGVudHJ5IHBvaW50IGZvciBib290IENQVSAqLwo+ICAgdm9pZCBfX2luaXQgc3RhcnRfeGVu KHVuc2lnbmVkIGxvbmcgYm9vdF9waHlzX29mZnNldCwKPiAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIGZkdF9wYWRkciwKPiBAQCAtNzM5LDggKzc0NiwyMCBAQCB2b2lkIF9f aW5pdCBzdGFydF94ZW4odW5zaWduZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAocGFkZHJfdCkodWludHB0cl90KShfZW5kIC0gX3N0YXJ0 ICsgMSksIE5VTEwpOwo+ICAgICAgIEJVR19PTigheGVuX2Jvb3Rtb2R1bGUpOwo+Cj4gKyNpZmRl ZiBBUk0zMl9SRUxPQ0FURV9PVkVSXzRHQgo+ICsgICAgLy9zYXZlIHBoeXNpY2FsIGFkZHJlc3Mg b2YgaW5pdF9zZWNvbmRhcnkKPiArICAgIHhlbl9yZWxvY2F0aW9uX29mZnNldCA9IF9fcGEoaW5p dF9zZWNvbmRhcnkpOwo+ICsjZW5kaWYKPiAgICAgICB4ZW5fcGFkZHIgPSBnZXRfeGVuX3BhZGRy KCk7Cj4gICAgICAgc2V0dXBfcGFnZXRhYmxlcyhib290X3BoeXNfb2Zmc2V0LCB4ZW5fcGFkZHIp Owo+ICsjaWZkZWYgQVJNMzJfUkVMT0NBVEVfT1ZFUl80R0IKPiArICAgIC8vTm93IFhlbiBpcyBy ZWxvY2F0ZWQKPiArICAgIC8vQ2FsY3VsYXRlIG9mZnNldCBvZiBYZW4gcmVsb2NhdGlvbgo+ICsg ICAgLy9JdCBpcyBkaWZmZXJlbmNlIGJldHdlZW4gbmV3IHBoeXNpY2FsIGFkZHJlc3Mgb2YgaW5p dF9zZWNvbmRhcnkgYW4gb2xkIG9uZQo+ICsgICAgLy9UaGlzIG9mZnNldCBpcyBuZWVkZWQgaW4g c2V2ZXJhbCBwbGFjZXMgd2hlbiB3ZSBoYXZlIHRvIHdyaXRlIHRvIG9sZCBYZW4gbG9jYXRpb24K PiArICAgIC8vKHNlY29uZGFyeSBDUFVzIHJ1biBvbiBvbGQtbG9jYXRlZCBYZW4gYW5kIHJlbHkg b24gc29tZSB2YXJpYWJsZXMgZnJvbSBDUFUwKQo+ICsgICAgeGVuX3JlbG9jYXRpb25fb2Zmc2V0 ID0gX19wYShpbml0X3NlY29uZGFyeSkgLSB4ZW5fcmVsb2NhdGlvbl9vZmZzZXQ7Cj4gKyNlbmRp Zgo+Cj4gICAgICAgLyogVXBkYXRlIFhlbidzIGFkZHJlc3Mgbm93IHRoYXQgd2UgaGF2ZSByZWxv Y2F0ZWQuICovCj4gICAgICAgcHJpbnRrKCJVcGRhdGUgQk9PVE1PRF9YRU4gZnJvbSAlIlBSSXBh ZGRyIi0lIlBSSXBhZGRyIiA9PiAlIlBSSXBhZGRyIi0lIlBSSXBhZGRyIlxuIiwKPiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL3NtcGJvb3QuYyBiL3hlbi9hcmNoL2FybS9zbXBib290LmMKPiBp bmRleCBhOTZjZGEyLi43MzExNDRjIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9zbXBib290 LmMKPiArKysgYi94ZW4vYXJjaC9hcm0vc21wYm9vdC5jCj4gQEAgLTMxLDYgKzMxLDkgQEAKPiAg ICNpbmNsdWRlIDx4ZW4vY29uc29sZS5oPgo+ICAgI2luY2x1ZGUgPGFzbS9naWMuaD4KPiAgICNp bmNsdWRlIDxhc20vcHNjaS5oPgo+ICsjaWZkZWYgQVJNMzJfUkVMT0NBVEVfT1ZFUl80R0IKPiAr I2luY2x1ZGUgPHhlbi92bWFwLmg+Cj4gKyNlbmRpZgo+Cj4gICBjcHVtYXNrX3QgY3B1X29ubGlu ZV9tYXA7Cj4gICBjcHVtYXNrX3QgY3B1X3ByZXNlbnRfbWFwOwo+IEBAIC0zNTMsMTcgKzM1Niwz MyBAQCBpbnQgX19pbml0IGNwdV91cF9zZW5kX3NnaShpbnQgY3B1KQo+ICAgICAgIHJldHVybiAw Owo+ICAgfQo+Cj4gKyNpZmRlZiBBUk0zMl9SRUxPQ0FURV9PVkVSXzRHQgo+ICtleHRlcm4gcGFk ZHJfdCB4ZW5fcmVsb2NhdGlvbl9vZmZzZXQ7Cj4gKyNlbmRpZgo+ICAgLyogQnJpbmcgdXAgYSBy ZW1vdGUgQ1BVICovCj4gICBpbnQgX19jcHVfdXAodW5zaWduZWQgaW50IGNwdSkKPiAgIHsKPiAg ICAgICBpbnQgcmM7Cj4gICAgICAgc190aW1lX3QgZGVhZGxpbmU7Cj4gKyNpZmRlZiBBUk0zMl9S RUxPQ0FURV9PVkVSXzRHQgo+ICsgICAgcGFkZHJfdCBwX2luZm8gPSBfX3BhKCZzbXBfdXBfY3B1 KSAtIHhlbl9yZWxvY2F0aW9uX29mZnNldDsKPiArICAgIHVuc2lnbmVkIGxvbmcqIGluZm8gPSBp b3JlbWFwX25vY2FjaGUocF9pbmZvLCBzaXplb2YodW5zaWduZWQgbG9uZykpOwo+ICsjZWxzZQo+ ICsgICAgdW5zaWduZWQgbG9uZyogaW5mbyA9ICZzbXBfdXBfY3B1Owo+ICsjZW5kaWYKPgo+ICAg ICAgIHByaW50aygiQnJpbmdpbmcgdXAgQ1BVJWRcbiIsIGNwdSk7Cj4KPiAgICAgICByYyA9IGlu aXRfc2Vjb25kYXJ5X3BhZ2V0YWJsZXMoY3B1KTsKPiAgICAgICBpZiAoIHJjIDwgMCApCj4gKyNp ZmRlZiBBUk0zMl9SRUxPQ0FURV9PVkVSXzRHQgo+ICsgICAgewo+ICsgICAgICAgIGlvdW5tYXAo aW5mbyk7Cj4gKyAgICAgICAgcmV0dXJuIHJjOwo+ICsgICAgfQo+ICsjZWxzZQo+ICAgICAgICAg ICByZXR1cm4gcmM7Cj4gKyNlbmRpZgo+Cj4gICAgICAgY29uc29sZV9zdGFydF9zeW5jKCk7IC8q IFNlY29uZGFyeSBtYXkgdXNlIGVhcmx5X3ByaW50ayAqLwo+Cj4gQEAgLTM3NCw4ICszOTMsOCBA QCBpbnQgX19jcHVfdXAodW5zaWduZWQgaW50IGNwdSkKPiAgICAgICBpbml0X2RhdGEuY3B1aWQg PSBjcHU7Cj4KPiAgICAgICAvKiBPcGVuIHRoZSBnYXRlIGZvciB0aGlzIENQVSAqLwo+IC0gICAg c21wX3VwX2NwdSA9IGNwdV9sb2dpY2FsX21hcChjcHUpOwo+IC0gICAgY2xlYW5fZGNhY2hlKHNt cF91cF9jcHUpOwo+ICsgICAgKmluZm8gPSBjcHVfbG9naWNhbF9tYXAoY3B1KTsKPiArICAgIGNs ZWFuX2RjYWNoZSgqaW5mbyk7Cj4KPiAgICAgICByYyA9IGFyY2hfY3B1X3VwKGNwdSk7Cj4KPiBA QCAtMzgzLDYgKzQwMiw5IEBAIGludCBfX2NwdV91cCh1bnNpZ25lZCBpbnQgY3B1KQo+Cj4gICAg ICAgaWYgKCByYyA8IDAgKQo+ICAgICAgIHsKPiArI2lmZGVmIEFSTTMyX1JFTE9DQVRFX09WRVJf NEdCCj4gKyAgICAgICAgaW91bm1hcChpbmZvKTsKPiArI2VuZGlmCj4gICAgICAgICAgIHByaW50 aygiRmFpbGVkIHRvIGJyaW5nIHVwIENQVSVkXG4iLCBjcHUpOwo+ICAgICAgICAgICByZXR1cm4g cmM7Cj4gICAgICAgfQo+IEBAIC00MDYsOCArNDI4LDExIEBAIGludCBfX2NwdV91cCh1bnNpZ25l ZCBpbnQgY3B1KQo+ICAgICAgICAqLwo+ICAgICAgIGluaXRfZGF0YS5zdGFjayA9IE5VTEw7Cj4g ICAgICAgaW5pdF9kYXRhLmNwdWlkID0gfjA7Cj4gLSAgICBzbXBfdXBfY3B1ID0gTVBJRFJfSU5W QUxJRDsKPiAtICAgIGNsZWFuX2RjYWNoZShzbXBfdXBfY3B1KTsKPiArICAgICppbmZvID0gTVBJ RFJfSU5WQUxJRDsKPiArICAgIGNsZWFuX2RjYWNoZSgqaW5mbyk7Cj4gKyNpZmRlZiBBUk0zMl9S RUxPQ0FURV9PVkVSXzRHQgo+ICsgICAgaW91bm1hcChpbmZvKTsKPiArI2VuZGlmCj4KPiAgICAg ICBpZiAoICFjcHVfb25saW5lKGNwdSkgKQo+ICAgICAgIHsKPgoKWzFdIApodHRwOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNS0wNS9tc2cwMTAzMS5o dG1sClsyXSAKaHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRl dmVsLzIwMTUtMDQvbXNnMDA2NjIuaHRtbAoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK