From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulina Szubarczyk Subject: [PATCH v4 1/2] Interface for grant copy operation in libs. Date: Tue, 2 Aug 2016 16:06:29 +0200 Message-ID: <1470146790-6168-2-git-send-email-paulinaszubarczyk@gmail.com> References: <1470146790-6168-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.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUaLR-0001ai-7O for xen-devel@lists.xenproject.org; Tue, 02 Aug 2016 14:06:57 +0000 Received: by mail-lf0-f65.google.com with SMTP id 33so10133624lfw.3 for ; Tue, 02 Aug 2016 07:06:55 -0700 (PDT) In-Reply-To: <1470146790-6168-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 YWlsLmNvbT4KLS0tCkNoYW5nZXMgc2luY2UgdjM6Ci0gcmV2ZXJ0IHRvIGNhc3QgZnJvbSB4ZW5n bnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QKICB0byBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weS4K LSBhZGRlZCBjb21waWxlLXRpbWUgY2hlY2sgdG8gY29tcGFyZSB0aGUgbGlicwogIHhlbmdudHRh Yl9ncmFudF9jb3B5X3NlZ21lbnRfdCB3aXRoIHRoZSBpb2N0bCBzdHJ1Y3R1cmUuCiAgVGhlIHBh dGNoIHJlbGllcyBvbiBXZWkgcGF0Y2ggaW50cm9kdWNpbmcgWEVOR05UVEFCX0JVSUxEX0JVR19P TiAgCiAgaW4gbGlicy9nbnR0YWIuCi0tLQogdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L2du dGRldi5oICB8IDIxICsrKysrKysrKysKIHRvb2xzL2xpYnMvZ250dGFiL01ha2VmaWxlICAgICAg ICAgICAgfCAgMiArLQogdG9vbHMvbGlicy9nbnR0YWIvZ250dGFiX2NvcmUuYyAgICAgICB8ICA2 ICsrKwogdG9vbHMvbGlicy9nbnR0YWIvZ250dGFiX3VuaW1wLmMgICAgICB8ICA2ICsrKwogdG9v bHMvbGlicy9nbnR0YWIvaW5jbHVkZS94ZW5nbnR0YWIuaCB8IDI4ICsrKysrKysrKysrKysKIHRv b2xzL2xpYnMvZ250dGFiL2xpYnhlbmdudHRhYi5tYXAgICAgfCAgNSArKysKIHRvb2xzL2xpYnMv Z250dGFiL2xpbnV4LmMgICAgICAgICAgICAgfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogdG9vbHMvbGlicy9nbnR0YWIvbWluaW9zLmMgICAgICAgICAgICB8ICA2ICsr KwogdG9vbHMvbGlicy9nbnR0YWIvcHJpdmF0ZS5oICAgICAgICAgICB8ICA0ICsrCiA5IGZpbGVz IGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv dG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L2dudGRldi5oIGIvdG9vbHMvaW5jbHVkZS94ZW4t c3lzL0xpbnV4L2dudGRldi5oCmluZGV4IGNhZjZmYjQuLjBjYTA3YzkgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9nbnRkZXYuaAorKysgYi90b29scy9pbmNsdWRlL3hl bi1zeXMvTGludXgvZ250ZGV2LmgKQEAgLTE0Nyw0ICsxNDcsMjUgQEAgc3RydWN0IGlvY3RsX2du dGRldl91bm1hcF9ub3RpZnkgewogLyogU2VuZCBhbiBpbnRlcnJ1cHQgb24gdGhlIGluZGljYXRl ZCBldmVudCBjaGFubmVsICovCiAjZGVmaW5lIFVOTUFQX05PVElGWV9TRU5EX0VWRU5UIDB4Mgog CitzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCB7CisgICAgdW5pb24gewor ICAgICAgICB2b2lkICp2aXJ0OworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDMy X3QgcmVmOworICAgICAgICAgICAgdWludDE2X3Qgb2Zmc2V0OworICAgICAgICAgICAgdWludDE2 X3QgZG9taWQ7CisgICAgICAgIH0gZm9yZWlnbjsKKyAgICB9IHNvdXJjZSwgZGVzdDsKKyAgICB1 aW50MTZfdCBsZW47CisgICAgdWludDE2X3QgZmxhZ3M7CisgICAgaW50MTZfdCBzdGF0dXM7Cit9 OworCisjZGVmaW5lIElPQ1RMX0dOVERFVl9HUkFOVF9DT1BZIFwKK19JT0MoX0lPQ19OT05FLCAn RycsIDgsIHNpemVvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHkpKQorc3RydWN0IGlv Y3RsX2dudGRldl9ncmFudF9jb3B5IHsKKyAgICB1bnNpZ25lZCBpbnQgY291bnQ7CisgICAgc3Ry dWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQgKnNlZ21lbnRzOworfTsKKwogI2Vu ZGlmIC8qIF9fTElOVVhfUFVCTElDX0dOVERFVl9IX18gKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnMvZ250dGFiL01ha2VmaWxlIGIvdG9vbHMvbGlicy9nbnR0YWIvTWFrZWZpbGUKaW5kZXggYWY2 NDU0Mi4uOTVjMmNkOCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9nbnR0YWIvTWFrZWZpbGUKKysr IGIvdG9vbHMvbGlicy9nbnR0YWIvTWFrZWZpbGUKQEAgLTIsNyArMiw3IEBAIFhFTl9ST09UID0g JChDVVJESVIpLy4uLy4uLy4uCiBpbmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL1J1bGVzLm1rCiAK IE1BSk9SICAgID0gMQotTUlOT1IgICAgPSAwCitNSU5PUiAgICA9IDEKIFNITElCX0xERkxBR1Mg Kz0gLVdsLC0tdmVyc2lvbi1zY3JpcHQ9bGlieGVuZ250dGFiLm1hcAogCiBDRkxBR1MgICArPSAt V2Vycm9yIC1XbWlzc2luZy1wcm90b3R5cGVzCmRpZmYgLS1naXQgYS90b29scy9saWJzL2dudHRh Yi9nbnR0YWJfY29yZS5jIGIvdG9vbHMvbGlicy9nbnR0YWIvZ250dGFiX2NvcmUuYwppbmRleCA1 ZDA0NzRkLi45NjhjODMzIDEwMDY0NAotLS0gYS90b29scy9saWJzL2dudHRhYi9nbnR0YWJfY29y ZS5jCisrKyBiL3Rvb2xzL2xpYnMvZ250dGFiL2dudHRhYl9jb3JlLmMKQEAgLTExMyw2ICsxMTMs MTIgQEAgaW50IHhlbmdudHRhYl91bm1hcCh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsIHZvaWQgKnN0 YXJ0X2FkZHJlc3MsIHVpbnQzMl90IGNvdW50KQogICAgIHJldHVybiBvc2RlcF9nbnR0YWJfdW5t YXAoeGd0LCBzdGFydF9hZGRyZXNzLCBjb3VudCk7CiB9CiAKK2ludCB4ZW5nbnR0YWJfZ3JhbnRf Y29weSh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgeGVuZ250dGFiX2dyYW50X2Nv cHlfc2VnbWVudF90ICpzZWdzKQoreworICAgIHJldHVybiBvc2RlcF9nbnR0YWJfZ3JhbnRfY29w eSh4Z3QsIGNvdW50LCBzZWdzKTsKK30KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2Rl OiBDCmRpZmYgLS1naXQgYS90b29scy9saWJzL2dudHRhYi9nbnR0YWJfdW5pbXAuYyBiL3Rvb2xz L2xpYnMvZ250dGFiL2dudHRhYl91bmltcC5jCmluZGV4IGIzYTRhMjAuLjgyOWVjZWQgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnMvZ250dGFiL2dudHRhYl91bmltcC5jCisrKyBiL3Rvb2xzL2xpYnMv Z250dGFiL2dudHRhYl91bmltcC5jCkBAIC03OCw2ICs3OCwxMiBAQCBpbnQgeGVuZ250dGFiX3Vu bWFwKHhlbmdudHRhYl9oYW5kbGUgKnhndCwgdm9pZCAqc3RhcnRfYWRkcmVzcywgdWludDMyX3Qg Y291bnQpCiAgICAgYWJvcnQoKTsKIH0KIAoraW50IHhlbmdudHRhYl9jb3B5X2dyYW50KHhlbmdu dHRhYl9oYW5kbGUgKnhndCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3Vu dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5nbnR0YWJfY29weV9ncmFudF9zZWdtZW50 X3QgKnNlZ3MpCit7CisgICAgYWJvcnQoKTsKK30KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAg KiBtb2RlOiBDCmRpZmYgLS1naXQgYS90b29scy9saWJzL2dudHRhYi9pbmNsdWRlL3hlbmdudHRh Yi5oIGIvdG9vbHMvbGlicy9nbnR0YWIvaW5jbHVkZS94ZW5nbnR0YWIuaAppbmRleCAwNDMxZGNm Li45NDlmZDllIDEwMDY0NAotLS0gYS90b29scy9saWJzL2dudHRhYi9pbmNsdWRlL3hlbmdudHRh Yi5oCisrKyBiL3Rvb2xzL2xpYnMvZ250dGFiL2luY2x1ZGUveGVuZ250dGFiLmgKQEAgLTI1OCw2 ICsyNTgsMzQgQEAgaW50IHhlbmdudHRhYl91bm1hcCh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsIHZv aWQgKnN0YXJ0X2FkZHJlc3MsIHVpbnQzMl90IGNvdW50KTsKIGludCB4ZW5nbnR0YWJfc2V0X21h eF9ncmFudHMoeGVuZ250dGFiX2hhbmRsZSAqeGd0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBucl9ncmFudHMpOwogCitzdHJ1Y3QgeGVuZ250dGFiX2dyYW50X2NvcHlf c2VnbWVudCB7CisgICAgdW5pb24geGVuZ250dGFiX2NvcHlfcHRyIHsKKyAgICAgICAgdm9pZCAq dmlydDsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHJlZjsKKyAgICAg ICAgICAgIHVpbnQxNl90IG9mZnNldDsKKyAgICAgICAgICAgIHVpbnQxNl90IGRvbWlkOworICAg ICAgICB9IGZvcmVpZ247CisgICAgfSBzb3VyY2UsIGRlc3Q7CisgICAgdWludDE2X3QgbGVuOwor ICAgIHVpbnQxNl90IGZsYWdzOworICAgIGludDE2X3Qgc3RhdHVzOworfTsKKwordHlwZWRlZiBz dHJ1Y3QgeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudCB4ZW5nbnR0YWJfZ3JhbnRfY29weV9z ZWdtZW50X3Q7CisKKy8qKgorICogQ29weSBtZW1vcnkgZnJvbSBvciB0byBncmFudCByZWZlcmVu Y2VzLiBUaGUgaW5mb3JtYXRpb24gb2YgZWFjaCBvcGVyYXRpb25zCisgKiBhcmUgY29udGFpbmVk IGluICd4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QnLiBUaGUgQGZsYWcgdmFsdWUgaW5k aWNhdGUKKyAqIHRoZSBkaXJlY3Rpb24gb2YgYW4gb3BlcmF0aW9uIChHTlRDT1BZX3NvdXJjZV9n cmVmXEdOVENPUFlfZGVzdF9ncmVmKS4KKyAqCisgKiBUaGUgc3VtIG9mIGZpZWxkcyBAb2Zmc2V0 W2ldIGFuZCBAbGVuW2ldIG9mICd4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QnCisgKiBz aG91bGQgbm90IGV4Y2VlZCBYRU5fUEFHRV9TSVpFCisgKi8KK2ludCB4ZW5nbnR0YWJfZ3JhbnRf Y29weSh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgeGVuZ250dGFiX2dyYW50X2Nv cHlfc2VnbWVudF90ICpzZWdzKTsKKwogLyoKICAqIEdyYW50IFNoYXJpbmcgSW50ZXJmYWNlIChh bGxvY2F0aW5nIGFuZCBncmFudGluZyBwYWdlcyB0byBvdGhlcnMpCiAgKi8KZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnMvZ250dGFiL2xpYnhlbmdudHRhYi5tYXAgYi90b29scy9saWJzL2dudHRhYi9s aWJ4ZW5nbnR0YWIubWFwCmluZGV4IGRjNzM3YWMuLmY3OGRhMjIgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnMvZ250dGFiL2xpYnhlbmdudHRhYi5tYXAKKysrIGIvdG9vbHMvbGlicy9nbnR0YWIvbGli eGVuZ250dGFiLm1hcApAQCAtMjEsMyArMjEsOCBAQCBWRVJTXzEuMCB7CiAJCXhlbmdudHNocl91 bnNoYXJlOwogCWxvY2FsOiAqOyAvKiBEbyBub3QgZXhwb3NlIGFueXRoaW5nIGJ5IGRlZmF1bHQg Ki8KIH07CisKK1ZFUlNfMS4xIHsKKyAgICBnbG9iYWw6CisgICAgICAgIHhlbmdudHRhYl9ncmFu dF9jb3B5OworfSBWRVJTXzEuMDsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZ250dGFiL2xpbnV4 LmMgYi90b29scy9saWJzL2dudHRhYi9saW51eC5jCmluZGV4IDdiMGZiYTQuLjU2ZGZmNTcgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZ250dGFiL2xpbnV4LmMKKysrIGIvdG9vbHMvbGlicy9nbnR0 YWIvbGludXguYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1 ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgog CiAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiAjaW5jbHVkZSA8c3lzL21tYW4uaD4KQEAgLTIzNSw2 ICsyMzYsODQgQEAgaW50IG9zZGVwX2dudHRhYl91bm1hcCh4ZW5nbnR0YWJfaGFuZGxlICp4Z3Qs CiAgICAgcmV0dXJuIDA7CiB9CiAKK2ludCBvc2RlcF9nbnR0YWJfZ3JhbnRfY29weSh4ZW5nbnR0 YWJfaGFuZGxlICp4Z3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291 bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuZ250dGFiX2dyYW50X2NvcHlfc2Vn bWVudF90ICpzZWdzKQoreworICAgIGludCByYzsKKyAgICBpbnQgZmQgPSB4Z3QtPmZkOworICAg IHN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weSBjb3B5OworCisgICAgWEVOR05UVEFCX0JV SUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQp ICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuZ250dGFiX2dyYW50X2Nv cHlfc2VnbWVudF90KSk7CisKKyAgICBYRU5HTlRUQUJfQlVJTERfQlVHX09OKF9fYWxpZ25vZl9f KHN0cnVjdCBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weV9zZWdtZW50KSAhPQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgX19hbGlnbm9mX18oeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90 KSk7CisKKyAgICBYRU5HTlRUQUJfQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpb2N0bF9n bnRkZXZfZ3JhbnRfY29weV9zZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc291cmNlLnZpcnQpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRv Zih4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzb3VyY2UudmlydCkpOworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04o b2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZm9yZWlnbikgIT0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRf dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5mb3JlaWduKSk7 CisgICAgWEVOR05UVEFCX0JVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2 X2dyYW50X2NvcHlfc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNvdXJjZS5mb3JlaWduLnJlZikgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNvdXJjZS5mb3JlaWduKSk7CisgICAgWEVOR05UVEFCX0JVSUxEX0JV R19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5mb3JlaWduLm9mZnNldCkg IT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9j b3B5X3NlZ21lbnRfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJj ZS5mb3JlaWduLm9mZnNldCkpOworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yo c3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZm9yZWlnbi5kb21pZCkgIT0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5mb3JlaWduLmRvbWlk KSk7CisKKyAgICBYRU5HTlRUQUJfQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpb2N0bF9n bnRkZXZfZ3JhbnRfY29weV9zZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVzdC52aXJ0KSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yo eGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGVzdC52aXJ0KSk7CisgICAgWEVOR05UVEFCX0JVSUxEX0JVR19PTihvZmZz ZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QuZm9yZWlnbikgIT0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QuZm9yZWlnbikpOworICAgIFhF TkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9j b3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LmZv cmVpZ24ucmVmKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoeGVuZ250 dGFiX2dyYW50X2NvcHlfc2VnbWVudF90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVzdC5mb3JlaWduKSk7CisgICAgWEVOR05UVEFCX0JVSUxEX0JVR19PTihvZmZzZXRv ZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlfc2VnbWVudCwgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZXN0LmZvcmVpZ24ub2Zmc2V0KSAhPQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoeGVuZ250dGFiX2dyYW50X2NvcHlfc2VnbWVudF90 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdC5mb3JlaWduLm9mZnNl dCkpOworICAgIFhFTkdOVFRBQl9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2du dGRldl9ncmFudF9jb3B5X3NlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXN0LmZvcmVpZ24uZG9taWQpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBv ZmZzZXRvZih4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkZXN0LmZvcmVpZ24uZG9taWQpKTsKKworICAgIFhFTkdOVFRB Ql9CVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGlvY3RsX2dudGRldl9ncmFudF9jb3B5X3Nl Z21lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKSAhPQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoeGVuZ250dGFiX2dyYW50X2NvcHlfc2Vn bWVudF90LCBsZW4pKTsKKyAgICBYRU5HTlRUQUJfQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVj dCBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weV9zZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmxhZ3MpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXRvZih4ZW5nbnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QsIGZsYWdzKSk7CisgICAgWEVOR05U VEFCX0JVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW9jdGxfZ250ZGV2X2dyYW50X2NvcHlf c2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cykgIT0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHhlbmdudHRhYl9ncmFudF9jb3B5 X3NlZ21lbnRfdCwgc3RhdHVzKSk7CisKKyAgICBjb3B5LnNlZ21lbnRzID0gKHN0cnVjdCBpb2N0 bF9nbnRkZXZfZ3JhbnRfY29weV9zZWdtZW50ICopc2VnczsKKyAgICBjb3B5LmNvdW50ID0gY291 bnQ7CisKKyAgICByYyA9IGlvY3RsKGZkLCBJT0NUTF9HTlRERVZfR1JBTlRfQ09QWSwgJmNvcHkp OworICAgIGlmIChyYykgCisgICAgeworICAgICAgICBHVEVSUk9SKHhndC0+bG9nZ2VyLCAiaW9j dGwgR1JBTlQgQ09QWSBmYWlsZWQgJWQgIiwgZXJybm8pOworICAgIH0KKworICAgIHJldHVybiBy YzsKK30KKwogaW50IG9zZGVwX2dudHNocl9vcGVuKHhlbmdudHNocl9oYW5kbGUgKnhncykKIHsK ICAgICBpbnQgZmQgPSBvcGVuKERFVlhFTiAiZ250YWxsb2MiLCBPX1JEV1IpOwpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlicy9nbnR0YWIvbWluaW9zLmMgYi90b29scy9saWJzL2dudHRhYi9taW5pb3Mu YwppbmRleCA3ZTA0MTc0Li4wOTUxYmM5IDEwMDY0NAotLS0gYS90b29scy9saWJzL2dudHRhYi9t aW5pb3MuYworKysgYi90b29scy9saWJzL2dudHRhYi9taW5pb3MuYwpAQCAtMTA2LDYgKzEwNiwx MiBAQCBpbnQgb3NkZXBfZ250dGFiX3NldF9tYXhfZ3JhbnRzKHhlbmdudHRhYl9oYW5kbGUgKnhn dCwgdWludDMyX3QgY291bnQpCiAgICAgcmV0dXJuIHJldDsKIH0KIAoraW50IG9zZGVwX2dudHRh Yl9ncmFudF9jb3B5KHhlbmdudHRhYl9oYW5kbGUgKnhndCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5n bnR0YWJfZ3JhbnRfY29weV9zZWdtZW50X3QgKnNlZ3MpCit7CisgICAgcmV0dXJuIC0xOworfQog LyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnMvZ250dGFiL3ByaXZhdGUuaCBiL3Rvb2xzL2xpYnMvZ250dGFiL3ByaXZhdGUuaAppbmRleCAy YmRjMGYyLi5mOGQyMzRhIDEwMDY0NAotLS0gYS90b29scy9saWJzL2dudHRhYi9wcml2YXRlLmgK KysrIGIvdG9vbHMvbGlicy9nbnR0YWIvcHJpdmF0ZS5oCkBAIC0zMCw2ICszMCwxMCBAQCB2b2lk ICpvc2RlcF9nbnR0YWJfZ3JhbnRfbWFwKHhlbmdudHRhYl9oYW5kbGUgKnhndCwKIGludCBvc2Rl cF9nbnR0YWJfdW5tYXAoeGVuZ250dGFiX2hhbmRsZSAqeGd0LAogICAgICAgICAgICAgICAgICAg ICAgICB2b2lkICpzdGFydF9hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCBjb3VudCk7CitpbnQgb3NkZXBfZ250dGFiX2dyYW50X2NvcHkoeGVuZ250dGFiX2hhbmRsZSAq eGd0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvdW50LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhlbmdudHRhYl9ncmFudF9jb3B5X3NlZ21lbnRfdCAqc2Vn cyk7CisKIGludCBvc2RlcF9nbnRzaHJfb3Blbih4ZW5nbnRzaHJfaGFuZGxlICp4Z3MpOwogaW50 IG9zZGVwX2dudHNocl9jbG9zZSh4ZW5nbnRzaHJfaGFuZGxlICp4Z3MpOwogCi0tIAoxLjkuMQoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=