From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v11 02/13] efi: create efi_enabled() Date: Mon, 5 Dec 2016 23:25:07 +0100 Message-ID: <1480976718-12198-3-git-send-email-daniel.kiper@oracle.com> References: <1480976718-12198-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cE1hz-00034R-B4 for xen-devel@lists.xenproject.org; Mon, 05 Dec 2016 22:26:03 +0000 In-Reply-To: <1480976718-12198-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, julien.grall@arm.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org Rmlyc3Qgb2YgYWxsIHdlIG5lZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGxlZ2FjeSBCSU9T CmFuZCBFRkkgcGxhdGZvcm1zIGR1cmluZyBydW50aW1lLCBub3QgZHVyaW5nIGJ1aWxkLCBiZWNh dXNlCm9uZSBpbWFnZSB3aWxsIGhhdmUgbGVnYWN5IGFuZCBFRkkgY29kZSBhbmQgY2FuIGJlIGV4 ZWN1dGVkCm9uIGJvdGggcGxhdGZvcm1zLiBBZGRpdGlvbmFsbHksIHdlIG5lZWQgbW9yZSBmaW5l IGdyYWluZWQKa25vd2xlZGdlIGFib3V0IEVGSSBlbnZpcm9ubWVudCBhbmQgY2hlY2sgZm9yIEVG SSBwbGF0Zm9ybQphbmQgRUZJIGxvYWRlciBzZXBhcmF0ZWx5IHRvIHByb3Blcmx5IHN1cHBvcnQg bXVsdGlib290Mgpwcm90b2NvbC4gSW4gZ2VuZXJhbCBYZW4gbG9hZGVkIGJ5IHRoaXMgcHJvdG9j b2wgdXNlcyBtZW1vcnkKbWFwcGluZ3MgYW5kIGxvYWRlZCBtb2R1bGVzIGluIHNpbWlsYXIgd2F5 IHRvIFhlbiBsb2FkZWQgYnkKbXVsdGlib290ICh2MSkgcHJvdG9jb2wuIEhlbmNlLCBjcmVhdGUg ZWZpX2VuYWJsZWQoKSB3aGljaApjaGVja3MgYXZhaWxhYmxlIGZlYXR1cmVzIGluIGVmaV9mbGFn cy4gVGhpcyBwYXRjaCBkZWZpbmVzCkVGSV9CT09ULCBFRklfTE9BREVSIGFuZCBFRklfUlMgZmVh dHVyZXMuIEVGSV9CT09UIGlzIGVxdWFsCnRvIG9sZCBlZmlfZW5hYmxlZCA9PSAxLiBFRklfUlMg ZWFzZSBjb250cm9sIG9uIHJ1bnRpbWUKc2VydmljZXMgdXNhZ2UuIEVGSV9MT0FERVIgdGVsbHMg dGhhdCBYZW4gd2FzIGxvYWRlZApkaXJlY3RseSBmcm9tIEVGSSBhcyBQRSBleGVjdXRhYmxlLgoK U3VnZ2VzdGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2NyAtIHN1Z2dlc3Rpb25zL2ZpeGVz OgogICAtIHJlbW92ZSBlZmlfZW5hYmxlZChFRklfUlMpIGNoZWNrIGZyb20gbWFwY2FjaGVfY3Vy cmVudF92Y3B1KCkKICAgICAoc3VnZ2VzdGVkIGJ5IERhbmllbCBLaXBlciBhbmQgSmFuIEJldWxp Y2gpLAogICAtIHJlbW92ZSBCVUcoKSBmcm9tIHhlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jOmVmaV9y c191c2luZ19wZ3RhYmxlcygpCiAgICAgKHN1Z2dlc3RlZCBieSBEYW5pZWwgS2lwZXIgYW5kIEph biBCZXVsaWNoKS4KCnY2IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gZGVmaW5lIGVmaV9lbmFi bGVkKCkgYXMgImJvb2wgZWZpX2VuYWJsZWQodW5zaWduZWQgaW50IGZlYXR1cmUpIgogICAgIGlu c3RlYWQgb2YgImJvb2xfdCBlZmlfZW5hYmxlZChpbnQgZmVhdHVyZSkiCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgIC0gZGVmaW5lIGVmaV9mbGFncyBhcyB1bnNpZ25lZCBpbnQK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB2YXJpb3VzIG1pbm9yIGNsZWFu dXBzIGFuZCBmaXhlcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjUgLSBzdWdn ZXN0aW9ucy9maXhlczoKICAgLSBzcXVhc2ggdGhyZWUgcGF0Y2hlcyBpbnRvIG9uZQogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGludHJvZHVjZSBhbGwgZmVhdHVyZXMgYXQg b25jZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGVmaV9lbmFibGVkKCkg cmV0dXJucyBib29sX3QKICAgICBpbnN0ZWFkIG9mIHVuc2lnbmVkIGludAogICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVwZGF0ZSBjb21taXQgbWVzc2FnZS4KCnY0IC0gc3Vn Z2VzdGlvbnMvZml4ZXM6CiAgIC0gcmVuYW1lIEVGSV9QTEFURk9STSB0byBFRklfQk9PVAogICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIG1vdmUgRUZJX0JPT1QgZGVmaW5pdGlv biB0byBlZmkgc3RydWN0IGRlZmluaXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSByZW1vdmUgdW5uZWVkZWQgZWZpLmZsYWdzIGluaXRpYWxpemF0aW9uCiAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIF9fc2V0X2JpdCgpIGluc3RlYWQgb2Yg c2V0X2JpdCgpIGlmIHBvc3NpYmxlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gZG8gZWZpX2VuYWJsZWQoKSBjbGVhbnVwCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAtIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UuCgp2MyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgog ICAtIGRlZmluZSBlZmkgc3RydWN0IGluIHhlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCiAgICAgaW4g ZWFybGllciBwYXRjaAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJv dmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3Zl IGNvbW1pdCBtZXNzYWdlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCi0tLQogeGVu L2FyY2gveDg2L2RtaV9zY2FuLmMgICAgfCAgICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9kb21haW5f cGFnZS5jIHwgICAgMiArLQogeGVuL2FyY2gveDg2L2VmaS9zdHViLmMgICAgfCAgICA4ICsrKyst LS0tCiB4ZW4vYXJjaC94ODYvbXBwYXJzZS5jICAgICB8ICAgIDQgKystLQogeGVuL2FyY2gveDg2 L3NldHVwLmMgICAgICAgfCAgIDEyICsrKysrKystLS0tLQogeGVuL2FyY2gveDg2L3NodXRkb3du LmMgICAgfCAgICAyICstCiB4ZW4vYXJjaC94ODYvdGltZS5jICAgICAgICB8ICAgIDIgKy0KIHhl bi9jb21tb24vZWZpL2Jvb3QuYyAgICAgIHwgICAxOSArKysrKysrKysrKysrKystLS0tCiB4ZW4v Y29tbW9uL2VmaS9ydW50aW1lLmMgICB8ICAgMTQgKysrKysrKystLS0tLS0KIHhlbi9jb21tb24v dmVyc2lvbi5jICAgICAgIHwgICAgMiArLQogeGVuL2RyaXZlcnMvYWNwaS9vc2wuYyAgICAgfCAg ICAyICstCiB4ZW4vaW5jbHVkZS94ZW4vZWZpLmggICAgICB8ICAgIDggKysrKysrLS0KIDEyIGZp bGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9kbWlfc2Nhbi5jIGIveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMKaW5k ZXggYjA0OWUzMS4uOGRjYjY0MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMK KysrIGIveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMKQEAgLTIzOCw3ICsyMzgsNyBAQCBjb25zdCBj aGFyICpfX2luaXQgZG1pX2dldF90YWJsZShwYWRkcl90ICpiYXNlLCB1MzIgKmxlbikKIHsKIAlz dGF0aWMgdW5zaWduZWQgaW50IF9faW5pdGRhdGEgaW5zdGFuY2U7CiAKLQlpZiAoZWZpX2VuYWJs ZWQpIHsKKwlpZiAoZWZpX2VuYWJsZWQoRUZJX0JPT1QpKSB7CiAJCWlmIChlZmlfc21iaW9zM19z aXplICYmICEoaW5zdGFuY2UgJiAxKSkgewogCQkJKmJhc2UgPSBlZmlfc21iaW9zM19hZGRyZXNz OwogCQkJKmxlbiA9IGVmaV9zbWJpb3MzX3NpemU7CkBAIC02OTYsNyArNjk2LDcgQEAgc3RhdGlj IHZvaWQgX19pbml0IGRtaV9kZWNvZGUoc3RydWN0IGRtaV9oZWFkZXIgKmRtKQogCiB2b2lkIF9f aW5pdCBkbWlfc2Nhbl9tYWNoaW5lKHZvaWQpCiB7Ci0JaWYgKCghZWZpX2VuYWJsZWQgPyBkbWlf aXRlcmF0ZShkbWlfZGVjb2RlKSA6CisJaWYgKCghZWZpX2VuYWJsZWQoRUZJX0JPT1QpID8gZG1p X2l0ZXJhdGUoZG1pX2RlY29kZSkgOgogCSAgICAgICAgICAgICAgICAgICAgZG1pX2VmaV9pdGVy YXRlKGRtaV9kZWNvZGUpKSA9PSAwKQogIAkJZG1pX2NoZWNrX3N5c3RlbShkbWlfYmxhY2tsaXN0 KTsKIAllbHNlCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9h cmNoL3g4Ni9kb21haW5fcGFnZS5jCmluZGV4IGQ4NmY4ZmUuLmE1OGVmOGUgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFn ZS5jCkBAIC0zNiw3ICszNiw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZjcHUgKm1hcGNhY2hl X2N1cnJlbnRfdmNwdSh2b2lkKQogICAgICAqIGRvbWFpbidzIHBhZ2UgdGFibGVzIGJ1dCBjdXJy ZW50IG1heSBwb2ludCBhdCBhbm90aGVyIGRvbWFpbidzIFZDUFUuCiAgICAgICogUmV0dXJuIE5V TEwgYXMgdGhvdWdoIGN1cnJlbnQgaXMgbm90IHByb3Blcmx5IHNldCB1cCB5ZXQuCiAgICAgICov Ci0gICAgaWYgKCBlZmlfZW5hYmxlZCAmJiBlZmlfcnNfdXNpbmdfcGd0YWJsZXMoKSApCisgICAg aWYgKCBlZmlfcnNfdXNpbmdfcGd0YWJsZXMoKSApCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAg ICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jIGIveGVuL2FyY2gveDg2 L2VmaS9zdHViLmMKaW5kZXggMDdjMmJkMC4uNDE1ODEyNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2VmaS9zdHViLmMKKysrIGIveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKQEAgLTQsOSArNCwx MCBAQAogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogCi0jaWZu ZGVmIGVmaV9lbmFibGVkCi1jb25zdCBib29sX3QgZWZpX2VuYWJsZWQgPSAwOwotI2VuZGlmCiti b29sIGVmaV9lbmFibGVkKHVuc2lnbmVkIGludCBmZWF0dXJlKQoreworICAgIHJldHVybiBmYWxz ZTsKK30KIAogdm9pZCBfX2luaXQgZWZpX2luaXRfbWVtb3J5KHZvaWQpIHsgfQogCkBAIC0xNCw3 ICsxNSw2IEBAIHZvaWQgZWZpX3VwZGF0ZV9sNF9wZ3RhYmxlKHVuc2lnbmVkIGludCBsNGlkeCwg bDRfcGdlbnRyeV90IGw0ZSkgeyB9CiAKIGJvb2xfdCBlZmlfcnNfdXNpbmdfcGd0YWJsZXModm9p ZCkKIHsKLSAgICBCVUcoKTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21wcGFyc2UuYyBiL3hlbi9hcmNoL3g4Ni9tcHBhcnNlLmMKaW5kZXggZWY2NTU3Yy4u YzNkNWJkYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21wcGFyc2UuYworKysgYi94ZW4vYXJj aC94ODYvbXBwYXJzZS5jCkBAIC01NjQsNyArNTY0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9f aW5pdCBjb25zdHJ1Y3RfZGVmYXVsdF9JU0FfbXB0YWJsZShpbnQgbXBjX2RlZmF1bHRfdHlwZSkK IAogc3RhdGljIF9faW5pdCB2b2lkIGVmaV91bm1hcF9tcGYodm9pZCkKIHsKLQlpZiAoZWZpX2Vu YWJsZWQpCisJaWYgKGVmaV9lbmFibGVkKEVGSV9CT09UKSkKIAkJY2xlYXJfZml4bWFwKEZJWF9F RklfTVBGKTsKIH0KIApAQCAtNzIyLDcgKzcyMiw3IEBAIHZvaWQgX19pbml0IGZpbmRfc21wX2Nv bmZpZyAodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgYWRkcmVzczsKIAotCWlmIChlZmlfZW5hYmxl ZCkgeworCWlmIChlZmlfZW5hYmxlZChFRklfQk9PVCkpIHsKIAkJZWZpX2NoZWNrX2NvbmZpZygp OwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4v YXJjaC94ODYvc2V0dXAuYwppbmRleCBiMTMwNjcxLi5kNDczYWM4IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtNDgzLDggKzQ4 Myw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV92aWRlb19pbmZvKHZvaWQpCiB7CiAgICAg c3RydWN0IGJvb3RfdmlkZW9faW5mbyAqYnZpID0gJmJvb3RzeW0oYm9vdF92aWRfaW5mbyk7CiAK LSAgICAvKiBUaGUgRUZJIGxvYWRlciBmaWxscyB2Z2FfY29uc29sZV9pbmZvIGRpcmVjdGx5LiAq LwotICAgIGlmICggZWZpX2VuYWJsZWQgKQorICAgIC8qIHZnYV9jb25zb2xlX2luZm8gaXMgZmls bGVkIGRpcmVjdGx5IG9uIEVGSSBwbGF0Zm9ybS4gKi8KKyAgICBpZiAoIGVmaV9lbmFibGVkKEVG SV9CT09UKSApCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICggKGJ2aS0+b3JpZ192aWRlb19p c1ZHQSA9PSAxKSAmJiAoYnZpLT5vcmlnX3ZpZGVvX21vZGUgPT0gMykgKQpAQCAtNzcwLDcgKzc3 MCw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJp X3ApCiAgICAgaWYgKCAhKG1iaS0+ZmxhZ3MgJiBNQklfTU9EVUxFUykgfHwgKG1iaS0+bW9kc19j b3VudCA9PSAwKSApCiAgICAgICAgIHBhbmljKCJkb20wIGtlcm5lbCBub3Qgc3BlY2lmaWVkLiBD aGVjayBib290bG9hZGVyIGNvbmZpZ3VyYXRpb24uIik7CiAKLSAgICBpZiAoIGVmaV9lbmFibGVk ICkKKyAgICBpZiAoIGVmaV9lbmFibGVkKEVGSV9MT0FERVIpICkKICAgICB7CiAgICAgICAgIHNl dF9wZHhfcmFuZ2UoeGVuX3BoeXNfc3RhcnQgPj4gUEFHRV9TSElGVCwKICAgICAgICAgICAgICAg ICAgICAgICAoeGVuX3BoeXNfc3RhcnQgKyBCT09UU1RSQVBfTUFQX0JBU0UpID4+IFBBR0VfU0hJ RlQpOwpAQCAtNzg1LDYgKzc4NSw4IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVu KHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAKICAgICAgICAgbWVtbWFwX3R5cGUgPSBsb2FkZXI7CiAg ICAgfQorICAgIGVsc2UgaWYgKCBlZmlfZW5hYmxlZChFRklfQk9PVCkgKQorICAgICAgICBtZW1t YXBfdHlwZSA9ICJFRkkiOwogICAgIGVsc2UgaWYgKCBlODIwX3Jhd19uciAhPSAwICkKICAgICB7 CiAgICAgICAgIG1lbW1hcF90eXBlID0gIlhlbi1lODIwIjsKQEAgLTg4MSw3ICs4ODMsNyBAQCB2 b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAg ICAqIHdlIGNhbiByZWxvY2F0ZSB0aGUgZG9tMCBrZXJuZWwgYW5kIG90aGVyIG11bHRpYm9vdCBt b2R1bGVzLiBBbHNvLCBvbgogICAgICAqIHg4Ni82NCwgd2UgcmVsb2NhdGUgWGVuIHRvIGhpZ2hl ciBtZW1vcnkuCiAgICAgICovCi0gICAgZm9yICggaSA9IDA7ICFlZmlfZW5hYmxlZCAmJiBpIDwg bWJpLT5tb2RzX2NvdW50OyBpKysgKQorICAgIGZvciAoIGkgPSAwOyAhZWZpX2VuYWJsZWQoRUZJ X0xPQURFUikgJiYgaSA8IG1iaS0+bW9kc19jb3VudDsgaSsrICkKICAgICB7CiAgICAgICAgIGlm ICggbW9kW2ldLm1vZF9zdGFydCAmIChQQUdFX1NJWkUgLSAxKSApCiAgICAgICAgICAgICBwYW5p YygiQm9vdGxvYWRlciBkaWRuJ3QgaG9ub3IgbW9kdWxlIGFsaWdubWVudCByZXF1ZXN0LiIpOwpA QCAtMTEyMiw3ICsxMTI0LDcgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5z aWduZWQgbG9uZyBtYmlfcCkKIAogICAgIGlmICggIXhlbl9waHlzX3N0YXJ0ICkKICAgICAgICAg cGFuaWMoIk5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlbG9jYXRlIFhlbi4iKTsKLSAgICByZXNlcnZl X2U4MjBfcmFtKCZib290X2U4MjAsIGVmaV9lbmFibGVkID8gbWJpLT5tZW1fdXBwZXIgOiBfX3Bh KCZfc3RhcnQpLAorICAgIHJlc2VydmVfZTgyMF9yYW0oJmJvb3RfZTgyMCwgZWZpX2VuYWJsZWQo RUZJX0xPQURFUikgPyBtYmktPm1lbV91cHBlciA6IF9fcGEoJl9zdGFydCksCiAgICAgICAgICAg ICAgICAgICAgICBfX3BhKCZfZW5kKSk7CiAKICAgICAvKiBMYXRlIGtleGVjIHJlc2VydmF0aW9u IChkeW5hbWljIHN0YXJ0IGFkZHJlc3MpLiAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3No dXRkb3duLmMgYi94ZW4vYXJjaC94ODYvc2h1dGRvd24uYwppbmRleCBjYjI0NDJhNy4uN2ExYTcz YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NodXRkb3duLmMKKysrIGIveGVuL2FyY2gveDg2 L3NodXRkb3duLmMKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIG1hY2hpbmVfaGFsdCh2b2lkKQog c3RhdGljIHZvaWQgZGVmYXVsdF9yZWJvb3RfdHlwZSh2b2lkKQogewogICAgIGlmICggcmVib290 X3R5cGUgPT0gQk9PVF9JTlZBTElEICkKLSAgICAgICAgcmVib290X3R5cGUgPSBlZmlfZW5hYmxl ZCA/IEJPT1RfRUZJCisgICAgICAgIHJlYm9vdF90eXBlID0gZWZpX2VuYWJsZWQoRUZJX1JTKSA/ IEJPT1RfRUZJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhY3BpX2Rpc2Fi bGVkID8gQk9PVF9LQkQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiBCT09UX0FDUEk7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGltZS5j IGIveGVuL2FyY2gveDg2L3RpbWUuYwppbmRleCBkZGE4OWQ4Li4xNWMzNjU3IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvdGltZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni90aW1lLmMKQEAgLTgxNCw3 ICs4MTQsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfY21vc190aW1lKHZvaWQpCiAgICAg c3RhdGljIGJvb2xfdCBfX3JlYWRfbW9zdGx5IGNtb3NfcnRjX3Byb2JlOwogICAgIGJvb2xlYW5f cGFyYW0oImNtb3MtcnRjLXByb2JlIiwgY21vc19ydGNfcHJvYmUpOwogCi0gICAgaWYgKCBlZmlf ZW5hYmxlZCApCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfUlMpICkKICAgICB7CiAgICAgICAg IHJlcyA9IGVmaV9nZXRfdGltZSgpOwogICAgICAgICBpZiAoIHJlcyApCmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL2VmaS9ib290LmMgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKaW5kZXggMTI1Yzlj ZS4uNTY1NDRkYyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jCisrKyBiL3hlbi9j b21tb24vZWZpL2Jvb3QuYwpAQCAtOTM0LDYgKzkzNCwxMyBAQCBlZmlfc3RhcnQoRUZJX0hBTkRM RSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCiAgICAgY2hhciAq b3B0aW9uX3N0cjsKICAgICBib29sX3QgdXNlX2NmZ19maWxlOwogCisgICAgX19zZXRfYml0KEVG SV9CT09ULCAmZWZpX2ZsYWdzKTsKKyAgICBfX3NldF9iaXQoRUZJX0xPQURFUiwgJmVmaV9mbGFn cyk7CisKKyNpZm5kZWYgQ09ORklHX0FSTSAvKiBEaXNhYmxlZCB1bnRpbCBydW50aW1lIHNlcnZp Y2VzIGltcGxlbWVudGVkLiAqLworICAgIF9fc2V0X2JpdChFRklfUlMsICZlZmlfZmxhZ3MpOwor I2VuZGlmCisKICAgICBlZmlfaW5pdChJbWFnZUhhbmRsZSwgU3lzdGVtVGFibGUpOwogCiAgICAg dXNlX2NmZ19maWxlID0gZWZpX2FyY2hfdXNlX2NvbmZpZ19maWxlKFN5c3RlbVRhYmxlKTsKQEAg LTExNTMsNyArMTE2MCw2IEBAIGVmaV9zdGFydChFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklf U1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKIAogI2lmbmRlZiBDT05GSUdfQVJNIC8qIFRPRE8g LSBydW50aW1lIHNlcnZpY2Ugc3VwcG9ydCAqLwogCi1zdGF0aWMgYm9vbF90IF9faW5pdGRhdGEg ZWZpX3JzX2VuYWJsZSA9IDE7CiBzdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgZWZpX21hcF91YzsK IAogc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX2VmaV9wYXJhbShjaGFyICpzKQpAQCAtMTE3MSw3 ICsxMTc3LDEyIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9lZmlfcGFyYW0oY2hhciAqcykK ICAgICAgICAgICAgICpzcyA9ICdcMCc7CiAKICAgICAgICAgaWYgKCAhc3RyY21wKHMsICJycyIp ICkKLSAgICAgICAgICAgIGVmaV9yc19lbmFibGUgPSB2YWw7CisgICAgICAgIHsKKyAgICAgICAg ICAgIGlmICggdmFsICkKKyAgICAgICAgICAgICAgICBfX3NldF9iaXQoRUZJX1JTLCAmZWZpX2Zs YWdzKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBfX2NsZWFyX2JpdChFRklf UlMsICZlZmlfZmxhZ3MpOworICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCAhc3RyY21wKHMs ICJhdHRyPXVjIikgKQogICAgICAgICAgICAgZWZpX21hcF91YyA9IHZhbDsKIApAQCAtMTI1NCw3 ICsxMjY1LDcgQEAgdm9pZCBfX2luaXQgZWZpX2luaXRfbWVtb3J5KHZvaWQpCiAgICAgICAgICAg ICAgICBkZXNjLT5QaHlzaWNhbFN0YXJ0LCBkZXNjLT5QaHlzaWNhbFN0YXJ0ICsgbGVuIC0gMSwK ICAgICAgICAgICAgICAgIGRlc2MtPlR5cGUsIGRlc2MtPkF0dHJpYnV0ZSk7CiAKLSAgICAgICAg aWYgKCAhZWZpX3JzX2VuYWJsZSB8fAorICAgICAgICBpZiAoICFlZmlfZW5hYmxlZChFRklfUlMp IHx8CiAgICAgICAgICAgICAgKCEoZGVzYy0+QXR0cmlidXRlICYgRUZJX01FTU9SWV9SVU5USU1F KSAmJgogICAgICAgICAgICAgICAoIW1hcF9icyB8fAogICAgICAgICAgICAgICAgKGRlc2MtPlR5 cGUgIT0gRWZpQm9vdFNlcnZpY2VzQ29kZSAmJgpAQCAtMTMyOCw3ICsxMzM5LDcgQEAgdm9pZCBf X2luaXQgZWZpX2luaXRfbWVtb3J5KHZvaWQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo ICFlZmlfcnNfZW5hYmxlICkKKyAgICBpZiAoICFlZmlfZW5hYmxlZChFRklfUlMpICkKICAgICB7 CiAgICAgICAgIGVmaV9md192ZW5kb3IgPSBOVUxMOwogICAgICAgICByZXR1cm47CmRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMgYi94ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMK aW5kZXggNDA2NDYyMC4uOGM0NDgzNSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9lZmkvcnVudGlt ZS5jCisrKyBiL3hlbi9jb21tb24vZWZpL3J1bnRpbWUuYwpAQCAtMjksMTIgKzI5LDYgQEAgdm9p ZCBlZmlfcnNfbGVhdmUoc3RydWN0IGVmaV9yc19zdGF0ZSAqKTsKIAogI2lmbmRlZiBDT01QQVQK IAotLyoKLSAqIEN1cnJlbnRseSBydW50aW1lIHNlcnZpY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQg b24gQVJNLiBUbyBib290IFhlbiB3aXRoIEFDUEksCi0gKiBzZXQgZWZpX2VuYWJsZWQgdG8gMSwg c28gdGhhdCBYZW4gY2FuIGdldCB0aGUgQUNQSSByb290IHBvaW50ZXIgZnJvbSBFRkkuCi0gKi8K LWNvbnN0IGJvb2xfdCBlZmlfZW5hYmxlZCA9IDE7Ci0KICNpZm5kZWYgQ09ORklHX0FSTQogIyBp bmNsdWRlIDxhc20vaTM4Ny5oPgogIyBpbmNsdWRlIDxhc20veHN0YXRlLmg+CkBAIC02Miw2ICs1 Niw5IEBAIFVJTlQ2NCBfX3JlYWRfbW9zdGx5IGVmaV9ib290X21heF92YXJfc3RvcmVfc2l6ZTsK IFVJTlQ2NCBfX3JlYWRfbW9zdGx5IGVmaV9ib290X3JlbWFpbl92YXJfc3RvcmVfc2l6ZTsKIFVJ TlQ2NCBfX3JlYWRfbW9zdGx5IGVmaV9ib290X21heF92YXJfc2l6ZTsKIAorLyogQml0IGZpZWxk IHJlcHJlc2VudGluZyBhdmFpbGFibGUgRUZJIGZlYXR1cmVzL3Byb3BlcnRpZXMuICovCit1bnNp Z25lZCBpbnQgZWZpX2ZsYWdzOworCiBzdHJ1Y3QgZWZpIF9fcmVhZF9tb3N0bHkgZWZpID0gewog CS5hY3BpICAgPSBFRklfSU5WQUxJRF9UQUJMRV9BRERSLAogCS5hY3BpMjAgPSBFRklfSU5WQUxJ RF9UQUJMRV9BRERSLApAQCAtNzIsNiArNjksMTEgQEAgc3RydWN0IGVmaSBfX3JlYWRfbW9zdGx5 IGVmaSA9IHsKIAogY29uc3Qgc3RydWN0IGVmaV9wY2lfcm9tICpfX3JlYWRfbW9zdGx5IGVmaV9w Y2lfcm9tczsKIAorYm9vbCBlZmlfZW5hYmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKK3sKKyAg ICByZXR1cm4gdGVzdF9iaXQoZmVhdHVyZSwgJmVmaV9mbGFncyk7Cit9CisKICNpZm5kZWYgQ09O RklHX0FSTSAvKiBUT0RPIC0gZGlzYWJsZWQgdW50aWwgaW1wbGVtZW50ZWQgb24gQVJNICovCiAK IHN0cnVjdCBlZmlfcnNfc3RhdGUgZWZpX3JzX2VudGVyKHZvaWQpCmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL3ZlcnNpb24uYyBiL3hlbi9jb21tb24vdmVyc2lvbi5jCmluZGV4IDBkMzFlMzguLjIy M2NiNTIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vdmVyc2lvbi5jCisrKyBiL3hlbi9jb21tb24v dmVyc2lvbi5jCkBAIC0xNjAsNyArMTYwLDcgQEAgc3RhdGljIGludCBfX2luaXQgeGVuX2J1aWxk X2luaXQodm9pZCkKIAogI2lmZGVmIENPTkZJR19YODYKICAgICAvKiBBbHRlcm5hdGl2ZWx5IHdl IG1heSBoYXZlIGEgQ29kZVZpZXcgcmVjb3JkIGZyb20gYW4gRUZJIGJ1aWxkLiAqLwotICAgIGlm ICggcmMgJiYgZWZpX2VuYWJsZWQgKQorICAgIGlmICggcmMgJiYgZWZpX2VuYWJsZWQoRUZJX0xP QURFUikgKQogICAgIHsKICAgICAgICAgY29uc3Qgc3RydWN0IHBlX2V4dGVybmFsX2RlYnVnX2Rp cmVjdG9yeSAqZGlyID0gKGNvbnN0IHZvaWQgKiluOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy9hY3BpL29zbC5jIGIveGVuL2RyaXZlcnMvYWNwaS9vc2wuYwppbmRleCA5YTQ5MDI5Li4zNjE2 ZGZkIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9hY3BpL29zbC5jCisrKyBiL3hlbi9kcml2ZXJz L2FjcGkvb3NsLmMKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBfX2luaXQgYWNwaV9vc192cHJpbnRm KGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogCiBhY3BpX3BoeXNpY2FsX2FkZHJlc3Mg X19pbml0IGFjcGlfb3NfZ2V0X3Jvb3RfcG9pbnRlcih2b2lkKQogewotCWlmIChlZmlfZW5hYmxl ZCkgeworCWlmIChlZmlfZW5hYmxlZChFRklfQk9PVCkpIHsKIAkJaWYgKGVmaS5hY3BpMjAgIT0g RUZJX0lOVkFMSURfVEFCTEVfQUREUikKIAkJCXJldHVybiBlZmkuYWNwaTIwOwogCQllbHNlIGlm IChlZmkuYWNwaSAhPSBFRklfSU5WQUxJRF9UQUJMRV9BRERSKQpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUveGVuL2VmaS5oIGIveGVuL2luY2x1ZGUveGVuL2VmaS5oCmluZGV4IGU3NGRhZDEuLjY4 YzY4YTggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAorKysgYi94ZW4vaW5jbHVk ZS94ZW4vZWZpLmgKQEAgLTUsMTAgKzUsMTMgQEAKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KICNl bmRpZgogCi1leHRlcm4gY29uc3QgYm9vbF90IGVmaV9lbmFibGVkOwotCiAjZGVmaW5lIEVGSV9J TlZBTElEX1RBQkxFX0FERFIgKH4wVUwpCiAKK2V4dGVybiB1bnNpZ25lZCBpbnQgZWZpX2ZsYWdz OworI2RlZmluZSBFRklfQk9PVAkwCS8qIFdlcmUgd2UgYm9vdGVkIGZyb20gRUZJPyAqLworI2Rl ZmluZSBFRklfTE9BREVSCTEJLyogV2VyZSB3ZSBib290ZWQgZGlyZWN0bHkgZnJvbSBFRkkgbG9h ZGVyPyAqLworI2RlZmluZSBFRklfUlMJCTIJLyogQ2FuIHdlIHVzZSBydW50aW1lIHNlcnZpY2Vz PyAqLworCiAvKiBBZGQgZmllbGRzIGhlcmUgb25seSBpZiB0aGV5IG5lZWQgdG8gYmUgcmVmZXJl bmNlZCBmcm9tIG5vbi1FRkkgY29kZS4gKi8KIHN0cnVjdCBlZmkgewogICAgIHVuc2lnbmVkIGxv bmcgbXBzOyAgICAgICAgICAvKiBNUFMgdGFibGUgKi8KQEAgLTI4LDYgKzMxLDcgQEAgdW5pb24g Y29tcGF0X3BmX2VmaV9pbmZvOwogc3RydWN0IHhlbnBmX2VmaV9ydW50aW1lX2NhbGw7CiBzdHJ1 Y3QgY29tcGF0X3BmX2VmaV9ydW50aW1lX2NhbGw7CiAKK2Jvb2wgZWZpX2VuYWJsZWQodW5zaWdu ZWQgaW50IGZlYXR1cmUpOwogdm9pZCBlZmlfaW5pdF9tZW1vcnkodm9pZCk7CiBib29sX3QgZWZp X3JzX3VzaW5nX3BndGFibGVzKHZvaWQpOwogdW5zaWduZWQgbG9uZyBlZmlfZ2V0X3RpbWUodm9p ZCk7Ci0tIAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=