From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v2 4/5] xl: add vsnd CLI commands Date: Fri, 18 May 2018 17:38:29 +0300 Message-ID: <20180518143830.4910-5-al1img@gmail.com> References: <20180518143830.4910-1-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fJgWt-0001Zi-IK for xen-devel@lists.xenproject.org; Fri, 18 May 2018 14:38:47 +0000 Received: by mail-lf0-x243.google.com with SMTP id x145-v6so2298422lff.1 for ; Fri, 18 May 2018 07:38:45 -0700 (PDT) In-Reply-To: <20180518143830.4910-1-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKQWRk IENMSSBjb21tYW5kcyB0byBhdHRhY2gsIGRldGFjaCBhbmQgbGlzdCB2aXJ0dWFsIHNvdW5kIGRl dmljZXMKClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBHcnl0c292IDxvbGVrc2FuZHJfZ3J5dHNv dkBlcGFtLmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQog dG9vbHMveGwvTWFrZWZpbGUgICAgICB8ICAgMiArLQogdG9vbHMveGwveGwuaCAgICAgICAgICB8 ICAgMyArCiB0b29scy94bC94bF9jbWR0YWJsZS5jIHwgIDE1ICsrKwogdG9vbHMveGwveGxfdnNu ZC5jICAgICB8IDIwMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog NCBmaWxlcyBjaGFuZ2VkLCAyMjIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRvb2xzL3hsL3hsX3ZzbmQuYwoKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL01h a2VmaWxlIGIvdG9vbHMveGwvTWFrZWZpbGUKaW5kZXggYTUxMTdhYjNmYi4uNjZiZGJkZWYxMyAx MDA2NDQKLS0tIGEvdG9vbHMveGwvTWFrZWZpbGUKKysrIGIvdG9vbHMveGwvTWFrZWZpbGUKQEAg LTIyLDcgKzIyLDcgQEAgWExfT0JKUyArPSB4bF92dHBtLm8geGxfYmxvY2subyB4bF9uaWMubyB4 bF91c2IubwogWExfT0JKUyArPSB4bF9zY2hlZC5vIHhsX3BjaS5vIHhsX3ZjcHUubyB4bF9jZHJv bS5vIHhsX21lbS5vCiBYTF9PQkpTICs9IHhsX2luZm8ubyB4bF9jb25zb2xlLm8geGxfbWlzYy5v CiBYTF9PQkpTICs9IHhsX3ZtY29udHJvbC5vIHhsX3NhdmVyZXN0b3JlLm8geGxfbWlncmF0ZS5v Ci1YTF9PQkpTICs9IHhsX3ZkaXNwbC5vCitYTF9PQkpTICs9IHhsX3ZkaXNwbC5vIHhsX3ZzbmQu bwogCiAkKFhMX09CSlMpOiBDRkxBR1MgKz0gJChDRkxBR1NfbGlieGVudG9vbGxvZykKICQoWExf T0JKUyk6IENGTEFHUyArPSAkKENGTEFHU19YTCkKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsLmgg Yi90b29scy94bC94bC5oCmluZGV4IDRlNzg0ZmY0MDIuLmE2Yjg1ZjZkYjIgMTAwNjQ0Ci0tLSBh L3Rvb2xzL3hsL3hsLmgKKysrIGIvdG9vbHMveGwveGwuaApAQCAtMTcwLDYgKzE3MCw5IEBAIGlu dCBtYWluX3Z0cG1kZXRhY2goaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKIGludCBtYWluX3ZkaXNw bGF0dGFjaChpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwogaW50IG1haW5fdmRpc3BsbGlzdChpbnQg YXJnYywgY2hhciAqKmFyZ3YpOwogaW50IG1haW5fdmRpc3BsZGV0YWNoKGludCBhcmdjLCBjaGFy ICoqYXJndik7CitpbnQgbWFpbl92c25kYXR0YWNoKGludCBhcmdjLCBjaGFyICoqYXJndik7Citp bnQgbWFpbl92c25kbGlzdChpbnQgYXJnYywgY2hhciAqKmFyZ3YpOworaW50IG1haW5fdnNuZGRl dGFjaChpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwogaW50IG1haW5fdXNiY3RybF9hdHRhY2goaW50 IGFyZ2MsIGNoYXIgKiphcmd2KTsKIGludCBtYWluX3VzYmN0cmxfZGV0YWNoKGludCBhcmdjLCBj aGFyICoqYXJndik7CiBpbnQgbWFpbl91c2JkZXZfYXR0YWNoKGludCBhcmdjLCBjaGFyICoqYXJn dik7CmRpZmYgLS1naXQgYS90b29scy94bC94bF9jbWR0YWJsZS5jIGIvdG9vbHMveGwveGxfY21k dGFibGUuYwppbmRleCBiZjJjZWQ4MTQwLi4xMDQyNmEyZmZkIDEwMDY0NAotLS0gYS90b29scy94 bC94bF9jbWR0YWJsZS5jCisrKyBiL3Rvb2xzL3hsL3hsX2NtZHRhYmxlLmMKQEAgLTM5OSw2ICsz OTksMjEgQEAgc3RydWN0IGNtZF9zcGVjIGNtZF90YWJsZVtdID0gewogICAgICAgIkRlc3Ryb3kg YSBkb21haW4ncyB2aXJ0dWFsIGRpc3BsYXkgZGV2aWNlIiwKICAgICAgICI8RG9tYWluPiA8RGV2 SWQ+IiwKICAgICB9LAorICAgIHsgInZzbmQtYXR0YWNoIiwKKyAgICAgICZtYWluX3ZzbmRhdHRh Y2gsIDEsIDEsCisgICAgICAiQ3JlYXRlIGEgbmV3IHZpcnR1YWwgc291bmQgZGV2aWNlIiwKKyAg ICAgICI8RG9tYWluPiA8dnNuZC1zcGVjLWNvbXBvbmVudChzKT4uLi4iLAorICAgIH0sCisgICAg eyAidnNuZC1saXN0IiwKKyAgICAgICZtYWluX3ZzbmRsaXN0LCAwLCAwLAorICAgICAgIkxpc3Qg dmlydHVhbCBkaXNwbGF5IGRldmljZXMgZm9yIGEgZG9tYWluIiwKKyAgICAgICI8RG9tYWluKHMp PiIsCisgICAgfSwKKyAgICB7ICJ2c25kLWRldGFjaCIsCisgICAgICAmbWFpbl92c25kZGV0YWNo LCAwLCAxLAorICAgICAgIkRlc3Ryb3kgYSBkb21haW4ncyB2aXJ0dWFsIHNvdW5kIGRldmljZSIs CisgICAgICAiPERvbWFpbj4gPERldklkPiIsCisgICAgfSwKICAgICB7ICJ1cHRpbWUiLAogICAg ICAgJm1haW5fdXB0aW1lLCAwLCAwLAogICAgICAgIlByaW50IHVwdGltZSBmb3IgYWxsL3NvbWUg ZG9tYWlucyIsCmRpZmYgLS1naXQgYS90b29scy94bC94bF92c25kLmMgYi90b29scy94bC94bF92 c25kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDFlZTBiYTVmZQot LS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL3hsL3hsX3ZzbmQuYwpAQCAtMCwwICsxLDIwMyBAQAor LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBFUEFNIFN5c3RlbXMgSW5jLgorICoKKyAqIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKKyAqIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IHZlcnNpb24gMi4xIG9ubHkuIHdpdGggdGhlIHNwZWNpYWwKKyAqIGV4Y2VwdGlvbiBv biBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIExJQ0VOU0UuCisgKgorICogVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisgKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSA8bGli eGwuaD4KKyNpbmNsdWRlIDxsaWJ4bF91dGlscy5oPgorI2luY2x1ZGUgPGxpYnhsdXRpbC5oPgor CisjaW5jbHVkZSAieGwuaCIKKyNpbmNsdWRlICJ4bF91dGlscy5oIgorI2luY2x1ZGUgInhsX3Bh cnNlLmgiCisKK2ludCBtYWluX3ZzbmRhdHRhY2goaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorewor ICAgIGludCBvcHQ7CisgICAgaW50IHJjOworICAgIHVpbnQzMl90IGRvbWlkOworICAgIGxpYnhs X2RldmljZV92c25kIHZzbmQ7CisKKyAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAiIiwgTlVM TCwgInZzbmQtYXR0YWNoIiwgMikgeworICAgICAgICAvKiBObyBvcHRpb25zICovCisgICAgfQor CisgICAgbGlieGxfZGV2aWNlX3ZzbmRfaW5pdCgmdnNuZCk7CisgICAgZG9taWQgPSBmaW5kX2Rv bWFpbihhcmd2W29wdGluZCsrXSk7CisKKyAgICBmb3IgKGFyZ3YgKz0gb3B0aW5kLCBhcmdjIC09 IG9wdGluZDsgYXJnYyA+IDA7ICsrYXJndiwgLS1hcmdjKSB7CisgICAgICAgIHJjID0gcGFyc2Vf dnNuZF9pdGVtKCZ2c25kLCAqYXJndik7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAg fQorCisgICAgaWYgKGRyeXJ1bl9vbmx5KSB7CisgICAgICAgIGNoYXIgKmpzb24gPSBsaWJ4bF9k ZXZpY2VfdnNuZF90b19qc29uKGN0eCwgJnZzbmQpOworICAgICAgICBwcmludGYoInZzbmQ6ICVz XG4iLCBqc29uKTsKKyAgICAgICAgZnJlZShqc29uKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAg fQorCisgICAgaWYgKGxpYnhsX2RldmljZV92c25kX2FkZChjdHgsIGRvbWlkLCAmdnNuZCwgMCkp IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJsaWJ4bF9kZXZpY2VfdnNuZF9hZGQgZmFpbGVk LlxuIik7CisgICAgICAgIHJjID0gRVJST1JfRkFJTDsgZ290byBvdXQ7CisgICAgfQorCisgICAg cmMgPSAwOworCitvdXQ6CisgICAgbGlieGxfZGV2aWNlX3ZzbmRfZGlzcG9zZSgmdnNuZCk7Cisg ICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgdm9pZCBwcmludF9wYXJhbXMobGlieGxfdnNuZF9w YXJhbXMgKnBhcmFtcykKK3sKKyAgICBpbnQgaTsKKworICAgIGlmIChwYXJhbXMtPmNoYW5uZWxz X21pbikgeworICAgICAgICBwcmludGYoIiwgY2hhbm5lbHMtbWluOiAldSIsIHBhcmFtcy0+Y2hh bm5lbHNfbWluKTsKKyAgICB9CisKKyAgICBpZiAocGFyYW1zLT5jaGFubmVsc19tYXgpIHsKKyAg ICAgICAgcHJpbnRmKCIsIGNoYW5uZWxzLW1heDogJXUiLCBwYXJhbXMtPmNoYW5uZWxzX21heCk7 CisgICAgfQorCisgICAgaWYgKHBhcmFtcy0+YnVmZmVyX3NpemUpIHsKKyAgICAgICAgcHJpbnRm KCIsIGJ1ZmZlci1zaXplOiAldSIsIHBhcmFtcy0+YnVmZmVyX3NpemUpOworICAgIH0KKworICAg IGlmIChwYXJhbXMtPm51bV9zYW1wbGVfcmF0ZXMpIHsKKyAgICAgICAgcHJpbnRmKCIsIHNhbXBs ZS1yYXRlczogIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBwYXJhbXMtPm51bV9zYW1wbGVf cmF0ZXMgLSAxOyBpKyspIHsKKyAgICAgICAgICAgIHByaW50ZigiJXU7IiwgcGFyYW1zLT5zYW1w bGVfcmF0ZXNbaV0pOworICAgICAgICB9CisgICAgICAgIHByaW50ZigiJXUiLCBwYXJhbXMtPnNh bXBsZV9yYXRlc1tpXSk7CisgICAgfQorCisgICAgaWYgKHBhcmFtcy0+bnVtX3NhbXBsZV9mb3Jt YXRzKSB7CisgICAgICAgIHByaW50ZigiLCBzYW1wbGUtZm9ybWF0czogIik7CisgICAgICAgIGZv ciAoaSA9IDA7IGkgPCBwYXJhbXMtPm51bV9zYW1wbGVfZm9ybWF0cyAtIDE7IGkrKykgeworICAg ICAgICAgICAgcHJpbnRmKCIlczsiLCBsaWJ4bF92c25kX3BjbV9mb3JtYXRfdG9fc3RyaW5nKHBh cmFtcy0+c2FtcGxlX2Zvcm1hdHNbaV0pKTsKKyAgICAgICAgfQorICAgICAgICBwcmludGYoIiVz IiwgbGlieGxfdnNuZF9wY21fZm9ybWF0X3RvX3N0cmluZyhwYXJhbXMtPnNhbXBsZV9mb3JtYXRz W2ldKSk7CisgICAgfQorCisgICAgcHJpbnRmKCJcbiIpOworfQorCitpbnQgbWFpbl92c25kbGlz dChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgICBpbnQgb3B0OworICAgaW50IGksIGosIGss IG47CisgICBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNuZHM7CisgICBsaWJ4bF92c25kaW5mbyB2c25k aW5mbzsKKworICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9wdCwgIiIsIE5VTEwsICJ2c25kLWxpc3Qi LCAxKSB7CisgICAgICAgLyogTm8gb3B0aW9ucyAqLworICAgfQorCisgICBmb3IgKGFyZ3YgKz0g b3B0aW5kLCBhcmdjIC09IG9wdGluZDsgYXJnYyA+IDA7IC0tYXJnYywgKythcmd2KSB7CisgICAg ICAgdWludDMyX3QgZG9taWQ7CisKKyAgICAgICBpZiAobGlieGxfZG9tYWluX3F1YWxpZmllcl90 b19kb21pZChjdHgsICphcmd2LCAmZG9taWQpIDwgMCkgeworICAgICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIiVzIGlzIGFuIGludmFsaWQgZG9tYWluIGlkZW50aWZpZXJcbiIsICphcmd2KTsKKyAg ICAgICAgICAgY29udGludWU7CisgICAgICAgfQorCisgICAgICAgdnNuZHMgPSBsaWJ4bF9kZXZp Y2VfdnNuZF9saXN0KGN0eCwgZG9taWQsICZuKTsKKworICAgICAgIGlmICghdnNuZHMpIGNvbnRp bnVlOworCisgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgICAgICBsaWJ4 bF92c25kaW5mb19pbml0KCZ2c25kaW5mbyk7CisgICAgICAgICAgIGlmIChsaWJ4bF9kZXZpY2Vf dnNuZF9nZXRpbmZvKGN0eCwgZG9taWQsICZ2c25kc1tpXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnZzbmRpbmZvKSA9PSAwKSB7CisgICAgICAgICAgICAgICBw cmludGYoIlxuZGV2aWQ6ICVkLCBiZS1kb21pZDogJWQsIGhhbmRsZTogJWQsIHN0YXRlOiAlZCwg IgorICAgICAgICAgICAgICAgICAgICAgICJiZS1wYXRoOiAlcywgZmUtcGF0aDogJXNcbiIsCisg ICAgICAgICAgICAgICAgICAgICAgdnNuZGluZm8uZGV2aWQsIHZzbmRpbmZvLmJhY2tlbmRfaWQs CisgICAgICAgICAgICAgICAgICAgICAgdnNuZGluZm8uZnJvbnRlbmRfaWQsIHZzbmRpbmZvLnN0 YXRlLAorICAgICAgICAgICAgICAgICAgICAgIHZzbmRpbmZvLmJhY2tlbmQsIHZzbmRpbmZvLmZy b250ZW5kKTsKKworICAgICAgICAgICAgICAgcHJpbnRmKCJzaG9ydC1uYW1lOiBcIiVzXCIsIGxv bmctbmFtZTogXCIlc1wiIiwKKyAgICAgICAgICAgICAgICAgICAgICB2c25kc1tpXS5zaG9ydF9u YW1lLCB2c25kc1tpXS5sb25nX25hbWUpOworICAgICAgICAgICAgICAgcHJpbnRfcGFyYW1zKCZ2 c25kc1tpXS5wYXJhbXMpOworCisgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgdnNuZGlu Zm8ubnVtX3ZzbmRfcGNtczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgbGlieGxfdnNuZF9w Y20gKnBjbSA9ICZ2c25kc1tpXS5wY21zW2pdOworCisgICAgICAgICAgICAgICAgICAgcHJpbnRm KCJcdHBjbTogJWQsIG5hbWU6IFwiJXNcIiIsIGosIHBjbS0+bmFtZSk7CisgICAgICAgICAgICAg ICAgICAgcHJpbnRfcGFyYW1zKCZwY20tPnBhcmFtcyk7CisKKyAgICAgICAgICAgICAgICAgICBm b3IoayA9IDA7IGsgPCB2c25kc1tpXS5wY21zW2pdLm51bV92c25kX3N0cmVhbXM7IGsrKykgewor ICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF92c25kX3N0cmVhbSAqc3RyZWFtID0gJnZzbmRz W2ldLnBjbXNbal0uc3RyZWFtc1trXTsKKyAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3Ry ZWFtaW5mbyAqaW5mbyA9ICZ2c25kaW5mby5wY21zW2pdLnN0cmVhbXNba107CisKKyAgICAgICAg ICAgICAgICAgICAgICAgcHJpbnRmKCJcdFx0c3RyZWFtOiAlZCwgaWQ6IFwiJXNcIiwgdHlwZTog JXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaywgc3RyZWFtLT5pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3ZzbmRfc3RyZWFtX3R5cGVfdG9fc3RyaW5n KHN0cmVhbS0+dHlwZSkpOworICAgICAgICAgICAgICAgICAgICAgICBwcmludF9wYXJhbXMoJnN0 cmVhbS0+cGFyYW1zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcdFx0XHRldmVu dC1jaGFubmVsOiAlZCwgcmluZy1yZWY6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5mby0+cmVxX2V2dGNoLCBpbmZvLT5yZXFfcnJlZik7CisgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgICAgIGxpYnhsX3Zz bmRpbmZvX2Rpc3Bvc2UoJnZzbmRpbmZvKTsKKyAgICAgICB9CisgICAgICAgbGlieGxfZGV2aWNl X3ZzbmRfbGlzdF9mcmVlKHZzbmRzLCBuKTsKKyAgIH0KKyAgIHJldHVybiAwOworfQorCitpbnQg bWFpbl92c25kZGV0YWNoKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgICB1aW50MzJfdCBk b21pZCwgZGV2aWQ7CisgICAgaW50IG9wdCwgcmM7CisgICAgbGlieGxfZGV2aWNlX3ZzbmQgdnNu ZDsKKworICAgIFNXSVRDSF9GT1JFQUNIX09QVChvcHQsICIiLCBOVUxMLCAidnNuZC1kZXRhY2gi LCAyKSB7CisgICAgICAgIC8qIE5vIG9wdGlvbnMgKi8KKyAgICB9CisKKyAgICBkb21pZCA9IGZp bmRfZG9tYWluKGFyZ3Zbb3B0aW5kKytdKTsKKyAgICBkZXZpZCA9IGF0b2koYXJndltvcHRpbmQr K10pOworCisgICAgbGlieGxfZGV2aWNlX3ZzbmRfaW5pdCgmdnNuZCk7CisKKyAgICBpZiAobGli eGxfZGV2aWRfdG9fZGV2aWNlX3ZzbmQoY3R4LCBkb21pZCwgZGV2aWQsICZ2c25kKSkgeworICAg ICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiBEZXZpY2UgJWQgbm90IGNvbm5lY3RlZC5cbiIs IGRldmlkKTsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICBnb3RvIG91dDsKKyAg ICB9CisKKyAgICByYyA9IGxpYnhsX2RldmljZV92c25kX3JlbW92ZShjdHgsIGRvbWlkLCAmdnNu ZCwgMCk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAibGlieGxfZGV2 aWNlX3ZzbmRfcmVtb3ZlIGZhaWxlZC5cbiIpOworICAgICAgICByYyA9IEVSUk9SX0ZBSUw7Cisg ICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIHJjID0gMDsKKworb3V0OgorICAgIGxpYnhs X2RldmljZV92c25kX2Rpc3Bvc2UoJnZzbmQpOworICAgIHJldHVybiByYzsKK30KKworCisvKgor ICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAq IGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCi0tIAoyLjE3LjAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs