From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH 2/5] libxl: add vsnd list and info Date: Mon, 2 Oct 2017 12:49:21 +0300 Message-ID: <1506937764-30329-3-git-send-email-al1img@gmail.com> References: <1506937764-30329-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dyxM0-0005oI-7p for xen-devel@lists.xenproject.org; Mon, 02 Oct 2017 09:49:36 +0000 Received: by mail-lf0-f67.google.com with SMTP id j73so1918654lfg.0 for ; Mon, 02 Oct 2017 02:49:34 -0700 (PDT) In-Reply-To: <1506937764-30329-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 YnhsX3ZzbmQuYyAgICB8IDM1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAzODggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5oIGIvdG9vbHMvbGlieGwvbGlieGwu aAppbmRleCA3MjAwZDQ5Li5hY2I3M2NlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bC5o CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTE5MjcsNiArMTkyNywxNiBAQCBpbnQgbGli eGxfZGV2aWNlX3ZzbmRfZGVzdHJveShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29wX2hvdyAqYW9f aG93KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVS U19PTkxZOwogCitsaWJ4bF9kZXZpY2VfdnNuZCAqbGlieGxfZGV2aWNlX3ZzbmRfbGlzdChsaWJ4 bF9jdHggKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IGRvbWlkLCBpbnQgKm51bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKK3ZvaWQgbGlieGxfZGV2aWNl X3ZzbmRfbGlzdF9mcmVlKGxpYnhsX2RldmljZV92c25kKiBsaXN0LCBpbnQgbnVtKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVSU19PTkxZOwor aW50IGxpYnhsX2RldmljZV92c25kX2dldGluZm8obGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRv bWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZz bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF92c25kaW5mbyAqdnNuZGxp bmZvKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVS U19PTkxZOworCiAvKiBLZXlib2FyZCAqLwogaW50IGxpYnhsX2RldmljZV92a2JfYWRkKGxpYnhs X2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX3ZrYiAqdmtiLAogICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3cpCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwKaW5kZXggZmIzZTVlOC4uY2QwYzA2ZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv 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 YwppbmRleCAyNjg4NWY5Li4wZTdiMjljIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF92 c25kLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdnNuZC5jCkBAIC0zNywyMCArMzcsMjM5IEBA 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 YXQpOworICAgICAgICBpZiAocmMpIHJldHVybiByYzsKKworICAgICAgICBwYXJhbXMtPnNhbXBs ZV9mb3JtYXRzW3BhcmFtcy0+bnVtX3NhbXBsZV9mb3JtYXRzKytdID0gZm9ybWF0OworICAgICAg ICBwID0gc3RydG9rKE5VTEwsICIgLCIpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitz dGF0aWMgaW50IGxpYnhsX19wYXJhbXNfZnJvbV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCBjb25z dCBjaGFyICpwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfdnNuZF9wYXJhbXMgKnBhcmFtcykKK3sKKyAgICBjb25zdCBjaGFyICp0bXA7CisgICAgaW50 IHJjOworCisgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVMTCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy8iWEVOU05EX0ZJRUxE X1NBTVBMRV9SQVRFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhdGgpLCAmdG1wKTsKKyAgICBpZiAocmMpIHJldHVybiByYzsKKworICAgIGlmICh0bXApIHsK KyAgICAgICAgcmMgPSBsaWJ4bF9fc2FtcGxlX3JhdGVzX2Zyb21fc3RyaW5nKGdjLCB0bXAsIHBh cmFtcyk7CisgICAgICAgIGlmIChyYykgcmV0dXJuIHJjOworICAgIH0KKworICAgIHJjID0gbGli eGxfX3hzX3JlYWRfY2hlY2tlZChnYywgWEJUX05VTEwsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdDU1BSSU5URigiJXMvIlhFTlNORF9GSUVMRF9TQU1QTEVfRk9STUFUUywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgpLCAmdG1wKTsKKyAg ICBpZiAocmMpIHJldHVybiByYzsKKworICAgIGlmICh0bXApIHsKKyAgICAgICAgcmMgPSBsaWJ4 bF9fc2FtcGxlX2Zvcm1hdHNfZnJvbV9zdHJpbmcoZ2MsIHRtcCwgcGFyYW1zKTsKKyAgICAgICAg aWYgKHJjKSByZXR1cm4gcmM7CisgICAgfQorCisgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVj a2VkKGdjLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BS SU5URigiJXMvIlhFTlNORF9GSUVMRF9DSEFOTkVMU19NSU4sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCksICZ0bXApOworICAgIGlmIChyYykgcmV0dXJu IHJjOworCisgICAgaWYgKHRtcCkgeworICAgICAgICBwYXJhbXMtPmNoYW5uZWxzX21pbiA9IHN0 cnRvdWwodG1wLCBOVUxMLCAwKTsKKyAgICB9CisKKyAgICByYyA9IGxpYnhsX194c19yZWFkX2No ZWNrZWQoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NT UFJJTlRGKCIlcy8iWEVOU05EX0ZJRUxEX0NIQU5ORUxTX01BWCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoKSwgJnRtcCk7CisgICAgaWYgKHJjKSByZXR1 cm4gcmM7CisKKyAgICBpZiAodG1wKSB7CisgICAgICAgIHBhcmFtcy0+Y2hhbm5lbHNfbWF4ID0g c3RydG91bCh0bXAsIE5VTEwsIDApOworICAgIH0KKworICAgIHJjID0gbGlieGxfX3hzX3JlYWRf Y2hlY2tlZChnYywgWEJUX05VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH Q1NQUklOVEYoIiVzLyJYRU5TTkRfRklFTERfQlVGRkVSX1NJWkUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCksICZ0bXApOworICAgIGlmIChyYykgcmV0 dXJuIHJjOworCisgICAgaWYgKHRtcCkgeworICAgICAgICBwYXJhbXMtPmJ1ZmZlcl9zaXplID0g c3RydG91bCh0bXAsIE5VTEwsIDApOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0 aWMgaW50IGxpYnhsX19zdHJlYW1fZnJvbV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCBjb25zdCBj aGFyICpwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf dnNuZF9zdHJlYW0gKnN0cmVhbSkKK3sKKyAgICBjb25zdCBjaGFyICp0bXA7CisgICAgaW50IHJj OworCisgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVMTCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy8iWEVOU05EX0ZJRUxEX1NU UkVBTV9VTklRVUVfSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYXRoKSwgJnRtcCk7CisgICAgaWYgKHJjKSByZXR1cm4gcmM7CisKKyAgICBpZiAodG1wKSB7 CisgICAgICAgIHN0cmVhbS0+aWQgPSBzdHJ0b3VsKHRtcCwgTlVMTCwgMCk7CisgICAgfQorCisg ICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdjLCBYQlRfTlVMTCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy8iWEVOU05EX0ZJRUxEX1RZUEUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoKSwgJnRtcCk7Cisg ICAgaWYgKHJjKSByZXR1cm4gcmM7CisKKyAgICBpZiAodG1wKSB7CisgICAgICAgIGxpYnhsX3Zz bmRfc3RyZWFtX3R5cGUgdHlwZTsKKworICAgICAgICByYyA9IGxpYnhsX3ZzbmRfc3RyZWFtX3R5 cGVfZnJvbV9zdHJpbmcodG1wLCAmdHlwZSk7CisgICAgICAgIGlmIChyYykgcmV0dXJuIHJjOwor CisgICAgICAgIHN0cmVhbS0+dHlwZSA9IHR5cGU7CisgICAgfQorCisgICAgcmMgPSBsaWJ4bF9f cGFyYW1zX2Zyb21feGVuc3RvcmUoZ2MsIHBhdGgsICZzdHJlYW0tPnBhcmFtcyk7CisgICAgaWYg KHJjKSByZXR1cm4gcmM7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsaWJ4bF9f cGNtX2Zyb21feGVuc3RvcmUobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3ZzbmRfcGNtICpwY20pCit7Cisg ICAgbGlieGxfY3R4ICpjdHggPSBsaWJ4bF9fZ2Nfb3duZXIoZ2MpOworICAgIGNvbnN0IGNoYXIg KnRtcDsKKyAgICBpbnQgcmM7CisKKyAgICBwY20tPm5hbWUgPSB4c19yZWFkKGN0eC0+eHNoLCBY QlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvIlhFTlNORF9G SUVMRF9ERVZJQ0VfTkFNRSwgcGF0aCksIE5VTEwpOworCisgICAgcmMgPSBsaWJ4bF9fcGFyYW1z X2Zyb21feGVuc3RvcmUoZ2MsIHBhdGgsICZwY20tPnBhcmFtcyk7CisKKyAgICBwY20tPnN0cmVh bXMgPSBOVUxMOworICAgIHBjbS0+bnVtX3ZzbmRfc3RyZWFtcyA9IDA7CisKKyAgICBkbyB7Cisg ICAgICAgIGNoYXIgKnN0cmVhbV9wYXRoID0gR0NTUFJJTlRGKCIlcy8lZCIsIHBhdGgsIHBjbS0+ bnVtX3ZzbmRfc3RyZWFtcyk7CisKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2Vk KGdjLCBYQlRfTlVMTCwgc3RyZWFtX3BhdGgsICZ0bXApOworICAgICAgICBpZiAocmMpIHJldHVy biByYzsKKworICAgICAgICBpZiAodG1wKSB7CisgICAgICAgICAgICBwY20tPnN0cmVhbXMgPSBy ZWFsbG9jKHBjbS0+c3RyZWFtcywgc2l6ZW9mKCpwY20tPnN0cmVhbXMpICoKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKCsrcGNtLT5udW1fdnNuZF9zdHJlYW1zKSk7CisKKyAg ICAgICAgICAgIGxpYnhsX3ZzbmRfc3RyZWFtX2luaXQoJnBjbS0+c3RyZWFtc1twY20tPm51bV92 c25kX3N0cmVhbXMgLSAxXSk7CisKKyAgICAgICAgICAgIHJjID0gbGlieGxfX3N0cmVhbV9mcm9t X3hlbnN0b3JlKGdjLCBzdHJlYW1fcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZwY20tPnN0cmVhbXNbcGNtLT5udW1fdnNuZF9zdHJlYW1zCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIDFdKTsKKyAgICAgICAg ICAgIGlmIChyYykgcmV0dXJuIHJjOworICAgICAgICB9CisgICAgfSB3aGlsZSAodG1wKTsKKwor CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgbGlieGxfX3ZzbmRfZnJvbV94ZW5zdG9y ZShsaWJ4bF9fZ2MgKmdjLCBjb25zdCBjaGFyICpsaWJ4bF9wYXRoLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmlkIGRldmlkLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV92c25kICp2c25kKQogewotICAgIGNv bnN0IGNoYXIgKmJlX3BhdGg7CisgICAgbGlieGxfY3R4ICpjdHggPSBsaWJ4bF9fZ2Nfb3duZXIo Z2MpOworICAgIGNvbnN0IGNoYXIgKnRtcDsKKyAgICBjb25zdCBjaGFyICpmZV9wYXRoOwogICAg IGludCByYzsKIAogICAgIHZzbmQtPmRldmlkID0gZGV2aWQ7CiAgICAgcmMgPSBsaWJ4bF9feHNf cmVhZF9tYW5kYXRvcnkoZ2MsIFhCVF9OVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdDU1BSSU5URigiJXMvYmFja2VuZCIsIGxpYnhsX3BhdGgpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZiZV9wYXRoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmdG1wKTsKKyAgICBpZiAocmMpIHJldHVybiByYzsKKworICAgIHJjID0gbGli eGxfX2JhY2tlbmRwYXRoX3BhcnNlX2RvbWlkKGdjLCB0bXAsICZ2c25kLT5iYWNrZW5kX2RvbWlk KTsKKyAgICBpZiAocmMpIHJldHVybiByYzsKKworICAgIHJjID0gbGlieGxfX3hzX3JlYWRfbWFu ZGF0b3J5KGdjLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH Q1NQUklOVEYoIiVzL2Zyb250ZW5kIiwgbGlieGxfcGF0aCksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmZlX3BhdGgpOwogICAgIGlmIChyYykgcmV0dXJuIHJjOwogCi0gICAg cmV0dXJuIGxpYnhsX19iYWNrZW5kcGF0aF9wYXJzZV9kb21pZChnYywgYmVfcGF0aCwgJnZzbmQt PmJhY2tlbmRfZG9taWQpOworICAgIHZzbmQtPnNob3J0X25hbWUgPSB4c19yZWFkKGN0eC0+eHNo LCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVz LyJYRU5TTkRfRklFTERfVkNBUkRfU0hPUlRfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmZV9wYXRoKSwgTlVMTCk7CisKKyAgICB2c25kLT5sb25nX25hbWUgPSB4c19yZWFk KGN0eC0+eHNoLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BS SU5URigiJXMvIlhFTlNORF9GSUVMRF9WQ0FSRF9MT05HX05BTUUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmZV9wYXRoKSwgTlVMTCk7CisKKyAgICByYyA9IGxpYnhsX19wYXJhbXNf ZnJvbV94ZW5zdG9yZShnYywgZmVfcGF0aCwgJnZzbmQtPnBhcmFtcyk7CisKKyAgICB2c25kLT5w Y21zID0gTlVMTDsKKyAgICB2c25kLT5udW1fdnNuZF9wY21zID0gMDsKKworICAgIGRvIHsKKyAg ICAgICAgY2hhciAqcGNtX3BhdGggPSBHQ1NQUklOVEYoIiVzLyVkIiwgZmVfcGF0aCwgdnNuZC0+ bnVtX3ZzbmRfcGNtcyk7CisKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVja2VkKGdj LCBYQlRfTlVMTCwgcGNtX3BhdGgsICZ0bXApOworICAgICAgICBpZiAocmMpIHJldHVybiByYzsK KworICAgICAgICBpZiAodG1wKSB7CisgICAgICAgICAgICB2c25kLT5wY21zID0gcmVhbGxvYyh2 c25kLT5wY21zLCBzaXplb2YoKnZzbmQtPnBjbXMpICoKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgrK3ZzbmQtPm51bV92c25kX3BjbXMpKTsKKworICAgICAgICAgICAgbGlieGxf dnNuZF9wY21faW5pdCgmdnNuZC0+cGNtc1t2c25kLT5udW1fdnNuZF9wY21zIC0gMV0pOworCisg ICAgICAgICAgICByYyA9IGxpYnhsX19wY21fZnJvbV94ZW5zdG9yZShnYywgcGNtX3BhdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdnNuZC0+cGNtc1t2c25k LT5udW1fdnNuZF9wY21zIC0gMV0pOworICAgICAgICAgICAgaWYgKHJjKSByZXR1cm4gcmM7Cisg ICAgICAgIH0KKyAgICB9IHdoaWxlICh0bXApOworCisgICAgcmV0dXJuIDA7CiB9CiAKIHN0YXRp YyB2b2lkIGxpYnhsX191cGRhdGVfY29uZmlnX3ZzbmQobGlieGxfX2djICpnYywKQEAgLTI4Niwx MCArNTA1LDE0NCBAQCBzdGF0aWMgaW50IGxpYnhsX19zZXRfeGVuc3RvcmVfdnNuZChsaWJ4bF9f Z2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBs aWJ4bF9fZGV2aWNlX3N0cmVhbV9nZXRpbmZvKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKnBh dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdnNuZF9w Y20qIHBjbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9w Y21pbmZvICppbmZvKQoreworICAgIGNvbnN0IGNoYXIgKnRtcDsKKyAgICBpbnQgaTsKKyAgICBp bnQgcmM7CisKKyAgICBpbmZvLT5udW1fdnNuZF9zdHJlYW1zID0gcGNtLT5udW1fdnNuZF9zdHJl YW1zOworICAgIGluZm8tPnN0cmVhbXMgPSBtYWxsb2Moc2l6ZW9mKCppbmZvLT5zdHJlYW1zKSAq IGluZm8tPm51bV92c25kX3N0cmVhbXMpOworCisgICAgZm9yIChpID0gMDsgaSA8IGluZm8tPm51 bV92c25kX3N0cmVhbXM7IGkrKykKKyAgICB7CisgICAgICAgIGxpYnhsX3N0cmVhbWluZm9faW5p dCgmaW5mby0+c3RyZWFtc1tpXSk7CisKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9jaGVj a2VkKGdjLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD U1BSSU5URigiJXMvJWQvIlhFTlNORF9GSUVMRF9SSU5HX1JFRiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhdGgsIGkpLCAmdG1wKTsKKyAgICAgICAgaWYgKHJjKSByZXR1 cm4gcmM7CisKKyAgICAgICAgaW5mby0+c3RyZWFtc1tpXS5yZXFfcnJlZiA9IHRtcCA/IHN0cnRv dWwodG1wLCBOVUxMLCAxMCkgOiAtMTsKKworICAgICAgICByYyA9IGxpYnhsX194c19yZWFkX2No ZWNrZWQoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0NTUFJJTlRGKCIlcy8lZC8iWEVOU05EX0ZJRUxEX0VWVF9DSE5MLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGF0aCwgaSksICZ0bXApOworICAgICAgICBpZiAocmMpIHJl dHVybiByYzsKKworICAgICAgICBpbmZvLT5zdHJlYW1zW2ldLnJlcV9ldnRjaCA9IHRtcCA/IHN0 cnRvdWwodG1wLCBOVUxMLCAxMCkgOiAtMTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwor c3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3BjbV9nZXRpbmZvKGxpYnhsX19nYyAqZ2MsIGNvbnN0 IGNoYXIgKnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf ZGV2aWNlX3ZzbmQgKnZzbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfdnNuZGluZm8gKmluZm8pCit7CisgICAgaW50IGk7CisgICAgaW50IHJjOworCisgICAg aW5mby0+bnVtX3ZzbmRfcGNtcyA9IHZzbmQtPm51bV92c25kX3BjbXM7CisgICAgaW5mby0+cGNt cyA9IG1hbGxvYyhzaXplb2YoKmluZm8tPnBjbXMpICogaW5mby0+bnVtX3ZzbmRfcGNtcyk7CisK KyAgICBmb3IgKGkgPSAwOyBpIDwgaW5mby0+bnVtX3ZzbmRfcGNtczsgaSsrKQorICAgIHsKKyAg ICAgICAgbGlieGxfcGNtaW5mb19pbml0KCZpbmZvLT5wY21zW2ldKTsKKworICAgICAgICByYyA9 IGxpYnhsX19kZXZpY2Vfc3RyZWFtX2dldGluZm8oZ2MsIEdDU1BSSU5URigiJXMvJWQiLCBwYXRo LCBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2c25kLT5w Y21zW2ldLCAmaW5mby0+cGNtc1tpXSk7CisgICAgICAgIGlmIChyYykgcmV0dXJuIHJjOworICAg IH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgbGlieGxfZGV2aWNlX3ZzbmRfZ2V0aW5mbyhs aWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX3ZzbmRpbmZvICppbmZvKQoreworICAgIEdDX0lOSVQoY3R4KTsKKyAgICBjaGFy ICpsaWJ4bF9wYXRoLCAqZG9tcGF0aCwgKmRldnBhdGg7CisgICAgY29uc3QgY2hhciAqdmFsOwor ICAgIGludCByYzsKKworICAgIGxpYnhsX3ZzbmRpbmZvX2luaXQoaW5mbyk7CisgICAgZG9tcGF0 aCA9IGxpYnhsX194c19nZXRfZG9tcGF0aChnYywgZG9taWQpOworICAgIGluZm8tPmRldmlkID0g dnNuZC0+ZGV2aWQ7CisKKyAgICBkZXZwYXRoID0gR0NTUFJJTlRGKCIlcy9kZXZpY2UvJXMvJWQi LCBkb21wYXRoLCBsaWJ4bF9fdnNuZF9kZXZ0eXBlLmVudHJ5LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPmRldmlkKTsKKyAgICBsaWJ4bF9wYXRoID0g R0NTUFJJTlRGKCIlcy9kZXZpY2UvJXMvJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX3hzX2xpYnhsX3BhdGgoZ2MsIGRvbWlkKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX192c25kX2RldnR5cGUuZW50cnksIGluZm8tPmRldmlkKTsKKworICAgIGluZm8t PmJhY2tlbmQgPSB4c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHQ1NQUklOVEYoIiVzL2JhY2tlbmQiLCBsaWJ4bF9wYXRoKSwgTlVMTCk7CisK KyAgICByYyA9IGxpYnhsX19iYWNrZW5kcGF0aF9wYXJzZV9kb21pZChnYywgaW5mby0+YmFja2Vu ZCwgJmluZm8tPmJhY2tlbmRfaWQpOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICB2YWwg PSB4c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVMTCwgR0NTUFJJTlRGKCIlcy9zdGF0ZSIsIGRldnBh dGgpLCBOVUxMKTsKKworICAgIGluZm8tPnN0YXRlID0gdmFsID8gc3RydG91bCh2YWwsIE5VTEws IDEwKSA6IC0xOworCisgICAgaW5mby0+ZnJvbnRlbmQgPSB4c19yZWFkKGN0eC0+eHNoLCBYQlRf TlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy9mcm9udGVu ZCIsIGxpYnhsX3BhdGgpLCBOVUxMKTsKKworICAgIGluZm8tPmZyb250ZW5kX2lkID0gZG9taWQ7 CisKKyAgICByYyA9IGxpYnhsX19kZXZpY2VfcGNtX2dldGluZm8oZ2MsIGRldnBhdGgsIHZzbmQs IGluZm8pOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICByYyA9IDA7CisKK291dDoKKyAg ICAgR0NfRlJFRTsKKyAgICAgcmV0dXJuIHJjOworfQorCitpbnQgbGlieGxfZGV2aWRfdG9fZGV2 aWNlX3ZzbmQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCBkZXZpZCwgbGlieGxfZGV2aWNlX3ZzbmQgKnZzbmQpCit7Cisg ICAgR0NfSU5JVChjdHgpOworCisgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZzbmRzID0gTlVMTDsK KyAgICBpbnQgbiwgaTsKKyAgICBpbnQgcmM7CisKKyAgICBsaWJ4bF9kZXZpY2VfdnNuZF9pbml0 KHZzbmQpOworCisgICAgdnNuZHMgPSBsaWJ4bF9fZGV2aWNlX2xpc3QoZ2MsICZsaWJ4bF9fdnNu ZF9kZXZ0eXBlLCBkb21pZCwgJm4pOworCisgICAgaWYgKCF2c25kcykgeyByYyA9IEVSUk9SX05P VEZPVU5EOyBnb3RvIG91dDsgfQorCisgICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkgeworICAg ICAgICBpZiAoZGV2aWQgPT0gdnNuZHNbaV0uZGV2aWQpIHsKKyAgICAgICAgICAgIGxpYnhsX2Rl dmljZV92c25kX2NvcHkoY3R4LCB2c25kLCAmdnNuZHNbaV0pOworICAgICAgICAgICAgcmMgPSAw OworICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByYyA9IEVS Uk9SX05PVEZPVU5EOworCitvdXQ6CisKKyAgICBpZiAodnNuZHMpCisgICAgICAgIGxpYnhsX19k ZXZpY2VfbGlzdF9mcmVlKCZsaWJ4bF9fdnNuZF9kZXZ0eXBlLCB2c25kcywgbik7CisKKyAgICBH Q19GUkVFOworICAgIHJldHVybiByYzsKK30KKwogTElCWExfREVGSU5FX0RFVklDRV9BREQodnNu ZCkKIHN0YXRpYyBMSUJYTF9ERUZJTkVfREVWSUNFU19BREQodnNuZCkKIExJQlhMX0RFRklORV9E RVZJQ0VfUkVNT1ZFKHZzbmQpCiBzdGF0aWMgTElCWExfREVGSU5FX1VQREFURV9ERVZJRCh2c25k LCAidnNuZCIpCitMSUJYTF9ERUZJTkVfREVWSUNFX0xJU1QodnNuZCkKIAogREVGSU5FX0RFVklD RV9UWVBFX1NUUlVDVCh2c25kLAogICAgIC51cGRhdGVfY29uZmlnID0gKGRldmljZV91cGRhdGVf Y29uZmlnX2ZuX3QpIGxpYnhsX191cGRhdGVfY29uZmlnX3ZzbmQsCi0tIAoyLjcuNAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=