From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 REPOST 04/12] tools/libxenforeignmemory: add support for resource mapping Date: Tue, 22 Aug 2017 15:50:58 +0100 Message-ID: <20170822145107.6877-5-paul.durrant@citrix.com> References: <20170822145107.6877-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dkAX1-0002OA-Qf for xen-devel@lists.xenproject.org; Tue, 22 Aug 2017 14:51:51 +0000 In-Reply-To: <20170822145107.6877-1-paul.durrant@citrix.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: Wei Liu , Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org QSBwcmV2aW91cyBwYXRjaCBpbnRyb2R1Y2VkIGEgbmV3IEhZUEVSVklTT1JfbWVtb3J5X29wIHRv IGFjcXVpcmUgZ3Vlc3QKcmVzb3VyY2VzIGZvciBkaXJlY3QgcHJpdi1tYXBwaW5nLgoKVGhpcyBw YXRjaCBhZGRzIG5ldyBmdW5jdGlvbmFsaXR5IGludG8gbGlieGVuZm9yZWlnbm1lbW9yeSB0byBt YWtlIHVzZQpvZiBhIG5ldyBwcml2Y21kIGlvY3RsIFsxXSB0aGF0IHVzZXMgdGhlIG5ldyBtZW1v cnkgb3AgdG8gbWFrZSBzdWNoCnJlc291cmNlcyBhdmFpbGFibGUgdmlhIG1tYXAoMikuCgpbMV0g aHR0cDovL3hlbmJpdHMueGVuLm9yZy9naXR3ZWIvP3A9cGVvcGxlL3BhdWxkdS9saW51eC5naXQ7 YT1jb21taXQ7aD1jZTU5YTA1ZTY3MTIKClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1 bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1 LmNpdHJpeC5jb20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgoKdjI6CiAtIEJ1 bXAgbWlub3IgdmVyc2lvbiB1cCB0byAzCi0tLQogdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4 L3ByaXZjbWQuaCAgICAgICAgICAgICAgfCAxMSArKysrKysKIHRvb2xzL2xpYnMvZm9yZWlnbm1l bW9yeS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHRvb2xzL2xpYnMvZm9yZWln bm1lbW9yeS9jb3JlLmMgICAgICAgICAgICAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysr KysKIC4uLi9saWJzL2ZvcmVpZ25tZW1vcnkvaW5jbHVkZS94ZW5mb3JlaWdubWVtb3J5LmggIHwg MzkgKysrKysrKysrKysrKysrKysrKwogdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpYnhlbmZv cmVpZ25tZW1vcnkubWFwICAgfCAgNSArKysKIHRvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saW51 eC5jICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMv bGlicy9mb3JlaWdubWVtb3J5L3ByaXZhdGUuaCAgICAgICAgICAgICAgICAgfCAzMCArKysrKysr KysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTczIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgvcHJpdmNtZC5oIGIv dG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L3ByaXZjbWQuaAppbmRleCA3MzJmZjdjMTVhLi45 NTMxYjcyOGY5IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgvcHJpdmNt ZC5oCisrKyBiL3Rvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9wcml2Y21kLmgKQEAgLTg2LDYg Kzg2LDE1IEBAIHR5cGVkZWYgc3RydWN0IHByaXZjbWRfZG1fb3AgewogCWNvbnN0IHByaXZjbWRf ZG1fb3BfYnVmX3QgX191c2VyICp1YnVmczsKIH0gcHJpdmNtZF9kbV9vcF90OwogCit0eXBlZGVm IHN0cnVjdCBwcml2Y21kX21tYXBfcmVzb3VyY2UgeworCWRvbWlkX3QgZG9tOworCV9fdTMyIHR5 cGU7CisJX191MzIgaWQ7CisJX191MzIgaWR4OworCV9fdTY0IG51bTsKKwlfX3U2NCBhZGRyOwor fSBwcml2Y21kX21tYXBfcmVzb3VyY2VfdDsKKwogLyoKICAqIEBjbWQ6IElPQ1RMX1BSSVZDTURf SFlQRVJDQUxMCiAgKiBAYXJnOiAmcHJpdmNtZF9oeXBlcmNhbGxfdApAQCAtMTAzLDUgKzExMiw3 IEBAIHR5cGVkZWYgc3RydWN0IHByaXZjbWRfZG1fb3AgewogCV9JT0MoX0lPQ19OT05FLCAnUCcs IDUsIHNpemVvZihwcml2Y21kX2RtX29wX3QpKQogI2RlZmluZSBJT0NUTF9QUklWQ01EX1JFU1RS SUNUCQkJCQlcCiAJX0lPQyhfSU9DX05PTkUsICdQJywgNiwgc2l6ZW9mKGRvbWlkX3QpKQorI2Rl ZmluZSBJT0NUTF9QUklWQ01EX01NQVBfUkVTT1VSQ0UJCQkJXAorCV9JT0MoX0lPQ19OT05FLCAn UCcsIDcsIHNpemVvZihwcml2Y21kX21tYXBfcmVzb3VyY2VfdCkpCiAKICNlbmRpZiAvKiBfX0xJ TlVYX1BVQkxJQ19QUklWQ01EX0hfXyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdu bWVtb3J5L01ha2VmaWxlIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L01ha2VmaWxlCmluZGV4 IGIxMTAwNzY2MjEuLjdlYjU5Yzc4Y2IgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1l bW9yeS9NYWtlZmlsZQorKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvTWFrZWZpbGUKQEAg LTIsNyArMiw3IEBAIFhFTl9ST09UID0gJChDVVJESVIpLy4uLy4uLy4uCiBpbmNsdWRlICQoWEVO X1JPT1QpL3Rvb2xzL1J1bGVzLm1rCiAKIE1BSk9SICAgID0gMQotTUlOT1IgICAgPSAyCitNSU5P UiAgICA9IDMKIFNITElCX0xERkxBR1MgKz0gLVdsLC0tdmVyc2lvbi1zY3JpcHQ9bGlieGVuZm9y ZWlnbm1lbW9yeS5tYXAKIAogQ0ZMQUdTICAgKz0gLVdlcnJvciAtV21pc3NpbmctcHJvdG90eXBl cwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2NvcmUuYyBiL3Rvb2xzL2xp YnMvZm9yZWlnbm1lbW9yeS9jb3JlLmMKaW5kZXggYTY4OTdkYzU2MS4uMjkxZWU0NDUxNiAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2NvcmUuYworKysgYi90b29scy9saWJz L2ZvcmVpZ25tZW1vcnkvY29yZS5jCkBAIC0xMjAsNiArMTIwLDQ4IEBAIGludCB4ZW5mb3JlaWdu bWVtb3J5X3Jlc3RyaWN0KHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLAogICAgIHJldHVy biBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X3Jlc3RyaWN0KGZtZW0sIGRvbWlkKTsKIH0KIAoreGVu Zm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKnhlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291 cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCBkb21pZF90IGRvbWlkLCB1 bnNpZ25lZCBpbnQgdHlwZSwKKyAgICB1bnNpZ25lZCBpbnQgaWQsIHVuc2lnbmVkIGxvbmcgZnJh bWUsIHVuc2lnbmVkIGxvbmcgbnJfZnJhbWVzLAorICAgIHZvaWQgKipwYWRkciwgaW50IHByb3Qs IGludCBmbGFncykKK3sKKyAgICB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJl czsKKyAgICBpbnQgcmM7CisKKyAgICBmcmVzID0gY2FsbG9jKDEsIHNpemVvZigqZnJlcykpOwor ICAgIGlmICggIWZyZXMgKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZyZXMtPmRvbWlk ID0gZG9taWQ7CisgICAgZnJlcy0+dHlwZSA9IHR5cGU7CisgICAgZnJlcy0+aWQgPSBpZDsKKyAg ICBmcmVzLT5mcmFtZSA9IGZyYW1lOworICAgIGZyZXMtPm5yX2ZyYW1lcyA9IG5yX2ZyYW1lczsK KyAgICBmcmVzLT5hZGRyID0gKnBhZGRyOworICAgIGZyZXMtPnByb3QgPSBwcm90OworICAgIGZy ZXMtPmZsYWdzID0gZmxhZ3M7CisKKyAgICByYyA9IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfbWFw X3Jlc291cmNlKGZtZW0sIGZyZXMpOworICAgIGlmICggcmMgKQorICAgICAgICBnb3RvIGZhaWw7 CisKKyAgICAqcGFkZHIgPSBmcmVzLT5hZGRyOworICAgIHJldHVybiBmcmVzOworCitmYWlsOgor ICAgIGZyZWUoZnJlcyk7CisKKyAgICByZXR1cm4gTlVMTDsKK30KKwordm9pZCB4ZW5mb3JlaWdu bWVtb3J5X3VubWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVt LCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcykKK3sKKyAgICBvc2RlcF94 ZW5mb3JlaWdubWVtb3J5X3VubWFwX3Jlc291cmNlKGZtZW0sIGZyZXMpOworCisgICAgZnJlZShm cmVzKTsKK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9pbmNsdWRlL3hlbmZvcmVpZ25tZW1vcnkuaCBi L3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9pbmNsdWRlL3hlbmZvcmVpZ25tZW1vcnkuaAppbmRl eCBmNDgxNGMzOTBmLi5lNTZlYjNjNGQ0IDEwMDY0NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25t ZW1vcnkvaW5jbHVkZS94ZW5mb3JlaWdubWVtb3J5LmgKKysrIGIvdG9vbHMvbGlicy9mb3JlaWdu bWVtb3J5L2luY2x1ZGUveGVuZm9yZWlnbm1lbW9yeS5oCkBAIC0xMzgsNiArMTM4LDQ1IEBAIGlu dCB4ZW5mb3JlaWdubWVtb3J5X3VubWFwKHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLAog aW50IHhlbmZvcmVpZ25tZW1vcnlfcmVzdHJpY3QoeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZt ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGRvbWlkKTsKIAordHlw ZWRlZiBzdHJ1Y3QgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgeGVuZm9yZWlnbm1l bW9yeV9yZXNvdXJjZV9oYW5kbGU7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBtYXBzIGEgZ3Vl c3QgcmVzb3VyY2UuCisgKgorICogQHBhcm0gZm1lbSBoYW5kbGUgdG8gdGhlIG9wZW4gZm9yZWln bm1lbW9yeSBpbnRlcmZhY2UKKyAqIEBwYXJtIGRvbWlkIHRoZSBkb21haW4gaWQKKyAqIEBwYXJt IHR5cGUgdGhlIHJlc291cmNlIHR5cGUKKyAqIEBwYXJtIGlkIHRoZSB0eXBlLXNwZWNpZmljIHJl c291cmNlIGlkZW50aWZpZXIKKyAqIEBwYXJtIGZyYW1lIGJhc2UgZnJhbWUgaW5kZXggd2l0aGlu IHRoZSByZXNvdXJjZQorICogQHBhcm0gbnJfZnJhbWVzIG51bWJlciBvZiBmcmFtZXMgdG8gbWFw CisgKiBAcGFybSBwYWRkciBwb2ludGVyIHRvIGFuIGFkZHJlc3MgcGFzc2VkIHRocm91Z2ggdG8g bW1hcCgyKQorICogQHBhcm0gcHJvdCBwYXNzZWQgdGhyb3VnaCB0byBtbWFwKDIpCisgKiBAcGFy bSBmbGFncyBwYXNzZWQgdGhyb3VnaCB0byBtbWFwKDIpCisgKiBAcmV0dXJuIHBvaW50ZXIgdG8g Zm9yZWlnbm1lbW9yeSByZXNvdXJjZSBoYW5kbGUgb24gc3VjY2VzcywgTlVMTCBvbgorICogICAg ICAgICBmYWlsdXJlCisgKgorICogKnBhZGRyIGlzIHVzZWQsIG9uIGVudHJ5LCBhcyBhIGhpbnQg YWRkcmVzcyBmb3IgZm9yZWlnbiBtYXAgcGxhY2VtZW50CisgKiAoc2VlIG1tYXAoMikpIHNvIHNo b3VsZCBiZSBzZXQgdG8gTlVMTCBpZiBubyBzcGVjaWZpYyBwbGFjZW1lbnQgaXMKKyAqIHJlcXVp cmVkLiBPbiByZXR1cm4gKnBhZGRyIGNvbnRhaW5zIHRoZSBhZGRyZXNzIHdoZXJlIHRoZSByZXNv dXJjZSBpcworICogbWFwcGVkLgorICogQXMgZm9yIHhlbmZvcmVpZ25tZW1vcnlfbWFwMigpIGZs YWdzIGlzIGEgc2V0IG9mIGFkZGl0aW9uYWwgZmxhZ3MKKyAqIGZvciBtbWFwKDIpLiBOb3QgYWxs IG9mIHRoZSBmbGFnIGNvbWJpbmF0aW9ucyBhcmUgcG9zc2libGUgZHVlIHRvCisgKiBpbXBsZW1l bnRhdGlvbiBkZXRhaWxzIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMuCisgKi8KK3hlbmZvcmVpZ25t ZW1vcnlfcmVzb3VyY2VfaGFuZGxlICp4ZW5mb3JlaWdubWVtb3J5X21hcF9yZXNvdXJjZSgKKyAg ICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwgZG9taWRfdCBkb21pZCwgdW5zaWduZWQg aW50IHR5cGUsCisgICAgdW5zaWduZWQgaW50IGlkLCB1bnNpZ25lZCBsb25nIGZyYW1lLCB1bnNp Z25lZCBsb25nIG5yX2ZyYW1lcywKKyAgICB2b2lkICoqcGFkZHIsIGludCBwcm90LCBpbnQgZmxh Z3MpOworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gcmVsZWFzZXMgYSBwcmV2aW91c2x5IGFjcXVp cmVkIHJlc291cmNlLgorICoKKyAqIEBwYXJtIGZtZW0gaGFuZGxlIHRvIHRoZSBvcGVuIGZvcmVp Z25tZW1vcnkgaW50ZXJmYWNlCisgKiBAcGFybSBmcmVzIGhhbmRsZSB0byB0aGUgYWNxdWlyZWQg cmVzb3VyY2UKKyAqLwordm9pZCB4ZW5mb3JlaWdubWVtb3J5X3VubWFwX3Jlc291cmNlKAorICAg IHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNl X2hhbmRsZSAqZnJlcyk7CisKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9m b3JlaWdubWVtb3J5L2xpYnhlbmZvcmVpZ25tZW1vcnkubWFwIGIvdG9vbHMvbGlicy9mb3JlaWdu bWVtb3J5L2xpYnhlbmZvcmVpZ25tZW1vcnkubWFwCmluZGV4IDcxNmVjYWYxNWMuLmQ1MzIzYzg3 ZDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saWJ4ZW5mb3JlaWdubWVt b3J5Lm1hcAorKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGlieGVuZm9yZWlnbm1lbW9y eS5tYXAKQEAgLTE0LDMgKzE0LDggQEAgVkVSU18xLjIgewogCWdsb2JhbDoKIAkJeGVuZm9yZWln bm1lbW9yeV9tYXAyOwogfSBWRVJTXzEuMTsKK1ZFUlNfMS4zIHsKKwlnbG9iYWw6CisJCXhlbmZv cmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlOworCQl4ZW5mb3JlaWdubWVtb3J5X3VubWFwX3Jlc291 cmNlOworfSBWRVJTXzEuMjsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9s aW51eC5jIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpbnV4LmMKaW5kZXggMzc0ZTQ1YWVk NS4uNDQ0NzcyM2NiMSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpbnV4 LmMKKysrIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpbnV4LmMKQEAgLTI3Nyw2ICsyNzcs NTEgQEAgaW50IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfcmVzdHJpY3QoeGVuZm9yZWlnbm1lbW9y eV9oYW5kbGUgKmZtZW0sCiAgICAgcmV0dXJuIGlvY3RsKGZtZW0tPmZkLCBJT0NUTF9QUklWQ01E X1JFU1RSSUNULCAmZG9taWQpOwogfQogCit2b2lkIG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfdW5t YXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sIHhlbmZvcmVp Z25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworICAgICh2b2lkKSBtdW5tYXAoZnJl cy0+YWRkciwgZnJlcy0+bnJfZnJhbWVzIDw8IFBBR0VfU0hJRlQpOworfQorCitpbnQgb3NkZXBf eGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5k bGUgKmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworICAg IHByaXZjbWRfbW1hcF9yZXNvdXJjZV90IG1yOworICAgIGludCByYzsKKworICAgIGZyZXMtPmFk ZHIgPSBtbWFwKGZyZXMtPmFkZHIsIGZyZXMtPm5yX2ZyYW1lcyA8PCBQQUdFX1NISUZULAorICAg ICAgICAgICAgICAgICAgICAgIGZyZXMtPnByb3QsIGZyZXMtPmZsYWdzIHwgTUFQX1NIQVJFRCwg Zm1lbS0+ZmQsIDApOworICAgIGlmICggZnJlcy0+YWRkciA9PSBNQVBfRkFJTEVEICkKKyAgICAg ICAgcmV0dXJuIC0xOworCisgICAgbWVtc2V0KCZtciwgMCwgc2l6ZW9mKG1yKSk7CisgICAgbXIu ZG9tID0gZnJlcy0+ZG9taWQ7CisgICAgbXIudHlwZSA9IGZyZXMtPnR5cGU7CisgICAgbXIuaWQg PSBmcmVzLT5pZDsKKyAgICBtci5pZHggPSBmcmVzLT5mcmFtZTsKKyAgICBtci5udW0gPSBmcmVz LT5ucl9mcmFtZXM7CisgICAgbXIuYWRkciA9ICh1aW50cHRyX3QpZnJlcy0+YWRkcjsKKworICAg IHJjID0gaW9jdGwoZm1lbS0+ZmQsIElPQ1RMX1BSSVZDTURfTU1BUF9SRVNPVVJDRSwgJm1yKTsK KyAgICBpZiAoIHJjICkKKyAgICB7CisgICAgICAgIGludCBzYXZlZF9lcnJubzsKKworICAgICAg ICBpZiAoIGVycm5vICE9IEVOT1RUWSApCisgICAgICAgICAgICBQRVJST1IoImlvY3RsIGZhaWxl ZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJubyA9IEVPUE5PVFNVUFA7CisKKyAg ICAgICAgc2F2ZWRfZXJybm8gPSBlcnJubzsKKyAgICAgICAgb3NkZXBfeGVuZm9yZWlnbm1lbW9y eV91bm1hcF9yZXNvdXJjZShmbWVtLCBmcmVzKTsKKyAgICAgICAgZXJybm8gPSBzYXZlZF9lcnJu bzsKKworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIC8q CiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS90b29scy9saWJz L2ZvcmVpZ25tZW1vcnkvcHJpdmF0ZS5oIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L3ByaXZh dGUuaAppbmRleCBjNWMwN2NjNGM0Li4yYWU5MzgyNjY5IDEwMDY0NAotLS0gYS90b29scy9saWJz L2ZvcmVpZ25tZW1vcnkvcHJpdmF0ZS5oCisrKyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9w cml2YXRlLmgKQEAgLTQyLDYgKzQyLDM2IEBAIHZvaWQgKmNvbXBhdF9tYXBmb3JlaWduX2JhdGNo KHhlbmZvcmVpZ25tZW1faGFuZGxlICpmbWVtLCB1aW50MzJfdCBkb20sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgKmFyciwgaW50IG51bSk7CiAjZW5kaWYKIAorc3Ry dWN0IHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlIHsKKyAgICBkb21pZF90IGRvbWlk OworICAgIHVuc2lnbmVkIGludCB0eXBlOworICAgIHVuc2lnbmVkIGludCBpZDsKKyAgICB1bnNp Z25lZCBsb25nIGZyYW1lOworICAgIHVuc2lnbmVkIGxvbmcgbnJfZnJhbWVzOworICAgIHZvaWQg KmFkZHI7CisgICAgaW50IHByb3Q7CisgICAgaW50IGZsYWdzOworfTsKKworI2lmbmRlZiBfX2xp bnV4X18KK3N0YXRpYyBpbmxpbmUgaW50IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291 cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4ZW5mb3JlaWdubWVtb3J5 X3Jlc291cmNlX2hhbmRsZSAqZnJlcykKK3sKKyAgICBlcnJubyA9IEVPUE5PVFNVUFA7CisgICAg cmV0dXJuIC0xOworfQorCit2b2lkIG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3Vy Y2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlf cmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworfQorI2Vsc2UKK2ludCBvc2RlcF94ZW5mb3JlaWdu bWVtb3J5X21hcF9yZXNvdXJjZSgKKyAgICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwg eGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZyZXMpOwordm9pZCBvc2RlcF94ZW5m b3JlaWdubWVtb3J5X3VubWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxl ICpmbWVtLCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcyk7CisjZW5kaWYK KwogI2RlZmluZSBQRVJST1IoX2YuLi4pIFwKICAgICB4dGxfbG9nKGZtZW0tPmxvZ2dlciwgWFRM X0VSUk9SLCBlcnJubywgInhlbmZvcmVpZ25tZW1vcnkiLCBfZikKIAotLSAKMi4xMS4wCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==