From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [RFC XEN PATCH v3 06/39] acpi: probe valid PMEM regions via NFIT Date: Mon, 11 Sep 2017 12:37:47 +0800 Message-ID: <20170911043820.14617-7-haozhong.zhang@intel.com> References: <20170911043820.14617-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170911043820.14617-1-haozhong.zhang@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Haozhong Zhang , Andrew Cooper , Jan Beulich , Chao Peng , Dan Williams List-Id: xen-devel@lists.xenproject.org QSBQTUVNIHJlZ2lvbiB3aXRoIGZhaWx1cmVzIChlLmcuLCBub3QgcHJvcGVybHkgZmx1c2hlZCBp biB0aGUgbGFzdApwb3dlciBjeWNsZSwgb3Igc29tZSBibG9ja3Mgd2l0aGluIGl0IGFyZSBib3Jr ZW4pIGNhbm5vdCBiZSBzYWZlbHkKdXNlZCBieSBYZW4gYW5kIGd1ZXN0LiBTY2FuIHRoZSBzdGF0 ZSBmbGFncyBvZiBOVkRJTU0gcmVnaW9uIG1hcHBpbmcKc3RydWN0dXJlcyBpbiBORklUIHRvIGNo ZWNrIHdoZXRoZXIgYW55IGZhaWx1cmVzIGhhcHBlbmVkIHRvIGEgUE1FTQpyZWdpb24uIFRoZSBy ZWNvdmVyeSBvZiB0aG9zZSBmYWlsdXJlIGFyZSBsZWZ0IG91dCBvZiBYZW4gKGUuZy4gbGVmdAp0 byB0aGUgZmlybXdhcmUgb3Igb3RoZXIgbWFuYWdlbWVudCB1dGlsaXRpZXMgb24gdGhlIGJhcmUg bWV0YWwpLgoKU2lnbmVkLW9mZi1ieTogSGFvemhvbmcgWmhhbmcgPGhhb3pob25nLnpoYW5nQGlu dGVsLmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9h Y3BpL2Jvb3QuYyAgfCAgIDQgKysKIHhlbi9kcml2ZXJzL2FjcGkvbmZpdC5jICAgfCAxNTMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogeGVuL2luY2x1ZGUv YWNwaS9hY3RibDEuaCB8ICAyNiArKysrKysrKwogeGVuL2luY2x1ZGUveGVuL2FjcGkuaCAgICB8 ICAgMSArCiA0IGZpbGVzIGNoYW5nZWQsIDE4MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvYm9vdC5jIGIveGVuL2FyY2gveDg2L2Fj cGkvYm9vdC5jCmluZGV4IDhlNmM5NmRjZjYuLmY1MmEyYzZkYzUgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9hY3BpL2Jvb3QuYworKysgYi94ZW4vYXJjaC94ODYvYWNwaS9ib290LmMKQEAgLTcz Miw1ICs3MzIsOSBAQCBpbnQgX19pbml0IGFjcGlfYm9vdF9pbml0KHZvaWQpCiAKIAlhY3BpX3Rh YmxlX3BhcnNlKEFDUElfU0lHX0JHUlQsIGFjcGlfaW52YWxpZGF0ZV9iZ3J0KTsKIAorI2lmZGVm IENPTkZJR19OVkRJTU1fUE1FTQorCWFjcGlfbmZpdF9pbml0KCk7CisjZW5kaWYKKwogCXJldHVy biAwOwogfQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvYWNwaS9uZml0LmMgYi94ZW4vZHJpdmVy cy9hY3BpL25maXQuYwppbmRleCBlMDk5Mzc4ZWUwLi5iODhhNTg3YjhkIDEwMDY0NAotLS0gYS94 ZW4vZHJpdmVycy9hY3BpL25maXQuYworKysgYi94ZW4vZHJpdmVycy9hY3BpL25maXQuYwpAQCAt MzEsMTEgKzMxLDE0MyBAQCBzdGF0aWMgY29uc3QgdWludDhfdCBuZml0X3NwYV9wbWVtX2d1aWRb XSA9CiAgICAgMHhhYywgMHg0MywgMHgwZCwgMHgzMywgMHgxOCwgMHhiNywgMHg4YywgMHhkYiwK IH07CiAKK3N0cnVjdCBuZml0X3NwYV9kZXNjIHsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7 CisgICAgc3RydWN0IGFjcGlfbmZpdF9zeXN0ZW1fYWRkcmVzcyAqYWNwaV90YWJsZTsKK307CisK K3N0cnVjdCBuZml0X21lbWRldl9kZXNjIHsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cisg ICAgc3RydWN0IGFjcGlfbmZpdF9tZW1vcnlfbWFwICphY3BpX3RhYmxlOworICAgIHN0cnVjdCBu Zml0X3NwYV9kZXNjICpzcGFfZGVzYzsKK307CisKIHN0cnVjdCBhY3BpX25maXRfZGVzYyB7CiAg ICAgc3RydWN0IGFjcGlfdGFibGVfbmZpdCAqYWNwaV90YWJsZTsKKyAgICBzdHJ1Y3QgbGlzdF9o ZWFkIHNwYV9saXN0OworICAgIHN0cnVjdCBsaXN0X2hlYWQgbWVtZGV2X2xpc3Q7CiB9OwogCi1z dGF0aWMgc3RydWN0IGFjcGlfbmZpdF9kZXNjIG5maXRfZGVzYzsKK3N0YXRpYyBzdHJ1Y3QgYWNw aV9uZml0X2Rlc2MgbmZpdF9kZXNjID0geworICAgIC5zcGFfbGlzdCA9IExJU1RfSEVBRF9JTklU KG5maXRfZGVzYy5zcGFfbGlzdCksCisgICAgLm1lbWRldl9saXN0ID0gTElTVF9IRUFEX0lOSVQo bmZpdF9kZXNjLm1lbWRldl9saXN0KSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBhY3BpX25m aXRfZGVsX3N1YnRhYmxlcyhzdHJ1Y3QgYWNwaV9uZml0X2Rlc2MgKmRlc2MpCit7CisgICAgc3Ry dWN0IG5maXRfc3BhX2Rlc2MgKnNwYSwgKnNwYV9uZXh0OworICAgIHN0cnVjdCBuZml0X21lbWRl dl9kZXNjICptZW1kZXYsICptZW1kZXZfbmV4dDsKKworICAgIGxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZShzcGEsIHNwYV9uZXh0LCAmZGVzYy0+c3BhX2xpc3QsIGxpbmspCisgICAgeworICAgICAg ICBsaXN0X2RlbCgmc3BhLT5saW5rKTsKKyAgICAgICAgeGZyZWUoc3BhKTsKKyAgICB9CisgICAg bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlIChtZW1kZXYsIG1lbWRldl9uZXh0LCAmZGVzYy0+bWVt ZGV2X2xpc3QsIGxpbmspCisgICAgeworICAgICAgICBsaXN0X2RlbCgmbWVtZGV2LT5saW5rKTsK KyAgICAgICAgeGZyZWUobWVtZGV2KTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGFj cGlfbmZpdF9hZGRfc3VidGFibGVzKHN0cnVjdCBhY3BpX25maXRfZGVzYyAqZGVzYykKK3sKKyAg ICBzdHJ1Y3QgYWNwaV90YWJsZV9uZml0ICpuZml0X3RhYmxlID0gZGVzYy0+YWNwaV90YWJsZTsK KyAgICB1aW50MzJfdCBoZHJfb2Zmc2V0ID0gc2l6ZW9mKCpuZml0X3RhYmxlKTsKKyAgICB1aW50 MzJfdCBuZml0X2xlbmd0aCA9IG5maXRfdGFibGUtPmhlYWRlci5sZW5ndGg7CisgICAgc3RydWN0 IGFjcGlfbmZpdF9oZWFkZXIgKmhkcjsKKyAgICBzdHJ1Y3QgbmZpdF9zcGFfZGVzYyAqc3BhX2Rl c2M7CisgICAgc3RydWN0IG5maXRfbWVtZGV2X2Rlc2MgKm1lbWRldl9kZXNjOworICAgIGludCBy ZXQgPSAwOworCisjZGVmaW5lIElOSVRfREVTQyhkZXNjLCBhY3BpX2hkciwgYWNwaV90eXBlLCBk ZXNjX2xpc3QpIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICAoZGVzYykgPSB4emFsbG9jKHR5cGVvZigqKGRlc2MpKSk7 ICAgICAgICAgICAgICBcCisgICAgICAgIGlmICggdW5saWtlbHkoIShkZXNjKSkgKSB7ICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldCA9IC1FTk9NRU07ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZ290byBub21lbTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKGRlc2MpLT5hY3BpX3RhYmxlID0gKGFj cGlfdHlwZSAqKShhY3BpX2hkcik7ICAgXAorICAgICAgICBJTklUX0xJU1RfSEVBRCgmKGRlc2Mp LT5saW5rKTsgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGxpc3RfYWRkX3RhaWwoJihkZXNj KS0+bGluaywgKGRlc2NfbGlzdCkpOyAgICAgIFwKKyAgICB9IHdoaWxlICggMCApCisKKyAgICB3 aGlsZSAoIGhkcl9vZmZzZXQgPCBuZml0X2xlbmd0aCApCisgICAgeworICAgICAgICBoZHIgPSAo dm9pZCAqKW5maXRfdGFibGUgKyBoZHJfb2Zmc2V0OworICAgICAgICBoZHJfb2Zmc2V0ICs9IGhk ci0+bGVuZ3RoOworCisgICAgICAgIHN3aXRjaCAoIGhkci0+dHlwZSApCisgICAgICAgIHsKKyAg ICAgICAgY2FzZSBBQ1BJX05GSVRfVFlQRV9TWVNURU1fQUREUkVTUzoKKyAgICAgICAgICAgIElO SVRfREVTQyhzcGFfZGVzYywgaGRyLCBzdHJ1Y3QgYWNwaV9uZml0X3N5c3RlbV9hZGRyZXNzLAor ICAgICAgICAgICAgICAgICAgICAgICZkZXNjLT5zcGFfbGlzdCk7CisgICAgICAgICAgICBicmVh azsKKworICAgICAgICBjYXNlIEFDUElfTkZJVF9UWVBFX01FTU9SWV9NQVA6CisgICAgICAgICAg ICBJTklUX0RFU0MobWVtZGV2X2Rlc2MsIGhkciwgc3RydWN0IGFjcGlfbmZpdF9tZW1vcnlfbWFw LAorICAgICAgICAgICAgICAgICAgICAgICZkZXNjLT5tZW1kZXZfbGlzdCk7CisgICAgICAgICAg ICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgY29udGludWU7CisgICAg ICAgIH0KKyAgICB9CisKKyN1bmRlZiBJTklUX0RFU0MKKworICAgIHJldHVybiAwOworCisgbm9t ZW06CisgICAgYWNwaV9uZml0X2RlbF9zdWJ0YWJsZXMoZGVzYyk7CisKKyAgICByZXR1cm4gcmV0 OworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgYWNwaV9uZml0X2xpbmtfc3VidGFibGVzKHN0cnVj dCBhY3BpX25maXRfZGVzYyAqZGVzYykKK3sKKyAgICBzdHJ1Y3QgbmZpdF9zcGFfZGVzYyAqc3Bh X2Rlc2M7CisgICAgc3RydWN0IG5maXRfbWVtZGV2X2Rlc2MgKm1lbWRldl9kZXNjOworICAgIHVp bnQxNl90IHNwYV9pZHg7CisKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KG1lbWRldl9kZXNjLCAm ZGVzYy0+bWVtZGV2X2xpc3QsIGxpbmspCisgICAgeworICAgICAgICBzcGFfaWR4ID0gbWVtZGV2 X2Rlc2MtPmFjcGlfdGFibGUtPnJhbmdlX2luZGV4OworICAgICAgICBsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHNwYV9kZXNjLCAmZGVzYy0+c3BhX2xpc3QsIGxpbmspCisgICAgICAgIHsKKyAgICAgICAg ICAgIGlmICggc3BhX2Rlc2MtPmFjcGlfdGFibGUtPnJhbmdlX2luZGV4ID09IHNwYV9pZHggKQor ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIG1lbWRldl9kZXNjLT5z cGFfZGVzYyA9IHNwYV9kZXNjOworICAgIH0KK30KKworc3RhdGljIHZvaWQgX19pbml0IGFjcGlf bmZpdF9yZWdpc3Rlcl9wbWVtKHN0cnVjdCBhY3BpX25maXRfZGVzYyAqZGVzYykKK3sKKyAgICBz dHJ1Y3QgbmZpdF9zcGFfZGVzYyAqc3BhX2Rlc2M7CisgICAgc3RydWN0IG5maXRfbWVtZGV2X2Rl c2MgKm1lbWRldl9kZXNjOworICAgIHN0cnVjdCBhY3BpX25maXRfc3lzdGVtX2FkZHJlc3MgKnNw YTsKKyAgICB1bnNpZ25lZCBsb25nIHNtZm4sIGVtZm47CisKKyAgICBsaXN0X2Zvcl9lYWNoX2Vu dHJ5KG1lbWRldl9kZXNjLCAmZGVzYy0+bWVtZGV2X2xpc3QsIGxpbmspCisgICAgeworICAgICAg ICBzcGFfZGVzYyA9IG1lbWRldl9kZXNjLT5zcGFfZGVzYzsKKworICAgICAgICBpZiAoICFzcGFf ZGVzYyB8fAorICAgICAgICAgICAgIChtZW1kZXZfZGVzYy0+YWNwaV90YWJsZS0+ZmxhZ3MgJgor ICAgICAgICAgICAgICAoQUNQSV9ORklUX01FTV9TQVZFX0ZBSUxFRCB8IEFDUElfTkZJVF9NRU1f UkVTVE9SRV9GQUlMRUQgfAorICAgICAgICAgICAgICAgQUNQSV9ORklUX01FTV9GTFVTSF9GQUlM RUQgfCBBQ1BJX05GSVRfTUVNX05PVF9BUk1FRCB8CisgICAgICAgICAgICAgICBBQ1BJX05GSVRf TUVNX01BUF9GQUlMRUQpKSApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBzcGEg PSBzcGFfZGVzYy0+YWNwaV90YWJsZTsKKyAgICAgICAgaWYgKCBtZW1jbXAoc3BhLT5yYW5nZV9n dWlkLCBuZml0X3NwYV9wbWVtX2d1aWQsIDE2KSApCisgICAgICAgICAgICBjb250aW51ZTsKKyAg ICAgICAgc21mbiA9IHBhZGRyX3RvX3BmbihzcGEtPmFkZHJlc3MpOworICAgICAgICBlbWZuID0g cGFkZHJfdG9fcGZuKHNwYS0+YWRkcmVzcyArIHNwYS0+bGVuZ3RoKTsKKyAgICAgICAgcHJpbnRr KFhFTkxPR19JTkZPICJORklUOiBQTUVNIE1GTnMgMHglbHggLSAweCVseFxuIiwgc21mbiwgZW1m bik7CisgICAgfQorfQogCiB2b2lkIF9faW5pdCBhY3BpX25maXRfYm9vdF9pbml0KHZvaWQpCiB7 CkBAIC01Myw2ICsxODUsMjUgQEAgdm9pZCBfX2luaXQgYWNwaV9uZml0X2Jvb3RfaW5pdCh2b2lk KQogICAgICAgICAgICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09SKTsKIH0KIAordm9pZCBfX2lu aXQgYWNwaV9uZml0X2luaXQodm9pZCkKK3sKKyAgICBpZiAoICFuZml0X2Rlc2MuYWNwaV90YWJs ZSApCisgICAgICAgIHJldHVybjsKKworICAgIC8qIENvbGxlY3QgYWxsIFNQQSBhbmQgbWVtb3J5 IG1hcCBzdWItdGFibGVzLiAqLworICAgIGlmICggYWNwaV9uZml0X2FkZF9zdWJ0YWJsZXMoJm5m aXRfZGVzYykgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIk5GSVQ6IG5vIG1l bW9yeSBmb3IgTkZJVCBtYW5hZ2VtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor ICAgIC8qIExpbmsgZGVzY3JpcHRvcnMgb2YgU1BBIGFuZCBtZW1vcnkgbWFwIHN1Yi10YWJsZXMu ICovCisgICAgYWNwaV9uZml0X2xpbmtfc3VidGFibGVzKCZuZml0X2Rlc2MpOworCisgICAgLyog UmVnaXN0ZXIgdmFsaWQgcG1lbSByZWdpb25zIHRvIFhlbiBoeXBlcnZpc29yLiAqLworICAgIGFj cGlfbmZpdF9yZWdpc3Rlcl9wbWVtKCZuZml0X2Rlc2MpOworfQorCiAvKioKICAqIFNlYXJjaCBw bWVtIHJlZ2lvbnMgb3ZlcmxhcHBlZCB3aXRoIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyByYW5nZS4K ICAqCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hY3BpL2FjdGJsMS5oIGIveGVuL2luY2x1ZGUv YWNwaS9hY3RibDEuaAppbmRleCA5NGQ4ZDc3NzVjLi4wMzc2NTI5MTZhIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hY3BpL2FjdGJsMS5oCisrKyBiL3hlbi9pbmNsdWRlL2FjcGkvYWN0YmwxLmgK QEAgLTk0Niw2ICs5NDYsMzIgQEAgc3RydWN0IGFjcGlfbmZpdF9zeXN0ZW1fYWRkcmVzcyB7CiAJ dTY0IG1lbW9yeV9tYXBwaW5nOwogfTsKIAorLyogMTogTWVtb3J5IERldmljZSB0byBTeXN0ZW0g QWRkcmVzcyBSYW5nZSBNYXAgU3RydWN0dXJlICovCitzdHJ1Y3QgYWNwaV9uZml0X21lbW9yeV9t YXAgeworCXN0cnVjdCBhY3BpX25maXRfaGVhZGVyIGhlYWRlcjsKKwl1MzIgZGV2aWNlX2hhbmRs ZTsKKwl1MTYgcGh5c2ljYWxfaWQ7CisJdTE2IHJlZ2lvbl9pZDsKKwl1MTYgcmFuZ2VfaW5kZXg7 CisJdTE2IHJlZ2lvbl9pbmRleDsKKwl1NjQgcmVnaW9uX3NpemU7CisJdTY0IHJlZ2lvbl9vZmZz ZXQ7CisJdTY0IGFkZHJlc3M7CisJdTE2IGludGVybGVhdmVfaW5kZXg7CisJdTE2IGludGVybGVh dmVfd2F5czsKKwl1MTYgZmxhZ3M7CisJdTE2IHJlc2VydmVkOwkJLyogUmVzZXJ2ZWQsIG11c3Qg YmUgemVybyAqLworfTsKKworLyogRmxhZ3MgaW4gc3RydWN0IGFjcGlfbmZpdF9tZW1vcnlfbWFw ICovCisjZGVmaW5lIEFDUElfTkZJVF9NRU1fU0FWRV9GQUlMRUQJCSgxKQkvKiAwMDogTGFzdCBT QVZFIHRvIE1lbW9yeSBEZXZpY2UgZmFpbGVkICovCisjZGVmaW5lIEFDUElfTkZJVF9NRU1fUkVT VE9SRV9GQUlMRUQJKDE8PDEpCS8qIDAxOiBMYXN0IFJFU1RPUkUgZnJvbSBNZW1vcnkgRGV2aWNl IGZhaWxlZCAqLworI2RlZmluZSBBQ1BJX05GSVRfTUVNX0ZMVVNIX0ZBSUxFRAkJKDE8PDIpCS8q IDAyOiBQbGF0Zm9ybSBmbHVzaCBmYWlsZWQgKi8KKyNkZWZpbmUgQUNQSV9ORklUX01FTV9OT1Rf QVJNRUQJCQkoMTw8MykJLyogMDM6IE1lbW9yeSBEZXZpY2UgaXMgbm90IGFybWVkICovCisjZGVm aW5lIEFDUElfTkZJVF9NRU1fSEVBTFRIX09CU0VSVkVECSgxPDw0KQkvKiAwNDogTWVtb3J5IERl dmljZSBvYnNlcnZlZCBTTUFSVC9oZWFsdGggZXZlbnRzICovCisjZGVmaW5lIEFDUElfTkZJVF9N RU1fSEVBTFRIX0VOQUJMRUQJKDE8PDUpCS8qIDA1OiBTTUFSVC9oZWFsdGggZXZlbnRzIGVuYWJs ZWQgKi8KKyNkZWZpbmUgQUNQSV9ORklUX01FTV9NQVBfRkFJTEVECQkoMTw8NikJLyogMDY6IE1h cHBpbmcgdG8gU1BBIGZhaWxlZCAqLworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAq IFNCU1QgLSBTbWFydCBCYXR0ZXJ5IFNwZWNpZmljYXRpb24gVGFibGUKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL3hlbi9hY3BpLmggYi94ZW4vaW5jbHVkZS94ZW4vYWNwaS5oCmluZGV4IDFiZDhm OWY0ZTQuLjA4OGYwMTI1NWQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9hY3BpLmgKKysr IGIveGVuL2luY2x1ZGUveGVuL2FjcGkuaApAQCAtMTg1LDYgKzE4NSw3IEBAIHZvaWQgYWNwaV9u Zml0X2Jvb3RfaW5pdCh2b2lkKTsKIGJvb2wgYWNwaV9uZml0X2Jvb3Rfc2VhcmNoX3BtZW0odW5z aWduZWQgbG9uZyBzbWZuLCB1bnNpZ25lZCBsb25nIGVtZm4sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKnJldF9zbWZuLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpyZXRfZW1mbik7Cit2b2lkIGFjcGlfbmZpdF9p bml0KHZvaWQpOwogI2VuZGlmIC8qIENPTkZJR19OVkRJTU1fUE1FTSAqLwogCiAjZW5kaWYgLypf TElOVVhfQUNQSV9IKi8KLS0gCjIuMTQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=