From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH 2/8] x86/head: Refactor 32-bit pgtable setup Date: Fri, 14 Oct 2016 14:05:12 -0400 Message-ID: <1476468318-24422-3-git-send-email-boris.ostrovsky@oracle.com> References: <1476468318-24422-1-git-send-email-boris.ostrovsky@oracle.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 1bv6wD-0006AG-L8 for xen-devel@lists.xenproject.org; Fri, 14 Oct 2016 18:10:33 +0000 In-Reply-To: <1476468318-24422-1-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: david.vrabel@citrix.com, JGross@suse.com Cc: Matt Fleming , x86@kernel.org, linux-kernel@vger.kernel.org, Ingo Molnar , "H. Peter Anvin" , xen-devel@lists.xenproject.org, Boris Ostrovsky , Thomas Gleixner , roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org RnJvbTogTWF0dCBGbGVtaW5nIDxtYXR0QGNvZGVibHVlcHJpbnQuY28udWs+CgpUaGUgbmV3IFhl biBQVkggZW50cnkgcG9pbnQgcmVxdWlyZXMgcGFnZSB0YWJsZXMgdG8gYmUgc2V0dXAgYnkgdGhl Cmtlcm5lbCBzaW5jZSBpdCBpcyBlbnRlcmVkIHdpdGggcGFnaW5nIGRpc2FibGVkLgoKUHVsbCB0 aGUgY29tbW9uIGNvZGUgb3V0IG9mIGhlYWRfMzIuUyBhbmQgaW50byBwZ3RhYmxlXzMyLlMgc28g dGhhdApzZXR1cF9wZ3RhYmxlXzMyIGNhbiBiZSBpbnZva2VkIGZyb20gYm90aCB0aGUgbmV3IFhl biBlbnRyeSBwb2ludCBhbmQKdGhlIGV4aXN0aW5nIHN0YXJ0dXBfMzIgY29kZS4KCkNjOiBCb3Jp cyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpDYzogVGhvbWFzIEdsZWl4 bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+CkNjOiBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNv bT4KQ2M6ICJILiBQZXRlciBBbnZpbiIgPGhwYUB6eXRvci5jb20+CkNjOiB4ODZAa2VybmVsLm9y ZwpTaWduZWQtb2ZmLWJ5OiBNYXR0IEZsZW1pbmcgPG1hdHRAY29kZWJsdWVwcmludC5jby51az4K LS0tCiBhcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgICAgIHwgICAyICsKIGFyY2gveDg2L2tlcm5l bC9NYWtlZmlsZSAgICAgfCAgIDIgKwogYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUyAgICB8IDE2 OCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBhcmNoL3g4Ni9rZXJuZWwv cGd0YWJsZV8zMi5TIHwgMTk2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMjAxIGluc2VydGlvbnMoKyksIDE2NyBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3g4Ni9rZXJuZWwvcGd0YWJsZV8zMi5TCgpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvTWFrZWZpbGUgYi9hcmNoL3g4Ni9NYWtlZmlsZQppbmRleCAyZDQ0 OTMzLi42N2NjNzcxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9NYWtlZmlsZQorKysgYi9hcmNoL3g4 Ni9NYWtlZmlsZQpAQCAtMjA0LDYgKzIwNCw4IEBAIGhlYWQteSArPSBhcmNoL3g4Ni9rZXJuZWwv aGVhZCQoQklUUykubwogaGVhZC15ICs9IGFyY2gveDg2L2tlcm5lbC9lYmRhLm8KIGhlYWQteSAr PSBhcmNoL3g4Ni9rZXJuZWwvcGxhdGZvcm0tcXVpcmtzLm8KIAoraGVhZC0kKENPTkZJR19YODZf MzIpICs9IGFyY2gveDg2L2tlcm5lbC9wZ3RhYmxlXzMyLm8KKwogbGlicy15ICArPSBhcmNoL3g4 Ni9saWIvCiAKICMgU2VlIGFyY2gveDg2L0tidWlsZCBmb3IgY29udGVudCBvZiBjb3JlIHBhcnQg b2YgdGhlIGtlcm5lbApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL01ha2VmaWxlIGIvYXJj aC94ODYva2VybmVsL01ha2VmaWxlCmluZGV4IDRkZDVkNTAuLmVhZTg1YTUgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUK QEAgLTgsNiArOCw4IEBAIGV4dHJhLXkJKz0gZWJkYS5vCiBleHRyYS15CSs9IHBsYXRmb3JtLXF1 aXJrcy5vCiBleHRyYS15CSs9IHZtbGludXgubGRzCiAKK2V4dHJhLSQoQ09ORklHX1g4Nl8zMikg Kz0gcGd0YWJsZV8zMi5vCisKIENQUEZMQUdTX3ZtbGludXgubGRzICs9IC1VJChVVFNfTUFDSElO RSkKIAogaWZkZWYgQ09ORklHX0ZVTkNUSU9OX1RSQUNFUgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a2VybmVsL2hlYWRfMzIuUyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMKaW5kZXggNWY0MDEy Ni4uMGRiMDY2ZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUworKysgYi9h cmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCkBAIC00MSw1MSArNDEsNiBAQAogI2RlZmluZSBYODZf VkVORE9SX0lECW5ld19jcHVfZGF0YStDUFVJTkZPX3g4Nl92ZW5kb3JfaWQKIAogLyoKLSAqIFRo aXMgaXMgaG93IG11Y2ggbWVtb3J5IGluIGFkZGl0aW9uIHRvIHRoZSBtZW1vcnkgY292ZXJlZCB1 cCB0bwotICogYW5kIGluY2x1ZGluZyBfZW5kIHdlIG5lZWQgbWFwcGVkIGluaXRpYWxseS4KLSAq IFdlIG5lZWQ6Ci0gKiAgICAgKEtFUk5FTF9JTUFHRV9TSVpFLzQwOTYpIC8gMTAyNCBwYWdlcyAo d29yc3QgY2FzZSwgbm9uIFBBRSkKLSAqICAgICAoS0VSTkVMX0lNQUdFX1NJWkUvNDA5NikgLyA1 MTIgKyA0IHBhZ2VzICh3b3JzdCBjYXNlIGZvciBQQUUpCi0gKgotICogTW9kdWxvIHJvdW5kaW5n LCBlYWNoIG1lZ2FieXRlIGFzc2lnbmVkIGhlcmUgcmVxdWlyZXMgYSBraWxvYnl0ZSBvZgotICog bWVtb3J5LCB3aGljaCBpcyBjdXJyZW50bHkgdW5yZWNsYWltZWQuCi0gKgotICogVGhpcyBzaG91 bGQgYmUgYSBtdWx0aXBsZSBvZiBhIHBhZ2UuCi0gKgotICogS0VSTkVMX0lNQUdFX1NJWkUgc2hv dWxkIGJlIGdyZWF0ZXIgdGhhbiBwYShfZW5kKQotICogYW5kIHNtYWxsIHRoYW4gbWF4X2xvd19w Zm4sIG90aGVyd2lzZSB3aWxsIHdhc3RlIHNvbWUgcGFnZSB0YWJsZSBlbnRyaWVzCi0gKi8KLQot I2lmIFBUUlNfUEVSX1BNRCA+IDEKLSNkZWZpbmUgUEFHRV9UQUJMRV9TSVpFKHBhZ2VzKSAoKChw YWdlcykgLyBQVFJTX1BFUl9QTUQpICsgUFRSU19QRVJfUEdEKQotI2Vsc2UKLSNkZWZpbmUgUEFH RV9UQUJMRV9TSVpFKHBhZ2VzKSAoKHBhZ2VzKSAvIFBUUlNfUEVSX1BHRCkKLSNlbmRpZgotCi0v KgotICogTnVtYmVyIG9mIHBvc3NpYmxlIHBhZ2VzIGluIHRoZSBsb3dtZW0gcmVnaW9uLgotICoK LSAqIFdlIHNoaWZ0IDIgYnkgMzEgaW5zdGVhZCBvZiAxIGJ5IDMyIHRvIHRoZSBsZWZ0IGluIG9y ZGVyIHRvIGF2b2lkIGEKLSAqIGdhcyB3YXJuaW5nIGFib3V0IG92ZXJmbG93aW5nIHNoaWZ0IGNv dW50IHdoZW4gZ2FzIGhhcyBiZWVuIGNvbXBpbGVkCi0gKiB3aXRoIG9ubHkgYSBob3N0IHRhcmdl dCBzdXBwb3J0IHVzaW5nIGEgMzItYml0IHR5cGUgZm9yIGludGVybmFsCi0gKiByZXByZXNlbnRh dGlvbi4KLSAqLwotTE9XTUVNX1BBR0VTID0gKCgoMjw8MzEpIC0gX19QQUdFX09GRlNFVCkgPj4g UEFHRV9TSElGVCkKLQotLyogRW5vdWdoIHNwYWNlIHRvIGZpdCBwYWdldGFibGVzIGZvciB0aGUg bG93IG1lbW9yeSBsaW5lYXIgbWFwICovCi1NQVBQSU5HX0JFWU9ORF9FTkQgPSBQQUdFX1RBQkxF X1NJWkUoTE9XTUVNX1BBR0VTKSA8PCBQQUdFX1NISUZUCi0KLS8qCi0gKiBXb3JzdC1jYXNlIHNp emUgb2YgdGhlIGtlcm5lbCBtYXBwaW5nIHdlIG5lZWQgdG8gbWFrZToKLSAqIGEgcmVsb2NhdGFi bGUga2VybmVsIGNhbiBsaXZlIGFueXdoZXJlIGluIGxvd21lbSwgc28gd2UgbmVlZCB0byBiZSBh YmxlCi0gKiB0byBtYXAgYWxsIG9mIGxvd21lbS4KLSAqLwotS0VSTkVMX1BBR0VTID0gTE9XTUVN X1BBR0VTCi0KLUlOSVRfTUFQX1NJWkUgPSBQQUdFX1RBQkxFX1NJWkUoS0VSTkVMX1BBR0VTKSAq IFBBR0VfU0laRQotUkVTRVJWRV9CUksocGFnZXRhYmxlcywgSU5JVF9NQVBfU0laRSkKLQotLyoK ICAqIDMyLWJpdCBrZXJuZWwgZW50cnlwb2ludDsgb25seSB1c2VkIGJ5IHRoZSBib290IENQVS4g IE9uIGVudHJ5LAogICogJWVzaSBwb2ludHMgdG8gdGhlIHJlYWwtbW9kZSBjb2RlIGFzIGEgMzIt Yml0IHBvaW50ZXIuCiAgKiBDUyBhbmQgRFMgbXVzdCBiZSA0IEdCIGZsYXQgc2VnbWVudHMsIGJ1 dCB3ZSBkb24ndCBkZXBlbmQgb24KQEAgLTE1Nyw5MiArMTEyLDcgQEAgRU5UUlkoc3RhcnR1cF8z MikKIAljYWxsIGxvYWRfdWNvZGVfYnNwCiAjZW5kaWYKIAotLyoKLSAqIEluaXRpYWxpemUgcGFn ZSB0YWJsZXMuICBUaGlzIGNyZWF0ZXMgYSBQREUgYW5kIGEgc2V0IG9mIHBhZ2UKLSAqIHRhYmxl cywgd2hpY2ggYXJlIGxvY2F0ZWQgaW1tZWRpYXRlbHkgYmV5b25kIF9fYnJrX2Jhc2UuICBUaGUg dmFyaWFibGUKLSAqIF9icmtfZW5kIGlzIHNldCB1cCB0byBwb2ludCB0byB0aGUgZmlyc3QgInNh ZmUiIGxvY2F0aW9uLgotICogTWFwcGluZ3MgYXJlIGNyZWF0ZWQgYm90aCBhdCB2aXJ0dWFsIGFk ZHJlc3MgMCAoaWRlbnRpdHkgbWFwcGluZykKLSAqIGFuZCBQQUdFX09GRlNFVCBmb3IgdXAgdG8g X2VuZC4KLSAqLwotI2lmZGVmIENPTkZJR19YODZfUEFFCi0KLQkvKgotCSAqIEluIFBBRSBtb2Rl IGluaXRpYWxfcGFnZV90YWJsZSBpcyBzdGF0aWNhbGx5IGRlZmluZWQgdG8gY29udGFpbgotCSAq IGVub3VnaCBlbnRyaWVzIHRvIGNvdmVyIHRoZSBWTVNQTElUIG9wdGlvbiAodGhhdCBpcyB0aGUg dG9wIDEsIDIgb3IgMwotCSAqIGVudHJpZXMpLiBUaGUgaWRlbnRpdHkgbWFwcGluZyBpcyBoYW5k bGVkIGJ5IHBvaW50aW5nIHR3byBQR0QgZW50cmllcwotCSAqIHRvIHRoZSBmaXJzdCBrZXJuZWwg UE1ELgotCSAqCi0JICogTm90ZSB0aGUgdXBwZXIgaGFsZiBvZiBlYWNoIFBNRCBvciBQVEUgYXJl IGFsd2F5cyB6ZXJvIGF0IHRoaXMgc3RhZ2UuCi0JICovCi0KLSNkZWZpbmUgS1BNRFMgKCgoLV9f UEFHRV9PRkZTRVQpID4+IDMwKSAmIDMpIC8qIE51bWJlciBvZiBrZXJuZWwgUE1EcyAqLwotCi0J eG9ybCAlZWJ4LCVlYngJCQkJLyogJWVieCBpcyBrZXB0IGF0IHplcm8gKi8KLQotCW1vdmwgJHBh KF9fYnJrX2Jhc2UpLCAlZWRpCi0JbW92bCAkcGEoaW5pdGlhbF9wZ19wbWQpLCAlZWR4Ci0JbW92 bCAkUFRFX0lERU5UX0FUVFIsICVlYXgKLTEwOgotCWxlYWwgUERFX0lERU5UX0FUVFIoJWVkaSks JWVjeAkJLyogQ3JlYXRlIFBNRCBlbnRyeSAqLwotCW1vdmwgJWVjeCwoJWVkeCkJCQkvKiBTdG9y ZSBQTUQgZW50cnkgKi8KLQkJCQkJCS8qIFVwcGVyIGhhbGYgYWxyZWFkeSB6ZXJvICovCi0JYWRk bCAkOCwlZWR4Ci0JbW92bCAkNTEyLCVlY3gKLTExOgotCXN0b3NsCi0JeGNoZ2wgJWVheCwlZWJ4 Ci0Jc3Rvc2wKLQl4Y2hnbCAlZWF4LCVlYngKLQlhZGRsICQweDEwMDAsJWVheAotCWxvb3AgMTFi Ci0KLQkvKgotCSAqIEVuZCBjb25kaXRpb246IHdlIG11c3QgbWFwIHVwIHRvIHRoZSBlbmQgKyBN QVBQSU5HX0JFWU9ORF9FTkQuCi0JICovCi0JbW92bCAkcGEoX2VuZCkgKyBNQVBQSU5HX0JFWU9O RF9FTkQgKyBQVEVfSURFTlRfQVRUUiwgJWVicAotCWNtcGwgJWVicCwlZWF4Ci0JamIgMTBiCi0x OgotCWFkZGwgJF9fUEFHRV9PRkZTRVQsICVlZGkKLQltb3ZsICVlZGksIHBhKF9icmtfZW5kKQot CXNocmwgJDEyLCAlZWF4Ci0JbW92bCAlZWF4LCBwYShtYXhfcGZuX21hcHBlZCkKLQotCS8qIERv IGVhcmx5IGluaXRpYWxpemF0aW9uIG9mIHRoZSBmaXhtYXAgYXJlYSAqLwotCW1vdmwgJHBhKGlu aXRpYWxfcGdfZml4bWFwKStQREVfSURFTlRfQVRUUiwlZWF4Ci0JbW92bCAlZWF4LHBhKGluaXRp YWxfcGdfcG1kKzB4MTAwMCpLUE1EUy04KQotI2Vsc2UJLyogTm90IFBBRSAqLwotCi1wYWdlX3Bk ZV9vZmZzZXQgPSAoX19QQUdFX09GRlNFVCA+PiAyMCk7Ci0KLQltb3ZsICRwYShfX2Jya19iYXNl KSwgJWVkaQotCW1vdmwgJHBhKGluaXRpYWxfcGFnZV90YWJsZSksICVlZHgKLQltb3ZsICRQVEVf SURFTlRfQVRUUiwgJWVheAotMTA6Ci0JbGVhbCBQREVfSURFTlRfQVRUUiglZWRpKSwlZWN4CQkv KiBDcmVhdGUgUERFIGVudHJ5ICovCi0JbW92bCAlZWN4LCglZWR4KQkJCS8qIFN0b3JlIGlkZW50 aXR5IFBERSBlbnRyeSAqLwotCW1vdmwgJWVjeCxwYWdlX3BkZV9vZmZzZXQoJWVkeCkJCS8qIFN0 b3JlIGtlcm5lbCBQREUgZW50cnkgKi8KLQlhZGRsICQ0LCVlZHgKLQltb3ZsICQxMDI0LCAlZWN4 Ci0xMToKLQlzdG9zbAotCWFkZGwgJDB4MTAwMCwlZWF4Ci0JbG9vcCAxMWIKLQkvKgotCSAqIEVu ZCBjb25kaXRpb246IHdlIG11c3QgbWFwIHVwIHRvIHRoZSBlbmQgKyBNQVBQSU5HX0JFWU9ORF9F TkQuCi0JICovCi0JbW92bCAkcGEoX2VuZCkgKyBNQVBQSU5HX0JFWU9ORF9FTkQgKyBQVEVfSURF TlRfQVRUUiwgJWVicAotCWNtcGwgJWVicCwlZWF4Ci0JamIgMTBiCi0JYWRkbCAkX19QQUdFX09G RlNFVCwgJWVkaQotCW1vdmwgJWVkaSwgcGEoX2Jya19lbmQpCi0Jc2hybCAkMTIsICVlYXgKLQlt b3ZsICVlYXgsIHBhKG1heF9wZm5fbWFwcGVkKQotCi0JLyogRG8gZWFybHkgaW5pdGlhbGl6YXRp b24gb2YgdGhlIGZpeG1hcCBhcmVhICovCi0JbW92bCAkcGEoaW5pdGlhbF9wZ19maXhtYXApK1BE RV9JREVOVF9BVFRSLCVlYXgKLQltb3ZsICVlYXgscGEoaW5pdGlhbF9wYWdlX3RhYmxlKzB4ZmZj KQotI2VuZGlmCisJY2FsbCBzZXR1cF9wZ3RhYmxlXzMyCiAKICNpZmRlZiBDT05GSUdfUEFSQVZJ UlQKIAkvKiBUaGlzIGlzIGNhbiBvbmx5IHRyaXAgZm9yIGEgYnJva2VuIGJvb3Rsb2FkZXIuLi4g Ki8KQEAgLTY2MCw0NyArNTMwLDExIEBAIEVOVFJZKHNldHVwX29uY2VfcmVmKQogICovCiBfX1BB R0VfQUxJR05FRF9CU1MKIAkuYWxpZ24gUEFHRV9TSVpFCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUK LWluaXRpYWxfcGdfcG1kOgotCS5maWxsIDEwMjQqS1BNRFMsNCwwCi0jZWxzZQotRU5UUlkoaW5p dGlhbF9wYWdlX3RhYmxlKQotCS5maWxsIDEwMjQsNCwwCi0jZW5kaWYKLWluaXRpYWxfcGdfZml4 bWFwOgotCS5maWxsIDEwMjQsNCwwCiBFTlRSWShlbXB0eV96ZXJvX3BhZ2UpCiAJLmZpbGwgNDA5 NiwxLDAKIEVOVFJZKHN3YXBwZXJfcGdfZGlyKQogCS5maWxsIDEwMjQsNCwwCiAKLS8qCi0gKiBU aGlzIHN0YXJ0cyB0aGUgZGF0YSBzZWN0aW9uLgotICovCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUK LV9fUEFHRV9BTElHTkVEX0RBVEEKLQkvKiBQYWdlLWFsaWduZWQgZm9yIHRoZSBiZW5lZml0IG9m IHBhcmF2aXJ0PyAqLwotCS5hbGlnbiBQQUdFX1NJWkUKLUVOVFJZKGluaXRpYWxfcGFnZV90YWJs ZSkKLQkubG9uZwlwYShpbml0aWFsX3BnX3BtZCtQR0RfSURFTlRfQVRUUiksMAkvKiBsb3cgaWRl bnRpdHkgbWFwICovCi0jIGlmIEtQTURTID09IDMKLQkubG9uZwlwYShpbml0aWFsX3BnX3BtZCtQ R0RfSURFTlRfQVRUUiksMAotCS5sb25nCXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVOVF9BVFRS KzB4MTAwMCksMAotCS5sb25nCXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVOVF9BVFRSKzB4MjAw MCksMAotIyBlbGlmIEtQTURTID09IDIKLQkubG9uZwkwLDAKLQkubG9uZwlwYShpbml0aWFsX3Bn X3BtZCtQR0RfSURFTlRfQVRUUiksMAotCS5sb25nCXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVO VF9BVFRSKzB4MTAwMCksMAotIyBlbGlmIEtQTURTID09IDEKLQkubG9uZwkwLDAKLQkubG9uZwkw LDAKLQkubG9uZwlwYShpbml0aWFsX3BnX3BtZCtQR0RfSURFTlRfQVRUUiksMAotIyBlbHNlCi0j ICBlcnJvciAiS2VybmVsIFBNRHMgc2hvdWxkIGJlIDEsIDIgb3IgMyIKLSMgZW5kaWYKLQkuYWxp Z24gUEFHRV9TSVpFCQkvKiBuZWVkcyB0byBiZSBwYWdlLXNpemVkIHRvbyAqLwotI2VuZGlmCi0K IC5kYXRhCiAuYmFsaWduIDQKIEVOVFJZKGluaXRpYWxfc3RhY2spCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9rZXJuZWwvcGd0YWJsZV8zMi5TIGIvYXJjaC94ODYva2VybmVsL3BndGFibGVfMzIuUwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGVkNzE4Ci0tLSAvZGV2L251bGwK KysrIGIvYXJjaC94ODYva2VybmVsL3BndGFibGVfMzIuUwpAQCAtMCwwICsxLDE5NiBAQAorI2lu Y2x1ZGUgPGxpbnV4L3RocmVhZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVk ZSA8bGludXgvbGlua2FnZS5oPgorI2luY2x1ZGUgPGFzbS9zZWdtZW50Lmg+CisjaW5jbHVkZSA8 YXNtL3BhZ2VfdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZV90eXBlcy5oPgorI2luY2x1 ZGUgPGFzbS9jYWNoZS5oPgorI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgorI2luY2x1ZGUg PGFzbS9hc20tb2Zmc2V0cy5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFz bS9wcm9jZXNzb3ItZmxhZ3MuaD4KKyNpbmNsdWRlIDxhc20vbXNyLWluZGV4Lmg+CisjaW5jbHVk ZSA8YXNtL2NwdWZlYXR1cmVzLmg+CisjaW5jbHVkZSA8YXNtL3BlcmNwdS5oPgorI2luY2x1ZGUg PGFzbS9ub3BzLmg+CisjaW5jbHVkZSA8YXNtL2Jvb3RwYXJhbS5oPgorCisvKiBQaHlzaWNhbCBh ZGRyZXNzICovCisjZGVmaW5lIHBhKFgpICgoWCkgLSBfX1BBR0VfT0ZGU0VUKQorCisvKgorICog VGhpcyBpcyBob3cgbXVjaCBtZW1vcnkgaW4gYWRkaXRpb24gdG8gdGhlIG1lbW9yeSBjb3ZlcmVk IHVwIHRvCisgKiBhbmQgaW5jbHVkaW5nIF9lbmQgd2UgbmVlZCBtYXBwZWQgaW5pdGlhbGx5Lgor ICogV2UgbmVlZDoKKyAqICAgICAoS0VSTkVMX0lNQUdFX1NJWkUvNDA5NikgLyAxMDI0IHBhZ2Vz ICh3b3JzdCBjYXNlLCBub24gUEFFKQorICogICAgIChLRVJORUxfSU1BR0VfU0laRS80MDk2KSAv IDUxMiArIDQgcGFnZXMgKHdvcnN0IGNhc2UgZm9yIFBBRSkKKyAqCisgKiBNb2R1bG8gcm91bmRp bmcsIGVhY2ggbWVnYWJ5dGUgYXNzaWduZWQgaGVyZSByZXF1aXJlcyBhIGtpbG9ieXRlIG9mCisg KiBtZW1vcnksIHdoaWNoIGlzIGN1cnJlbnRseSB1bnJlY2xhaW1lZC4KKyAqCisgKiBUaGlzIHNo b3VsZCBiZSBhIG11bHRpcGxlIG9mIGEgcGFnZS4KKyAqCisgKiBLRVJORUxfSU1BR0VfU0laRSBz aG91bGQgYmUgZ3JlYXRlciB0aGFuIHBhKF9lbmQpCisgKiBhbmQgc21hbGwgdGhhbiBtYXhfbG93 X3Bmbiwgb3RoZXJ3aXNlIHdpbGwgd2FzdGUgc29tZSBwYWdlIHRhYmxlIGVudHJpZXMKKyAqLwor CisjaWYgUFRSU19QRVJfUE1EID4gMQorI2RlZmluZSBQQUdFX1RBQkxFX1NJWkUocGFnZXMpICgo KHBhZ2VzKSAvIFBUUlNfUEVSX1BNRCkgKyBQVFJTX1BFUl9QR0QpCisjZWxzZQorI2RlZmluZSBQ QUdFX1RBQkxFX1NJWkUocGFnZXMpICgocGFnZXMpIC8gUFRSU19QRVJfUEdEKQorI2VuZGlmCisK Ky8qCisgKiBOdW1iZXIgb2YgcG9zc2libGUgcGFnZXMgaW4gdGhlIGxvd21lbSByZWdpb24uCisg KgorICogV2Ugc2hpZnQgMiBieSAzMSBpbnN0ZWFkIG9mIDEgYnkgMzIgdG8gdGhlIGxlZnQgaW4g b3JkZXIgdG8gYXZvaWQgYQorICogZ2FzIHdhcm5pbmcgYWJvdXQgb3ZlcmZsb3dpbmcgc2hpZnQg Y291bnQgd2hlbiBnYXMgaGFzIGJlZW4gY29tcGlsZWQKKyAqIHdpdGggb25seSBhIGhvc3QgdGFy Z2V0IHN1cHBvcnQgdXNpbmcgYSAzMi1iaXQgdHlwZSBmb3IgaW50ZXJuYWwKKyAqIHJlcHJlc2Vu dGF0aW9uLgorICovCitMT1dNRU1fUEFHRVMgPSAoKCgyPDwzMSkgLSBfX1BBR0VfT0ZGU0VUKSA+ PiBQQUdFX1NISUZUKQorCisvKiBFbm91Z2ggc3BhY2UgdG8gZml0IHBhZ2V0YWJsZXMgZm9yIHRo ZSBsb3cgbWVtb3J5IGxpbmVhciBtYXAgKi8KK01BUFBJTkdfQkVZT05EX0VORCA9IFBBR0VfVEFC TEVfU0laRShMT1dNRU1fUEFHRVMpIDw8IFBBR0VfU0hJRlQKKworLyoKKyAqIFdvcnN0LWNhc2Ug c2l6ZSBvZiB0aGUga2VybmVsIG1hcHBpbmcgd2UgbmVlZCB0byBtYWtlOgorICogYSByZWxvY2F0 YWJsZSBrZXJuZWwgY2FuIGxpdmUgYW55d2hlcmUgaW4gbG93bWVtLCBzbyB3ZSBuZWVkIHRvIGJl IGFibGUKKyAqIHRvIG1hcCBhbGwgb2YgbG93bWVtLgorICovCitLRVJORUxfUEFHRVMgPSBMT1dN RU1fUEFHRVMKKworSU5JVF9NQVBfU0laRSA9IFBBR0VfVEFCTEVfU0laRShLRVJORUxfUEFHRVMp ICogUEFHRV9TSVpFCitSRVNFUlZFX0JSSyhwYWdldGFibGVzLCBJTklUX01BUF9TSVpFKQorCisv KgorICogSW5pdGlhbGl6ZSBwYWdlIHRhYmxlcy4gIFRoaXMgY3JlYXRlcyBhIFBERSBhbmQgYSBz ZXQgb2YgcGFnZQorICogdGFibGVzLCB3aGljaCBhcmUgbG9jYXRlZCBpbW1lZGlhdGVseSBiZXlv bmQgX19icmtfYmFzZS4gIFRoZSB2YXJpYWJsZQorICogX2Jya19lbmQgaXMgc2V0IHVwIHRvIHBv aW50IHRvIHRoZSBmaXJzdCAic2FmZSIgbG9jYXRpb24uCisgKiBNYXBwaW5ncyBhcmUgY3JlYXRl ZCBib3RoIGF0IHZpcnR1YWwgYWRkcmVzcyAwIChpZGVudGl0eSBtYXBwaW5nKQorICogYW5kIFBB R0VfT0ZGU0VUIGZvciB1cCB0byBfZW5kLgorICovCisJLnRleHQKK0VOVFJZKHNldHVwX3BndGFi bGVfMzIpCisjaWZkZWYgQ09ORklHX1g4Nl9QQUUKKwkvKgorCSAqIEluIFBBRSBtb2RlIGluaXRp YWxfcGFnZV90YWJsZSBpcyBzdGF0aWNhbGx5IGRlZmluZWQgdG8gY29udGFpbgorCSAqIGVub3Vn aCBlbnRyaWVzIHRvIGNvdmVyIHRoZSBWTVNQTElUIG9wdGlvbiAodGhhdCBpcyB0aGUgdG9wIDEs IDIgb3IgMworCSAqIGVudHJpZXMpLiBUaGUgaWRlbnRpdHkgbWFwcGluZyBpcyBoYW5kbGVkIGJ5 IHBvaW50aW5nIHR3byBQR0QgZW50cmllcworCSAqIHRvIHRoZSBmaXJzdCBrZXJuZWwgUE1ELgor CSAqCisJICogTm90ZSB0aGUgdXBwZXIgaGFsZiBvZiBlYWNoIFBNRCBvciBQVEUgYXJlIGFsd2F5 cyB6ZXJvIGF0IHRoaXMgc3RhZ2UuCisJICovCisKKyNkZWZpbmUgS1BNRFMgKCgoLV9fUEFHRV9P RkZTRVQpID4+IDMwKSAmIDMpIC8qIE51bWJlciBvZiBrZXJuZWwgUE1EcyAqLworCisJeG9ybCAl ZWJ4LCVlYngJCQkJLyogJWVieCBpcyBrZXB0IGF0IHplcm8gKi8KKworCW1vdmwgJHBhKF9fYnJr X2Jhc2UpLCAlZWRpCisJbW92bCAkcGEoaW5pdGlhbF9wZ19wbWQpLCAlZWR4CisJbW92bCAkUFRF X0lERU5UX0FUVFIsICVlYXgKKzEwOgorCWxlYWwgUERFX0lERU5UX0FUVFIoJWVkaSksJWVjeAkJ LyogQ3JlYXRlIFBNRCBlbnRyeSAqLworCW1vdmwgJWVjeCwoJWVkeCkJCQkvKiBTdG9yZSBQTUQg ZW50cnkgKi8KKwkJCQkJCS8qIFVwcGVyIGhhbGYgYWxyZWFkeSB6ZXJvICovCisJYWRkbCAkOCwl ZWR4CisJbW92bCAkNTEyLCVlY3gKKzExOgorCXN0b3NsCisJeGNoZ2wgJWVheCwlZWJ4CisJc3Rv c2wKKwl4Y2hnbCAlZWF4LCVlYngKKwlhZGRsICQweDEwMDAsJWVheAorCWxvb3AgMTFiCisKKwkv KgorCSAqIEVuZCBjb25kaXRpb246IHdlIG11c3QgbWFwIHVwIHRvIHRoZSBlbmQgKyBNQVBQSU5H X0JFWU9ORF9FTkQuCisJICovCisJbW92bCAkcGEoX2VuZCkgKyBNQVBQSU5HX0JFWU9ORF9FTkQg KyBQVEVfSURFTlRfQVRUUiwgJWVicAorCWNtcGwgJWVicCwlZWF4CisJamIgMTBiCisxOgorCWFk ZGwgJF9fUEFHRV9PRkZTRVQsICVlZGkKKwltb3ZsICVlZGksIHBhKF9icmtfZW5kKQorCXNocmwg JDEyLCAlZWF4CisJbW92bCAlZWF4LCBwYShtYXhfcGZuX21hcHBlZCkKKworCS8qIERvIGVhcmx5 IGluaXRpYWxpemF0aW9uIG9mIHRoZSBmaXhtYXAgYXJlYSAqLworCW1vdmwgJHBhKGluaXRpYWxf cGdfZml4bWFwKStQREVfSURFTlRfQVRUUiwlZWF4CisJbW92bCAlZWF4LHBhKGluaXRpYWxfcGdf cG1kKzB4MTAwMCpLUE1EUy04KQorI2Vsc2UJLyogTm90IFBBRSAqLworCitwYWdlX3BkZV9vZmZz ZXQgPSAoX19QQUdFX09GRlNFVCA+PiAyMCk7CisKKwltb3ZsICRwYShfX2Jya19iYXNlKSwgJWVk aQorCW1vdmwgJHBhKGluaXRpYWxfcGFnZV90YWJsZSksICVlZHgKKwltb3ZsICRQVEVfSURFTlRf QVRUUiwgJWVheAorMTA6CisJbGVhbCBQREVfSURFTlRfQVRUUiglZWRpKSwlZWN4CQkvKiBDcmVh dGUgUERFIGVudHJ5ICovCisJbW92bCAlZWN4LCglZWR4KQkJCS8qIFN0b3JlIGlkZW50aXR5IFBE RSBlbnRyeSAqLworCW1vdmwgJWVjeCxwYWdlX3BkZV9vZmZzZXQoJWVkeCkJCS8qIFN0b3JlIGtl cm5lbCBQREUgZW50cnkgKi8KKwlhZGRsICQ0LCVlZHgKKwltb3ZsICQxMDI0LCAlZWN4CisxMToK KwlzdG9zbAorCWFkZGwgJDB4MTAwMCwlZWF4CisJbG9vcCAxMWIKKwkvKgorCSAqIEVuZCBjb25k aXRpb246IHdlIG11c3QgbWFwIHVwIHRvIHRoZSBlbmQgKyBNQVBQSU5HX0JFWU9ORF9FTkQuCisJ ICovCisJbW92bCAkcGEoX2VuZCkgKyBNQVBQSU5HX0JFWU9ORF9FTkQgKyBQVEVfSURFTlRfQVRU UiwgJWVicAorCWNtcGwgJWVicCwlZWF4CisJamIgMTBiCisJYWRkbCAkX19QQUdFX09GRlNFVCwg JWVkaQorCW1vdmwgJWVkaSwgcGEoX2Jya19lbmQpCisJc2hybCAkMTIsICVlYXgKKwltb3ZsICVl YXgsIHBhKG1heF9wZm5fbWFwcGVkKQorCisJLyogRG8gZWFybHkgaW5pdGlhbGl6YXRpb24gb2Yg dGhlIGZpeG1hcCBhcmVhICovCisJbW92bCAkcGEoaW5pdGlhbF9wZ19maXhtYXApK1BERV9JREVO VF9BVFRSLCVlYXgKKwltb3ZsICVlYXgscGEoaW5pdGlhbF9wYWdlX3RhYmxlKzB4ZmZjKQorI2Vu ZGlmCisJcmV0CitFTkRQUk9DKHNldHVwX3BndGFibGVfMzIpCisKKy8qCisgKiBCU1Mgc2VjdGlv bgorICovCitfX1BBR0VfQUxJR05FRF9CU1MKKwkuYWxpZ24gUEFHRV9TSVpFCisjaWZkZWYgQ09O RklHX1g4Nl9QQUUKK2luaXRpYWxfcGdfcG1kOgorCS5maWxsIDEwMjQqS1BNRFMsNCwwCisjZWxz ZQorRU5UUlkoaW5pdGlhbF9wYWdlX3RhYmxlKQorCS5maWxsIDEwMjQsNCwwCisjZW5kaWYKK2lu aXRpYWxfcGdfZml4bWFwOgorCS5maWxsIDEwMjQsNCwwCisKKy8qCisgKiBUaGlzIHN0YXJ0cyB0 aGUgZGF0YSBzZWN0aW9uLgorICovCisjaWZkZWYgQ09ORklHX1g4Nl9QQUUKK19fUEFHRV9BTElH TkVEX0RBVEEKKwkvKiBQYWdlLWFsaWduZWQgZm9yIHRoZSBiZW5lZml0IG9mIHBhcmF2aXJ0PyAq LworCS5hbGlnbiBQQUdFX1NJWkUKK0VOVFJZKGluaXRpYWxfcGFnZV90YWJsZSkKKwkubG9uZwlw YShpbml0aWFsX3BnX3BtZCtQR0RfSURFTlRfQVRUUiksMAkvKiBsb3cgaWRlbnRpdHkgbWFwICov CisjIGlmIEtQTURTID09IDMKKwkubG9uZwlwYShpbml0aWFsX3BnX3BtZCtQR0RfSURFTlRfQVRU UiksMAorCS5sb25nCXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVOVF9BVFRSKzB4MTAwMCksMAor CS5sb25nCXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVOVF9BVFRSKzB4MjAwMCksMAorIyBlbGlm IEtQTURTID09IDIKKwkubG9uZwkwLDAKKwkubG9uZwlwYShpbml0aWFsX3BnX3BtZCtQR0RfSURF TlRfQVRUUiksMAorCS5sb25nCXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVOVF9BVFRSKzB4MTAw MCksMAorIyBlbGlmIEtQTURTID09IDEKKwkubG9uZwkwLDAKKwkubG9uZwkwLDAKKwkubG9uZwlw YShpbml0aWFsX3BnX3BtZCtQR0RfSURFTlRfQVRUUiksMAorIyBlbHNlCisjICBlcnJvciAiS2Vy bmVsIFBNRHMgc2hvdWxkIGJlIDEsIDIgb3IgMyIKKyMgZW5kaWYKKwkuYWxpZ24gUEFHRV9TSVpF CQkvKiBuZWVkcyB0byBiZSBwYWdlLXNpemVkIHRvbyAqLworI2VuZGlmCi0tIAoxLjguMy4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==