From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 03/12] tools/libxenforeignmemory: add support for resource mapping Date: Tue, 5 Sep 2017 12:37:07 +0100 Message-ID: <20170905113716.3960-4-paul.durrant@citrix.com> References: <20170905113716.3960-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 1dpCAV-0007NE-2X for xen-devel@lists.xenproject.org; Tue, 05 Sep 2017 11:37:23 +0000 In-Reply-To: <20170905113716.3960-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+ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dl ci5wYXVAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0 cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cgp2NDoKIC0gRml4ZWQg ZXJybm8gYW5kIHJlbW92ZWQgc2luZ2xlLXVzZSBsYWJlbAogLSBUaGUgdW5tYXAgY2FsbCBub3cg cmV0dXJucyBhIHN0YXR1cwogLSBVc2UgQzk5IGluaXRpYWxpemF0aW9uIGZvciBpb2N0bCBzdHJ1 Y3QKCnYyOgogLSBCdW1wIG1pbm9yIHZlcnNpb24gdXAgdG8gMy4KLS0tCiB0b29scy9pbmNsdWRl L3hlbi1zeXMvTGludXgvcHJpdmNtZC5oICAgICAgICAgICAgICB8IDExICsrKysrCiB0b29scy9s aWJzL2ZvcmVpZ25tZW1vcnkvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAyICstCiB0b29s cy9saWJzL2ZvcmVpZ25tZW1vcnkvY29yZS5jICAgICAgICAgICAgICAgICAgICB8IDUzICsrKysr KysrKysrKysrKysrKysrKysKIC4uLi9saWJzL2ZvcmVpZ25tZW1vcnkvaW5jbHVkZS94ZW5mb3Jl aWdubWVtb3J5LmggIHwgNDEgKysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnMvZm9yZWlnbm1l bW9yeS9saWJ4ZW5mb3JlaWdubWVtb3J5Lm1hcCAgIHwgIDUgKysKIHRvb2xzL2xpYnMvZm9yZWln bm1lbW9yeS9saW51eC5jICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKysrKysr CiB0b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvcHJpdmF0ZS5oICAgICAgICAgICAgICAgICB8IDMx ICsrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTg3IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS90b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgvcHJpdmNt ZC5oIGIvdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L3ByaXZjbWQuaAppbmRleCA3MzJmZjdj MTVhLi45NTMxYjcyOGY5IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgv cHJpdmNtZC5oCisrKyBiL3Rvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9wcml2Y21kLmgKQEAg LTg2LDYgKzg2LDE1IEBAIHR5cGVkZWYgc3RydWN0IHByaXZjbWRfZG1fb3AgewogCWNvbnN0IHBy aXZjbWRfZG1fb3BfYnVmX3QgX191c2VyICp1YnVmczsKIH0gcHJpdmNtZF9kbV9vcF90OwogCit0 eXBlZGVmIHN0cnVjdCBwcml2Y21kX21tYXBfcmVzb3VyY2UgeworCWRvbWlkX3QgZG9tOworCV9f dTMyIHR5cGU7CisJX191MzIgaWQ7CisJX191MzIgaWR4OworCV9fdTY0IG51bTsKKwlfX3U2NCBh ZGRyOworfSBwcml2Y21kX21tYXBfcmVzb3VyY2VfdDsKKwogLyoKICAqIEBjbWQ6IElPQ1RMX1BS SVZDTURfSFlQRVJDQUxMCiAgKiBAYXJnOiAmcHJpdmNtZF9oeXBlcmNhbGxfdApAQCAtMTAzLDUg KzExMiw3IEBAIHR5cGVkZWYgc3RydWN0IHByaXZjbWRfZG1fb3AgewogCV9JT0MoX0lPQ19OT05F LCAnUCcsIDUsIHNpemVvZihwcml2Y21kX2RtX29wX3QpKQogI2RlZmluZSBJT0NUTF9QUklWQ01E X1JFU1RSSUNUCQkJCQlcCiAJX0lPQyhfSU9DX05PTkUsICdQJywgNiwgc2l6ZW9mKGRvbWlkX3Qp KQorI2RlZmluZSBJT0NUTF9QUklWQ01EX01NQVBfUkVTT1VSQ0UJCQkJXAorCV9JT0MoX0lPQ19O T05FLCAnUCcsIDcsIHNpemVvZihwcml2Y21kX21tYXBfcmVzb3VyY2VfdCkpCiAKICNlbmRpZiAv KiBfX0xJTlVYX1BVQkxJQ19QUklWQ01EX0hfXyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9m b3JlaWdubWVtb3J5L01ha2VmaWxlIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L01ha2VmaWxl CmluZGV4IGIxMTAwNzY2MjEuLjdlYjU5Yzc4Y2IgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZm9y ZWlnbm1lbW9yeS9NYWtlZmlsZQorKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvTWFrZWZp bGUKQEAgLTIsNyArMiw3IEBAIFhFTl9ST09UID0gJChDVVJESVIpLy4uLy4uLy4uCiBpbmNsdWRl ICQoWEVOX1JPT1QpL3Rvb2xzL1J1bGVzLm1rCiAKIE1BSk9SICAgID0gMQotTUlOT1IgICAgPSAy CitNSU5PUiAgICA9IDMKIFNITElCX0xERkxBR1MgKz0gLVdsLC0tdmVyc2lvbi1zY3JpcHQ9bGli eGVuZm9yZWlnbm1lbW9yeS5tYXAKIAogQ0ZMQUdTICAgKz0gLVdlcnJvciAtV21pc3NpbmctcHJv dG90eXBlcwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2NvcmUuYyBiL3Rv b2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9jb3JlLmMKaW5kZXggYTY4OTdkYzU2MS4uOGQzZjlmMTc4 ZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2NvcmUuYworKysgYi90b29s cy9saWJzL2ZvcmVpZ25tZW1vcnkvY29yZS5jCkBAIC0xNyw2ICsxNyw4IEBACiAjaW5jbHVkZSA8 YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KIAorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisK ICNpbmNsdWRlICJwcml2YXRlLmgiCiAKIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICp4ZW5mb3Jl aWdubWVtb3J5X29wZW4oeGVudG9vbGxvZ19sb2dnZXIgKmxvZ2dlciwKQEAgLTEyMCw2ICsxMjIs NTcgQEAgaW50IHhlbmZvcmVpZ25tZW1vcnlfcmVzdHJpY3QoeGVuZm9yZWlnbm1lbW9yeV9oYW5k bGUgKmZtZW0sCiAgICAgcmV0dXJuIG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfcmVzdHJpY3QoZm1l bSwgZG9taWQpOwogfQogCit4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqeGVuZm9y ZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZt ZW0sIGRvbWlkX3QgZG9taWQsIHVuc2lnbmVkIGludCB0eXBlLAorICAgIHVuc2lnbmVkIGludCBp ZCwgdW5zaWduZWQgbG9uZyBmcmFtZSwgdW5zaWduZWQgbG9uZyBucl9mcmFtZXMsCisgICAgdm9p ZCAqKnBhZGRyLCBpbnQgcHJvdCwgaW50IGZsYWdzKQoreworICAgIHhlbmZvcmVpZ25tZW1vcnlf cmVzb3VyY2VfaGFuZGxlICpmcmVzOworICAgIGludCByYzsKKworICAgIC8qIENoZWNrIGZsYWdz IG9ubHkgY29udGFpbnMgUE9TSVggZGVmaW5lZCB2YWx1ZXMgKi8KKyAgICBpZiAoIGZsYWdzICYg fihNQVBfU0hBUkVEIHwgTUFQX1BSSVZBVEUpICkKKyAgICB7CisgICAgICAgIGVycm5vID0gRUlO VkFMOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBmcmVzID0gY2FsbG9jKDEs IHNpemVvZigqZnJlcykpOworICAgIGlmICggIWZyZXMgKQorICAgIHsKKyAgICAgICAgZXJybm8g PSBFTk9NRU07CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGZyZXMtPmRvbWlk ID0gZG9taWQ7CisgICAgZnJlcy0+dHlwZSA9IHR5cGU7CisgICAgZnJlcy0+aWQgPSBpZDsKKyAg ICBmcmVzLT5mcmFtZSA9IGZyYW1lOworICAgIGZyZXMtPm5yX2ZyYW1lcyA9IG5yX2ZyYW1lczsK KyAgICBmcmVzLT5hZGRyID0gKnBhZGRyOworICAgIGZyZXMtPnByb3QgPSBwcm90OworICAgIGZy ZXMtPmZsYWdzID0gZmxhZ3M7CisKKyAgICByYyA9IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfbWFw X3Jlc291cmNlKGZtZW0sIGZyZXMpOworICAgIGlmICggcmMgKQorICAgIHsKKyAgICAgICAgZnJl ZShmcmVzKTsKKyAgICAgICAgZnJlcyA9IE5VTEw7CisgICAgfSBlbHNlCisgICAgICAgICpwYWRk ciA9IGZyZXMtPmFkZHI7CisKKyAgICByZXR1cm4gZnJlczsKK30KKworaW50IHhlbmZvcmVpZ25t ZW1vcnlfdW5tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0s IHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVzKQoreworICAgIGludCByYyA9 IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoZm1lbSwgZnJlcyk7CisKKyAg ICBmcmVlKGZyZXMpOworICAgIHJldHVybiByYzsKK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxl czoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9pbmNs dWRlL3hlbmZvcmVpZ25tZW1vcnkuaCBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9pbmNsdWRl L3hlbmZvcmVpZ25tZW1vcnkuaAppbmRleCBmNDgxNGMzOTBmLi5kNTk0YmU4ZGYwIDEwMDY0NAot LS0gYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvaW5jbHVkZS94ZW5mb3JlaWdubWVtb3J5LmgK KysrIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2luY2x1ZGUveGVuZm9yZWlnbm1lbW9yeS5o CkBAIC0xMzgsNiArMTM4LDQ3IEBAIGludCB4ZW5mb3JlaWdubWVtb3J5X3VubWFwKHhlbmZvcmVp Z25tZW1vcnlfaGFuZGxlICpmbWVtLAogaW50IHhlbmZvcmVpZ25tZW1vcnlfcmVzdHJpY3QoeGVu Zm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZtZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb21pZF90IGRvbWlkKTsKIAordHlwZWRlZiBzdHJ1Y3QgeGVuZm9yZWlnbm1lbW9yeV9yZXNv dXJjZV9oYW5kbGUgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGU7CisKKy8qKgorICog VGhpcyBmdW5jdGlvbiBtYXBzIGEgZ3Vlc3QgcmVzb3VyY2UuCisgKgorICogQHBhcm0gZm1lbSBo YW5kbGUgdG8gdGhlIG9wZW4gZm9yZWlnbm1lbW9yeSBpbnRlcmZhY2UKKyAqIEBwYXJtIGRvbWlk IHRoZSBkb21haW4gaWQKKyAqIEBwYXJtIHR5cGUgdGhlIHJlc291cmNlIHR5cGUKKyAqIEBwYXJt IGlkIHRoZSB0eXBlLXNwZWNpZmljIHJlc291cmNlIGlkZW50aWZpZXIKKyAqIEBwYXJtIGZyYW1l IGJhc2UgZnJhbWUgaW5kZXggd2l0aGluIHRoZSByZXNvdXJjZQorICogQHBhcm0gbnJfZnJhbWVz IG51bWJlciBvZiBmcmFtZXMgdG8gbWFwCisgKiBAcGFybSBwYWRkciBwb2ludGVyIHRvIGFuIGFk ZHJlc3MgcGFzc2VkIHRocm91Z2ggdG8gbW1hcCgyKQorICogQHBhcm0gcHJvdCBwYXNzZWQgdGhy b3VnaCB0byBtbWFwKDIpCisgKiBAcGFybSBQT1NJWC1vbmx5IGZsYWdzIHBhc3NlZCB0aHJvdWdo IHRvIG1tYXAoMikKKyAqIEByZXR1cm4gcG9pbnRlciB0byBmb3JlaWdubWVtb3J5IHJlc291cmNl IGhhbmRsZSBvbiBzdWNjZXNzLCBOVUxMIG9uCisgKiAgICAgICAgIGZhaWx1cmUKKyAqCisgKiAq cGFkZHIgaXMgdXNlZCwgb24gZW50cnksIGFzIGEgaGludCBhZGRyZXNzIGZvciBmb3JlaWduIG1h cCBwbGFjZW1lbnQKKyAqIChzZWUgbW1hcCgyKSkgc28gc2hvdWxkIGJlIHNldCB0byBOVUxMIGlm IG5vIHNwZWNpZmljIHBsYWNlbWVudCBpcworICogcmVxdWlyZWQuIE9uIHJldHVybiAqcGFkZHIg Y29udGFpbnMgdGhlIGFkZHJlc3Mgd2hlcmUgdGhlIHJlc291cmNlIGlzCisgKiBtYXBwZWQuCisg KiBBcyBmb3IgeGVuZm9yZWlnbm1lbW9yeV9tYXAyKCkgZmxhZ3MgaXMgYSBzZXQgb2YgYWRkaXRp b25hbCBmbGFncworICogZm9yIG1tYXAoMikuIE5vdCBhbGwgb2YgdGhlIGZsYWcgY29tYmluYXRp b25zIGFyZSBwb3NzaWJsZSBkdWUgdG8KKyAqIGltcGxlbWVudGF0aW9uIGRldGFpbHMgb24gZGlm ZmVyZW50IHBsYXRmb3Jtcy4KKyAqLworeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUg KnhlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFu ZGxlICpmbWVtLCBkb21pZF90IGRvbWlkLCB1bnNpZ25lZCBpbnQgdHlwZSwKKyAgICB1bnNpZ25l ZCBpbnQgaWQsIHVuc2lnbmVkIGxvbmcgZnJhbWUsIHVuc2lnbmVkIGxvbmcgbnJfZnJhbWVzLAor ICAgIHZvaWQgKipwYWRkciwgaW50IHByb3QsIGludCBmbGFncyk7CisKKy8qKgorICogVGhpcyBm dW5jdGlvbiByZWxlYXNlcyBhIHByZXZpb3VzbHkgYWNxdWlyZWQgcmVzb3VyY2UuCisgKgorICog QHBhcm0gZm1lbSBoYW5kbGUgdG8gdGhlIG9wZW4gZm9yZWlnbm1lbW9yeSBpbnRlcmZhY2UKKyAq IEBwYXJtIGZyZXMgaGFuZGxlIHRvIHRoZSBhY3F1aXJlZCByZXNvdXJjZQorICoKKyAqIFJldHVy bnMgMCBvbiBzdWNjZXNzIG9uIGZhaWx1cmUgc2V0cyBlcnJubyBhbmQgcmV0dXJucyAtMS4KKyAq LworaW50IHhlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1l bW9yeV9oYW5kbGUgKmZtZW0sIHhlbmZvcmVpZ25tZW1vcnlfcmVzb3VyY2VfaGFuZGxlICpmcmVz KTsKKwogI2VuZGlmCiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkv bGlieGVuZm9yZWlnbm1lbW9yeS5tYXAgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGlieGVu Zm9yZWlnbm1lbW9yeS5tYXAKaW5kZXggNzE2ZWNhZjE1Yy4uZDUzMjNjODdkOSAxMDA2NDQKLS0t IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpYnhlbmZvcmVpZ25tZW1vcnkubWFwCisrKyBi L3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saWJ4ZW5mb3JlaWdubWVtb3J5Lm1hcApAQCAtMTQs MyArMTQsOCBAQCBWRVJTXzEuMiB7CiAJZ2xvYmFsOgogCQl4ZW5mb3JlaWdubWVtb3J5X21hcDI7 CiB9IFZFUlNfMS4xOworVkVSU18xLjMgeworCWdsb2JhbDoKKwkJeGVuZm9yZWlnbm1lbW9yeV9t YXBfcmVzb3VyY2U7CisJCXhlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2U7Cit9IFZFUlNf MS4yOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2xpbnV4LmMgYi90b29s cy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYwppbmRleCAzNzRlNDVhZWQ1Li5hNmI0MWIwYjdm IDEwMDY0NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYworKysgYi90b29s cy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYwpAQCAtMjc3LDYgKzI3Nyw1MSBAQCBpbnQgb3Nk ZXBfeGVuZm9yZWlnbm1lbW9yeV9yZXN0cmljdCh4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1l bSwKICAgICByZXR1cm4gaW9jdGwoZm1lbS0+ZmQsIElPQ1RMX1BSSVZDTURfUkVTVFJJQ1QsICZk b21pZCk7CiB9CiAKK2ludCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X3VubWFwX3Jlc291cmNlKAor ICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291 cmNlX2hhbmRsZSAqZnJlcykKK3sKKyAgICByZXR1cm4gbXVubWFwKGZyZXMtPmFkZHIsIGZyZXMt Pm5yX2ZyYW1lcyA8PCBQQUdFX1NISUZUKTsKK30KKworaW50IG9zZGVwX3hlbmZvcmVpZ25tZW1v cnlfbWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCB4ZW5m b3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcykKK3sKKyAgICBwcml2Y21kX21tYXBf cmVzb3VyY2VfdCBtciA9IHsKKyAgICAgICAgLmRvbSA9IGZyZXMtPmRvbWlkLAorICAgICAgICAu dHlwZSA9IGZyZXMtPnR5cGUsCisgICAgICAgIC5pZCA9IGZyZXMtPmlkLAorICAgICAgICAuaWR4 ID0gZnJlcy0+ZnJhbWUsCisgICAgICAgIC5udW0gPSBmcmVzLT5ucl9mcmFtZXMsCisgICAgfTsK KyAgICBpbnQgcmM7CisKKyAgICBmcmVzLT5hZGRyID0gbW1hcChmcmVzLT5hZGRyLCBmcmVzLT5u cl9mcmFtZXMgPDwgUEFHRV9TSElGVCwKKyAgICAgICAgICAgICAgICAgICAgICBmcmVzLT5wcm90 LCBmcmVzLT5mbGFncyB8IE1BUF9TSEFSRUQsIGZtZW0tPmZkLCAwKTsKKyAgICBpZiAoIGZyZXMt PmFkZHIgPT0gTUFQX0ZBSUxFRCApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIG1yLmFkZHIg PSAodWludHB0cl90KWZyZXMtPmFkZHI7CisKKyAgICByYyA9IGlvY3RsKGZtZW0tPmZkLCBJT0NU TF9QUklWQ01EX01NQVBfUkVTT1VSQ0UsICZtcik7CisgICAgaWYgKCByYyApCisgICAgeworICAg ICAgICBpbnQgc2F2ZWRfZXJybm87CisKKyAgICAgICAgaWYgKCBlcnJubyAhPSBFTk9UVFkgKQor ICAgICAgICAgICAgUEVSUk9SKCJpb2N0bCBmYWlsZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAg ICAgICAgZXJybm8gPSBFT1BOT1RTVVBQOworCisgICAgICAgIHNhdmVkX2Vycm5vID0gZXJybm87 CisgICAgICAgICh2b2lkKW9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfdW5tYXBfcmVzb3VyY2UoZm1l bSwgZnJlcyk7CisgICAgICAgIGVycm5vID0gc2F2ZWRfZXJybm87CisKKyAgICAgICAgcmV0dXJu IC0xOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVz OgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L3ByaXZh dGUuaCBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9wcml2YXRlLmgKaW5kZXggYzVjMDdjYzRj NC4uODBiMjJiZGJmYyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L3ByaXZh dGUuaAorKysgYi90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvcHJpdmF0ZS5oCkBAIC00Miw2ICs0 MiwzNyBAQCB2b2lkICpjb21wYXRfbWFwZm9yZWlnbl9iYXRjaCh4ZW5mb3JlaWdubWVtX2hhbmRs ZSAqZm1lbSwgdWludDMyX3QgZG9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVu X3Bmbl90ICphcnIsIGludCBudW0pOwogI2VuZGlmCiAKK3N0cnVjdCB4ZW5mb3JlaWdubWVtb3J5 X3Jlc291cmNlX2hhbmRsZSB7CisgICAgZG9taWRfdCBkb21pZDsKKyAgICB1bnNpZ25lZCBpbnQg dHlwZTsKKyAgICB1bnNpZ25lZCBpbnQgaWQ7CisgICAgdW5zaWduZWQgbG9uZyBmcmFtZTsKKyAg ICB1bnNpZ25lZCBsb25nIG5yX2ZyYW1lczsKKyAgICB2b2lkICphZGRyOworICAgIGludCBwcm90 OworICAgIGludCBmbGFnczsKK307CisKKyNpZm5kZWYgX19saW51eF9fCitzdGF0aWMgaW5saW5l IGludCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X21hcF9yZXNvdXJjZSgKKyAgICB4ZW5mb3JlaWdu bWVtb3J5X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZy ZXMpCit7CisgICAgZXJybm8gPSBFT1BOT1RTVVBQOworICAgIHJldHVybiAtMTsKK30KKworc3Rh dGljIGlubGluZSBpbnQgb3NkZXBfeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJjZSgKKyAg ICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJj ZV9oYW5kbGUgKmZyZXMpCit7CisgICAgcmV0dXJuIDA7Cit9CisjZWxzZQoraW50IG9zZGVwX3hl bmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxl ICpmbWVtLCB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hhbmRsZSAqZnJlcyk7CitpbnQgb3Nk ZXBfeGVuZm9yZWlnbm1lbW9yeV91bm1hcF9yZXNvdXJjZSgKKyAgICB4ZW5mb3JlaWdubWVtb3J5 X2hhbmRsZSAqZm1lbSwgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZyZXMpOwor I2VuZGlmCisKICNkZWZpbmUgUEVSUk9SKF9mLi4uKSBcCiAgICAgeHRsX2xvZyhmbWVtLT5sb2dn ZXIsIFhUTF9FUlJPUiwgZXJybm8sICJ4ZW5mb3JlaWdubWVtb3J5IiwgX2YpCiAKLS0gCjIuMTEu MAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=