From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulina Szubarczyk Subject: [PATCH v6 1/2] libs/gnttab: introduce grant copy interface Date: Wed, 7 Sep 2016 12:40:59 +0200 Message-ID: <1473244860-6072-2-git-send-email-paulinaszubarczyk@gmail.com> References: <1473244860-6072-1-git-send-email-paulinaszubarczyk@gmail.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 1bhaIS-0005GF-Pn for xen-devel@lists.xenproject.org; Wed, 07 Sep 2016 10:41:36 +0000 Received: by mail-lf0-f65.google.com with SMTP id l131so600556lfl.0 for ; Wed, 07 Sep 2016 03:41:35 -0700 (PDT) In-Reply-To: <1473244860-6072-1-git-send-email-paulinaszubarczyk@gmail.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: sstabellini@kernel.org, wei.liu2@citrix.com, Paulina Szubarczyk , ian.jackson@eu.citrix.com, qemu-devel@nongnu.org, david.vrabel@citrix.com, anthony.perard@citrix.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org SW4gYSBsaW51eCBwYXJ0IGFuIGlvY3RsKGdudGRldiwgSU9DVExfR05UREVWX0dSQU5UX0NPUFks IC4uKQpzeXN0ZW0gY2FsbCBpcyBpbnZva2VkLiBJbiBtaW5pLW9zIHRoZSBvcGVyYXRpb24gaXMg eWV0IG5vdAppbXBsZW1lbnRlZC4gRm9yIHRoZSBPU3MgdGhhdCBkb2VzIG5vdCBpbXBsZW1lbnQg Z250dGFiIHRoZQpjYWxsIG9mIHRoZSBncmFudCBjb3B5IG9wZXJhdGlvbiBjYXVzZXMgYWJvcnQu CgpTaWduZWQtb2ZmLWJ5OiBQYXVsaW5hIFN6dWJhcmN6eWsgPHBhdWxpbmFzenViYXJjenlrQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5j b20+CgotLS0KIHRvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9nbnRkZXYuaCAgfCAyMSArKysr KysrKysrCiB0b29scy9saWJzL2dudHRhYi9NYWtlZmlsZSAgICAgICAgICAgIHwgIDIgKy0KIHRv b2xzL2xpYnMvZ250dGFiL2dudHRhYl9jb3JlLmMgICAgICAgfCAgNiArKysKIHRvb2xzL2xpYnMv Z250dGFiL2dudHRhYl91bmltcC5jICAgICAgfCAgNiArKysKIHRvb2xzL2xpYnMvZ250dGFiL2lu Y2x1ZGUveGVuZ250dGFiLmggfCAyOCArKysrKysrKysrKysrCiB0b29scy9saWJzL2dudHRhYi9s aWJ4ZW5nbnR0YWIubWFwICAgIHwgIDUgKysrCiB0b29scy9saWJzL2dudHRhYi9saW51eC5jICAg ICAgICAgICAgIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xz L2xpYnMvZ250dGFiL21pbmlvcy5jICAgICAgICAgICAgfCAgNiArKysKIHRvb2xzL2xpYnMvZ250 dGFiL3ByaXZhdGUuaCAgICAgICAgICAgfCAgNCArKwogOSBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUveGVu LXN5cy9MaW51eC9nbnRkZXYuaCBiL3Rvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9nbnRkZXYu aAppbmRleCBjYWY2ZmI0Li4wY2EwN2M5IDEwMDY0NAotLS0gYS90b29scy9pbmNsdWRlL3hlbi1z eXMvTGludXgvZ250ZGV2LmgKKysrIGIvdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L2dudGRl di5oCkBAIC0xNDcsNCArMTQ3LDI1IEBAIHN0cnVjdCBpb2N0bF9nbnRkZXZfdW5tYXBfbm90aWZ5 IHsKIC8qIFNlbmQgYW4gaW50ZXJydXB0IG9uIHRoZSBpbmRpY2F0ZWQgZXZlbnQgY2hhbm5lbCAq LwogI2RlZmluZSBVTk1BUF9OT1RJRllfU0VORF9FVkVOVCAweDIKIAorc3RydWN0IGlvY3RsX2du dGRldl9ncmFudF9jb3B5X3NlZ21lbnQgeworICAgIHVuaW9uIHsKKyAgICAgICAgdm9pZCAqdmly dDsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHJlZjsKKyAgICAgICAg ICAgIHVpbnQxNl90IG9mZnNldDsKKyAgICAgICAgICAgIHVpbnQxNl90IGRvbWlkOworICAgICAg ICB9IGZvcmVpZ247CisgICAgfSBzb3VyY2UsIGRlc3Q7CisgICAgdWludDE2X3QgbGVuOworICAg IHVpbnQxNl90IGZsYWdzOworICAgIGludDE2X3Qgc3RhdHVzOworfTsKKworI2RlZmluZSBJT0NU TF9HTlRERVZfR1JBTlRfQ09QWSBcCitfSU9DKF9JT0NfTk9ORSwgJ0cnLCA4LCBzaXplb2Yoc3Ry dWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5KSkKK3N0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRf Y29weSB7CisgICAgdW5zaWduZWQgaW50IGNvdW50OworICAgIHN0cnVjdCBpb2N0bF9nbnRkZXZf Z3JhbnRfY29weV9zZWdtZW50ICpzZWdtZW50czsKK307CisKICNlbmRpZiAvKiBfX0xJTlVYX1BV QkxJQ19HTlRERVZfSF9fICovCmRpZmYgLS1naXQgYS90b29scy9saWJzL2dudHRhYi9NYWtlZmls ZSBiL3Rvb2xzL2xpYnMvZ250dGFiL01ha2VmaWxlCmluZGV4IGFmNjQ1NDIuLjk1YzJjZDggMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZ250dGFiL01ha2VmaWxlCisrKyBiL3Rvb2xzL2xpYnMvZ250 dGFiL01ha2VmaWxlCkBAIC0yLDcgKzIsNyBAQCBYRU5fUk9PVCA9ICQoQ1VSRElSKS8uLi8uLi8u LgogaW5jbHVkZSAkKFhFTl9ST09UKS90b29scy9SdWxlcy5tawogCiBNQUpPUiAgICA9IDEKLU1J Tk9SICAgID0gMAorTUlOT1IgICAgPSAxCiBTSExJQl9MREZMQUdTICs9IC1XbCwtLXZlcnNpb24t c2NyaXB0PWxpYnhlbmdudHRhYi5tYXAKIAogQ0ZMQUdTICAgKz0gLVdlcnJvciAtV21pc3Npbmct cHJvdG90eXBlcwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9nbnR0YWIvZ250dGFiX2NvcmUuYyBi L3Rvb2xzL2xpYnMvZ250dGFiL2dudHRhYl9jb3JlLmMKaW5kZXggNWQwNDc0ZC4uOTY4YzgzMyAx MDA2NDQKLS0tIGEvdG9vbHMvbGlicy9nbnR0YWIvZ250dGFiX2NvcmUuYworKysgYi90b29scy9s aWJzL2dudHRhYi9nbnR0YWJfY29yZS5jCkBAIC0xMTMsNiArMTEzLDEyIEBAIGludCB4ZW5nbnR0 YWJfdW5tYXAoeGVuZ250dGFiX2hhbmRsZSAqeGd0LCB2b2lkICpzdGFydF9hZGRyZXNzLCB1aW50 MzJfdCBjb3VudCkKICAgICByZXR1cm4gb3NkZXBfZ250dGFiX3VubWFwKHhndCwgc3RhcnRfYWRk cmVzcywgY291bnQpOwogfQogCitpbnQgeGVuZ250dGFiX2dyYW50X2NvcHkoeGVuZ250dGFiX2hh bmRsZSAqeGd0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvdW50LAorICAg ICAgICAgICAgICAgICAgICAgICAgIHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCAqc2Vn cykKK3sKKyAgICByZXR1cm4gb3NkZXBfZ250dGFiX2dyYW50X2NvcHkoeGd0LCBjb3VudCwgc2Vn cyk7Cit9CiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlicy9nbnR0YWIvZ250dGFiX3VuaW1wLmMgYi90b29scy9saWJzL2dudHRhYi9nbnR0 YWJfdW5pbXAuYwppbmRleCBiM2E0YTIwLi44MjllY2VkIDEwMDY0NAotLS0gYS90b29scy9saWJz L2dudHRhYi9nbnR0YWJfdW5pbXAuYworKysgYi90b29scy9saWJzL2dudHRhYi9nbnR0YWJfdW5p bXAuYwpAQCAtNzgsNiArNzgsMTIgQEAgaW50IHhlbmdudHRhYl91bm1hcCh4ZW5nbnR0YWJfaGFu ZGxlICp4Z3QsIHZvaWQgKnN0YXJ0X2FkZHJlc3MsIHVpbnQzMl90IGNvdW50KQogICAgIGFib3J0 KCk7CiB9CiAKK2ludCB4ZW5nbnR0YWJfY29weV9ncmFudCh4ZW5nbnR0YWJfaGFuZGxlICp4Z3Qs CisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgeGVuZ250dGFiX2NvcHlfZ3JhbnRfc2VnbWVudF90ICpzZWdzKQoreworICAg IGFib3J0KCk7Cit9CiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlicy9nbnR0YWIvaW5jbHVkZS94ZW5nbnR0YWIuaCBiL3Rvb2xzL2xpYnMv Z250dGFiL2luY2x1ZGUveGVuZ250dGFiLmgKaW5kZXggMDQzMWRjZi4uMzViZTZjMSAxMDA2NDQK LS0tIGEvdG9vbHMvbGlicy9nbnR0YWIvaW5jbHVkZS94ZW5nbnR0YWIuaAorKysgYi90b29scy9s aWJzL2dudHRhYi9pbmNsdWRlL3hlbmdudHRhYi5oCkBAIC0yNTgsNiArMjU4LDM0IEBAIGludCB4 ZW5nbnR0YWJfdW5tYXAoeGVuZ250dGFiX2hhbmRsZSAqeGd0LCB2b2lkICpzdGFydF9hZGRyZXNz LCB1aW50MzJfdCBjb3VudCk7CiBpbnQgeGVuZ250dGFiX3NldF9tYXhfZ3JhbnRzKHhlbmdudHRh Yl9oYW5kbGUgKnhndCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnJf Z3JhbnRzKTsKIAorc3RydWN0IHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnQgeworICAgIHVu aW9uIHhlbmdudHRhYl9jb3B5X3B0ciB7CisgICAgICAgIHZvaWQgKnZpcnQ7CisgICAgICAgIHN0 cnVjdCB7CisgICAgICAgICAgICB1aW50MzJfdCByZWY7CisgICAgICAgICAgICB1aW50MTZfdCBv ZmZzZXQ7CisgICAgICAgICAgICB1aW50MTZfdCBkb21pZDsKKyAgICAgICAgfSBmb3JlaWduOwor ICAgIH0gc291cmNlLCBkZXN0OworICAgIHVpbnQxNl90IGxlbjsKKyAgICB1aW50MTZfdCBmbGFn czsKKyAgICBpbnQxNl90IHN0YXR1czsKK307CisKK3R5cGVkZWYgc3RydWN0IHhlbmdudHRhYl9n cmFudF9jb3B5X3NlZ21lbnQgeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90OworCisvKioK KyAqIENvcHkgbWVtb3J5IGZyb20gb3IgdG8gZ3JhbnQgcmVmZXJlbmNlcy4gVGhlIGluZm9ybWF0 aW9uIG9mIGVhY2ggb3BlcmF0aW9ucworICogYXJlIGNvbnRhaW5lZCBpbiAneGVuZ250dGFiX2dy YW50X2NvcHlfc2VnbWVudF90Jy4gVGhlIEBmbGFnIHZhbHVlIGluZGljYXRlCisgKiB0aGUgZGly ZWN0aW9uIG9mIGFuIG9wZXJhdGlvbiAoR05UQ09QWV9zb3VyY2VfZ3JlZlxHTlRDT1BZX2Rlc3Rf Z3JlZikuCisgKgorICogRm9yIGVhY2ggc2VnbWVudCwgQHZpcnQgbWF5IGNyb3NzIGEgcGFnZSBi b3VuZGFyeSBidXQgQG9mZnNldCArIEBsZW4KKyAqIG11c3Qgbm90IGV4Y2VlZCBYRU5fUEFHRV9T SVpFLgorICovCitpbnQgeGVuZ250dGFiX2dyYW50X2NvcHkoeGVuZ250dGFiX2hhbmRsZSAqeGd0 LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvdW50LAorICAgICAgICAgICAg ICAgICAgICAgICAgIHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCAqc2Vncyk7CisKIC8q CiAgKiBHcmFudCBTaGFyaW5nIEludGVyZmFjZSAoYWxsb2NhdGluZyBhbmQgZ3JhbnRpbmcgcGFn ZXMgdG8gb3RoZXJzKQogICovCmRpZmYgLS1naXQgYS90b29scy9saWJzL2dudHRhYi9saWJ4ZW5n bnR0YWIubWFwIGIvdG9vbHMvbGlicy9nbnR0YWIvbGlieGVuZ250dGFiLm1hcAppbmRleCBkYzcz N2FjLi5mNzhkYTIyIDEwMDY0NAotLS0gYS90b29scy9saWJzL2dudHRhYi9saWJ4ZW5nbnR0YWIu bWFwCisrKyBiL3Rvb2xzL2xpYnMvZ250dGFiL2xpYnhlbmdudHRhYi5tYXAKQEAgLTIxLDMgKzIx LDggQEAgVkVSU18xLjAgewogCQl4ZW5nbnRzaHJfdW5zaGFyZTsKIAlsb2NhbDogKjsgLyogRG8g bm90IGV4cG9zZSBhbnl0aGluZyBieSBkZWZhdWx0ICovCiB9OworCitWRVJTXzEuMSB7CisgICAg Z2xvYmFsOgorICAgICAgICB4ZW5nbnR0YWJfZ3JhbnRfY29weTsKK30gVkVSU18xLjA7CmRpZmYg LS1naXQgYS90b29scy9saWJzL2dudHRhYi9saW51eC5jIGIvdG9vbHMvbGlicy9nbnR0YWIvbGlu dXguYwppbmRleCA3YjBmYmE0Li42YmQ5YmQyIDEwMDY0NAotLS0gYS90b29scy9saWJzL2dudHRh Yi9saW51eC5jCisrKyBiL3Rvb2xzL2xpYnMvZ250dGFiL2xpbnV4LmMKQEAgLTIzLDYgKzIzLDcg QEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxz dHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRkZWYuaD4KIAogI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgog I2luY2x1ZGUgPHN5cy9tbWFuLmg+CkBAIC0yMzUsNiArMjM2LDgyIEBAIGludCBvc2RlcF9nbnR0 YWJfdW5tYXAoeGVuZ250dGFiX2hhbmRsZSAqeGd0LAogICAgIHJldHVybiAwOwogfQogCitpbnQg b3NkZXBfZ250dGFiX2dyYW50X2NvcHkoeGVuZ250dGFiX2hhbmRsZSAqeGd0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCAqc2VncykKK3sKKyAgICBpbnQg cmM7CisgICAgaW50IGZkID0geGd0LT5mZDsKKyAgICBzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50 X2NvcHkgY29weTsKKworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBp b2N0bF9nbnRkZXZfZ3JhbnRfY29weV9zZWdtZW50KSAhPQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCkpOworCisgICAgWEVO R05UVEFCX0JVSUxEX0JVR19PTihfX2FsaWdub2ZfXyhzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50 X2NvcHlfc2VnbWVudCkgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYWxpZ25vZl9f KHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCkpOworCisgICAgWEVOR05UVEFCX0JVSUxE X0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS52aXJ0KSAhPQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoeGVuZ250dGFiX2dyYW50X2NvcHlfc2Vn bWVudF90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLnZpcnQp KTsKKyAgICBYRU5HTlRUQUJfQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpb2N0bF9nbnRk ZXZfZ3JhbnRfY29weV9zZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc291cmNlLmZvcmVpZ24pICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRv Zih4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzb3VyY2UuZm9yZWlnbikpOworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdf T04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZm9yZWlnbi5yZWYpICE9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih4ZW5nbnR0YWJfZ3JhbnRfY29weV9z ZWdtZW50X3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZm9y ZWlnbikpOworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3Rs X2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzb3VyY2UuZm9yZWlnbi5vZmZzZXQpICE9CisgICAgICAgICAgICAgICAgICAgICAg ICAgICBvZmZzZXRvZih4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZm9yZWlnbi5vZmZzZXQpKTsKKyAgICBY RU5HTlRUQUJfQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRf Y29weV9zZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNl LmZvcmVpZ24uZG9taWQpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih4 ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzb3VyY2UuZm9yZWlnbi5kb21pZCkpOworCisgICAgWEVOR05UVEFCX0JVSUxE X0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QudmlydCkgIT0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21l bnRfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QudmlydCkpOwor ICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9n cmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk ZXN0LmZvcmVpZ24pICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih4ZW5n bnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZXN0LmZvcmVpZ24pKTsKKyAgICBYRU5HTlRUQUJfQlVJTERfQlVHX09OKG9mZnNl dG9mKHN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weV9zZWdtZW50LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGVzdC5mb3JlaWduLnJlZikgIT0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QuZm9yZWlnbikpOworICAg IFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFu dF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0 LmZvcmVpZ24ub2Zmc2V0KSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yo eGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGVzdC5mb3JlaWduLm9mZnNldCkpOworICAgIFhFTkdOVFRBQl9CVUlMRF9C VUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LmZvcmVpZ24uZG9taWQpICE9 CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih4ZW5nbnR0YWJfZ3JhbnRfY29w eV9zZWdtZW50X3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LmZv cmVpZ24uZG9taWQpKTsKKworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3Ry dWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZW4pICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXRvZih4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsIGxlbikpOworICAgIFhFTkdOVFRB Ql9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3Nl Z21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgIT0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3Nl Z21lbnRfdCwgZmxhZ3MpKTsKKyAgICBYRU5HTlRUQUJfQlVJTERfQlVHX09OKG9mZnNldG9mKHN0 cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weV9zZWdtZW50LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdHVzKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0b2YoeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90LCBzdGF0dXMpKTsKKworICAg IGNvcHkuc2VnbWVudHMgPSAoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQg KilzZWdzOworICAgIGNvcHkuY291bnQgPSBjb3VudDsKKworICAgIHJjID0gaW9jdGwoZmQsIElP Q1RMX0dOVERFVl9HUkFOVF9DT1BZLCAmY29weSk7CisgICAgaWYgKHJjKQorICAgICAgICBHVEVS Uk9SKHhndC0+bG9nZ2VyLCAiaW9jdGwgR1JBTlQgQ09QWSBmYWlsZWQgJWQgIiwgZXJybm8pOwor CisgICAgcmV0dXJuIHJjOworfQorCiBpbnQgb3NkZXBfZ250c2hyX29wZW4oeGVuZ250c2hyX2hh bmRsZSAqeGdzKQogewogICAgIGludCBmZCA9IG9wZW4oREVWWEVOICJnbnRhbGxvYyIsIE9fUkRX Uik7CmRpZmYgLS1naXQgYS90b29scy9saWJzL2dudHRhYi9taW5pb3MuYyBiL3Rvb2xzL2xpYnMv Z250dGFiL21pbmlvcy5jCmluZGV4IDdlMDQxNzQuLjA5NTFiYzkgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnMvZ250dGFiL21pbmlvcy5jCisrKyBiL3Rvb2xzL2xpYnMvZ250dGFiL21pbmlvcy5jCkBA IC0xMDYsNiArMTA2LDEyIEBAIGludCBvc2RlcF9nbnR0YWJfc2V0X21heF9ncmFudHMoeGVuZ250 dGFiX2hhbmRsZSAqeGd0LCB1aW50MzJfdCBjb3VudCkKICAgICByZXR1cm4gcmV0OwogfQogCitp bnQgb3NkZXBfZ250dGFiX2dyYW50X2NvcHkoeGVuZ250dGFiX2hhbmRsZSAqeGd0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvdW50LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCAqc2VncykKK3sKKyAgICBy ZXR1cm4gLTE7Cit9CiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlicy9nbnR0YWIvcHJpdmF0ZS5oIGIvdG9vbHMvbGlicy9nbnR0YWIvcHJp dmF0ZS5oCmluZGV4IDJiZGMwZjIuLmY4ZDIzNGEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZ250 dGFiL3ByaXZhdGUuaAorKysgYi90b29scy9saWJzL2dudHRhYi9wcml2YXRlLmgKQEAgLTMwLDYg KzMwLDEwIEBAIHZvaWQgKm9zZGVwX2dudHRhYl9ncmFudF9tYXAoeGVuZ250dGFiX2hhbmRsZSAq eGd0LAogaW50IG9zZGVwX2dudHRhYl91bm1hcCh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsCiAgICAg ICAgICAgICAgICAgICAgICAgIHZvaWQgKnN0YXJ0X2FkZHJlc3MsCiAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IGNvdW50KTsKK2ludCBvc2RlcF9nbnR0YWJfZ3JhbnRfY29weSh4ZW5n bnR0YWJfaGFuZGxlICp4Z3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg Y291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuZ250dGFiX2dyYW50X2NvcHlf c2VnbWVudF90ICpzZWdzKTsKKwogaW50IG9zZGVwX2dudHNocl9vcGVuKHhlbmdudHNocl9oYW5k bGUgKnhncyk7CiBpbnQgb3NkZXBfZ250c2hyX2Nsb3NlKHhlbmdudHNocl9oYW5kbGUgKnhncyk7 CiAKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==