From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v12 08/11] tools/libxenforeignmemory: add support for resource mapping Date: Tue, 17 Oct 2017 14:24:29 +0100 Message-ID: <20171017132432.24093-9-paul.durrant@citrix.com> References: <20171017132432.24093-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e4RrW-0000FP-Bm for xen-devel@lists.xenproject.org; Tue, 17 Oct 2017 13:24:50 +0000 In-Reply-To: <20171017132432.24093-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: 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 L01ha2VmaWxlCmluZGV4IGFiN2Y4NzNmMjYuLjVjN2Y3OGY2MWQgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnMvZm9yZWlnbm1lbW9yeS9NYWtlZmlsZQorKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1v cnkvTWFrZWZpbGUKQEAgLTIsNyArMiw3IEBAIFhFTl9ST09UID0gJChDVVJESVIpLy4uLy4uLy4u CiBpbmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL1J1bGVzLm1rCiAKIE1BSk9SICAgID0gMQotTUlO T1IgICAgPSAyCitNSU5PUiAgICA9IDMKIFNITElCX0xERkxBR1MgKz0gLVdsLC0tdmVyc2lvbi1z Y3JpcHQ9bGlieGVuZm9yZWlnbm1lbW9yeS5tYXAKIAogQ0ZMQUdTICAgKz0gLVdlcnJvciAtV21p c3NpbmctcHJvdG90eXBlcwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2Nv cmUuYyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9jb3JlLmMKaW5kZXggYTY4OTdkYzU2MS4u OGQzZjlmMTc4ZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2NvcmUuYwor KysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvY29yZS5jCkBAIC0xNyw2ICsxNyw4IEBACiAj aW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KIAorI2luY2x1ZGUgPHN5cy9t bWFuLmg+CisKICNpbmNsdWRlICJwcml2YXRlLmgiCiAKIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxl ICp4ZW5mb3JlaWdubWVtb3J5X29wZW4oeGVudG9vbGxvZ19sb2dnZXIgKmxvZ2dlciwKQEAgLTEy MCw2ICsxMjIsNTcgQEAgaW50IHhlbmZvcmVpZ25tZW1vcnlfcmVzdHJpY3QoeGVuZm9yZWlnbm1l bW9yeV9oYW5kbGUgKmZtZW0sCiAgICAgcmV0dXJuIG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfcmVz dHJpY3QoZm1lbSwgZG9taWQpOwogfQogCit4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRs ZSAqeGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9o YW5kbGUgKmZtZW0sIGRvbWlkX3QgZG9taWQsIHVuc2lnbmVkIGludCB0eXBlLAorICAgIHVuc2ln bmVkIGludCBpZCwgdW5zaWduZWQgbG9uZyBmcmFtZSwgdW5zaWduZWQgbG9uZyBucl9mcmFtZXMs CisgICAgdm9pZCAqKnBhZGRyLCBpbnQgcHJvdCwgaW50IGZsYWdzKQoreworICAgIHhlbmZvcmVp Z25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzOworICAgIGludCByYzsKKworICAgIC8qIENo ZWNrIGZsYWdzIG9ubHkgY29udGFpbnMgUE9TSVggZGVmaW5lZCB2YWx1ZXMgKi8KKyAgICBpZiAo IGZsYWdzICYgfihNQVBfU0hBUkVEIHwgTUFQX1BSSVZBVEUpICkKKyAgICB7CisgICAgICAgIGVy cm5vID0gRUlOVkFMOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBmcmVzID0g Y2FsbG9jKDEsIHNpemVvZigqZnJlcykpOworICAgIGlmICggIWZyZXMgKQorICAgIHsKKyAgICAg ICAgZXJybm8gPSBFTk9NRU07CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGZy ZXMtPmRvbWlkID0gZG9taWQ7CisgICAgZnJlcy0+dHlwZSA9IHR5cGU7CisgICAgZnJlcy0+aWQg PSBpZDsKKyAgICBmcmVzLT5mcmFtZSA9IGZyYW1lOworICAgIGZyZXMtPm5yX2ZyYW1lcyA9IG5y X2ZyYW1lczsKKyAgICBmcmVzLT5hZGRyID0gKnBhZGRyOworICAgIGZyZXMtPnByb3QgPSBwcm90 OworICAgIGZyZXMtPmZsYWdzID0gZmxhZ3M7CisKKyAgICByYyA9IG9zZGVwX3hlbmZvcmVpZ25t ZW1vcnlfbWFwX3Jlc291cmNlKGZtZW0sIGZyZXMpOworICAgIGlmICggcmMgKQorICAgIHsKKyAg ICAgICAgZnJlZShmcmVzKTsKKyAgICAgICAgZnJlcyA9IE5VTEw7CisgICAgfSBlbHNlCisgICAg ICAgICpwYWRkciA9IGZyZXMtPmFkZHI7CisKKyAgICByZXR1cm4gZnJlczsKK30KKworaW50IHhl bmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5k bGUgKmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworICAg IGludCByYyA9IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoZm1lbSwgZnJl cyk7CisKKyAgICBmcmVlKGZyZXMpOworICAgIHJldHVybiByYzsKK30KKwogLyoKICAqIExvY2Fs IHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1l bW9yeS9pbmNsdWRlL3hlbmZvcmVpZ25tZW1vcnkuaCBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9y eS9pbmNsdWRlL3hlbmZvcmVpZ25tZW1vcnkuaAppbmRleCBmNDgxNGMzOTBmLi5kNTk0YmU4ZGYw IDEwMDY0NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvaW5jbHVkZS94ZW5mb3JlaWdu bWVtb3J5LmgKKysrIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2luY2x1ZGUveGVuZm9yZWln bm1lbW9yeS5oCkBAIC0xMzgsNiArMTM4LDQ3IEBAIGludCB4ZW5mb3JlaWdubWVtb3J5X3VubWFw KHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLAogaW50IHhlbmZvcmVpZ25tZW1vcnlfcmVz dHJpY3QoeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkb21pZF90IGRvbWlkKTsKIAordHlwZWRlZiBzdHJ1Y3QgeGVuZm9yZWlnbm1l bW9yeV9yZXNvdXJjZV9oYW5kbGUgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGU7CisK Ky8qKgorICogVGhpcyBmdW5jdGlvbiBtYXBzIGEgZ3Vlc3QgcmVzb3VyY2UuCisgKgorICogQHBh cm0gZm1lbSBoYW5kbGUgdG8gdGhlIG9wZW4gZm9yZWlnbm1lbW9yeSBpbnRlcmZhY2UKKyAqIEBw YXJtIGRvbWlkIHRoZSBkb21haW4gaWQKKyAqIEBwYXJtIHR5cGUgdGhlIHJlc291cmNlIHR5cGUK KyAqIEBwYXJtIGlkIHRoZSB0eXBlLXNwZWNpZmljIHJlc291cmNlIGlkZW50aWZpZXIKKyAqIEBw YXJtIGZyYW1lIGJhc2UgZnJhbWUgaW5kZXggd2l0aGluIHRoZSByZXNvdXJjZQorICogQHBhcm0g bnJfZnJhbWVzIG51bWJlciBvZiBmcmFtZXMgdG8gbWFwCisgKiBAcGFybSBwYWRkciBwb2ludGVy IHRvIGFuIGFkZHJlc3MgcGFzc2VkIHRocm91Z2ggdG8gbW1hcCgyKQorICogQHBhcm0gcHJvdCBw YXNzZWQgdGhyb3VnaCB0byBtbWFwKDIpCisgKiBAcGFybSBQT1NJWC1vbmx5IGZsYWdzIHBhc3Nl ZCB0aHJvdWdoIHRvIG1tYXAoMikKKyAqIEByZXR1cm4gcG9pbnRlciB0byBmb3JlaWdubWVtb3J5 IHJlc291cmNlIGhhbmRsZSBvbiBzdWNjZXNzLCBOVUxMIG9uCisgKiAgICAgICAgIGZhaWx1cmUK KyAqCisgKiAqcGFkZHIgaXMgdXNlZCwgb24gZW50cnksIGFzIGEgaGludCBhZGRyZXNzIGZvciBm b3JlaWduIG1hcCBwbGFjZW1lbnQKKyAqIChzZWUgbW1hcCgyKSkgc28gc2hvdWxkIGJlIHNldCB0 byBOVUxMIGlmIG5vIHNwZWNpZmljIHBsYWNlbWVudCBpcworICogcmVxdWlyZWQuIE9uIHJldHVy biAqcGFkZHIgY29udGFpbnMgdGhlIGFkZHJlc3Mgd2hlcmUgdGhlIHJlc291cmNlIGlzCisgKiBt YXBwZWQuCisgKiBBcyBmb3IgeGVuZm9yZWlnbm1lbW9yeV9tYXAyKCkgZmxhZ3MgaXMgYSBzZXQg b2YgYWRkaXRpb25hbCBmbGFncworICogZm9yIG1tYXAoMikuIE5vdCBhbGwgb2YgdGhlIGZsYWcg Y29tYmluYXRpb25zIGFyZSBwb3NzaWJsZSBkdWUgdG8KKyAqIGltcGxlbWVudGF0aW9uIGRldGFp bHMgb24gZGlmZmVyZW50IHBsYXRmb3Jtcy4KKyAqLworeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJj ZV9oYW5kbGUgKnhlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25t ZW1vcnlfaGFuZGxlICpmbWVtLCBkb21pZF90IGRvbWlkLCB1bnNpZ25lZCBpbnQgdHlwZSwKKyAg ICB1bnNpZ25lZCBpbnQgaWQsIHVuc2lnbmVkIGxvbmcgZnJhbWUsIHVuc2lnbmVkIGxvbmcgbnJf ZnJhbWVzLAorICAgIHZvaWQgKipwYWRkciwgaW50IHByb3QsIGludCBmbGFncyk7CisKKy8qKgor ICogVGhpcyBmdW5jdGlvbiByZWxlYXNlcyBhIHByZXZpb3VzbHkgYWNxdWlyZWQgcmVzb3VyY2Uu CisgKgorICogQHBhcm0gZm1lbSBoYW5kbGUgdG8gdGhlIG9wZW4gZm9yZWlnbm1lbW9yeSBpbnRl cmZhY2UKKyAqIEBwYXJtIGZyZXMgaGFuZGxlIHRvIHRoZSBhY3F1aXJlZCByZXNvdXJjZQorICoK KyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9uIGZhaWx1cmUgc2V0cyBlcnJubyBhbmQgcmV0dXJu cyAtMS4KKyAqLworaW50IHhlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoCisgICAgeGVu Zm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFu ZGxlICpmcmVzKTsKKwogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJzL2ZvcmVp Z25tZW1vcnkvbGlieGVuZm9yZWlnbm1lbW9yeS5tYXAgYi90b29scy9saWJzL2ZvcmVpZ25tZW1v cnkvbGlieGVuZm9yZWlnbm1lbW9yeS5tYXAKaW5kZXggNzE2ZWNhZjE1Yy4uZDUzMjNjODdkOSAx MDA2NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpYnhlbmZvcmVpZ25tZW1vcnku bWFwCisrKyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saWJ4ZW5mb3JlaWdubWVtb3J5Lm1h cApAQCAtMTQsMyArMTQsOCBAQCBWRVJTXzEuMiB7CiAJZ2xvYmFsOgogCQl4ZW5mb3JlaWdubWVt b3J5X21hcDI7CiB9IFZFUlNfMS4xOworVkVSU18xLjMgeworCWdsb2JhbDoKKwkJeGVuZm9yZWln bm1lbW9yeV9tYXBfcmVzb3VyY2U7CisJCXhlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2U7 Cit9IFZFUlNfMS4yOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpbnV4 LmMgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYwppbmRleCAzNzRlNDVhZWQ1Li5h NmI0MWIwYjdmIDEwMDY0NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYwor KysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYwpAQCAtMjc3LDYgKzI3Nyw1MSBA QCBpbnQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV9yZXN0cmljdCh4ZW5mb3JlaWdubWVtb3J5X2hh bmRsZSAqZm1lbSwKICAgICByZXR1cm4gaW9jdGwoZm1lbS0+ZmQsIElPQ1RMX1BSSVZDTURfUkVT VFJJQ1QsICZkb21pZCk7CiB9CiAKK2ludCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X3VubWFwX3Jl c291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4ZW5mb3JlaWdubWVt b3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcykKK3sKKyAgICByZXR1cm4gbXVubWFwKGZyZXMtPmFk ZHIsIGZyZXMtPm5yX2ZyYW1lcyA8PCBQQUdFX1NISUZUKTsKK30KKworaW50IG9zZGVwX3hlbmZv cmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpm bWVtLCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcykKK3sKKyAgICBwcml2 Y21kX21tYXBfcmVzb3VyY2VfdCBtciA9IHsKKyAgICAgICAgLmRvbSA9IGZyZXMtPmRvbWlkLAor ICAgICAgICAudHlwZSA9IGZyZXMtPnR5cGUsCisgICAgICAgIC5pZCA9IGZyZXMtPmlkLAorICAg ICAgICAuaWR4ID0gZnJlcy0+ZnJhbWUsCisgICAgICAgIC5udW0gPSBmcmVzLT5ucl9mcmFtZXMs CisgICAgfTsKKyAgICBpbnQgcmM7CisKKyAgICBmcmVzLT5hZGRyID0gbW1hcChmcmVzLT5hZGRy LCBmcmVzLT5ucl9mcmFtZXMgPDwgUEFHRV9TSElGVCwKKyAgICAgICAgICAgICAgICAgICAgICBm cmVzLT5wcm90LCBmcmVzLT5mbGFncyB8IE1BUF9TSEFSRUQsIGZtZW0tPmZkLCAwKTsKKyAgICBp ZiAoIGZyZXMtPmFkZHIgPT0gTUFQX0ZBSUxFRCApCisgICAgICAgIHJldHVybiAtMTsKKworICAg IG1yLmFkZHIgPSAodWludHB0cl90KWZyZXMtPmFkZHI7CisKKyAgICByYyA9IGlvY3RsKGZtZW0t PmZkLCBJT0NUTF9QUklWQ01EX01NQVBfUkVTT1VSQ0UsICZtcik7CisgICAgaWYgKCByYyApCisg ICAgeworICAgICAgICBpbnQgc2F2ZWRfZXJybm87CisKKyAgICAgICAgaWYgKCBlcnJubyAhPSBF Tk9UVFkgKQorICAgICAgICAgICAgUEVSUk9SKCJpb2N0bCBmYWlsZWQiKTsKKyAgICAgICAgZWxz ZQorICAgICAgICAgICAgZXJybm8gPSBFT1BOT1RTVVBQOworCisgICAgICAgIHNhdmVkX2Vycm5v ID0gZXJybm87CisgICAgICAgICh2b2lkKW9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVz b3VyY2UoZm1lbSwgZnJlcyk7CisgICAgICAgIGVycm5vID0gc2F2ZWRfZXJybm87CisKKyAgICAg ICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiAvKgogICogTG9jYWwg dmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVt b3J5L3ByaXZhdGUuaCBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9wcml2YXRlLmgKaW5kZXgg YzVjMDdjYzRjNC4uODBiMjJiZGJmYyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVt b3J5L3ByaXZhdGUuaAorKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvcHJpdmF0ZS5oCkBA IC00Miw2ICs0MiwzNyBAQCB2b2lkICpjb21wYXRfbWFwZm9yZWlnbl9iYXRjaCh4ZW5mb3JlaWdu bWVtX2hhbmRsZSAqZm1lbSwgdWludDMyX3QgZG9tLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeGVuX3Bmbl90ICphcnIsIGludCBudW0pOwogI2VuZGlmCiAKK3N0cnVjdCB4ZW5mb3Jl aWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSB7CisgICAgZG9taWRfdCBkb21pZDsKKyAgICB1bnNp Z25lZCBpbnQgdHlwZTsKKyAgICB1bnNpZ25lZCBpbnQgaWQ7CisgICAgdW5zaWduZWQgbG9uZyBm cmFtZTsKKyAgICB1bnNpZ25lZCBsb25nIG5yX2ZyYW1lczsKKyAgICB2b2lkICphZGRyOworICAg IGludCBwcm90OworICAgIGludCBmbGFnczsKK307CisKKyNpZm5kZWYgX19saW51eF9fCitzdGF0 aWMgaW5saW5lIGludCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X21hcF9yZXNvdXJjZSgKKyAgICB4 ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9o YW5kbGUgKmZyZXMpCit7CisgICAgZXJybm8gPSBFT1BOT1RTVVBQOworICAgIHJldHVybiAtMTsK K30KKworc3RhdGljIGlubGluZSBpbnQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNv dXJjZSgKKyAgICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9y eV9yZXNvdXJjZV9oYW5kbGUgKmZyZXMpCit7CisgICAgcmV0dXJuIDA7Cit9CisjZWxzZQoraW50 IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1v cnlfaGFuZGxlICpmbWVtLCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcyk7 CitpbnQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJjZSgKKyAgICB4ZW5mb3Jl aWdubWVtb3J5X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUg KmZyZXMpOworI2VuZGlmCisKICNkZWZpbmUgUEVSUk9SKF9mLi4uKSBcCiAgICAgeHRsX2xvZyhm bWVtLT5sb2dnZXIsIFhUTF9FUlJPUiwgZXJybm8sICJ4ZW5mb3JlaWdubWVtb3J5IiwgX2YpCiAK LS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=