From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v6 5/7] libxl:xl: add parsing code to parse "libxl_static_sshm" from xl config files Date: Tue, 31 Jul 2018 11:23:07 -0700 Message-ID: <1533061389-6504-5-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Stefano Stabellini , sstabellini@kernel.org, wei.liu2@citrix.com, blackskygg@gmail.com, ian.jackson@eu.citrix.com, julien.grall@arm.com List-Id: xen-devel@lists.xenproject.org RnJvbTogWmhvbmd6ZSBMaXUgPGJsYWNrc2t5Z2dAZ21haWwuY29tPgoKQXV0aG9yOiBaaG9uZ3pl IExpdSA8YmxhY2tza3lnZ0BnbWFpbC5jb20+CgpBZGQgdGhlIHBhcnNpbmcgdXRpbHMgZm9yIHRo ZSBuZXdseSBpbnRyb2R1Y2VkIGxpYnhsX3N0YXRpY19zc2htIHN0cnVjdAp0byB0aGUgbGlieGwv bGlieGx1XyogZmFtaWx5LiBBbmQgYWRkIHJlYWxhdGVkIHBhcnNpbmcgY29kZSBpbiB4bCB0bwpw YXJzZSB0aGUgc3RydWN0IGZyb20geGwgY29uZmlnIGZpbGVzLiBUaGlzIGlzIGZvciB0aGUgcHJv cG9zYWwgIkFsbG93CnNldHRpbmcgdXAgc2hhcmVkIG1lbW9yeSBhcmVhcyBiZXR3ZWVuIFZNcyBm cm9tIHhsIGNvbmZpZyBmaWxlIiAoc2VlIFsxXSkuCgpbMV0gaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTctMDgvbXNnMDMyNDIuaHRtbAoKU2lnbmVkLW9m Zi1ieTogWmhvbmd6ZSBMaXUgPGJsYWNrc2t5Z2dAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBT dGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+CgpDYzogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXgu Y29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6IHhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCi0tLQpDaGFuZ2VzIGluIHY1OgotIHJlbW92ZSBhbGlnbm1lbnQgY2hlY2tzLCB0aGV5 IHdlcmUgbW92ZWQgdG8gbGlieGwKLS0tCiB0b29scy9saWJ4bC9NYWtlZmlsZSAgICAgIHwgICAy ICstCiB0b29scy9saWJ4bC9saWJ4bHVfc3NobS5jIHwgMjA3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsdXRpbC5oICAgfCAg IDYgKysKIHRvb2xzL3hsL3hsX3BhcnNlLmMgICAgICAgfCAgMjUgKysrKystCiA0IGZpbGVzIGNo YW5nZWQsIDIzOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHRvb2xzL2xpYnhsL2xpYnhsdV9zc2htLmMKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9N YWtlZmlsZSBiL3Rvb2xzL2xpYnhsL01ha2VmaWxlCmluZGV4IDUzYWYxODYuLmYzZGUxODkgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL01ha2VmaWxlCisrKyBiL3Rvb2xzL2xpYnhsL01ha2VmaWxl CkBAIC0xNzcsNyArMTc3LDcgQEAgQVVUT0lOQ1M9IGxpYnhsdV9jZmdfeS5oIGxpYnhsdV9jZmdf bC5oIF9saWJ4bF9saXN0LmggX3BhdGhzLmggXAogQVVUT1NSQ1M9IGxpYnhsdV9jZmdfeS5jIGxp YnhsdV9jZmdfbC5jCiBBVVRPU1JDUyArPSBfbGlieGxfc2F2ZV9tc2dzX2NhbGxvdXQuYyBfbGli eGxfc2F2ZV9tc2dzX2hlbHBlci5jCiBMSUJYTFVfT0JKUyA9IGxpYnhsdV9jZmdfeS5vIGxpYnhs dV9jZmdfbC5vIGxpYnhsdV9jZmcubyBcCi0JbGlieGx1X2Rpc2tfbC5vIGxpYnhsdV9kaXNrLm8g bGlieGx1X3ZpZi5vIGxpYnhsdV9wY2kubworCWxpYnhsdV9kaXNrX2wubyBsaWJ4bHVfZGlzay5v IGxpYnhsdV92aWYubyBsaWJ4bHVfcGNpLm8gbGlieGx1X3NzaG0ubwogJChMSUJYTFVfT0JKUyk6 IENGTEFHUyArPSAkKENGTEFHU19saWJ4ZW5jdHJsKSAjIEZvciB4ZW50b29sbG9nLmgKIAogJChU RVNUX1BST0dfT0JKUykgX2xpYnhsLmFwaS1mb3ItY2hlY2s6IENGTEFHUyArPSAkKENGTEFHU19s aWJ4ZW50b29sbG9nKSAkKENGTEFHU19saWJ4ZW50b29sY29yZSkKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL2xpYnhsdV9zc2htLmMgYi90b29scy9saWJ4bC9saWJ4bHVfc3NobS5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNzA5YTcKLS0tIC9kZXYvbnVsbAorKysgYi90 b29scy9saWJ4bC9saWJ4bHVfc3NobS5jCkBAIC0wLDAgKzEsMjA3IEBACisjaW5jbHVkZSAibGli eGxfb3NkZXBzLmgiIC8qIG11c3QgY29tZSBiZWZvcmUgYW55IG90aGVyIGhlYWRlcnMgKi8KKyNp bmNsdWRlICJsaWJ4bHVfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJ4ZW5jdHJsLmgiCisKKyNpbmNs dWRlIDxjdHlwZS5oPgorCisjZGVmaW5lIFBBUkFNX1JFKEVYUFIpICJeXFxzKiIgRVhQUiAiXFxz KigsfCQpIgorI2RlZmluZSBXT1JEX1JFICAgICAgICAgIihbX2EtekEtWjAtOV0rKSIKKyNkZWZp bmUgRVFVX1JFICAgICAgICAgUEFSQU1fUkUoV09SRF9SRSAiXFxzKj1cXHMqIiBXT1JEX1JFKQor CisjZGVmaW5lIFJFVF9JTlZBTChtc2csIGN1cnJfc3RyKSAgZG8geyAgICAgICAgICAgICAgXAor ICAgICAgICB4bHVfX3NzaG1fZXJyKGNmZywgbXNnLCBjdXJyX3N0cik7ICAgICAgICAgIFwKKyAg ICAgICAgcmMgPSBFSU5WQUw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgIGdvdG8gb3V0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0g d2hpbGUoMCkKKworLyogc2V0IGEgbWVtYmVyIGluIGxpYnhsX3N0YXRpY19zaG0gYW5kIHJlcG9y dCBhbiBlcnJvciBpZiBpdCdzIHJlc3BlY2lmaWVkLAorICogQGN1cnJfc3RyIGluZGljYXRlcyB0 aGUgaGVhZCBvZiB0aGUgcmVtYWluaW5nIHN0cmluZy4gKi8KKyNkZWZpbmUgU0VUX1ZBTCh2YXIs IG5hbWUsIHR5cGUsIHZhbHVlLCBjdXJyX3N0cikgIGRvIHsgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgaWYgKCh2YXIpICE9IExJQlhMX1NTSE1fIyN0eXBlIyNfVU5LTk9XTiAmJiAodmFyKSAh PSB2YWx1ZSkgeyAgIFwKKyAgICAgICAgICAgIFJFVF9JTlZBTCgiXCIiIG5hbWUgIlwiIHJlc3Bl Y2lmaWVkIiwgY3Vycl9zdHIpOyAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgKHZhcikgPSB2YWx1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICB9IHdoaWxlKDApCisKKworc3RhdGljIHZvaWQgeGx1X19zc2htX2Vy cihYTFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIgKm1zZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqY3Vycl9zdHIpIHsKKyAgICBmcHJpbnRmKGNmZy0+cmVwb3J0LAor ICAgICAgICAgICAgIiVzOiBjb25maWcgcGFyc2luZyBlcnJvciBpbiBzaGFyZWRfbWVtb3J5OiAl cyBhdCAnJXMnXG4iLAorICAgICAgICAgICAgY2ZnLT5jb25maWdfc291cmNlLCBtc2csIGN1cnJf c3RyKTsKK30KKworc3RhdGljIGludCBwYXJzZV9wcm90KFhMVV9Db25maWcgKmNmZywgY2hhciAq c3RyLCBsaWJ4bF9zc2htX3Byb3QgKnByb3QpCit7CisgICAgaW50IHJjOworICAgIGxpYnhsX3Nz aG1fcHJvdCBuZXdfcHJvdDsKKworICAgIGlmICghc3RyY21wKHN0ciwgInJ3IikpIHsKKyAgICAg ICAgbmV3X3Byb3QgPSBMSUJYTF9TU0hNX1BST1RfUlc7CisgICAgfSBlbHNlIHsKKyAgICAgICAg UkVUX0lOVkFMKCJpbnZhbGlkIHBlcm1pc3Npb24gZmxhZ3MiLCBzdHIpOworICAgIH0KKworICAg IFNFVF9WQUwoKnByb3QsICJwZXJtaXNzaW9uIGZsYWdzIiwgUFJPVCwgbmV3X3Byb3QsIHN0cik7 CisKKyAgICByYyA9IDA7CisKKyBvdXQ6CisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50 IHBhcnNlX2NhY2hlcG9saWN5KFhMVV9Db25maWcgKmNmZywgY2hhciAqc3RyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zc2htX2NhY2hlcG9saWN5ICpwb2xpY3kpCit7Cisg ICAgaW50IHJjOworICAgIGxpYnhsX3NzaG1fY2FjaGVwb2xpY3kgbmV3X3BvbGljeTsKKworICAg IGlmICghc3RyY21wKHN0ciwgIkFSTV9ub3JtYWwiKSkgeworICAgICAgICBuZXdfcG9saWN5ID0g TElCWExfU1NITV9DQUNIRVBPTElDWV9BUk1fTk9STUFMOworICAgIH0gZWxzZSBpZiAoIXN0cmNt cChzdHIsICJ4ODZfbm9ybWFsIikpIHsKKyAgICAgICAgbmV3X3BvbGljeSA9IExJQlhMX1NTSE1f Q0FDSEVQT0xJQ1lfWDg2X05PUk1BTDsKKyAgICB9IGVsc2UgeworICAgICAgICBSRVRfSU5WQUwo ImludmFsaWQgY2FjaGUgcG9saWN5Iiwgc3RyKTsKKyAgICB9CisKKyAgICBTRVRfVkFMKCpwb2xp Y3ksICJjYWNoZSBwb2xpY3kiLCBDQUNIRVBPTElDWSwgbmV3X3BvbGljeSwgc3RyKTsKKyAgICBy YyA9IDA7CisKKyBvdXQ6CisgICAgcmV0dXJuIHJjOworfQorCisvKiBoYW5kbGUga2V5ID0gdmFs dWUgcGFpcnMgKi8KK3N0YXRpYyBpbnQgaGFuZGxlX2VxdShYTFVfQ29uZmlnICpjZmcsIGNoYXIg KmtleSwgY2hhciAqdmFsLAorICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3N0YXRpY19zaG0g KnNzaG0pCit7CisgICAgaW50IHJjOworCisgICAgaWYgKCFzdHJjbXAoa2V5LCAiaWQiKSkgewor ICAgICAgICBpZiAoc3RybGVuKHZhbCkgPiBMSUJYTF9TU0hNX0lEX01BWExFTikgeyBSRVRfSU5W QUwoImlkIHRvbyBsb25nIiwgdmFsKTsgfQorICAgICAgICBpZiAoc3NobS0+aWQgJiYgIXN0cmNt cChzc2htLT5pZCwgdmFsKSkgeworICAgICAgICAgICAgUkVUX0lOVkFMKCJpZCByZXNwZWNpZmll ZCIsIHZhbCk7CisgICAgICAgIH0KKworICAgICAgICBzc2htLT5pZCA9IHN0cmR1cCh2YWwpOwor ICAgICAgICBpZiAoIXNzaG0tPmlkKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNz aG0gcGFyc2VyIG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgcmMgPSBFTk9NRU07Cisg ICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChr ZXksICJyb2xlIikpIHsKKyAgICAgICAgbGlieGxfc3NobV9yb2xlIG5ld19yb2xlOworCisgICAg ICAgIGlmICghc3RyY21wKCJtYXN0ZXIiLCB2YWwpKSB7CisgICAgICAgICAgICBuZXdfcm9sZSA9 IExJQlhMX1NTSE1fUk9MRV9NQVNURVI7CisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCgic2xh dmUiLCB2YWwpKSB7CisgICAgICAgICAgICBuZXdfcm9sZSA9IExJQlhMX1NTSE1fUk9MRV9TTEFW RTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCByb2xl IiwgdmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIFNFVF9WQUwoc3NobS0+cm9sZSwgInJvbGUi LCBST0xFLCBuZXdfcm9sZSwgdmFsKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiYmVn aW4iKSB8fAorICAgICAgICAgICAgICAgIXN0cmNtcChrZXksICJzaXplIikgfHwKKyAgICAgICAg ICAgICAgICFzdHJjbXAoa2V5LCAib2Zmc2V0IikpIHsKKyAgICAgICAgY2hhciAqZW5kcHRyOwor ICAgICAgICBpbnQgYmFzZSA9IDEwOworICAgICAgICB1aW50NjRfdCBuZXdfYWRkcjsKKworICAg ICAgICAvKiBDb3VsZCBiZSBpbiBoZXggZm9ybS4gTm90ZSB0aGF0IHdlIGRvbid0IG5lZWQgdG8g Y2hlY2sgdGhlIGxlbmd0aCBoZXJlLAorICAgICAgICAgKiBmb3IgdmFsW10gaXMgTlVMTC10ZXJt aW5hdGVkICovCisgICAgICAgIGlmICh2YWxbMF0gPT0gJzAnICYmIHZhbFsxXSA9PSAneCcpIHsg YmFzZSA9IDE2OyB9CisgICAgICAgIG5ld19hZGRyID0gc3RydG91bGwodmFsLCAmZW5kcHRyLCBi YXNlKTsKKyAgICAgICAgaWYgKGVycm5vID09IEVSQU5HRSB8fCAqZW5kcHRyKQorICAgICAgICAg ICAgUkVUX0lOVkFMKCJpbnZhbGlkIGJlZ2luL3NpemUvb2Zmc2V0IiwgdmFsKTsKKworICAgICAg ICBpZiAoa2V5WzBdID09ICdiJykgeworICAgICAgICAgICAgU0VUX1ZBTChzc2htLT5iZWdpbiwg ImJlZ2lubmluZyBhZGRyZXNzIiwgUkFOR0UsIG5ld19hZGRyLCB2YWwpOworICAgICAgICB9IGVs c2UgaWYoa2V5WzBdID09ICdzJyl7CisgICAgICAgICAgICBTRVRfVkFMKHNzaG0tPnNpemUsICJz aXplIiwgUkFOR0UsIG5ld19hZGRyLCB2YWwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgU0VUX1ZBTChzc2htLT5vZmZzZXQsICJvZmZzZXQiLCBSQU5HRSwgbmV3X2FkZHIsIHZhbCk7 CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAicHJvdCIpKSB7CisgICAg ICAgIHJjID0gcGFyc2VfcHJvdChjZmcsIHZhbCwgJnNzaG0tPnByb3QpOworICAgICAgICBpZiAo cmMpIHsgZ290byBvdXQ7IH0KKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiY2FjaGVfcG9s aWN5IikpIHsKKyAgICAgICAgcmMgPSBwYXJzZV9jYWNoZXBvbGljeShjZmcsIHZhbCwgJnNzaG0t PmNhY2hlX3BvbGljeSk7CisgICAgICAgIGlmIChyYykgeyBnb3RvIG91dDsgfQorICAgIH0gZWxz ZSB7CisgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBvcHRpb24iLCBrZXkpOworICAgIH0KKwor ICAgIHJjID0gMDsKKworIG91dDoKKyAgICByZXR1cm4gcmM7Cit9CisKK2ludCB4bHVfc3NobV9w YXJzZShYTFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIgKnNwZWMsCisgICAgICAgICAgICAgICAg ICAgbGlieGxfc3RhdGljX3NobSAqc3NobSkKK3sKKyAgICBpbnQgcmM7CisgICAgcmVnZXhfdCBl cXVfcmVjOworICAgIGNoYXIgKmJ1ZjIgPSBOVUxMLCAqcHRyID0gTlVMTDsKKyAgICByZWdtYXRj aF90IHBtYXRjaFszXTsKKworICAgIHJjID0gcmVnY29tcCgmZXF1X3JlYywgRVFVX1JFLCBSRUdf RVhURU5ERUQpOworICAgIGlmIChyYykgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNzaG0g cGFyc2VyIGZhaWxlZCB0byBpbml0aWFsaXplXG4iKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAg fQorCisgICAgYnVmMiA9IHB0ciA9IHN0cmR1cChzcGVjKTsKKyAgICBpZiAoIWJ1ZjIpIHsKKyAg ICAgICAgZnByaW50ZihzdGRlcnIsICJzc2htIHBhcnNlciBvdXQgb2YgbWVtb3J5XG4iKTsKKyAg ICAgICAgcmMgPSBFTk9NRU07CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIC8qIG1h aW4gcGFyc2luZyBsb29wICovCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgaWYgKCEqcHRy KSB7IGJyZWFrOyB9CisgICAgICAgIGlmIChyZWdleGVjKCZlcXVfcmVjLCBwdHIsIDMsIHBtYXRj aCwgMCkpCisgICAgICAgICAgICBSRVRfSU5WQUwoInVucmVjb2duaXplZCB0b2tlbiIsIHB0cik7 CisKKyAgICAgICAgcHRyW3BtYXRjaFsxXS5ybV9lb10gPSAnXDAnOworICAgICAgICBwdHJbcG1h dGNoWzJdLnJtX2VvXSA9ICdcMCc7CisgICAgICAgIHJjID0gaGFuZGxlX2VxdShjZmcsIHB0ciAr IHBtYXRjaFsxXS5ybV9zbywKKyAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArIHBtYXRjaFsy XS5ybV9zbywgc3NobSk7CisgICAgICAgIGlmIChyYykgeyBnb3RvIG91dDsgfQorCisgICAgICAg IHB0ciArPSBwbWF0Y2hbMF0ucm1fZW87CisgICAgfQorCisgICAgaWYgKCpwdHIpIHsgUkVUX0lO VkFMKCJpbnZhbGlkIHN5bnRheCIsIHB0cik7IH0KKworICAgIC8qIGRvIHNvbWUgZWFybHkgY2hl Y2tzICovCisgICAgaWYgKCFzc2htLT5pZCkgeworICAgICAgICBSRVRfSU5WQUwoImlkIG5vdCBz cGVjaWZpZWQiLCBzcGVjKTsKKyAgICB9CisgICAgaWYgKHNzaG0tPmJlZ2luID09IExJQlhMX1NT SE1fUkFOR0VfVU5LTk9XTikgeworICAgICAgICBSRVRfSU5WQUwoImJlZ2luIGFkZHJlc3Mgbm90 IHNwZWNpZmllZCIsIHNwZWMpOworICAgIH0KKyAgICBpZiAoc3NobS0+c2l6ZSA9PSBMSUJYTF9T U0hNX1JBTkdFX1VOS05PV04pIHsKKyAgICAgICAgUkVUX0lOVkFMKCJzaXplIG5vdCBzcGVjaWZp ZWQiLCBzcGVjKTsKKyAgICB9CisgICAgaWYgKHNzaG0tPnByb3QgPT0gTElCWExfU1NITV9QUk9U X1VOS05PV04pIHsKKyAgICAgICAgc3NobS0+cHJvdCA9IExJQlhMX1NTSE1fUFJPVF9SVzsKKyAg ICB9CisKKyAgICByYyA9IDA7CisKKyBvdXQ6CisgICAgaWYgKGJ1ZjIpIHsgZnJlZShidWYyKTsg fQorICAgIHJlZ2ZyZWUoJmVxdV9yZWMpOworICAgIHJldHVybiByYzsKK30KKworLyoKKyAqIExv Y2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiBpbmRl bnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGx1dGlsLmggYi90b29scy9saWJ4bC9saWJ4bHV0aWwuaAppbmRleCBlODFiNjQ0Li5lZTM5 Y2I1IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bHV0aWwuaAorKysgYi90b29scy9saWJ4 bC9saWJ4bHV0aWwuaApAQCAtMTE4LDYgKzExOCwxMiBAQCBpbnQgeGx1X3JkbV9wYXJzZShYTFVf Q29uZmlnICpjZmcsIGxpYnhsX3JkbV9yZXNlcnZlICpyZG0sIGNvbnN0IGNoYXIgKnN0cik7CiBp bnQgeGx1X3ZpZl9wYXJzZV9yYXRlKFhMVV9Db25maWcgKmNmZywgY29uc3QgY2hhciAqcmF0ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX25pYyAqbmljKTsKIAorLyoKKyAq IHN0YXRpYyBzaGFyZWQgbWVtb3J5IHNwZWNpZmljYXRpb24gcGFyc2luZworICovCitpbnQgeGx1 X3NzaG1fcGFyc2UoWExVX0NvbmZpZyAqY2ZnLCBjb25zdCBjaGFyICpzcGVjLAorICAgICAgICAg ICAgICAgICAgIGxpYnhsX3N0YXRpY19zaG0gKnNzaG0pOworCiAjZW5kaWYgLyogTElCWExVVElM X0ggKi8KIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX3BhcnNlLmMgYi90b29scy94bC94 bF9wYXJzZS5jCmluZGV4IDk3MWVjMWIuLmU4NWYyY2MgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL3hs X3BhcnNlLmMKKysrIGIvdG9vbHMveGwveGxfcGFyc2UuYwpAQCAtMTIwOSw3ICsxMjA5LDggQEAg dm9pZCBwYXJzZV9jb25maWdfZGF0YShjb25zdCBjaGFyICpjb25maWdfc291cmNlLAogICAgIGxv bmcgbCwgdmNwdXMgPSAwOwogICAgIFhMVV9Db25maWcgKmNvbmZpZzsKICAgICBYTFVfQ29uZmln TGlzdCAqY3B1cywgKnZiZHMsICpuaWNzLCAqcGNpcywgKmN2ZmJzLCAqY3B1aWRzLCAqdnRwbXMs Ci0gICAgICAgICAgICAgICAgICAgKnVzYmN0cmxzLCAqdXNiZGV2cywgKnA5ZGV2cywgKnZkaXNw bHMsICpwdmNhbGxzaWZzX2RldnM7CisgICAgICAgICAgICAgICAgICAgKnVzYmN0cmxzLCAqdXNi ZGV2cywgKnA5ZGV2cywgKnZkaXNwbHMsICpwdmNhbGxzaWZzX2RldnMsCisgICAgICAgICAgICAg ICAgICAgKnNzaG1zOwogICAgIFhMVV9Db25maWdMaXN0ICpjaGFubmVscywgKmlvcG9ydHMsICpp cnFzLCAqaW9tZW0sICp2aXJpZGlhbiwgKmR0ZGV2cywKICAgICAgICAgICAgICAgICAgICAqbWNh X2NhcHM7CiAgICAgaW50IG51bV9pb3BvcnRzLCBudW1faXJxcywgbnVtX2lvbWVtLCBudW1fY3B1 cywgbnVtX3ZpcmlkaWFuLCBudW1fbWNhX2NhcHM7CkBAIC0xOTE1LDYgKzE5MTYsMjggQEAgdm9p ZCBwYXJzZV9jb25maWdfZGF0YShjb25zdCBjaGFyICpjb25maWdfc291cmNlLAogICAgICAgICB9 CiAgICAgfQogCisgICAgaWYgKCF4bHVfY2ZnX2dldF9saXN0IChjb25maWcsICJzdGF0aWNfc2ht IiwgJnNzaG1zLCAwLCAwKSkgeworICAgICAgICBkX2NvbmZpZy0+bnVtX3NzaG1zID0gMDsKKyAg ICAgICAgZF9jb25maWctPnNzaG1zID0gTlVMTDsKKyAgICAgICAgd2hpbGUgKChidWYgPSB4bHVf Y2ZnX2dldF9saXN0aXRlbSAoc3NobXMsIGRfY29uZmlnLT5udW1fc3NobXMpKSAhPSBOVUxMKSB7 CisgICAgICAgICAgICBsaWJ4bF9zdGF0aWNfc2htICpzc2htOworICAgICAgICAgICAgY2hhciAq YnVmMiA9IHN0cmR1cChidWYpOworICAgICAgICAgICAgaW50IHJldDsKKworICAgICAgICAgICAg c3NobSA9IEFSUkFZX0VYVEVORF9JTklUX05PREVWSUQoZF9jb25maWctPnNzaG1zLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZF9jb25maWctPm51bV9zc2ht cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3N0 YXRpY19zaG1faW5pdCk7CisgICAgICAgICAgICByZXQgPSB4bHVfc3NobV9wYXJzZShjb25maWcs IGJ1ZjIsIHNzaG0pOworICAgICAgICAgICAgaWYgKHJldCkgeworICAgICAgICAgICAgICAgIGZw cmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgInhsOiBJbnZhbGlkIGFyZ3Vt ZW50IGZvciBzdGF0aWNfc2htOiAlcyIsIGJ1ZjIpOworICAgICAgICAgICAgICAgIGV4aXQoRVhJ VF9GQUlMVVJFKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZShidWYyKTsKKyAg ICAgICAgfQorICAgIH0KKwogICAgIGlmICgheGx1X2NmZ19nZXRfbGlzdChjb25maWcsICJwOSIs ICZwOWRldnMsIDAsIDApKSB7CiAgICAgICAgIGxpYnhsX2RldmljZV9wOSAqcDk7CiAgICAgICAg IGNoYXIgKnNlY3VyaXR5X21vZGVsID0gTlVMTDsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==