From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH RFC 04/18] libxl: add ability to set rambase_pfn via cfg file Date: Thu, 19 May 2016 12:36:48 +0100 Message-ID: <573DA550.3070009@arm.com> References: <1463589161-4153-1-git-send-email-andrii.anisov@globallogic.com> <1463589161-4153-5-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-5-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 , Wei Liu , Ian Jackson , Iurii Mykhalskyi , xen-devel@lists.xen.org, Oleksandr Tyshchenko List-Id: xen-devel@lists.xenproject.org SGVsbG8sCgpPbiAxOC8wNS8xNiAxNzozMiwgQW5kcmlpIEFuaXNvdiB3cm90ZToKPiBGcm9tOiBP bGVrc2FuZHIgVHlzaGNoZW5rbyA8b2xla3NhbmRyLnR5c2hjaGVua29AZ2xvYmFsbG9naWMuY29t Pgo+IEluIGNhc2Ugb2YgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSBpbiBjZmcgZmlsZQo+IHRo ZSBkZWZhdWx0IHZhbHVlICgweDQwMDAwKSBzaG91bGQgYmUgdXNlZC4KClRoZSBtZW1vcnkgbGF5 b3V0IGZvciB0aGUgZ3Vlc3QgaXMgc3RhdGljIGFuZCBtYXkgY2hhbmdlIGJldHdlZW4gCnZlcnNp b24uIEJ5IGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgdGhlIGJhc2Ugb2YgdGhlIFJBTSwg eW91IGV4cG9zZSAKdGhlIFhlbiBpbnRlcm5hbC4gVGhlIHVzZXIgY2Fubm90IHVzZSB0aGlzIG9w dGlvbiB3aXRob3V0IGtub3dpbmcgdGhlIAp2ZXJzaW9uIG9mIFhlbiA0LjQgYW5kIGxvb2tpbmcg YXQgeGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmguCgpBbHNvLCB5b3UgbmVlZCB0byBleHBs YWluIHdoeSBhIHVzZXIgd291bGQgd2FudCB0byBjaGFuZ2UgdGhlIApyYW1iYXNlX3Bmbi4gSSBz dXNwZWN0IGl0IGlzIGZvciBzdXBwb3J0aW5nIGRpcmVjdCBtYXBwZWQgZG9tYWluLiBJZiBzbywg CkkgdGhpbmsgdGhlIHdheSBmb3J3YXJkIGlzIHRvIGV4cG9zZSB0aGUgc2FtZSBtZW1vcnkgbGF5 b3V0IGFzIHRoZSAKaGFyZHdhcmUgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIG1ha2UgdGhlIGxheW91 dCBoYWxmLXN0YXRpYy9keW5hbWljLgoKRXhwb3NpbmcgdGhlIHNhbWUgbGF5b3V0IGFzIHRoZSBo YXJkd2FyZSB3b3VsZCBhbGxvdyB5b3UgdG8gbWFwIHRoZSAKZGV2aWNlIE1NSU9zIDE6MSBhbmQg YXZvaWQgdW5uZWNlc3NhcnkgSVBBIC0+IFBBIHRyYW5zbGF0aW9uIHZpYSBhbiAKaHlwZXJjYWxs IChzZWUgcGF0Y2ggIzEwKS4KCkxhc3RseSwgdGhlIGNvbW1pdCBtZXNzYWdlIHNob3VsZCBleHBs YWluIHRoZSByZXN0cmljdGlvbi4gRm9yIGluc3RhbmNlLCAKSSB3b3VsZCBoYXZlIGV4cGVjdCB0 byBiZSBhYmxlIHRvIHNwZWNpZnkgYW55IHZhbHVlLiBIb3dldmVyIGJhc2VkIG9uIAp0aGUgY2hl Y2sgaW4geGwsIHRoaXMgaXMgbm90IHBvc3NpYmxlLgoKPgo+IFNpZ25lZC1vZmYtYnk6IE9sZWtz YW5kciBUeXNoY2hlbmtvIDxvbGVrc2FuZHIudHlzaGNoZW5rb0BnbG9iYWxsb2dpYy5jb20+Cj4g U2lnbmVkLW9mZi1ieTogSXVyaWkgS29ub3ZhbGVua28gPGl1cmlpLmtvbm92YWxlbmtvQGdsb2Jh bGxvZ2ljLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBJdXJpaSBNeWtoYWxza3lpIDxpdXJpaS5teWto YWxza3lpQGdsb2JhbGxvZ2ljLmNvbT4KPiAtLS0KPiAgIHRvb2xzL2xpYnhjL3hjX2RvbV9hcm0u YyAgICAgfCAxMyArKysrKysrLS0tLS0tCj4gICB0b29scy9saWJ4bC9saWJ4bF9hcm0uYyAgICAg IHwgMTAgKysrKysrKystLQo+ICAgdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgICB8ICA1ICsr KysrCj4gICB0b29scy9saWJ4bC9saWJ4bF9kb20uYyAgICAgIHwgIDYgKysrLS0tCj4gICB0b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIHwgIDEgKwo+ICAgdG9vbHMvbGlieGwvbGlieGxfdHlw ZXMuaWRsICB8ICAxICsKPiAgIHRvb2xzL2xpYnhsL3hsX2NtZGltcGwuYyAgICAgfCAxMyArKysr KysrKysrKysrCj4gICA3IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDExIGRlbGV0 aW9ucygtKWxpYnhjCj4KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9tX2FybS5jIGIv dG9vbHMvbGlieGMveGNfZG9tX2FybS5jCj4gaW5kZXggNWVlOGVlZi4uOTZkZjY2OSAxMDA2NDQK PiAtLS0gYS90b29scy9saWJ4Yy94Y19kb21fYXJtLmMKPiArKysgYi90b29scy9saWJ4Yy94Y19k b21fYXJtLmMKPiBAQCAtNDE1LDkgKzQxNSwxMiBAQCBpbnQgYXJjaF9zZXR1cF9tZW1pbml0KHN0 cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKPiAgICAgICB1aW50NjRfdCBtb2RiYXNlOwo+Cj4gICAg ICAgdWludDY0X3QgcmFtc2l6ZSA9ICh1aW50NjRfdClkb20tPnRvdGFsX3BhZ2VzIDw8IFhDX1BB R0VfU0hJRlQ7Cj4gKyAgICB1aW50NjRfdCBndWVzdF9yYW1iYXNlID0gKHVpbnQ2NF90KWRvbS0+ cmFtYmFzZV9wZm4gPDwgWENfUEFHRV9TSElGVDsKPiArICAgIHVpbnQ2NF90IGd1ZXN0X3JhbXNp emUgPSAoR1VFU1RfUkFNMF9CQVNFICsgR1VFU1RfUkFNMF9TSVpFKSAtCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGd1ZXN0X3JhbWJhc2U7Cj4KPiAtICAgIGNvbnN0IHVpbnQ2NF90 IGJhbmtiYXNlW10gPSBHVUVTVF9SQU1fQkFOS19CQVNFUzsKPiAtICAgIGNvbnN0IHVpbnQ2NF90 IGJhbmttYXhbXSA9IEdVRVNUX1JBTV9CQU5LX1NJWkVTOwo+ICsgICAgY29uc3QgdWludDY0X3Qg YmFua2Jhc2VbXSA9IHtndWVzdF9yYW1iYXNlLCBHVUVTVF9SQU0xX0JBU0V9Owo+ICsgICAgY29u c3QgdWludDY0X3QgYmFua21heFtdID0ge2d1ZXN0X3JhbXNpemUsIEdVRVNUX1JBTTFfU0laRX07 Cj4KPiAgICAgICAvKiBDb252ZW5pZW50ICovCj4gICAgICAgY29uc3QgdWludDY0X3Qga2VybmJh c2UgPSBkb20tPmtlcm5lbF9zZWcudnN0YXJ0Owo+IEBAIC00MzMsOCArNDM2LDYgQEAgaW50IGFy Y2hfc2V0dXBfbWVtaW5pdChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCj4gICAgICAgeGVuX3Bm bl90IHAybV9zaXplOwo+ICAgICAgIHVpbnQ2NF90IGJhbmswZW5kOwo+Cj4gLSAgICBhc3NlcnQo ZG9tLT5yYW1iYXNlX3BmbiA8PCBYQ19QQUdFX1NISUZUID09IGJhbmtiYXNlWzBdKTsKPiAtCj4g ICAgICAgaWYgKCBtb2RzaXplICsga2VybnNpemUgPiBiYW5rbWF4WzBdICkKPiAgICAgICB7Cj4g ICAgICAgICAgIERPTVBSSU5URigiJXM6IE5vdCBlbm91Z2ggbWVtb3J5IGZvciB0aGUga2VybmVs K2R0Yitpbml0cmQiLAo+IEBAIC00NDgsMTEgKzQ0OSwxMSBAQCBpbnQgYXJjaF9zZXR1cF9tZW1p bml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKPiAgICAgICAgICAgcmV0dXJuIC0xOwo+ICAg ICAgIH0KPgo+IC0gICAgaWYgKCByYW1zaXplID4gR1VFU1RfUkFNX01BWCApCj4gKyAgICBpZiAo IHJhbXNpemUgPiAoYmFua21heFswXSArIGJhbmttYXhbMV0pICkKPiAgICAgICB7Cj4gICAgICAg ICAgIERPTVBSSU5URigiJXM6IHJhbSBzaXplIGlzIHRvbyBsYXJnZSBmb3IgZ3Vlc3QgYWRkcmVz cyBzcGFjZTogIgo+ICAgICAgICAgICAgICAgICAgICAgIiUiUFJJeDY0IiA+ICVsbHgiLAo+IC0g ICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHJhbXNpemUsIEdVRVNUX1JBTV9NQVgpOwo+ ICsgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHJhbXNpemUsIGJhbmttYXhbMF0gKyBi YW5rbWF4WzFdKTsKPiAgICAgICAgICAgcmV0dXJuIC0xOwo+ICAgICAgIH0KPgo+IGRpZmYgLS1n aXQgYS90b29scy9saWJ4bC9saWJ4bF9hcm0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2FybS5jCj4g aW5kZXggMGFmODAxMC4uN2Y5NTQ3YiAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF9h cm0uYwo+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2FybS5jCj4gQEAgLTM3Miw3ICszNzIsMTAg QEAgc3RhdGljIGludCBtYWtlX21lbW9yeV9ub2RlcyhsaWJ4bF9fZ2MgKmdjLCB2b2lkICpmZHQs Cj4gICB7Cj4gICAgICAgaW50IHJlcywgaTsKPiAgICAgICBjb25zdCBjaGFyICpuYW1lOwo+IC0g ICAgY29uc3QgdWludDY0X3QgYmFua2Jhc2VbXSA9IEdVRVNUX1JBTV9CQU5LX0JBU0VTOwo+ICsK PiArICAgIHVpbnQ2NF90IGd1ZXN0X3JhbWJhc2UgPSAodWludDY0X3QpZG9tLT5yYW1iYXNlX3Bm biA8PCBYQ19QQUdFX1NISUZUOwo+ICsKPiArICAgIGNvbnN0IHVpbnQ2NF90IGJhbmtiYXNlW10g PSB7Z3Vlc3RfcmFtYmFzZSwgR1VFU1RfUkFNMV9CQVNFfTsKPgo+ICAgICAgIGZvciAoaSA9IDA7 IGkgPCBHVUVTVF9SQU1fQkFOS1M7IGkrKykgewo+ICAgICAgICAgICBuYW1lID0gR0NTUFJJTlRG KCJtZW1vcnlAJSJQUkl4NjQsIGJhbmtiYXNlW2ldKTsKPiBAQCAtOTE0LDcgKzkxNywxMCBAQCBp bnQgbGlieGxfX2FyY2hfZG9tYWluX2ZpbmFsaXNlX2h3X2Rlc2NyaXB0aW9uKGxpYnhsX19nYyAq Z2MsCj4gICB7Cj4gICAgICAgdm9pZCAqZmR0ID0gZG9tLT5kZXZpY2V0cmVlX2Jsb2I7Cj4gICAg ICAgaW50IGk7Cj4gLSAgICBjb25zdCB1aW50NjRfdCBiYW5rYmFzZVtdID0gR1VFU1RfUkFNX0JB TktfQkFTRVM7Cj4gKwo+ICsgICAgdWludDY0X3QgZ3Vlc3RfcmFtYmFzZSA9ICh1aW50NjRfdClk b20tPnJhbWJhc2VfcGZuIDw8IFhDX1BBR0VfU0hJRlQ7Cj4gKwo+ICsgICAgY29uc3QgdWludDY0 X3QgYmFua2Jhc2VbXSA9IHtndWVzdF9yYW1iYXNlLCBHVUVTVF9SQU0xX0JBU0V9Owo+Cj4gICAg ICAgY29uc3Qgc3RydWN0IHhjX2RvbV9zZWcgKnJhbWRpc2sgPSBkb20tPnJhbWRpc2tfYmxvYiA/ Cj4gICAgICAgICAgICZkb20tPnJhbWRpc2tfc2VnIDogTlVMTDsKPiBkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwo+IGlu ZGV4IDM1MGUyNzQuLjFjMDU3OWMgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY3Jl YXRlLmMKPiArKysgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwo+IEBAIC0xODIsNiArMTgy LDExIEBAIGludCBsaWJ4bF9fZG9tYWluX2J1aWxkX2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2Mg KmdjLAo+ICAgICAgIGlmIChiX2luZm8tPnRhcmdldF9tZW1rYiA9PSBMSUJYTF9NRU1LQl9ERUZB VUxUKQo+ICAgICAgICAgICBiX2luZm8tPnRhcmdldF9tZW1rYiA9IGJfaW5mby0+bWF4X21lbWti Owo+Cj4gKyNpZmRlZiBHVUVTVF9SQU1fQkFTRQo+ICsgICAgaWYgKGJfaW5mby0+cmFtYmFzZSA9 PSBMSUJYTF9JTlZBTElEX1JBTV9CQVNFKQo+ICsgICAgICAgIGJfaW5mby0+cmFtYmFzZSA9IEdV RVNUX1JBTTBfQkFTRTsKCnhsIGlzIG5vdCB0aGUgb25seSBmcm9udC1lbmQgZm9yIGxpYnhsLiBT byB5b3UgbmVlZCB0byB2YWxpZGF0ZSB0aGUgCnZhbHVlIG9mIHJhbWJhc2UgaGVyZS4KCj4gKyNl bmRpZgo+ICsKPiAgICAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+Y2xhaW1f bW9kZSwgZmFsc2UpOwo+Cj4gICAgICAgbGlieGxfZGVmYm9vbF9zZXRkZWZhdWx0KCZiX2luZm8t PmxvY2FsdGltZSwgZmFsc2UpOwo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb20u YyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCj4gaW5kZXggMmRhM2FjNC4uYmU2NTk4ZiAxMDA2 NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF9kb20uYwo+ICsrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2RvbS5jCj4gQEAgLTcwMywxMiArNzAzLDEyIEBAIGludCBsaWJ4bF9fYnVpbGRfcHYobGli eGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCj4gICAgICAgICAgIExPR0UoRVJST1IsICJ4Y19k b21fYm9vdF94ZW5faW5pdCBmYWlsZWQiKTsKPiAgICAgICAgICAgZ290byBvdXQ7Cj4gICAgICAg fQo+IC0jaWZkZWYgR1VFU1RfUkFNX0JBU0UKPiAtICAgIGlmICggKHJldCA9IHhjX2RvbV9yYW1i YXNlX2luaXQoZG9tLCBHVUVTVF9SQU1fQkFTRSkpICE9IDAgKSB7Cj4gKwoKU3B1cmlvdXMgY2hh bmdlLgoKPiArICAgIGlmICggKHJldCA9IHhjX2RvbV9yYW1iYXNlX2luaXQoZG9tLCBpbmZvLT5y YW1iYXNlKSkgIT0gMCApIHsKPiAgICAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9yYW1iYXNl IGZhaWxlZCIpOwo+ICAgICAgICAgICBnb3RvIG91dDsKPiAgICAgICB9Cj4gLSNlbmRpZgo+ICsK PiAgICAgICBpZiAoIChyZXQgPSB4Y19kb21fcGFyc2VfaW1hZ2UoZG9tKSkgIT0gMCApIHsKPiAg ICAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9wYXJzZV9pbWFnZSBmYWlsZWQiKTsKPiAgICAg ICAgICAgZ290byBvdXQ7Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFs LmggYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCj4gaW5kZXggMTY5OWYzMi4uNWIwYjUw YSAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCj4gKysrIGIvdG9v bHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAo+IEBAIC0xMDAsNiArMTAwLDcgQEAKPiAgICNkZWZp bmUgTElCWExfSFZNX0VYVFJBX01FTU9SWSAyMDQ4Cj4gICAjZGVmaW5lIExJQlhMX01JTl9ET00w X01FTSAoMTI4KjEwMjQpCj4gICAjZGVmaW5lIExJQlhMX0lOVkFMSURfR0ZOICh+KHVpbnQ2NF90 KTApCj4gKyNkZWZpbmUgTElCWExfSU5WQUxJRF9SQU1fQkFTRSAofih1aW50NjRfdCkwKQo+ICAg LyogdXNlIDAgYXMgdGhlIGRvbWlkIG9mIHRoZSB0b29sc3RhY2sgZG9tYWluIGZvciBub3cgKi8K PiAgICNkZWZpbmUgTElCWExfVE9PTFNUQUNLX0RPTUlEIDAKPiAgICNkZWZpbmUgUUVNVV9TSUdO QVRVUkUgIkRldmljZU1vZGVsUmVjb3JkMDAwMiIKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCj4gaW5kZXggNTAy YTE0OC4uYjZjYzhkMiAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwK PiArKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKPiBAQCAtNDE2LDYgKzQxNiw3IEBA IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVpbGRfaW5mbyIsWwo+ ICAgICAgICgidGFyZ2V0X21lbWtiIiwgICAgTWVtS0IpLAo+ICAgICAgICgidmlkZW9fbWVta2Ii LCAgICAgTWVtS0IpLAo+ICAgICAgICgic2hhZG93X21lbWtiIiwgICAgTWVtS0IpLAo+ICsgICAg KCJyYW1iYXNlIiwgICAgICAgICB1aW50NjQsIHsnaW5pdF92YWwnOiAnTElCWExfSU5WQUxJRF9S QU1fQkFTRSd9KSwKCkFueSBjaGFuZ2UgaW4gbGlieGxfdHlwZXMuaWRsIHNob3VsZCBhbHNvIGNv bWUgd2l0aCBhIG5ldyBkZWZpbmUgaW4gCmxpYnhsLmggdG8gYWxsb3cgdG9vbHN0YWNrIGJ1aWx0 IG9uIHRvcCBvZiBsaWJ4bCB3b3JrcyB3aXRoIHZhcmlvdXMgCnZlcnNpb24gb2YgWGVuLgoKPiAg ICAgICAoInJ0Y190aW1lb2Zmc2V0IiwgIHVpbnQzMiksCj4gICAgICAgKCJleGVjX3NzaWRyZWYi LCAgICB1aW50MzIpLAo+ICAgICAgICgiZXhlY19zc2lkX2xhYmVsIiwgc3RyaW5nKSwKPiBkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jIGIvdG9vbHMvbGlieGwveGxfY21kaW1w bC5jCj4gaW5kZXggOWEyODcwZS4uMjhkNTdjMyAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC94 bF9jbWRpbXBsLmMKPiArKysgYi90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKPiBAQCAtMzEsNiAr MzEsNyBAQAo+ICAgI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KPiAgICNpbmNsdWRlIDxzeXMvdXRz bmFtZS5oPiAvKiBmb3IgdXRzbmFtZSBpbiB4bCBpbmZvICovCj4gICAjaW5jbHVkZSA8eGVudG9v bGxvZy5oPgo+ICsjaW5jbHVkZSA8eGVuY3RybC5oPgo+ICAgI2luY2x1ZGUgPGN0eXBlLmg+Cj4g ICAjaW5jbHVkZSA8aW50dHlwZXMuaD4KPiAgICNpbmNsdWRlIDxsaW1pdHMuaD4KPiBAQCAtMTM1 Miw2ICsxMzUzLDE4IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2NvbmZpZ19kYXRhKGNvbnN0IGNoYXIg KmNvbmZpZ19zb3VyY2UsCj4gICAgICAgaWYgKCF4bHVfY2ZnX2dldF9sb25nIChjb25maWcsICJt YXhtZW0iLCAmbCwgMCkpCj4gICAgICAgICAgIGJfaW5mby0+bWF4X21lbWtiID0gbCAqIDEwMjQ7 Cj4KPiArI2lmZGVmIEdVRVNUX1JBTV9CQVNFCj4gKyAgICBpZiAoIXhsdV9jZmdfZ2V0X2xvbmcg KGNvbmZpZywgInJhbWJhc2VfcGZuIiwgJmwsIDApKSB7CgpOZXcgb3B0aW9ucyBuZWVkIHRvIGJl IGRvY3VtZW50ZWQgaW4gZG9jcy9tYW4veGwuY2ZnLnBvZC41LgoKPiArICAgICAgICAvKiBUT0RP IGFkZCBtb3JlIGRldGFpbGVkIGNoZWNrIGZvciB2YWxpZCB2YWx1ZSAqLwo+ICsgICAgICAgIHVp bnQ2NF90IHJhbWJhc2UgPSAodWludDY0X3QpbCA8PCBYQ19QQUdFX1NISUZUOwo+ICsgICAgICAg IGlmIChyYW1iYXNlID4gKEdVRVNUX1JBTTBfQkFTRSArIEdVRVNUX1JBTTBfU0laRSkpIHsKPiAr ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogaW52YWxpZCB2YWx1ZSAweCVseCBm b3IgXCJyYW1iYXNlX3BmblwiXG4iLCBsKTsKPiArICAgICAgICAgICAgZXhpdCAoMSk7Cj4gKyAg ICAgICAgfQo+ICsgICAgICAgIGJfaW5mby0+cmFtYmFzZSA9IHJhbWJhc2U7Cj4gKyAgICB9Cj4g KyNlbmRpZgo+ICsKPiAgICAgICBpZiAoIXhsdV9jZmdfZ2V0X2xvbmcgKGNvbmZpZywgInZjcHVz IiwgJmwsIDApKSB7Cj4gICAgICAgICAgIHZjcHVzID0gbDsKPiAgICAgICAgICAgaWYgKGxpYnhs X2NwdV9iaXRtYXBfYWxsb2MoY3R4LCAmYl9pbmZvLT5hdmFpbF92Y3B1cywgbCkpIHsKPgoKUmVn YXJkcywKCi0tIApKdWxpZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==