From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH 4/5] tools/libxenforeignmemory: add support for resource mapping Date: Wed, 2 Aug 2017 10:59:48 +0100 Message-ID: <20170802095949.40677-5-paul.durrant@citrix.com> References: <20170802095949.40677-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dcqRg-0006yk-Is for xen-devel@lists.xenproject.org; Wed, 02 Aug 2017 10:00:04 +0000 In-Reply-To: <20170802095949.40677-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 YT1jb21taXQ7aD1jNWNmMmIxNWY3YTQ0ODI3NzcxNmE3ZTk2ZmVhMWM5M2RmNmMxN2E1CgpTaWdu ZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6 IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgvcHJpdmNt ZC5oICAgICAgICAgICAgICB8IDExICsrKysrKwogdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2Nv cmUuYyAgICAgICAgICAgICAgICAgICAgfCA0MiArKysrKysrKysrKysrKysrKysrKwogLi4uL2xp YnMvZm9yZWlnbm1lbW9yeS9pbmNsdWRlL3hlbmZvcmVpZ25tZW1vcnkuaCAgfCAzOSArKysrKysr KysrKysrKysrKysrCiB0b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGlieGVuZm9yZWlnbm1lbW9y eS5tYXAgICB8ICA1ICsrKwogdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpbnV4LmMgICAgICAg ICAgICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9saWJzL2ZvcmVp Z25tZW1vcnkvcHJpdmF0ZS5oICAgICAgICAgICAgICAgICB8IDMwICsrKysrKysrKysrKysrKwog NiBmaWxlcyBjaGFuZ2VkLCAxNzIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2lu Y2x1ZGUveGVuLXN5cy9MaW51eC9wcml2Y21kLmggYi90b29scy9pbmNsdWRlL3hlbi1zeXMvTGlu dXgvcHJpdmNtZC5oCmluZGV4IDczMmZmN2MxNWEuLjk1MzFiNzI4ZjkgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9wcml2Y21kLmgKKysrIGIvdG9vbHMvaW5jbHVkZS94 ZW4tc3lzL0xpbnV4L3ByaXZjbWQuaApAQCAtODYsNiArODYsMTUgQEAgdHlwZWRlZiBzdHJ1Y3Qg cHJpdmNtZF9kbV9vcCB7CiAJY29uc3QgcHJpdmNtZF9kbV9vcF9idWZfdCBfX3VzZXIgKnVidWZz OwogfSBwcml2Y21kX2RtX29wX3Q7CiAKK3R5cGVkZWYgc3RydWN0IHByaXZjbWRfbW1hcF9yZXNv dXJjZSB7CisJZG9taWRfdCBkb207CisJX191MzIgdHlwZTsKKwlfX3UzMiBpZDsKKwlfX3UzMiBp ZHg7CisJX191NjQgbnVtOworCV9fdTY0IGFkZHI7Cit9IHByaXZjbWRfbW1hcF9yZXNvdXJjZV90 OworCiAvKgogICogQGNtZDogSU9DVExfUFJJVkNNRF9IWVBFUkNBTEwKICAqIEBhcmc6ICZwcml2 Y21kX2h5cGVyY2FsbF90CkBAIC0xMDMsNSArMTEyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcHJpdmNt ZF9kbV9vcCB7CiAJX0lPQyhfSU9DX05PTkUsICdQJywgNSwgc2l6ZW9mKHByaXZjbWRfZG1fb3Bf dCkpCiAjZGVmaW5lIElPQ1RMX1BSSVZDTURfUkVTVFJJQ1QJCQkJCVwKIAlfSU9DKF9JT0NfTk9O RSwgJ1AnLCA2LCBzaXplb2YoZG9taWRfdCkpCisjZGVmaW5lIElPQ1RMX1BSSVZDTURfTU1BUF9S RVNPVVJDRQkJCQlcCisJX0lPQyhfSU9DX05PTkUsICdQJywgNywgc2l6ZW9mKHByaXZjbWRfbW1h cF9yZXNvdXJjZV90KSkKIAogI2VuZGlmIC8qIF9fTElOVVhfUFVCTElDX1BSSVZDTURfSF9fICov CmRpZmYgLS1naXQgYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvY29yZS5jIGIvdG9vbHMvbGli cy9mb3JlaWdubWVtb3J5L2NvcmUuYwppbmRleCBhNjg5N2RjNTYxLi4yOTFlZTQ0NTE2IDEwMDY0 NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvY29yZS5jCisrKyBiL3Rvb2xzL2xpYnMv Zm9yZWlnbm1lbW9yeS9jb3JlLmMKQEAgLTEyMCw2ICsxMjAsNDggQEAgaW50IHhlbmZvcmVpZ25t ZW1vcnlfcmVzdHJpY3QoeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sCiAgICAgcmV0dXJu IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfcmVzdHJpY3QoZm1lbSwgZG9taWQpOwogfQogCit4ZW5m b3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqeGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3Vy Y2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sIGRvbWlkX3QgZG9taWQsIHVu c2lnbmVkIGludCB0eXBlLAorICAgIHVuc2lnbmVkIGludCBpZCwgdW5zaWduZWQgbG9uZyBmcmFt ZSwgdW5zaWduZWQgbG9uZyBucl9mcmFtZXMsCisgICAgdm9pZCAqKnBhZGRyLCBpbnQgcHJvdCwg aW50IGZsYWdzKQoreworICAgIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVz OworICAgIGludCByYzsKKworICAgIGZyZXMgPSBjYWxsb2MoMSwgc2l6ZW9mKCpmcmVzKSk7Cisg ICAgaWYgKCAhZnJlcyApCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZnJlcy0+ZG9taWQg PSBkb21pZDsKKyAgICBmcmVzLT50eXBlID0gdHlwZTsKKyAgICBmcmVzLT5pZCA9IGlkOworICAg IGZyZXMtPmZyYW1lID0gZnJhbWU7CisgICAgZnJlcy0+bnJfZnJhbWVzID0gbnJfZnJhbWVzOwor ICAgIGZyZXMtPmFkZHIgPSAqcGFkZHI7CisgICAgZnJlcy0+cHJvdCA9IHByb3Q7CisgICAgZnJl cy0+ZmxhZ3MgPSBmbGFnczsKKworICAgIHJjID0gb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV9tYXBf cmVzb3VyY2UoZm1lbSwgZnJlcyk7CisgICAgaWYgKCByYyApCisgICAgICAgIGdvdG8gZmFpbDsK KworICAgICpwYWRkciA9IGZyZXMtPmFkZHI7CisgICAgcmV0dXJuIGZyZXM7CisKK2ZhaWw6Cisg ICAgZnJlZShmcmVzKTsKKworICAgIHJldHVybiBOVUxMOworfQorCit2b2lkIHhlbmZvcmVpZ25t ZW1vcnlfdW5tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0s IHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworICAgIG9zZGVwX3hl bmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoZm1lbSwgZnJlcyk7CisKKyAgICBmcmVlKGZy ZXMpOworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2luY2x1ZGUveGVuZm9yZWlnbm1lbW9yeS5oIGIv dG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2luY2x1ZGUveGVuZm9yZWlnbm1lbW9yeS5oCmluZGV4 IGY0ODE0YzM5MGYuLmU1NmViM2M0ZDQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1l bW9yeS9pbmNsdWRlL3hlbmZvcmVpZ25tZW1vcnkuaAorKysgYi90b29scy9saWJzL2ZvcmVpZ25t ZW1vcnkvaW5jbHVkZS94ZW5mb3JlaWdubWVtb3J5LmgKQEAgLTEzOCw2ICsxMzgsNDUgQEAgaW50 IHhlbmZvcmVpZ25tZW1vcnlfdW5tYXAoeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sCiBp bnQgeGVuZm9yZWlnbm1lbW9yeV9yZXN0cmljdCh4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1l bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9taWQpOwogCit0eXBl ZGVmIHN0cnVjdCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSB4ZW5mb3JlaWdubWVt b3J5X3Jlc291cmNlX2hhbmRsZTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIG1hcHMgYSBndWVz dCByZXNvdXJjZS4KKyAqCisgKiBAcGFybSBmbWVtIGhhbmRsZSB0byB0aGUgb3BlbiBmb3JlaWdu bWVtb3J5IGludGVyZmFjZQorICogQHBhcm0gZG9taWQgdGhlIGRvbWFpbiBpZAorICogQHBhcm0g dHlwZSB0aGUgcmVzb3VyY2UgdHlwZQorICogQHBhcm0gaWQgdGhlIHR5cGUtc3BlY2lmaWMgcmVz b3VyY2UgaWRlbnRpZmllcgorICogQHBhcm0gZnJhbWUgYmFzZSBmcmFtZSBpbmRleCB3aXRoaW4g dGhlIHJlc291cmNlCisgKiBAcGFybSBucl9mcmFtZXMgbnVtYmVyIG9mIGZyYW1lcyB0byBtYXAK KyAqIEBwYXJtIHBhZGRyIHBvaW50ZXIgdG8gYW4gYWRkcmVzcyBwYXNzZWQgdGhyb3VnaCB0byBt bWFwKDIpCisgKiBAcGFybSBwcm90IHBhc3NlZCB0aHJvdWdoIHRvIG1tYXAoMikKKyAqIEBwYXJt IGZsYWdzIHBhc3NlZCB0aHJvdWdoIHRvIG1tYXAoMikKKyAqIEByZXR1cm4gcG9pbnRlciB0byBm b3JlaWdubWVtb3J5IHJlc291cmNlIGhhbmRsZSBvbiBzdWNjZXNzLCBOVUxMIG9uCisgKiAgICAg ICAgIGZhaWx1cmUKKyAqCisgKiAqcGFkZHIgaXMgdXNlZCwgb24gZW50cnksIGFzIGEgaGludCBh ZGRyZXNzIGZvciBmb3JlaWduIG1hcCBwbGFjZW1lbnQKKyAqIChzZWUgbW1hcCgyKSkgc28gc2hv dWxkIGJlIHNldCB0byBOVUxMIGlmIG5vIHNwZWNpZmljIHBsYWNlbWVudCBpcworICogcmVxdWly ZWQuIE9uIHJldHVybiAqcGFkZHIgY29udGFpbnMgdGhlIGFkZHJlc3Mgd2hlcmUgdGhlIHJlc291 cmNlIGlzCisgKiBtYXBwZWQuCisgKiBBcyBmb3IgeGVuZm9yZWlnbm1lbW9yeV9tYXAyKCkgZmxh Z3MgaXMgYSBzZXQgb2YgYWRkaXRpb25hbCBmbGFncworICogZm9yIG1tYXAoMikuIE5vdCBhbGwg b2YgdGhlIGZsYWcgY29tYmluYXRpb25zIGFyZSBwb3NzaWJsZSBkdWUgdG8KKyAqIGltcGxlbWVu dGF0aW9uIGRldGFpbHMgb24gZGlmZmVyZW50IHBsYXRmb3Jtcy4KKyAqLworeGVuZm9yZWlnbm1l bW9yeV9yZXNvdXJjZV9oYW5kbGUgKnhlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAorICAg IHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCBkb21pZF90IGRvbWlkLCB1bnNpZ25lZCBp bnQgdHlwZSwKKyAgICB1bnNpZ25lZCBpbnQgaWQsIHVuc2lnbmVkIGxvbmcgZnJhbWUsIHVuc2ln bmVkIGxvbmcgbnJfZnJhbWVzLAorICAgIHZvaWQgKipwYWRkciwgaW50IHByb3QsIGludCBmbGFn cyk7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiByZWxlYXNlcyBhIHByZXZpb3VzbHkgYWNxdWly ZWQgcmVzb3VyY2UuCisgKgorICogQHBhcm0gZm1lbSBoYW5kbGUgdG8gdGhlIG9wZW4gZm9yZWln bm1lbW9yeSBpbnRlcmZhY2UKKyAqIEBwYXJtIGZyZXMgaGFuZGxlIHRvIHRoZSBhY3F1aXJlZCBy ZXNvdXJjZQorICovCit2b2lkIHhlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoCisgICAg eGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2Vf aGFuZGxlICpmcmVzKTsKKwogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJzL2Zv cmVpZ25tZW1vcnkvbGlieGVuZm9yZWlnbm1lbW9yeS5tYXAgYi90b29scy9saWJzL2ZvcmVpZ25t ZW1vcnkvbGlieGVuZm9yZWlnbm1lbW9yeS5tYXAKaW5kZXggNzE2ZWNhZjE1Yy4uZDUzMjNjODdk OSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpYnhlbmZvcmVpZ25tZW1v cnkubWFwCisrKyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saWJ4ZW5mb3JlaWdubWVtb3J5 Lm1hcApAQCAtMTQsMyArMTQsOCBAQCBWRVJTXzEuMiB7CiAJZ2xvYmFsOgogCQl4ZW5mb3JlaWdu bWVtb3J5X21hcDI7CiB9IFZFUlNfMS4xOworVkVSU18xLjMgeworCWdsb2JhbDoKKwkJeGVuZm9y ZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2U7CisJCXhlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3Vy Y2U7Cit9IFZFUlNfMS4yOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xp bnV4LmMgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYwppbmRleCAzNzRlNDVhZWQ1 Li40NDQ3NzIzY2IxIDEwMDY0NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXgu YworKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYwpAQCAtMjc3LDYgKzI3Nyw1 MSBAQCBpbnQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV9yZXN0cmljdCh4ZW5mb3JlaWdubWVtb3J5 X2hhbmRsZSAqZm1lbSwKICAgICByZXR1cm4gaW9jdGwoZm1lbS0+ZmQsIElPQ1RMX1BSSVZDTURf UkVTVFJJQ1QsICZkb21pZCk7CiB9CiAKK3ZvaWQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV91bm1h cF9yZXNvdXJjZSgKKyAgICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWln bm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZyZXMpCit7CisgICAgKHZvaWQpIG11bm1hcChmcmVz LT5hZGRyLCBmcmVzLT5ucl9mcmFtZXMgPDwgUEFHRV9TSElGVCk7Cit9CisKK2ludCBvc2RlcF94 ZW5mb3JlaWdubWVtb3J5X21hcF9yZXNvdXJjZSgKKyAgICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRs ZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZyZXMpCit7CisgICAg cHJpdmNtZF9tbWFwX3Jlc291cmNlX3QgbXI7CisgICAgaW50IHJjOworCisgICAgZnJlcy0+YWRk ciA9IG1tYXAoZnJlcy0+YWRkciwgZnJlcy0+bnJfZnJhbWVzIDw8IFBBR0VfU0hJRlQsCisgICAg ICAgICAgICAgICAgICAgICAgZnJlcy0+cHJvdCwgZnJlcy0+ZmxhZ3MgfCBNQVBfU0hBUkVELCBm bWVtLT5mZCwgMCk7CisgICAgaWYgKCBmcmVzLT5hZGRyID09IE1BUF9GQUlMRUQgKQorICAgICAg ICByZXR1cm4gLTE7CisKKyAgICBtZW1zZXQoJm1yLCAwLCBzaXplb2YobXIpKTsKKyAgICBtci5k b20gPSBmcmVzLT5kb21pZDsKKyAgICBtci50eXBlID0gZnJlcy0+dHlwZTsKKyAgICBtci5pZCA9 IGZyZXMtPmlkOworICAgIG1yLmlkeCA9IGZyZXMtPmZyYW1lOworICAgIG1yLm51bSA9IGZyZXMt Pm5yX2ZyYW1lczsKKyAgICBtci5hZGRyID0gKHVpbnRwdHJfdClmcmVzLT5hZGRyOworCisgICAg cmMgPSBpb2N0bChmbWVtLT5mZCwgSU9DVExfUFJJVkNNRF9NTUFQX1JFU09VUkNFLCAmbXIpOwor ICAgIGlmICggcmMgKQorICAgIHsKKyAgICAgICAgaW50IHNhdmVkX2Vycm5vOworCisgICAgICAg IGlmICggZXJybm8gIT0gRU5PVFRZICkKKyAgICAgICAgICAgIFBFUlJPUigiaW9jdGwgZmFpbGVk Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycm5vID0gRU9QTk9UU1VQUDsKKworICAg ICAgICBzYXZlZF9lcnJubyA9IGVycm5vOworICAgICAgICBvc2RlcF94ZW5mb3JlaWdubWVtb3J5 X3VubWFwX3Jlc291cmNlKGZtZW0sIGZyZXMpOworICAgICAgICBlcnJubyA9IHNhdmVkX2Vycm5v OworCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogLyoK ICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMv Zm9yZWlnbm1lbW9yeS9wcml2YXRlLmggYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvcHJpdmF0 ZS5oCmluZGV4IGM1YzA3Y2M0YzQuLjJhZTkzODI2NjkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMv Zm9yZWlnbm1lbW9yeS9wcml2YXRlLmgKKysrIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L3By aXZhdGUuaApAQCAtNDIsNiArNDIsMzYgQEAgdm9pZCAqY29tcGF0X21hcGZvcmVpZ25fYmF0Y2go eGVuZm9yZWlnbm1lbV9oYW5kbGUgKmZtZW0sIHVpbnQzMl90IGRvbSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHhlbl9wZm5fdCAqYXJyLCBpbnQgbnVtKTsKICNlbmRpZgogCitzdHJ1 Y3QgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgeworICAgIGRvbWlkX3QgZG9taWQ7 CisgICAgdW5zaWduZWQgaW50IHR5cGU7CisgICAgdW5zaWduZWQgaW50IGlkOworICAgIHVuc2ln bmVkIGxvbmcgZnJhbWU7CisgICAgdW5zaWduZWQgbG9uZyBucl9mcmFtZXM7CisgICAgdm9pZCAq YWRkcjsKKyAgICBpbnQgcHJvdDsKKyAgICBpbnQgZmxhZ3M7Cit9OworCisjaWZuZGVmIF9fbGlu dXhfXworc3RhdGljIGlubGluZSBpbnQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3Vy Y2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlf cmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworICAgIGVycm5vID0gRU9QTk9UU1VQUDsKKyAgICBy ZXR1cm4gLTE7Cit9CisKK3ZvaWQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJj ZSgKKyAgICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9y ZXNvdXJjZV9oYW5kbGUgKmZyZXMpCit7Cit9CisjZWxzZQoraW50IG9zZGVwX3hlbmZvcmVpZ25t ZW1vcnlfbWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4 ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcyk7Cit2b2lkIG9zZGVwX3hlbmZv cmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUg KmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzKTsKKyNlbmRpZgor CiAjZGVmaW5lIFBFUlJPUihfZi4uLikgXAogICAgIHh0bF9sb2coZm1lbS0+bG9nZ2VyLCBYVExf RVJST1IsIGVycm5vLCAieGVuZm9yZWlnbm1lbW9yeSIsIF9mKQogCi0tIAoyLjExLjAKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK