From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v1 2/5] libxl: add vsnd list and info Date: Wed, 1 Nov 2017 17:04:44 +0200 Message-ID: <1509548687-6071-3-git-send-email-al1img@gmail.com> References: <1509548687-6071-1-git-send-email-al1img@gmail.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 1e9uZh-00055d-Kn for xen-devel@lists.xenproject.org; Wed, 01 Nov 2017 15:05:01 +0000 Received: by mail-lf0-f66.google.com with SMTP id w21so2881222lfc.6 for ; Wed, 01 Nov 2017 08:04:56 -0700 (PDT) In-Reply-To: <1509548687-6071-1-git-send-email-al1img@gmail.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: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKQWRk IGdldHRpbmcgdnNuZCBsaXN0IGFtZCBpbmZvIEFQSQoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRy IEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgotLS0KIHRvb2xzL2xpYnhsL2xp YnhsLmggICAgICAgICB8ICAxMCArKwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIHwgIDE5 ICsrKwogdG9vbHMvbGlieGwvbGlieGxfdXRpbHMuaCAgIHwgICAzICsKIHRvb2xzL2xpYnhsL2xp YnhsX3ZzbmQuYyAgICB8IDM3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCA0MDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5oIGIvdG9vbHMvbGlieGwvbGlieGwu aAppbmRleCA3MjAwZDQ5Li5hY2I3M2NlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bC5o CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTE5MjcsNiArMTkyNywxNiBAQCBpbnQgbGli eGxfZGV2aWNlX3ZzbmRfZGVzdHJveShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29wX2hvdyAqYW9f aG93KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVS U19PTkxZOwogCitsaWJ4bF9kZXZpY2VfdnNuZCAqbGlieGxfZGV2aWNlX3ZzbmRfbGlzdChsaWJ4 bF9jdHggKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IGRvbWlkLCBpbnQgKm51bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKK3ZvaWQgbGlieGxfZGV2aWNl X3ZzbmRfbGlzdF9mcmVlKGxpYnhsX2RldmljZV92c25kKiBsaXN0LCBpbnQgbnVtKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVSU19PTkxZOwor aW50IGxpYnhsX2RldmljZV92c25kX2dldGluZm8obGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRv bWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZz bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF92c25kaW5mbyAqdnNuZGxp bmZvKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVS U19PTkxZOworCiAvKiBLZXlib2FyZCAqLwogaW50IGxpYnhsX2RldmljZV92a2JfYWRkKGxpYnhs X2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX3ZrYiAqdmtiLAogICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3cpCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwKaW5kZXggYWEzMDE5Ni4uNTUzZTcyNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfdHlwZXMuaWRsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbApAQCAtOTg4 LDYgKzk4OCwyNSBAQCBsaWJ4bF92ZGlzcGxpbmZvID0gU3RydWN0KCJ2ZGlzcGxpbmZvIiwgWwog ICAgICgiY29ubmVjdG9ycyIsIEFycmF5KGxpYnhsX2Nvbm5lY3RvcmluZm8sICJudW1fY29ubmVj dG9ycyIpKQogICAgIF0sIGRpcj1ESVJfT1VUKQogCitsaWJ4bF9zdHJlYW1pbmZvID0gU3RydWN0 KCJzdHJlYW1pbmZvIiwgWworICAgICgicmVxX2V2dGNoIiwgaW50ZWdlciksCisgICAgKCJyZXFf cnJlZiIsIGludGVnZXIpCisgICAgXSkKKworbGlieGxfcGNtaW5mbyA9IFN0cnVjdCgicGNtaW5m byIsIFsKKyAgICAoInN0cmVhbXMiLCBBcnJheShsaWJ4bF9zdHJlYW1pbmZvLCAibnVtX3ZzbmRf c3RyZWFtcyIpKQorICAgIF0pCisKK2xpYnhsX3ZzbmRpbmZvID0gU3RydWN0KCJ2c25kaW5mbyIs IFsKKyAgICAoImJhY2tlbmQiLCBzdHJpbmcpLAorICAgICgiYmFja2VuZF9pZCIsIHVpbnQzMiks CisgICAgKCJmcm9udGVuZCIsIHN0cmluZyksCisgICAgKCJmcm9udGVuZF9pZCIsIHVpbnQzMiks CisgICAgKCJkZXZpZCIsIGxpYnhsX2RldmlkKSwKKyAgICAoInN0YXRlIiwgaW50ZWdlciksCisg ICAgKCJwY21zIiwgQXJyYXkobGlieGxfcGNtaW5mbywgIm51bV92c25kX3BjbXMiKSkKKyAgICBd KQorCiAjIE5VTUEgbm9kZSBjaGFyYWN0ZXJpc3RpY3M6IHNpemUgYW5kIGZyZWUgYXJlIGhvdyBt dWNoIG1lbW9yeSBpdCBoYXMsIGFuZCBob3cKICMgbXVjaCBvZiBpdCBpcyBmcmVlLCByZXNwZWN0 aXZlbHkuIGRpc3RzIGlzIGFuIGFycmF5IG9mIGRpc3RhbmNlcyBmcm9tIHRoaXMKICMgbm9kZSB0 byBlYWNoIG90aGVyIG5vZGUuCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF91dGlscy5o IGIvdG9vbHMvbGlieGwvbGlieGxfdXRpbHMuaAppbmRleCA5ZTc0M2RjLi41NDU1NzUyIDEwMDY0 NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF91dGlscy5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhs X3V0aWxzLmgKQEAgLTgyLDYgKzgyLDkgQEAgaW50IGxpYnhsX2RldmlkX3RvX2RldmljZV91c2Jj dHJsKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKIGludCBsaWJ4bF9kZXZpZF90b19k ZXZpY2VfdmRpc3BsKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBkZXZpZCwgbGlieGxfZGV2aWNlX3ZkaXNwbCAqdmRp c3BsKTsKIAoraW50IGxpYnhsX2RldmlkX3RvX2RldmljZV92c25kKGxpYnhsX2N0eCAqY3R4LCB1 aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGV2aWQs IGxpYnhsX2RldmljZV92c25kICp2c25kKTsKKwogaW50IGxpYnhsX2N0cmxwb3J0X3RvX2Rldmlj ZV91c2JkZXYobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGN0cmwsIGludCBwb3J0LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmRldiAqdXNiZGV2KTsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3ZzbmQuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3ZzbmQu YwppbmRleCA5OWU0YmUzLi4zNWYxYWVkIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF92 c25kLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdnNuZC5jCkBAIC0zNywyMiArMzcsMjQ3IEBA IHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV9mcm9tX3ZzbmQobGlieGxfX2djICpnYywgdWludDMy X3QgZG9taWQsCiAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBsaWJ4bF9fc2FtcGxlX3Jh dGVzX2Zyb21fc3RyaW5nKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKnN0ciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF92c25kX3BhcmFtcyAqcGFy YW1zKQoreworICAgIGNoYXIgKnRtcCA9IGxpYnhsX19zdHJkdXAoZ2MsIHN0cik7CisKKyAgICBw YXJhbXMtPm51bV9zYW1wbGVfcmF0ZXMgPSAwOworICAgIHBhcmFtcy0+c2FtcGxlX3JhdGVzID0g TlVMTDsKKworICAgIGNoYXIgKnAgPSBzdHJ0b2sodG1wLCAiICwiKTsKKworICAgIHdoaWxlIChw ICE9IE5VTEwpIHsKKyAgICAgICAgcGFyYW1zLT5zYW1wbGVfcmF0ZXMgPSByZWFsbG9jKHBhcmFt cy0+c2FtcGxlX3JhdGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKCpwYXJhbXMtPnNhbXBsZV9yYXRlcykgKgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHBhcmFtcy0+bnVtX3NhbXBsZV9yYXRlcyArIDEpKTsKKyAgICAgICAg cGFyYW1zLT5zYW1wbGVfcmF0ZXNbcGFyYW1zLT5udW1fc2FtcGxlX3JhdGVzKytdID0gc3RydG91 bChwLCBOVUxMLCAwKTsKKyAgICAgICAgcCA9IHN0cnRvayhOVUxMLCAiICwiKTsKKyAgICB9CisK KyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsaWJ4bF9fc2FtcGxlX2Zvcm1hdHNfZnJv bV9zdHJpbmcobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqc3RyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdnNuZF9wYXJhbXMgKnBhcmFtcykK K3sKKyAgICBpbnQgcmM7CisgICAgY2hhciAqdG1wID0gbGlieGxfX3N0cmR1cChnYywgc3RyKTsK KworICAgIHBhcmFtcy0+bnVtX3NhbXBsZV9mb3JtYXRzID0gMDsKKyAgICBwYXJhbXMtPnNhbXBs ZV9mb3JtYXRzID0gTlVMTDsKKworICAgIGNoYXIgKnAgPSBzdHJ0b2sodG1wLCAiICwiKTsKKwor ICAgIHdoaWxlIChwICE9IE5VTEwpIHsKKyAgICAgICAgcGFyYW1zLT5zYW1wbGVfZm9ybWF0cyA9 IHJlYWxsb2MocGFyYW1zLT5zYW1wbGVfZm9ybWF0cywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpwYXJhbXMtPnNhbXBsZV9mb3JtYXRzKSAqCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhbXMtPm51bV9zYW1wbGVf Zm9ybWF0cyArIDEpKTsKKworICAgICAgICBsaWJ4bF92c25kX3BjbV9mb3JtYXQgZm9ybWF0Owor CisgICAgICAgIHJjID0gbGlieGxfdnNuZF9wY21fZm9ybWF0X2Zyb21fc3RyaW5nKHAsICZmb3Jt YXQpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgICAgIHBhcmFtcy0+c2FtcGxl X2Zvcm1hdHNbcGFyYW1zLT5udW1fc2FtcGxlX2Zvcm1hdHMrK10gPSBmb3JtYXQ7CisgICAgICAg IHAgPSBzdHJ0b2soTlVMTCwgIiAsIik7CisgICAgfQorCisgICAgcmMgPSAwOworCitvdXQ6CisK KyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQgbGlieGxfX3BhcmFtc19mcm9tX3hlbnN0 b3JlKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKnBhdGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF92c25kX3BhcmFtcyAqcGFyYW1zKQoreworICAgIGNv bnN0IGNoYXIgKnRtcDsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGxpYnhsX194c19yZWFkX2No ZWNrZWQoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQ UklOVEYoIiVzLyJYRU5TTkRfRklFTERfU0FNUExFX1JBVEVTLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCksICZ0bXApOworICAgIGlmIChyYykgZ290byBv dXQ7CisKKyAgICBpZiAodG1wKSB7CisgICAgICAgIHJjID0gbGlieGxfX3NhbXBsZV9yYXRlc19m cm9tX3N0cmluZyhnYywgdG1wLCBwYXJhbXMpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0Owor ICAgIH0KKworICAgIHJjID0gbGlieGxfX3hzX3JlYWRfY2hlY2tlZChnYywgWEJUX05VTEwsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvIlhFTlNORF9GSUVM RF9TQU1QTEVfRk9STUFUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhdGgpLCAmdG1wKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgaWYgKHRtcCkg eworICAgICAgICByYyA9IGxpYnhsX19zYW1wbGVfZm9ybWF0c19mcm9tX3N0cmluZyhnYywgdG1w LCBwYXJhbXMpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIHJjID0g bGlieGxfX3hzX3JlYWRfY2hlY2tlZChnYywgWEJUX05VTEwsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzLyJYRU5TTkRfRklFTERfQ0hBTk5FTFNfTUlOLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgpLCAmdG1wKTsK KyAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgaWYgKHRtcCkgeworICAgICAgICBwYXJhbXMt PmNoYW5uZWxzX21pbiA9IHN0cnRvdWwodG1wLCBOVUxMLCAwKTsKKyAgICB9CisKKyAgICByYyA9 IGxpYnhsX194c19yZWFkX2NoZWNrZWQoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy8iWEVOU05EX0ZJRUxEX0NIQU5ORUxTX01BWCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoKSwgJnRtcCk7 CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIGlmICh0bXApIHsKKyAgICAgICAgcGFyYW1z LT5jaGFubmVsc19tYXggPSBzdHJ0b3VsKHRtcCwgTlVMTCwgMCk7CisgICAgfQorCisgICAgcmMg PSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvIlhFTlNORF9GSUVMRF9CVUZGRVJfU0laRSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoKSwgJnRtcCk7 CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIGlmICh0bXApIHsKKyAgICAgICAgcGFyYW1z LT5idWZmZXJfc2l6ZSA9IHN0cnRvdWwodG1wLCBOVUxMLCAwKTsKKyAgICB9CisKKyAgICByYyA9 IDA7CisKK291dDoKKworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIGludCBsaWJ4bF9fc3Ry ZWFtX2Zyb21feGVuc3RvcmUobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3ZzbmRfc3RyZWFtICpzdHJl YW0pCit7CisgICAgY29uc3QgY2hhciAqdG1wOworICAgIGludCByYzsKKworICAgIHN0cmVhbS0+ aWQgPSB4c19yZWFkKENUWC0+eHNoLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICBHQ1NQUklOVEYoIiVzLyJYRU5TTkRfRklFTERfU1RSRUFNX1VOSVFVRV9JRCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBwYXRoKSwgTlVMTCk7CisKKyAgICByYyA9IGxpYnhsX194c19yZWFk X2NoZWNrZWQoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH Q1NQUklOVEYoIiVzLyJYRU5TTkRfRklFTERfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhdGgpLCAmdG1wKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0Owor CisgICAgaWYgKHRtcCkgeworICAgICAgICBsaWJ4bF92c25kX3N0cmVhbV90eXBlIHR5cGU7CisK KyAgICAgICAgcmMgPSBsaWJ4bF92c25kX3N0cmVhbV90eXBlX2Zyb21fc3RyaW5nKHRtcCwgJnR5 cGUpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgICAgIHN0cmVhbS0+dHlwZSA9 IHR5cGU7CisgICAgfQorCisgICAgcmMgPSBsaWJ4bF9fcGFyYW1zX2Zyb21feGVuc3RvcmUoZ2Ms IHBhdGgsICZzdHJlYW0tPnBhcmFtcyk7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIHJj ID0gMDsKKworb3V0OgorCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGxpYnhsX19w Y21fZnJvbV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCBjb25zdCBjaGFyICpwYXRoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdnNuZF9wY20gKnBjbSkKK3sKKyAg ICBjb25zdCBjaGFyICp0bXA7CisgICAgaW50IHJjOworCisgICAgcGNtLT5uYW1lID0geHNfcmVh ZChDVFgtPnhzaCwgWEJUX05VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYo IiVzLyJYRU5TTkRfRklFTERfREVWSUNFX05BTUUsIHBhdGgpLCBOVUxMKTsKKworICAgIHJjID0g bGlieGxfX3BhcmFtc19mcm9tX3hlbnN0b3JlKGdjLCBwYXRoLCAmcGNtLT5wYXJhbXMpOworCisg ICAgcGNtLT5zdHJlYW1zID0gTlVMTDsKKyAgICBwY20tPm51bV92c25kX3N0cmVhbXMgPSAwOwor CisgICAgZG8geworICAgICAgICBjaGFyICpzdHJlYW1fcGF0aCA9IEdDU1BSSU5URigiJXMvJWQi LCBwYXRoLCBwY20tPm51bV92c25kX3N0cmVhbXMpOworCisgICAgICAgIHJjID0gbGlieGxfX3hz X3JlYWRfY2hlY2tlZChnYywgWEJUX05VTEwsIHN0cmVhbV9wYXRoLCAmdG1wKTsKKyAgICAgICAg aWYgKHJjKSBnb3RvIG91dDsKKworICAgICAgICBpZiAodG1wKSB7CisgICAgICAgICAgICBwY20t PnN0cmVhbXMgPSBsaWJ4bF9fcmVhbGxvYyhOT0dDLCBwY20tPnN0cmVhbXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKnBjbS0+c3RyZWFtcykgKgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCsrcGNtLT5udW1fdnNu ZF9zdHJlYW1zKSk7CisKKyAgICAgICAgICAgIGxpYnhsX3ZzbmRfc3RyZWFtX2luaXQoJnBjbS0+ c3RyZWFtc1twY20tPm51bV92c25kX3N0cmVhbXMgLSAxXSk7CisKKyAgICAgICAgICAgIHJjID0g bGlieGxfX3N0cmVhbV9mcm9tX3hlbnN0b3JlKGdjLCBzdHJlYW1fcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwY20tPnN0cmVhbXNbcGNtLT5udW1f dnNuZF9zdHJlYW1zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtIDFdKTsKKyAgICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgICAgIH0KKyAgICB9 IHdoaWxlICh0bXApOworCisgICAgcmMgPSAwOworCitvdXQ6CisKKyAgICByZXR1cm4gcmM7Cit9 CisKIHN0YXRpYyBpbnQgbGlieGxfX3ZzbmRfZnJvbV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCBj b25zdCBjaGFyICpsaWJ4bF9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX2RldmlkIGRldmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX2RldmljZV92c25kICp2c25kKQogewotICAgIGNvbnN0IGNoYXIgKmJlX3BhdGg7 CisgICAgY29uc3QgY2hhciAqdG1wOworICAgIGNvbnN0IGNoYXIgKmZlX3BhdGg7CiAgICAgaW50 IHJjOwogCiAgICAgdnNuZC0+ZGV2aWQgPSBkZXZpZDsKICAgICByYyA9IGxpYnhsX194c19yZWFk X21hbmRhdG9yeShnYywgWEJUX05VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0NTUFJJTlRGKCIlcy9iYWNrZW5kIiwgbGlieGxfcGF0aCksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmJlX3BhdGgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZ0bXApOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICByYyA9IGxpYnhsX19i YWNrZW5kcGF0aF9wYXJzZV9kb21pZChnYywgdG1wLCAmdnNuZC0+YmFja2VuZF9kb21pZCk7CiAg ICAgaWYgKHJjKSBnb3RvIG91dDsKIAotICAgIHJjID0gbGlieGxfX2JhY2tlbmRwYXRoX3BhcnNl X2RvbWlkKGdjLCBiZV9wYXRoLCAmdnNuZC0+YmFja2VuZF9kb21pZCk7CisgICAgcmMgPSBsaWJ4 bF9feHNfcmVhZF9tYW5kYXRvcnkoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvZnJvbnRlbmQiLCBsaWJ4bF9wYXRoKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmVfcGF0aCk7CiAgICAgaWYgKHJjKSBnb3Rv IG91dDsKIAorICAgIHZzbmQtPnNob3J0X25hbWUgPSB4c19yZWFkKENUWC0+eHNoLCBYQlRfTlVM TCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzLyJYRU5TTkRf RklFTERfVkNBUkRfU0hPUlRfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm ZV9wYXRoKSwgTlVMTCk7CisKKyAgICB2c25kLT5sb25nX25hbWUgPSB4c19yZWFkKENUWC0+eHNo LCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMv IlhFTlNORF9GSUVMRF9WQ0FSRF9MT05HX05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmZV9wYXRoKSwgTlVMTCk7CisKKyAgICByYyA9IGxpYnhsX19wYXJhbXNfZnJvbV94ZW5z dG9yZShnYywgZmVfcGF0aCwgJnZzbmQtPnBhcmFtcyk7CisKKyAgICB2c25kLT5wY21zID0gTlVM TDsKKyAgICB2c25kLT5udW1fdnNuZF9wY21zID0gMDsKKworICAgIGRvIHsKKyAgICAgICAgY2hh ciAqcGNtX3BhdGggPSBHQ1NQUklOVEYoIiVzLyVkIiwgZmVfcGF0aCwgdnNuZC0+bnVtX3ZzbmRf cGNtcyk7CisKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVM TCwgcGNtX3BhdGgsICZ0bXApOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgICAg IGlmICh0bXApIHsKKyAgICAgICAgICAgIHZzbmQtPnBjbXMgPSByZWFsbG9jKHZzbmQtPnBjbXMs IHNpemVvZigqdnNuZC0+cGNtcykgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCsrdnNuZC0+bnVtX3ZzbmRfcGNtcykpOworCisgICAgICAgICAgICBsaWJ4bF92c25kX3BjbV9p bml0KCZ2c25kLT5wY21zW3ZzbmQtPm51bV92c25kX3BjbXMgLSAxXSk7CisKKyAgICAgICAgICAg IHJjID0gbGlieGxfX3BjbV9mcm9tX3hlbnN0b3JlKGdjLCBwY21fcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2c25kLT5wY21zW3ZzbmQtPm51bV92c25k X3BjbXMgLSAxXSk7CisgICAgICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgICAgICB9Cisg ICAgfSB3aGlsZSAodG1wKTsKKwogICAgIHJjID0gMDsKIAogb3V0OgpAQCAtMzA5LDEwICs1MzQs MTU0IEBAIG91dDoKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgbGlieGxfX2Rldmlj ZV9zdHJlYW1fZ2V0aW5mbyhsaWJ4bF9fZ2MgKmdjLCBjb25zdCBjaGFyICpwYXRoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3ZzbmRfcGNtKiBwY20sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfcGNtaW5mbyAqaW5m bykKK3sKKyAgICBjb25zdCBjaGFyICp0bXA7CisgICAgaW50IGk7CisgICAgaW50IHJjOworCisg ICAgaW5mby0+bnVtX3ZzbmRfc3RyZWFtcyA9IHBjbS0+bnVtX3ZzbmRfc3RyZWFtczsKKyAgICBp bmZvLT5zdHJlYW1zID0gbWFsbG9jKHNpemVvZigqaW5mby0+c3RyZWFtcykgKiBpbmZvLT5udW1f dnNuZF9zdHJlYW1zKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBpbmZvLT5udW1fdnNuZF9zdHJl YW1zOyBpKyspCisgICAgeworICAgICAgICBsaWJ4bF9zdHJlYW1pbmZvX2luaXQoJmluZm8tPnN0 cmVhbXNbaV0pOworCisgICAgICAgIHJjID0gbGlieGxfX3hzX3JlYWRfY2hlY2tlZChnYywgWEJU X05VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVz LyVkLyJYRU5TTkRfRklFTERfUklOR19SRUYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYXRoLCBpKSwgJnRtcCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAg ICAgICAgaW5mby0+c3RyZWFtc1tpXS5yZXFfcnJlZiA9IHRtcCA/IHN0cnRvdWwodG1wLCBOVUxM LCAxMCkgOiAtMTsKKworICAgICAgICByYyA9IGxpYnhsX194c19yZWFkX2NoZWNrZWQoZ2MsIFhC VF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIl cy8lZC8iWEVOU05EX0ZJRUxEX0VWVF9DSE5MLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGF0aCwgaSksICZ0bXApOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworCisg ICAgICAgIGluZm8tPnN0cmVhbXNbaV0ucmVxX2V2dGNoID0gdG1wID8gc3RydG91bCh0bXAsIE5V TEwsIDEwKSA6IC0xOworICAgIH0KKworICAgIHJjID0gMDsKKworb3V0OgorCisgICAgcmV0dXJu IHJjOworfQorCitzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfcGNtX2dldGluZm8obGlieGxfX2dj ICpnYywgY29uc3QgY2hhciAqcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF92c25kaW5mbyAqaW5mbykKK3sKKyAgICBpbnQgaTsKKyAgICBpbnQg cmM7CisKKyAgICBpbmZvLT5udW1fdnNuZF9wY21zID0gdnNuZC0+bnVtX3ZzbmRfcGNtczsKKyAg ICBpbmZvLT5wY21zID0gbWFsbG9jKHNpemVvZigqaW5mby0+cGNtcykgKiBpbmZvLT5udW1fdnNu ZF9wY21zKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBpbmZvLT5udW1fdnNuZF9wY21zOyBpKysp CisgICAgeworICAgICAgICBsaWJ4bF9wY21pbmZvX2luaXQoJmluZm8tPnBjbXNbaV0pOworCisg ICAgICAgIHJjID0gbGlieGxfX2RldmljZV9zdHJlYW1fZ2V0aW5mbyhnYywgR0NTUFJJTlRGKCIl cy8lZCIsIHBhdGgsIGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnZzbmQtPnBjbXNbaV0sICZpbmZvLT5wY21zW2ldKTsKKyAgICAgICAgaWYgKHJjKSBnb3Rv IG91dDsKKyAgICB9CisKKyAgICByYyA9IDA7CisKK291dDoKKworCisKKyAgICByZXR1cm4gcmM7 Cit9CisKK2ludCBsaWJ4bF9kZXZpY2VfdnNuZF9nZXRpbmZvKGxpYnhsX2N0eCAqY3R4LCB1aW50 MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV92 c25kICp2c25kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdnNuZGluZm8g KmluZm8pCit7CisgICAgR0NfSU5JVChjdHgpOworICAgIGNoYXIgKmxpYnhsX3BhdGgsICpkb21w YXRoLCAqZGV2cGF0aDsKKyAgICBjb25zdCBjaGFyICp2YWw7CisgICAgaW50IHJjOworCisgICAg bGlieGxfdnNuZGluZm9faW5pdChpbmZvKTsKKyAgICBkb21wYXRoID0gbGlieGxfX3hzX2dldF9k b21wYXRoKGdjLCBkb21pZCk7CisgICAgaW5mby0+ZGV2aWQgPSB2c25kLT5kZXZpZDsKKworICAg IGRldnBhdGggPSBHQ1NQUklOVEYoIiVzL2RldmljZS8lcy8lZCIsIGRvbXBhdGgsIGxpYnhsX192 c25kX2RldnR5cGUuZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5mby0+ZGV2aWQpOworICAgIGxpYnhsX3BhdGggPSBHQ1NQUklOVEYoIiVzL2Rldmlj ZS8lcy8lZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfbGlieGxfcGF0 aChnYywgZG9taWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3ZzbmRfZGV2 dHlwZS5lbnRyeSwgaW5mby0+ZGV2aWQpOworCisgICAgaW5mby0+YmFja2VuZCA9IHhzX3JlYWQo Y3R4LT54c2gsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5U RigiJXMvYmFja2VuZCIsIGxpYnhsX3BhdGgpLCBOVUxMKTsKKworICAgIHJjID0gbGlieGxfX2Jh Y2tlbmRwYXRoX3BhcnNlX2RvbWlkKGdjLCBpbmZvLT5iYWNrZW5kLCAmaW5mby0+YmFja2VuZF9p ZCk7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIHZhbCA9IHhzX3JlYWQoY3R4LT54c2gs IFhCVF9OVUxMLCBHQ1NQUklOVEYoIiVzL3N0YXRlIiwgZGV2cGF0aCksIE5VTEwpOworCisgICAg aW5mby0+c3RhdGUgPSB2YWwgPyBzdHJ0b3VsKHZhbCwgTlVMTCwgMTApIDogLTE7CisKKyAgICBp bmZvLT5mcm9udGVuZCA9IHhzX3JlYWQoY3R4LT54c2gsIFhCVF9OVUxMLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzL2Zyb250ZW5kIiwgbGlieGxfcGF0aCksIE5V TEwpOworCisgICAgaW5mby0+ZnJvbnRlbmRfaWQgPSBkb21pZDsKKworICAgIHJjID0gbGlieGxf X2RldmljZV9wY21fZ2V0aW5mbyhnYywgZGV2cGF0aCwgdnNuZCwgaW5mbyk7CisgICAgaWYgKHJj KSBnb3RvIG91dDsKKworICAgIHJjID0gMDsKKworb3V0OgorICAgICBHQ19GUkVFOworICAgICBy ZXR1cm4gcmM7Cit9CisKK2ludCBsaWJ4bF9kZXZpZF90b19kZXZpY2VfdnNuZChsaWJ4bF9jdHgg KmN0eCwgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IGRldmlkLCBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNuZCkKK3sKKyAgICBHQ19JTklUKGN0eCk7CisK KyAgICBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNuZHMgPSBOVUxMOworICAgIGludCBuLCBpOworICAg IGludCByYzsKKworICAgIGxpYnhsX2RldmljZV92c25kX2luaXQodnNuZCk7CisKKyAgICB2c25k cyA9IGxpYnhsX19kZXZpY2VfbGlzdChnYywgJmxpYnhsX192c25kX2RldnR5cGUsIGRvbWlkLCAm bik7CisKKyAgICBpZiAoIXZzbmRzKSB7IHJjID0gRVJST1JfTk9URk9VTkQ7IGdvdG8gb3V0OyB9 CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgICAgIGlmIChkZXZpZCA9PSB2 c25kc1tpXS5kZXZpZCkgeworICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmRfY29weShjdHgs IHZzbmQsICZ2c25kc1tpXSk7CisgICAgICAgICAgICByYyA9IDA7CisgICAgICAgICAgICBnb3Rv IG91dDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJjID0gRVJST1JfTk9URk9VTkQ7CisKK291 dDoKKworICAgIGlmICh2c25kcykKKyAgICAgICAgbGlieGxfX2RldmljZV9saXN0X2ZyZWUoJmxp YnhsX192c25kX2RldnR5cGUsIHZzbmRzLCBuKTsKKworICAgIEdDX0ZSRUU7CisgICAgcmV0dXJu IHJjOworfQorCiBMSUJYTF9ERUZJTkVfREVWSUNFX0FERCh2c25kKQogc3RhdGljIExJQlhMX0RF RklORV9ERVZJQ0VTX0FERCh2c25kKQogTElCWExfREVGSU5FX0RFVklDRV9SRU1PVkUodnNuZCkK IHN0YXRpYyBMSUJYTF9ERUZJTkVfVVBEQVRFX0RFVklEKHZzbmQsICJ2c25kIikKK0xJQlhMX0RF RklORV9ERVZJQ0VfTElTVCh2c25kKQogCiBERUZJTkVfREVWSUNFX1RZUEVfU1RSVUNUKHZzbmQs CiAgICAgLnVwZGF0ZV9jb25maWcgPSAoZGV2aWNlX3VwZGF0ZV9jb25maWdfZm5fdCkgbGlieGxf X3VwZGF0ZV9jb25maWdfdnNuZCwKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==