From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v3 10/16] efi: create efi_enabled() Date: Fri, 15 Apr 2016 14:33:10 +0200 Message-ID: <1460723596-13261-11-git-send-email-daniel.kiper@oracle.com> References: <1460723596-13261-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ar2xJ-0005b3-Bj for xen-devel@lists.xenproject.org; Fri, 15 Apr 2016 12:34:37 +0000 In-Reply-To: <1460723596-13261-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, andrew.cooper3@citrix.com, stefano.stabellini@eu.citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, richard.l.maliszewski@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 ZWZpX2VuYWJsZWQoKSB3aGljaApjaGVja3MgYXZhaWxhYmxlIGZlYXR1cmVzIGluIGVmaS5mbGFn cy4gVGhpcyBwYXRjaCBvbmx5IGRlZmluZXMKRUZJX1BMQVRGT1JNIGZlYXR1cmUgd2hpY2ggaXMg ZXF1YWwgdG8gb2xkIGVmaV9lbmFibGVkID09IDEuCkZvbGxvd2luZyBwYXRjaCB3aWxsIGRlZmlu ZSBFRklfTE9BREVSIGZlYXR1cmUgYWNjb3JkaW5nbHkuCgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIEtpcGVyIDxkYW5p ZWwua2lwZXJAb3JhY2xlLmNvbT4KLS0tCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gZGVm aW5lIGVmaSBzdHJ1Y3QgaW4geGVuL2FyY2gveDg2L2VmaS9zdHViLmMKICAgICBpbiBlYXJsaWVy IHBhdGNoCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21t ZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWl0 IG1lc3NhZ2UKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KLS0tCiB4ZW4vYXJjaC94 ODYvZG1pX3NjYW4uYyAgICB8ICAgIDQgKystLQogeGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMg fCAgICAyICstCiB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYyAgICB8ICAgIDUgKy0tLS0KIHhlbi9h cmNoL3g4Ni9tcHBhcnNlLmMgICAgIHwgICAgNCArKy0tCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAg ICAgICB8ICAgMTAgKysrKystLS0tLQogeGVuL2FyY2gveDg2L3NodXRkb3duLmMgICAgfCAgICAy ICstCiB4ZW4vYXJjaC94ODYvdGltZS5jICAgICAgICB8ICAgIDIgKy0KIHhlbi9jb21tb24vZWZp L2Jvb3QuYyAgICAgIHwgICAgNCArKysrCiB4ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMgICB8ICAg MTcgKysrKysrKy0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL2FjcGkvb3NsLmMgICAgIHwgICAgMiAr LQogeGVuL2luY2x1ZGUveGVuL2VmaS5oICAgICAgfCAgIDEyICsrKysrKysrKystLQogMTEgZmls ZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMgYi94ZW4vYXJjaC94ODYvZG1pX3NjYW4uYwppbmRl eCA4ZTA3ZjhkLi40Y2QzOGM4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG1pX3NjYW4uYwor KysgYi94ZW4vYXJjaC94ODYvZG1pX3NjYW4uYwpAQCAtMjM4LDcgKzIzOCw3IEBAIGNvbnN0IGNo YXIgKl9faW5pdCBkbWlfZ2V0X3RhYmxlKHBhZGRyX3QgKmJhc2UsIHUzMiAqbGVuKQogewogCXN0 YXRpYyB1bnNpZ25lZCBpbnQgX19pbml0ZGF0YSBpbnN0YW5jZTsKIAotCWlmIChlZmlfZW5hYmxl ZCkgeworCWlmIChlZmlfZW5hYmxlZChFRklfUExBVEZPUk0pKSB7CiAJCWlmIChlZmlfc21iaW9z M19zaXplICYmICEoaW5zdGFuY2UgJiAxKSkgewogCQkJKmJhc2UgPSBlZmlfc21iaW9zM19hZGRy ZXNzOwogCQkJKmxlbiA9IGVmaV9zbWJpb3MzX3NpemU7CkBAIC03MDIsNyArNzAyLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IGRtaV9kZWNvZGUoc3RydWN0IGRtaV9oZWFkZXIgKmRtKQogCiB2b2lk IF9faW5pdCBkbWlfc2Nhbl9tYWNoaW5lKHZvaWQpCiB7Ci0JaWYgKCghZWZpX2VuYWJsZWQgPyBk bWlfaXRlcmF0ZShkbWlfZGVjb2RlKSA6CisJaWYgKCghZWZpX2VuYWJsZWQoRUZJX1BMQVRGT1JN KSA/IGRtaV9pdGVyYXRlKGRtaV9kZWNvZGUpIDoKIAkgICAgICAgICAgICAgICAgICAgIGRtaV9l ZmlfaXRlcmF0ZShkbWlfZGVjb2RlKSkgPT0gMCkKICAJCWRtaV9jaGVja19zeXN0ZW0oZG1pX2Js YWNrbGlzdCk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMg Yi94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYwppbmRleCBkODZmOGZlLi5mZGYwZDhhIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYworKysgYi94ZW4vYXJjaC94ODYvZG9t YWluX3BhZ2UuYwpAQCAtMzYsNyArMzYsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCB2Y3B1ICpt YXBjYWNoZV9jdXJyZW50X3ZjcHUodm9pZCkKICAgICAgKiBkb21haW4ncyBwYWdlIHRhYmxlcyBi dXQgY3VycmVudCBtYXkgcG9pbnQgYXQgYW5vdGhlciBkb21haW4ncyBWQ1BVLgogICAgICAqIFJl dHVybiBOVUxMIGFzIHRob3VnaCBjdXJyZW50IGlzIG5vdCBwcm9wZXJseSBzZXQgdXAgeWV0Lgog ICAgICAqLwotICAgIGlmICggZWZpX2VuYWJsZWQgJiYgZWZpX3JzX3VzaW5nX3BndGFibGVzKCkg KQorICAgIGlmICggZWZpX2VuYWJsZWQoRUZJX1BMQVRGT1JNKSAmJiBlZmlfcnNfdXNpbmdfcGd0 YWJsZXMoKSApCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9lZmkvc3R1Yi5jIGIveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKaW5kZXggZTZj OTliNS4uYzVhZTM2OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKKysrIGIv eGVuL2FyY2gveDg2L2VmaS9zdHViLmMKQEAgLTQsMTEgKzQsOCBAQAogI2luY2x1ZGUgPHhlbi9s aWIuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogCi0jaWZuZGVmIGVmaV9lbmFibGVkCi1jb25z dCBib29sX3QgZWZpX2VuYWJsZWQgPSAwOwotI2VuZGlmCi0KIHN0cnVjdCBlZmkgX19yZWFkX21v c3RseSBlZmkgPSB7CisJLmZsYWdzICAgPSAwLCAvKiBJbml0aWFsaXplZCBsYXRlci4gKi8KIAku YWNwaSAgICA9IEVGSV9JTlZBTElEX1RBQkxFX0FERFIsCiAJLmFjcGkyMCAgPSBFRklfSU5WQUxJ RF9UQUJMRV9BRERSLAogCS5tcHMgICAgID0gRUZJX0lOVkFMSURfVEFCTEVfQUREUiwKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tcHBhcnNlLmMgYi94ZW4vYXJjaC94ODYvbXBwYXJzZS5jCmlu ZGV4IGVmNjU1N2MuLmZmMjZiNWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tcHBhcnNlLmMK KysrIGIveGVuL2FyY2gveDg2L21wcGFyc2UuYwpAQCAtNTY0LDcgKzU2NCw3IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBfX2luaXQgY29uc3RydWN0X2RlZmF1bHRfSVNBX21wdGFibGUoaW50IG1wY19k ZWZhdWx0X3R5cGUpCiAKIHN0YXRpYyBfX2luaXQgdm9pZCBlZmlfdW5tYXBfbXBmKHZvaWQpCiB7 Ci0JaWYgKGVmaV9lbmFibGVkKQorCWlmIChlZmlfZW5hYmxlZChFRklfUExBVEZPUk0pKQogCQlj bGVhcl9maXhtYXAoRklYX0VGSV9NUEYpOwogfQogCkBAIC03MjIsNyArNzIyLDcgQEAgdm9pZCBf X2luaXQgZmluZF9zbXBfY29uZmlnICh2b2lkKQogewogCXVuc2lnbmVkIGludCBhZGRyZXNzOwog Ci0JaWYgKGVmaV9lbmFibGVkKSB7CisJaWYgKGVmaV9lbmFibGVkKEVGSV9QTEFURk9STSkpIHsK IAkJZWZpX2NoZWNrX2NvbmZpZygpOwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3NldHVwLmMgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwppbmRleCBjNWMzMzJkLi41ZDgw ODY4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYv c2V0dXAuYwpAQCAtNDM0LDggKzQzNCw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV92aWRl b19pbmZvKHZvaWQpCiB7CiAgICAgc3RydWN0IGJvb3RfdmlkZW9faW5mbyAqYnZpID0gJmJvb3Rz eW0oYm9vdF92aWRfaW5mbyk7CiAKLSAgICAvKiBUaGUgRUZJIGxvYWRlciBmaWxscyB2Z2FfY29u c29sZV9pbmZvIGRpcmVjdGx5LiAqLwotICAgIGlmICggZWZpX2VuYWJsZWQgKQorICAgIC8qIHZn YV9jb25zb2xlX2luZm8gaXMgZmlsbGVkIGRpcmVjdGx5IG9uIEVGSSBwbGF0Zm9ybS4gKi8KKyAg ICBpZiAoIGVmaV9lbmFibGVkKEVGSV9QTEFURk9STSkgKQogICAgICAgICByZXR1cm47CiAKICAg ICBpZiAoIChidmktPm9yaWdfdmlkZW9faXNWR0EgPT0gMSkgJiYgKGJ2aS0+b3JpZ192aWRlb19t b2RlID09IDMpICkKQEAgLTcxNSw3ICs3MTUsNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0 YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgIGlmICggIShtYmktPmZsYWdzICYgTUJJ X01PRFVMRVMpIHx8IChtYmktPm1vZHNfY291bnQgPT0gMCkgKQogICAgICAgICBwYW5pYygiZG9t MCBrZXJuZWwgbm90IHNwZWNpZmllZC4gQ2hlY2sgYm9vdGxvYWRlciBjb25maWd1cmF0aW9uLiIp OwogCi0gICAgaWYgKCBlZmlfZW5hYmxlZCApCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfUExB VEZPUk0pICkKICAgICB7CiAgICAgICAgIHNldF9wZHhfcmFuZ2UoeGVuX3BoeXNfc3RhcnQgPj4g UEFHRV9TSElGVCwKICAgICAgICAgICAgICAgICAgICAgICAoeGVuX3BoeXNfc3RhcnQgKyBCT09U U1RSQVBfTUFQX0JBU0UpID4+IFBBR0VfU0hJRlQpOwpAQCAtODI2LDcgKzgyNiw3IEBAIHZvaWQg X19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICog d2UgY2FuIHJlbG9jYXRlIHRoZSBkb20wIGtlcm5lbCBhbmQgb3RoZXIgbXVsdGlib290IG1vZHVs ZXMuIEFsc28sIG9uCiAgICAgICogeDg2LzY0LCB3ZSByZWxvY2F0ZSBYZW4gdG8gaGlnaGVyIG1l bW9yeS4KICAgICAgKi8KLSAgICBmb3IgKCBpID0gMDsgIWVmaV9lbmFibGVkICYmIGkgPCBtYmkt Pm1vZHNfY291bnQ7IGkrKyApCisgICAgZm9yICggaSA9IDA7ICFlZmlfZW5hYmxlZChFRklfUExB VEZPUk0pICYmIGkgPCBtYmktPm1vZHNfY291bnQ7IGkrKyApCiAgICAgewogICAgICAgICBpZiAo IG1vZFtpXS5tb2Rfc3RhcnQgJiAoUEFHRV9TSVpFIC0gMSkgKQogICAgICAgICAgICAgcGFuaWMo IkJvb3Rsb2FkZXIgZGlkbid0IGhvbm9yIG1vZHVsZSBhbGlnbm1lbnQgcmVxdWVzdC4iKTsKQEAg LTEwNTcsNyArMTA1Nyw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2ln bmVkIGxvbmcgbWJpX3ApCiAKICAgICBpZiAoICF4ZW5fcGh5c19zdGFydCApCiAgICAgICAgIHBh bmljKCJOb3QgZW5vdWdoIG1lbW9yeSB0byByZWxvY2F0ZSBYZW4uIik7Ci0gICAgcmVzZXJ2ZV9l ODIwX3JhbSgmYm9vdF9lODIwLCBlZmlfZW5hYmxlZCA/IG1iaS0+bWVtX3VwcGVyIDogX19wYSgm X3N0YXJ0KSwKKyAgICByZXNlcnZlX2U4MjBfcmFtKCZib290X2U4MjAsIGVmaV9lbmFibGVkKEVG SV9QTEFURk9STSkgPyBtYmktPm1lbV91cHBlciA6IF9fcGEoJl9zdGFydCksCiAgICAgICAgICAg ICAgICAgICAgICBfX3BhKCZfZW5kKSk7CiAKICAgICAvKiBMYXRlIGtleGVjIHJlc2VydmF0aW9u IChkeW5hbWljIHN0YXJ0IGFkZHJlc3MpLiAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3No dXRkb3duLmMgYi94ZW4vYXJjaC94ODYvc2h1dGRvd24uYwppbmRleCAwZTE0OTlkLi43OWRjZDE2 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc2h1dGRvd24uYworKysgYi94ZW4vYXJjaC94ODYv c2h1dGRvd24uYwpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgbWFjaGluZV9oYWx0KHZvaWQpCiBz dGF0aWMgdm9pZCBkZWZhdWx0X3JlYm9vdF90eXBlKHZvaWQpCiB7CiAgICAgaWYgKCByZWJvb3Rf dHlwZSA9PSBCT09UX0lOVkFMSUQgKQotICAgICAgICByZWJvb3RfdHlwZSA9IGVmaV9lbmFibGVk ID8gQk9PVF9FRkkKKyAgICAgICAgcmVib290X3R5cGUgPSBlZmlfZW5hYmxlZChFRklfUExBVEZP Uk0pID8gQk9PVF9FRkkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFjcGlf ZGlzYWJsZWQgPyBCT09UX0tCRAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IEJPT1RfQUNQSTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90 aW1lLmMgYi94ZW4vYXJjaC94ODYvdGltZS5jCmluZGV4IDY4N2UzOWIuLmZmZDM5YjIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni90aW1lLmMKKysrIGIveGVuL2FyY2gveDg2L3RpbWUuYwpAQCAt Njg2LDcgKzY4Niw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9jbW9zX3RpbWUodm9pZCkK ICAgICBzdGF0aWMgYm9vbF90IF9fcmVhZF9tb3N0bHkgY21vc19ydGNfcHJvYmU7CiAgICAgYm9v bGVhbl9wYXJhbSgiY21vcy1ydGMtcHJvYmUiLCBjbW9zX3J0Y19wcm9iZSk7CiAKLSAgICBpZiAo IGVmaV9lbmFibGVkICkKKyAgICBpZiAoIGVmaV9lbmFibGVkKEVGSV9QTEFURk9STSkgKQogICAg IHsKICAgICAgICAgcmVzID0gZWZpX2dldF90aW1lKCk7CiAgICAgICAgIGlmICggcmVzICkKZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vZWZpL2Jvb3QuYyBiL3hlbi9jb21tb24vZWZpL2Jvb3QuYwpp bmRleCAxMjVjOWNlLi5mMDA2NTc1IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2VmaS9ib290LmMK KysrIGIveGVuL2NvbW1vbi9lZmkvYm9vdC5jCkBAIC05MzQsNiArOTM0LDEwIEBAIGVmaV9zdGFy dChFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkK ICAgICBjaGFyICpvcHRpb25fc3RyOwogICAgIGJvb2xfdCB1c2VfY2ZnX2ZpbGU7CiAKKyNpZm5k ZWYgQ09ORklHX0FSTSAvKiBEaXNhYmxlZCB1bnRpbCBydW50aW1lIHNlcnZpY2VzIGltcGxlbWVu dGVkLiAqLworICAgIHNldF9iaXQoRUZJX1BMQVRGT1JNLCAmZWZpLmZsYWdzKTsKKyNlbmRpZgor CiAgICAgZWZpX2luaXQoSW1hZ2VIYW5kbGUsIFN5c3RlbVRhYmxlKTsKIAogICAgIHVzZV9jZmdf ZmlsZSA9IGVmaV9hcmNoX3VzZV9jb25maWdfZmlsZShTeXN0ZW1UYWJsZSk7CmRpZmYgLS1naXQg YS94ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMgYi94ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMKaW5k ZXggYWU4NzU1Ny4uYWEwNjRlNyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9lZmkvcnVudGltZS5j CisrKyBiL3hlbi9jb21tb24vZWZpL3J1bnRpbWUuYwpAQCAtMTAsMTQgKzEwLDEwIEBAIERFRklO RV9YRU5fR1VFU1RfSEFORExFKENIQVIxNik7CiAKICNpZm5kZWYgQ09NUEFUCiAKLSNpZmRlZiBD T05GSUdfQVJNICAvKiBEaXNhYmxlZCB1bnRpbCBydW50aW1lIHNlcnZpY2VzIGltcGxlbWVudGVk ICovCi1jb25zdCBib29sX3QgZWZpX2VuYWJsZWQgPSAwOwotI2Vsc2UKKyNpZm5kZWYgQ09ORklH X0FSTQogIyBpbmNsdWRlIDxhc20vaTM4Ny5oPgogIyBpbmNsdWRlIDxhc20veHN0YXRlLmg+CiAj IGluY2x1ZGUgPHB1YmxpYy9wbGF0Zm9ybS5oPgotCi1jb25zdCBib29sX3QgZWZpX2VuYWJsZWQg PSAxOwogI2VuZGlmCiAKIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IGVmaV9udW1fY3Q7CkBA IC00MiwxMSArMzgsMTIgQEAgVUlOVDY0IF9fcmVhZF9tb3N0bHkgZWZpX2Jvb3RfcmVtYWluX3Zh cl9zdG9yZV9zaXplOwogVUlOVDY0IF9fcmVhZF9tb3N0bHkgZWZpX2Jvb3RfbWF4X3Zhcl9zaXpl OwogCiBzdHJ1Y3QgZWZpIF9fcmVhZF9tb3N0bHkgZWZpID0gewotCS5hY3BpICAgPSBFRklfSU5W QUxJRF9UQUJMRV9BRERSLAotCS5hY3BpMjAgPSBFRklfSU5WQUxJRF9UQUJMRV9BRERSLAotCS5t cHMgICAgPSBFRklfSU5WQUxJRF9UQUJMRV9BRERSLAotCS5zbWJpb3MgPSBFRklfSU5WQUxJRF9U QUJMRV9BRERSLAotCS5zbWJpb3MzID0gRUZJX0lOVkFMSURfVEFCTEVfQUREUiwKKwkuZmxhZ3Mg ICA9IDAsIC8qIEluaXRpYWxpemVkIGxhdGVyLiAqLworCS5hY3BpICAgID0gRUZJX0lOVkFMSURf VEFCTEVfQUREUiwKKwkuYWNwaTIwICA9IEVGSV9JTlZBTElEX1RBQkxFX0FERFIsCisJLm1wcyAg ICAgPSBFRklfSU5WQUxJRF9UQUJMRV9BRERSLAorCS5zbWJpb3MgID0gRUZJX0lOVkFMSURfVEFC TEVfQUREUiwKKwkuc21iaW9zMyA9IEVGSV9JTlZBTElEX1RBQkxFX0FERFIKIH07CiAKIGNvbnN0 IHN0cnVjdCBlZmlfcGNpX3JvbSAqX19yZWFkX21vc3RseSBlZmlfcGNpX3JvbXM7CmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9hY3BpL29zbC5jIGIveGVuL2RyaXZlcnMvYWNwaS9vc2wuYwppbmRl eCA4YTI4ZDg3Li5lYjhiYzEyIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9hY3BpL29zbC5jCisr KyBiL3hlbi9kcml2ZXJzL2FjcGkvb3NsLmMKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBfX2luaXQg YWNwaV9vc192cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogCiBhY3BpX3Bo eXNpY2FsX2FkZHJlc3MgX19pbml0IGFjcGlfb3NfZ2V0X3Jvb3RfcG9pbnRlcih2b2lkKQogewot CWlmIChlZmlfZW5hYmxlZCkgeworCWlmIChlZmlfZW5hYmxlZChFRklfUExBVEZPUk0pKSB7CiAJ CWlmIChlZmkuYWNwaTIwICE9IEVGSV9JTlZBTElEX1RBQkxFX0FERFIpCiAJCQlyZXR1cm4gZWZp LmFjcGkyMDsKIAkJZWxzZSBpZiAoZWZpLmFjcGkgIT0gRUZJX0lOVkFMSURfVEFCTEVfQUREUikK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9lZmkuaCBiL3hlbi9pbmNsdWRlL3hlbi9lZmku aAppbmRleCBlNzRkYWQxLi42NTljN2M0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vZWZp LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2VmaS5oCkBAIC0yLDE1ICsyLDE3IEBACiAjZGVmaW5l IF9fWEVOX0VGSV9IX18KIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KKyNpbmNsdWRlIDx4ZW4vYml0 b3BzLmg+CiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CiAjZW5kaWYKIAotZXh0ZXJuIGNvbnN0IGJv b2xfdCBlZmlfZW5hYmxlZDsKLQogI2RlZmluZSBFRklfSU5WQUxJRF9UQUJMRV9BRERSICh+MFVM KQogCisjZGVmaW5lIEVGSV9QTEFURk9STQkwCisKIC8qIEFkZCBmaWVsZHMgaGVyZSBvbmx5IGlm IHRoZXkgbmVlZCB0byBiZSByZWZlcmVuY2VkIGZyb20gbm9uLUVGSSBjb2RlLiAqLwogc3RydWN0 IGVmaSB7CisgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICB1bnNpZ25lZCBsb25nIG1wczsg ICAgICAgICAgLyogTVBTIHRhYmxlICovCiAgICAgdW5zaWduZWQgbG9uZyBhY3BpOyAgICAgICAg IC8qIEFDUEkgdGFibGUgKElBNjQgZXh0IDAuNzEpICovCiAgICAgdW5zaWduZWQgbG9uZyBhY3Bp MjA7ICAgICAgIC8qIEFDUEkgdGFibGUgKEFDUEkgMi4wKSAqLwpAQCAtNDAsNiArNDIsMTIgQEAg aW50IGVmaV9ydW50aW1lX2NhbGwoc3RydWN0IHhlbnBmX2VmaV9ydW50aW1lX2NhbGwgKik7CiBp bnQgZWZpX2NvbXBhdF9nZXRfaW5mbyh1aW50MzJfdCBpZHgsIHVuaW9uIGNvbXBhdF9wZl9lZmlf aW5mbyAqKTsKIGludCBlZmlfY29tcGF0X3J1bnRpbWVfY2FsbChzdHJ1Y3QgY29tcGF0X3BmX2Vm aV9ydW50aW1lX2NhbGwgKik7CiAKKy8qIFRlc3Qgd2hldGhlciB0aGUgYWJvdmUgRUZJXyogYml0 cyBhcmUgZW5hYmxlZC4gKi8KK3N0YXRpYyBpbmxpbmUgYm9vbF90IGVmaV9lbmFibGVkKGludCBm ZWF0dXJlKQoreworICAgIHJldHVybiB0ZXN0X2JpdChmZWF0dXJlLCAmZWZpLmZsYWdzKSAhPSAw OworfQorCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwogCiAjZW5kaWYgLyogX19YRU5fRUZJ X0hfXyAqLwotLSAKMS43LjEwLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=