From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v15 08/11] tools/libxenforeignmemory: add support for resource mapping Date: Thu, 14 Dec 2017 17:41:41 +0000 Message-ID: <20171214174144.27852-9-paul.durrant@citrix.com> References: <20171214174144.27852-1-paul.durrant@citrix.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.84_2) (envelope-from ) id 1ePXW3-000743-GI for xen-devel@lists.xenproject.org; Thu, 14 Dec 2017 17:41:51 +0000 In-Reply-To: <20171214174144.27852-1-paul.durrant@citrix.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: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org QSBwcmV2aW91cyBwYXRjaCBpbnRyb2R1Y2VkIGEgbmV3IEhZUEVSVklTT1JfbWVtb3J5X29wIHRv IGFjcXVpcmUgZ3Vlc3QKcmVzb3VyY2VzIGZvciBkaXJlY3QgcHJpdi1tYXBwaW5nLgoKVGhpcyBw YXRjaCBhZGRzIG5ldyBmdW5jdGlvbmFsaXR5IGludG8gbGlieGVuZm9yZWlnbm1lbW9yeSB0byBt YWtlIHVzZQpvZiBhIG5ldyBwcml2Y21kIGlvY3RsIFsxXSB0aGF0IHVzZXMgdGhlIG5ldyBtZW1v cnkgb3AgdG8gbWFrZSBzdWNoCnJlc291cmNlcyBhdmFpbGFibGUgdmlhIG1tYXAoMikuCgpbMV0g aHR0cDovL3hlbmJpdHMueGVuLm9yZy9naXR3ZWIvP3A9cGVvcGxlL3BhdWxkdS9saW51eC5naXQ7 YT1jb21taXQ7aD1jZTU5YTA1ZTY3MTIKClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1 bC5kdXJyYW50QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dl ci5wYXVAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5j b20+Ci0tLQpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Cgp2NDoK IC0gRml4ZWQgZXJybm8gYW5kIHJlbW92ZWQgc2luZ2xlLXVzZSBsYWJlbAogLSBUaGUgdW5tYXAg Y2FsbCBub3cgcmV0dXJucyBhIHN0YXR1cwogLSBVc2UgQzk5IGluaXRpYWxpemF0aW9uIGZvciBp b2N0bCBzdHJ1Y3QKCnYyOgogLSBCdW1wIG1pbm9yIHZlcnNpb24gdXAgdG8gMy4KLS0tCiB0b29s cy9pbmNsdWRlL3hlbi1zeXMvTGludXgvcHJpdmNtZC5oICAgICAgICAgICAgICB8IDExICsrKysr CiB0b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAy ICstCiB0b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvY29yZS5jICAgICAgICAgICAgICAgICAgICB8 IDUzICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9saWJzL2ZvcmVpZ25tZW1vcnkvaW5jbHVk ZS94ZW5mb3JlaWdubWVtb3J5LmggIHwgNDEgKysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnMv Zm9yZWlnbm1lbW9yeS9saWJ4ZW5mb3JlaWdubWVtb3J5Lm1hcCAgIHwgIDUgKysKIHRvb2xzL2xp YnMvZm9yZWlnbm1lbW9yeS9saW51eC5jICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysr KysrKysrKysrCiB0b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvcHJpdmF0ZS5oICAgICAgICAgICAg ICAgICB8IDMxICsrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTg3IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3hlbi1zeXMvTGlu dXgvcHJpdmNtZC5oIGIvdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L3ByaXZjbWQuaAppbmRl eCA3MzJmZjdjMTVhLi45NTMxYjcyOGY5IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3hlbi1z eXMvTGludXgvcHJpdmNtZC5oCisrKyBiL3Rvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9wcml2 Y21kLmgKQEAgLTg2LDYgKzg2LDE1IEBAIHR5cGVkZWYgc3RydWN0IHByaXZjbWRfZG1fb3Agewog CWNvbnN0IHByaXZjbWRfZG1fb3BfYnVmX3QgX191c2VyICp1YnVmczsKIH0gcHJpdmNtZF9kbV9v cF90OwogCit0eXBlZGVmIHN0cnVjdCBwcml2Y21kX21tYXBfcmVzb3VyY2UgeworCWRvbWlkX3Qg ZG9tOworCV9fdTMyIHR5cGU7CisJX191MzIgaWQ7CisJX191MzIgaWR4OworCV9fdTY0IG51bTsK KwlfX3U2NCBhZGRyOworfSBwcml2Y21kX21tYXBfcmVzb3VyY2VfdDsKKwogLyoKICAqIEBjbWQ6 IElPQ1RMX1BSSVZDTURfSFlQRVJDQUxMCiAgKiBAYXJnOiAmcHJpdmNtZF9oeXBlcmNhbGxfdApA QCAtMTAzLDUgKzExMiw3IEBAIHR5cGVkZWYgc3RydWN0IHByaXZjbWRfZG1fb3AgewogCV9JT0Mo X0lPQ19OT05FLCAnUCcsIDUsIHNpemVvZihwcml2Y21kX2RtX29wX3QpKQogI2RlZmluZSBJT0NU TF9QUklWQ01EX1JFU1RSSUNUCQkJCQlcCiAJX0lPQyhfSU9DX05PTkUsICdQJywgNiwgc2l6ZW9m KGRvbWlkX3QpKQorI2RlZmluZSBJT0NUTF9QUklWQ01EX01NQVBfUkVTT1VSQ0UJCQkJXAorCV9J T0MoX0lPQ19OT05FLCAnUCcsIDcsIHNpemVvZihwcml2Y21kX21tYXBfcmVzb3VyY2VfdCkpCiAK ICNlbmRpZiAvKiBfX0xJTlVYX1BVQkxJQ19QUklWQ01EX0hfXyAqLwpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlicy9mb3JlaWdubWVtb3J5L01ha2VmaWxlIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5 L01ha2VmaWxlCmluZGV4IGNiZTgxNWZjZTguLmVlNWMzZmQ2N2UgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnMvZm9yZWlnbm1lbW9yeS9NYWtlZmlsZQorKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1v cnkvTWFrZWZpbGUKQEAgLTIsNyArMiw3IEBAIFhFTl9ST09UID0gJChDVVJESVIpLy4uLy4uLy4u CiBpbmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL1J1bGVzLm1rCiAKIE1BSk9SICAgID0gMQotTUlO T1IgICAgPSAyCitNSU5PUiAgICA9IDMKIFNITElCX0xERkxBR1MgKz0gLVdsLC0tdmVyc2lvbi1z Y3JpcHQ9bGlieGVuZm9yZWlnbm1lbW9yeS5tYXAKIAogQ0ZMQUdTICAgKz0gLVdlcnJvciAtV21p c3NpbmctcHJvdG90eXBlcwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2Nv cmUuYyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9jb3JlLmMKaW5kZXggN2M4NTYyYWU3NC4u NjNmMTJlMjQ1MCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2NvcmUuYwor KysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvY29yZS5jCkBAIC0xNyw2ICsxNyw4IEBACiAj aW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KIAorI2luY2x1ZGUgPHN5cy9t bWFuLmg+CisKICNpbmNsdWRlICJwcml2YXRlLmgiCiAKIHN0YXRpYyBpbnQgYWxsX3Jlc3RyaWN0 X2NiKFhlbnRvb2xjb3JlX19BY3RpdmVfSGFuZGxlICphaCwgZG9taWRfdCBkb21pZCkgewpAQCAt MTM1LDYgKzEzNyw1NyBAQCBpbnQgeGVuZm9yZWlnbm1lbW9yeV9yZXN0cmljdCh4ZW5mb3JlaWdu bWVtb3J5X2hhbmRsZSAqZm1lbSwKICAgICByZXR1cm4gb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV9y ZXN0cmljdChmbWVtLCBkb21pZCk7CiB9CiAKK3hlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFu ZGxlICp4ZW5mb3JlaWdubWVtb3J5X21hcF9yZXNvdXJjZSgKKyAgICB4ZW5mb3JlaWdubWVtb3J5 X2hhbmRsZSAqZm1lbSwgZG9taWRfdCBkb21pZCwgdW5zaWduZWQgaW50IHR5cGUsCisgICAgdW5z aWduZWQgaW50IGlkLCB1bnNpZ25lZCBsb25nIGZyYW1lLCB1bnNpZ25lZCBsb25nIG5yX2ZyYW1l cywKKyAgICB2b2lkICoqcGFkZHIsIGludCBwcm90LCBpbnQgZmxhZ3MpCit7CisgICAgeGVuZm9y ZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZyZXM7CisgICAgaW50IHJjOworCisgICAgLyog Q2hlY2sgZmxhZ3Mgb25seSBjb250YWlucyBQT1NJWCBkZWZpbmVkIHZhbHVlcyAqLworICAgIGlm ICggZmxhZ3MgJiB+KE1BUF9TSEFSRUQgfCBNQVBfUFJJVkFURSkgKQorICAgIHsKKyAgICAgICAg ZXJybm8gPSBFSU5WQUw7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGZyZXMg PSBjYWxsb2MoMSwgc2l6ZW9mKCpmcmVzKSk7CisgICAgaWYgKCAhZnJlcyApCisgICAgeworICAg ICAgICBlcnJubyA9IEVOT01FTTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAg ZnJlcy0+ZG9taWQgPSBkb21pZDsKKyAgICBmcmVzLT50eXBlID0gdHlwZTsKKyAgICBmcmVzLT5p ZCA9IGlkOworICAgIGZyZXMtPmZyYW1lID0gZnJhbWU7CisgICAgZnJlcy0+bnJfZnJhbWVzID0g bnJfZnJhbWVzOworICAgIGZyZXMtPmFkZHIgPSAqcGFkZHI7CisgICAgZnJlcy0+cHJvdCA9IHBy b3Q7CisgICAgZnJlcy0+ZmxhZ3MgPSBmbGFnczsKKworICAgIHJjID0gb3NkZXBfeGVuZm9yZWln bm1lbW9yeV9tYXBfcmVzb3VyY2UoZm1lbSwgZnJlcyk7CisgICAgaWYgKCByYyApCisgICAgewor ICAgICAgICBmcmVlKGZyZXMpOworICAgICAgICBmcmVzID0gTlVMTDsKKyAgICB9IGVsc2UKKyAg ICAgICAgKnBhZGRyID0gZnJlcy0+YWRkcjsKKworICAgIHJldHVybiBmcmVzOworfQorCitpbnQg eGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJjZSgKKyAgICB4ZW5mb3JlaWdubWVtb3J5X2hh bmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZyZXMpCit7Cisg ICAgaW50IHJjID0gb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJjZShmbWVtLCBm cmVzKTsKKworICAgIGZyZWUoZnJlcyk7CisgICAgcmV0dXJuIHJjOworfQorCiAvKgogICogTG9j YWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdu bWVtb3J5L2luY2x1ZGUveGVuZm9yZWlnbm1lbW9yeS5oIGIvdG9vbHMvbGlicy9mb3JlaWdubWVt b3J5L2luY2x1ZGUveGVuZm9yZWlnbm1lbW9yeS5oCmluZGV4IGY0ODE0YzM5MGYuLmQ1OTRiZThk ZjAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9pbmNsdWRlL3hlbmZvcmVp Z25tZW1vcnkuaAorKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvaW5jbHVkZS94ZW5mb3Jl aWdubWVtb3J5LmgKQEAgLTEzOCw2ICsxMzgsNDcgQEAgaW50IHhlbmZvcmVpZ25tZW1vcnlfdW5t YXAoeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sCiBpbnQgeGVuZm9yZWlnbm1lbW9yeV9y ZXN0cmljdCh4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRvbWlkX3QgZG9taWQpOwogCit0eXBlZGVmIHN0cnVjdCB4ZW5mb3JlaWdu bWVtb3J5X3Jlc291cmNlX2hhbmRsZSB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZTsK KworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIG1hcHMgYSBndWVzdCByZXNvdXJjZS4KKyAqCisgKiBA cGFybSBmbWVtIGhhbmRsZSB0byB0aGUgb3BlbiBmb3JlaWdubWVtb3J5IGludGVyZmFjZQorICog QHBhcm0gZG9taWQgdGhlIGRvbWFpbiBpZAorICogQHBhcm0gdHlwZSB0aGUgcmVzb3VyY2UgdHlw ZQorICogQHBhcm0gaWQgdGhlIHR5cGUtc3BlY2lmaWMgcmVzb3VyY2UgaWRlbnRpZmllcgorICog QHBhcm0gZnJhbWUgYmFzZSBmcmFtZSBpbmRleCB3aXRoaW4gdGhlIHJlc291cmNlCisgKiBAcGFy bSBucl9mcmFtZXMgbnVtYmVyIG9mIGZyYW1lcyB0byBtYXAKKyAqIEBwYXJtIHBhZGRyIHBvaW50 ZXIgdG8gYW4gYWRkcmVzcyBwYXNzZWQgdGhyb3VnaCB0byBtbWFwKDIpCisgKiBAcGFybSBwcm90 IHBhc3NlZCB0aHJvdWdoIHRvIG1tYXAoMikKKyAqIEBwYXJtIFBPU0lYLW9ubHkgZmxhZ3MgcGFz c2VkIHRocm91Z2ggdG8gbW1hcCgyKQorICogQHJldHVybiBwb2ludGVyIHRvIGZvcmVpZ25tZW1v cnkgcmVzb3VyY2UgaGFuZGxlIG9uIHN1Y2Nlc3MsIE5VTEwgb24KKyAqICAgICAgICAgZmFpbHVy ZQorICoKKyAqICpwYWRkciBpcyB1c2VkLCBvbiBlbnRyeSwgYXMgYSBoaW50IGFkZHJlc3MgZm9y IGZvcmVpZ24gbWFwIHBsYWNlbWVudAorICogKHNlZSBtbWFwKDIpKSBzbyBzaG91bGQgYmUgc2V0 IHRvIE5VTEwgaWYgbm8gc3BlY2lmaWMgcGxhY2VtZW50IGlzCisgKiByZXF1aXJlZC4gT24gcmV0 dXJuICpwYWRkciBjb250YWlucyB0aGUgYWRkcmVzcyB3aGVyZSB0aGUgcmVzb3VyY2UgaXMKKyAq IG1hcHBlZC4KKyAqIEFzIGZvciB4ZW5mb3JlaWdubWVtb3J5X21hcDIoKSBmbGFncyBpcyBhIHNl dCBvZiBhZGRpdGlvbmFsIGZsYWdzCisgKiBmb3IgbW1hcCgyKS4gTm90IGFsbCBvZiB0aGUgZmxh ZyBjb21iaW5hdGlvbnMgYXJlIHBvc3NpYmxlIGR1ZSB0bworICogaW1wbGVtZW50YXRpb24gZGV0 YWlscyBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zLgorICovCit4ZW5mb3JlaWdubWVtb3J5X3Jlc291 cmNlX2hhbmRsZSAqeGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWln bm1lbW9yeV9oYW5kbGUgKmZtZW0sIGRvbWlkX3QgZG9taWQsIHVuc2lnbmVkIGludCB0eXBlLAor ICAgIHVuc2lnbmVkIGludCBpZCwgdW5zaWduZWQgbG9uZyBmcmFtZSwgdW5zaWduZWQgbG9uZyBu cl9mcmFtZXMsCisgICAgdm9pZCAqKnBhZGRyLCBpbnQgcHJvdCwgaW50IGZsYWdzKTsKKworLyoq CisgKiBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGEgcHJldmlvdXNseSBhY3F1aXJlZCByZXNvdXJj ZS4KKyAqCisgKiBAcGFybSBmbWVtIGhhbmRsZSB0byB0aGUgb3BlbiBmb3JlaWdubWVtb3J5IGlu dGVyZmFjZQorICogQHBhcm0gZnJlcyBoYW5kbGUgdG8gdGhlIGFjcXVpcmVkIHJlc291cmNlCisg KgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb24gZmFpbHVyZSBzZXRzIGVycm5vIGFuZCByZXR1 cm5zIC0xLgorICovCitpbnQgeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJjZSgKKyAgICB4 ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9o YW5kbGUgKmZyZXMpOworCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZm9y ZWlnbm1lbW9yeS9saWJ4ZW5mb3JlaWdubWVtb3J5Lm1hcCBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1l bW9yeS9saWJ4ZW5mb3JlaWdubWVtb3J5Lm1hcAppbmRleCA3MTZlY2FmMTVjLi5kNTMyM2M4N2Q5 IDEwMDY0NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGlieGVuZm9yZWlnbm1lbW9y eS5tYXAKKysrIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpYnhlbmZvcmVpZ25tZW1vcnku bWFwCkBAIC0xNCwzICsxNCw4IEBAIFZFUlNfMS4yIHsKIAlnbG9iYWw6CiAJCXhlbmZvcmVpZ25t ZW1vcnlfbWFwMjsKIH0gVkVSU18xLjE7CitWRVJTXzEuMyB7CisJZ2xvYmFsOgorCQl4ZW5mb3Jl aWdubWVtb3J5X21hcF9yZXNvdXJjZTsKKwkJeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJj ZTsKK30gVkVSU18xLjI7CmRpZmYgLS1naXQgYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGlu dXguYyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saW51eC5jCmluZGV4IDM3NGU0NWFlZDUu LmE2YjQxYjBiN2YgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saW51eC5j CisrKyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saW51eC5jCkBAIC0yNzcsNiArMjc3LDUx IEBAIGludCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X3Jlc3RyaWN0KHhlbmZvcmVpZ25tZW1vcnlf aGFuZGxlICpmbWVtLAogICAgIHJldHVybiBpb2N0bChmbWVtLT5mZCwgSU9DVExfUFJJVkNNRF9S RVNUUklDVCwgJmRvbWlkKTsKIH0KIAoraW50IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfdW5tYXBf cmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sIHhlbmZvcmVpZ25t ZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworICAgIHJldHVybiBtdW5tYXAoZnJlcy0+ YWRkciwgZnJlcy0+bnJfZnJhbWVzIDw8IFBBR0VfU0hJRlQpOworfQorCitpbnQgb3NkZXBfeGVu Zm9yZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUg KmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworICAgIHBy aXZjbWRfbW1hcF9yZXNvdXJjZV90IG1yID0geworICAgICAgICAuZG9tID0gZnJlcy0+ZG9taWQs CisgICAgICAgIC50eXBlID0gZnJlcy0+dHlwZSwKKyAgICAgICAgLmlkID0gZnJlcy0+aWQsCisg ICAgICAgIC5pZHggPSBmcmVzLT5mcmFtZSwKKyAgICAgICAgLm51bSA9IGZyZXMtPm5yX2ZyYW1l cywKKyAgICB9OworICAgIGludCByYzsKKworICAgIGZyZXMtPmFkZHIgPSBtbWFwKGZyZXMtPmFk ZHIsIGZyZXMtPm5yX2ZyYW1lcyA8PCBQQUdFX1NISUZULAorICAgICAgICAgICAgICAgICAgICAg IGZyZXMtPnByb3QsIGZyZXMtPmZsYWdzIHwgTUFQX1NIQVJFRCwgZm1lbS0+ZmQsIDApOworICAg IGlmICggZnJlcy0+YWRkciA9PSBNQVBfRkFJTEVEICkKKyAgICAgICAgcmV0dXJuIC0xOworCisg ICAgbXIuYWRkciA9ICh1aW50cHRyX3QpZnJlcy0+YWRkcjsKKworICAgIHJjID0gaW9jdGwoZm1l bS0+ZmQsIElPQ1RMX1BSSVZDTURfTU1BUF9SRVNPVVJDRSwgJm1yKTsKKyAgICBpZiAoIHJjICkK KyAgICB7CisgICAgICAgIGludCBzYXZlZF9lcnJubzsKKworICAgICAgICBpZiAoIGVycm5vICE9 IEVOT1RUWSApCisgICAgICAgICAgICBQRVJST1IoImlvY3RsIGZhaWxlZCIpOworICAgICAgICBl bHNlCisgICAgICAgICAgICBlcnJubyA9IEVPUE5PVFNVUFA7CisKKyAgICAgICAgc2F2ZWRfZXJy bm8gPSBlcnJubzsKKyAgICAgICAgKHZvaWQpb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9y ZXNvdXJjZShmbWVtLCBmcmVzKTsKKyAgICAgICAgZXJybm8gPSBzYXZlZF9lcnJubzsKKworICAg ICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBMb2Nh bCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS90b29scy9saWJzL2ZvcmVpZ25t ZW1vcnkvcHJpdmF0ZS5oIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L3ByaXZhdGUuaAppbmRl eCAyNDcwZjNjNDZjLi5iMTkxMDAwYjQ5IDEwMDY0NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25t ZW1vcnkvcHJpdmF0ZS5oCisrKyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9wcml2YXRlLmgK QEAgLTQ1LDYgKzQ1LDM3IEBAIHZvaWQgKmNvbXBhdF9tYXBmb3JlaWduX2JhdGNoKHhlbmZvcmVp Z25tZW1faGFuZGxlICpmbWVtLCB1aW50MzJfdCBkb20sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB4ZW5fcGZuX3QgKmFyciwgaW50IG51bSk7CiAjZW5kaWYKIAorc3RydWN0IHhlbmZv cmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlIHsKKyAgICBkb21pZF90IGRvbWlkOworICAgIHVu c2lnbmVkIGludCB0eXBlOworICAgIHVuc2lnbmVkIGludCBpZDsKKyAgICB1bnNpZ25lZCBsb25n IGZyYW1lOworICAgIHVuc2lnbmVkIGxvbmcgbnJfZnJhbWVzOworICAgIHZvaWQgKmFkZHI7Cisg ICAgaW50IHByb3Q7CisgICAgaW50IGZsYWdzOworfTsKKworI2lmbmRlZiBfX2xpbnV4X18KK3N0 YXRpYyBpbmxpbmUgaW50IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAorICAg IHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNl X2hhbmRsZSAqZnJlcykKK3sKKyAgICBlcnJubyA9IEVPUE5PVFNVUFA7CisgICAgcmV0dXJuIC0x OworfQorCitzdGF0aWMgaW5saW5lIGludCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X3VubWFwX3Jl c291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4ZW5mb3JlaWdubWVt b3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcykKK3sKKyAgICByZXR1cm4gMDsKK30KKyNlbHNlCitp bnQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1l bW9yeV9oYW5kbGUgKmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVz KTsKK2ludCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X3VubWFwX3Jlc291cmNlKAorICAgIHhlbmZv cmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRs ZSAqZnJlcyk7CisjZW5kaWYKKwogI2RlZmluZSBQRVJST1IoX2YuLi4pIFwKICAgICB4dGxfbG9n KGZtZW0tPmxvZ2dlciwgWFRMX0VSUk9SLCBlcnJubywgInhlbmZvcmVpZ25tZW1vcnkiLCBfZikK IAotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZl bA==