From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH v2 6/9] xen/gntdev: Add initial support for dma-buf UAPI Date: Wed, 6 Jun 2018 12:06:02 +0300 Message-ID: References: <20180601114132.22596-1-andr2000@gmail.com> <20180601114132.22596-7-andr2000@gmail.com> <29c1f1fb-2d52-e3df-adce-44fdee135413@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x242.google.com (mail-lf0-x242.google.com [IPv6:2a00:1450:4010:c07::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id BBF446E629 for ; Wed, 6 Jun 2018 09:06:06 +0000 (UTC) Received: by mail-lf0-x242.google.com with SMTP id v135-v6so7924795lfa.9 for ; Wed, 06 Jun 2018 02:06:06 -0700 (PDT) In-Reply-To: <29c1f1fb-2d52-e3df-adce-44fdee135413@oracle.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Ostrovsky , xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, jgross@suse.com, konrad.wilk@oracle.com Cc: daniel.vetter@intel.com, dongwon.kim@intel.com, Oleksandr Andrushchenko List-Id: dri-devel@lists.freedesktop.org T24gMDYvMDQvMjAxOCAxMTo0OSBQTSwgQm9yaXMgT3N0cm92c2t5IHdyb3RlOgo+IE9uIDA2LzAx LzIwMTggMDc6NDEgQU0sIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+PiBGcm9tOiBP bGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+ Cj4+Cj4+IEFkZCBVQVBJIGFuZCBJT0NUTHMgZm9yIGRtYS1idWYgZ3JhbnQgZGV2aWNlIGRyaXZl ciBleHRlbnNpb246Cj4+IHRoZSBleHRlbnNpb24gYWxsb3dzIHVzZXJzcGFjZSBwcm9jZXNzZXMg YW5kIGtlcm5lbCBtb2R1bGVzIHRvCj4+IHVzZSBYZW4gYmFja2VkIGRtYS1idWYgaW1wbGVtZW50 YXRpb24uIFdpdGggdGhpcyBleHRlbnNpb24gZ3JhbnQKPj4gcmVmZXJlbmNlcyB0byB0aGUgcGFn ZXMgb2YgYW4gaW1wb3J0ZWQgZG1hLWJ1ZiBjYW4gYmUgZXhwb3J0ZWQKPj4gZm9yIG90aGVyIGRv bWFpbiB1c2UgYW5kIGdyYW50IHJlZmVyZW5jZXMgY29taW5nIGZyb20gYSBmb3JlaWduCj4+IGRv bWFpbiBjYW4gYmUgY29udmVydGVkIGludG8gYSBsb2NhbCBkbWEtYnVmIGZvciBsb2NhbCBleHBv cnQuCj4+IEltcGxlbWVudCBiYXNpYyBpbml0aWFsaXphdGlvbiBhbmQgc3R1YnMgZm9yIFhlbiBE TUEgYnVmZmVycycKPj4gc3VwcG9ydC4KPgo+IEl0IHdvdWxkIGJlIHZlcnkgaGVscGZ1bCBpZiBw ZW9wbGUgYWR2b2NhdGluZyBmb3IgdGhpcyBpbnRlcmZhY2UKPiByZXZpZXdlZCBpdCBhcyB3ZWxs LgpJIHdvdWxkIGFsc28gbG92ZSB0byBzZWUgdGhlaXIgY29tbWVudHMgaGVyZSA7KQo+Cj4+IFNp Z25lZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNo ZW5rb0BlcGFtLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy94ZW4vS2NvbmZpZyAgICAgICAgIHwg IDEwICsrKwo+PiAgIGRyaXZlcnMveGVuL01ha2VmaWxlICAgICAgICB8ICAgMSArCj4+ICAgZHJp dmVycy94ZW4vZ250ZGV2LWRtYWJ1Zi5jIHwgIDc1ICsrKysrKysrKysrKysrKysrKysKPj4gICBk cml2ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmggfCAgNDEgKysrKysrKysrKysKPj4gICBkcml2ZXJz L3hlbi9nbnRkZXYuYyAgICAgICAgfCAxNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4+ICAgaW5jbHVkZS91YXBpL3hlbi9nbnRkZXYuaCAgIHwgIDkxICsrKysrKysrKysr KysrKysrKysrKysrCj4+ICAgNiBmaWxlcyBjaGFuZ2VkLCAzNjAgaW5zZXJ0aW9ucygrKQo+PiAg IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmMKPj4gICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy94ZW4vZ250ZGV2LWRtYWJ1Zi5oCj4+Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3hlbi9LY29uZmlnIGIvZHJpdmVycy94ZW4vS2NvbmZpZwo+PiBpbmRleCAz OTUzNmRkZmJjZTQuLjUyZDY0ZTRiNmI4MSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy94ZW4vS2Nv bmZpZwo+PiArKysgYi9kcml2ZXJzL3hlbi9LY29uZmlnCj4+IEBAIC0xNTIsNiArMTUyLDE2IEBA IGNvbmZpZyBYRU5fR05UREVWCj4+ICAgCWhlbHAKPj4gICAJICBBbGxvd3MgdXNlcnNwYWNlIHBy b2Nlc3NlcyB0byB1c2UgZ3JhbnRzLgo+PiAgIAo+PiArY29uZmlnIFhFTl9HTlRERVZfRE1BQlVG Cj4+ICsJYm9vbCAiQWRkIHN1cHBvcnQgZm9yIGRtYS1idWYgZ3JhbnQgYWNjZXNzIGRldmljZSBk cml2ZXIgZXh0ZW5zaW9uIgo+PiArCWRlcGVuZHMgb24gWEVOX0dOVERFViAmJiBYRU5fR1JBTlRf RE1BX0FMTE9DICYmIERNQV9TSEFSRURfQlVGRkVSCj4KPiBJcyB0aGVyZSBhIHJlYXNvbiB0byBo YXZlIFhFTl9HUkFOVF9ETUFfQUxMT0Mgd2l0aG91dCBYRU5fR05UREVWX0RNQUJVRj8KT25lIGNh biB1c2UgZ3JhbnQtdGFibGUncyBETUEgQVBJIHdpdGhvdXQgdXNpbmcgZG1hLWJ1ZiBhdCBhbGws IGUuZy4KZG1hLWJ1ZiBpcyBzb3J0IG9mIGZ1bmN0aW9uYWxpdHkgb24gdG9wIG9mIERNQSBhbGxv Y2F0ZWQgbWVtb3J5LgpXZSBoYXZlIGEgdXNlLWNhc2UgZm9yIGEgZHJpdmVyIGRvbWFpbiAoZ3Vl c3QgZG9tYWluIGluIGZhY3QpCmJhY2tlZCB3aXRoIElPTU1VIGFuZCBzdGlsbCByZXF1aXJpbmcg YWxsb2NhdGlvbnMgY3JlYXRlZCBhcwpjb250aWd1b3VzL0RNQSBtZW1vcnksIHNvIHRob3NlIGJ1 ZmZlcnMgY2FuIGJlIHBhc3NlZCBhcm91bmQgdG8KZHJpdmVycyBleHBlY3RpbmcgRE1BLW9ubHkg YnVmZmVycy4KU28sIElNTyB0aGlzIGlzIGEgdmFsaWQgdXNlLWNhc2UgInRvIGhhdmUgWEVOX0dS QU5UX0RNQV9BTExPQwp3aXRob3V0IFhFTl9HTlRERVZfRE1BQlVGIgo+Cj4+ICsJaGVscAo+PiAr CSAgQWxsb3dzIHVzZXJzcGFjZSBwcm9jZXNzZXMgYW5kIGtlcm5lbCBtb2R1bGVzIHRvIHVzZSBY ZW4gYmFja2VkCj4+ICsJICBkbWEtYnVmIGltcGxlbWVudGF0aW9uLiBXaXRoIHRoaXMgZXh0ZW5z aW9uIGdyYW50IHJlZmVyZW5jZXMgdG8KPj4gKwkgIHRoZSBwYWdlcyBvZiBhbiBpbXBvcnRlZCBk bWEtYnVmIGNhbiBiZSBleHBvcnRlZCBmb3Igb3RoZXIgZG9tYWluCj4+ICsJICB1c2UgYW5kIGdy YW50IHJlZmVyZW5jZXMgY29taW5nIGZyb20gYSBmb3JlaWduIGRvbWFpbiBjYW4gYmUKPj4gKwkg IGNvbnZlcnRlZCBpbnRvIGEgbG9jYWwgZG1hLWJ1ZiBmb3IgbG9jYWwgZXhwb3J0Lgo+PiArCj4+ ICAgY29uZmlnIFhFTl9HUkFOVF9ERVZfQUxMT0MKPj4gICAJdHJpc3RhdGUgIlVzZXItc3BhY2Ug Z3JhbnQgcmVmZXJlbmNlIGFsbG9jYXRvciBkcml2ZXIiCj4+ICAgCWRlcGVuZHMgb24gWEVOCj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9NYWtlZmlsZSBiL2RyaXZlcnMveGVuL01ha2VmaWxl Cj4+IGluZGV4IDNjODdiMGMzYWNhNi4uMzNhZmI3YjJiMjI3IDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL3hlbi9NYWtlZmlsZQo+PiArKysgYi9kcml2ZXJzL3hlbi9NYWtlZmlsZQo+PiBAQCAtNDEs NSArNDEsNiBAQCBvYmotJChDT05GSUdfWEVOX1BWQ0FMTFNfQkFDS0VORCkJKz0gcHZjYWxscy1i YWNrLm8KPj4gICBvYmotJChDT05GSUdfWEVOX1BWQ0FMTFNfRlJPTlRFTkQpCSs9IHB2Y2FsbHMt ZnJvbnQubwo+PiAgIHhlbi1ldnRjaG4teQkJCQk6PSBldnRjaG4ubwo+PiAgIHhlbi1nbnRkZXYt eQkJCQk6PSBnbnRkZXYubwo+PiAreGVuLWdudGRldi0kKENPTkZJR19YRU5fR05UREVWX0RNQUJV RikJKz0gZ250ZGV2LWRtYWJ1Zi5vCj4+ICAgeGVuLWdudGFsbG9jLXkJCQkJOj0gZ250YWxsb2Mu bwo+PiAgIHhlbi1wcml2Y21kLXkJCQkJOj0gcHJpdmNtZC5vCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmMgYi9kcml2ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmMKPj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAwLi42YmVkZDEzODdiZDkK Pj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmMKPj4g QEAgLTAsMCArMSw3NSBAQAo+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAK Pj4gKwo+PiArLyoKPj4gKyAqIFhlbiBkbWEtYnVmIGZ1bmN0aW9uYWxpdHkgZm9yIGdudGRldi4K Pj4gKyAqCj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTggT2xla3NhbmRyIEFuZHJ1c2hjaGVua28s IEVQQU0gU3lzdGVtcyBJbmMuCj4+ICsgKi8KPj4gKwo+PiArI2luY2x1ZGUgPGxpbnV4L3NsYWIu aD4KPj4gKwo+PiArI2luY2x1ZGUgImdudGRldi1kbWFidWYuaCIKPj4gKwo+PiArc3RydWN0IGdu dGRldl9kbWFidWZfcHJpdiB7Cj4+ICsJaW50IGR1bW15Owo+PiArfTsKPj4gKwo+PiArLyogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICovCj4+ICsvKiBETUEgYnVmZmVyIGV4cG9ydCBzdXBwb3J0LiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KPj4gKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwo+PiArCj4+ ICsvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gKi8KPj4gKy8qIEltcGxlbWVudGF0aW9uIG9mIHdhaXQgZm9yIGV4cG9y dGVkIERNQSBidWZmZXIgdG8gYmUgcmVsZWFzZWQuICAgICAqLwo+PiArLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov Cj4gV2h5IHRoaXMgY29tbWVudCBzdHlsZT8KSnVzdCBhIGNvcHktcGFzdGUgZnJvbSBnbnRkZXYs IHdpbGwgY2hhbmdlIHRvIHVzdWFsIC8qLi4qLwo+Cj4+ICsKPj4gK2ludCBnbnRkZXZfZG1hYnVm X2V4cF93YWl0X3JlbGVhc2VkKHN0cnVjdCBnbnRkZXZfZG1hYnVmX3ByaXYgKnByaXYsIGludCBm ZCwKPj4gKwkJCQkgICAgaW50IHdhaXRfdG9fbXMpCj4+ICt7Cj4+ICsJcmV0dXJuIC1FSU5WQUw7 Cj4+ICt9Cj4+ICsKPj4gKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwo+PiArLyogRE1BIGJ1ZmZlciBleHBvcnQg c3VwcG9ydC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCj4+ICsv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gKi8KPj4gKwo+PiAraW50IGdudGRldl9kbWFidWZfZXhwX2Zyb21fcGFnZXMo c3RydWN0IGdudGRldl9kbWFidWZfZXhwb3J0X2FyZ3MgKmFyZ3MpCj4+ICt7Cj4+ICsJcmV0dXJu IC1FSU5WQUw7Cj4+ICt9Cj4+ICsKPj4gKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwo+PiArLyogRE1BIGJ1ZmZl ciBpbXBvcnQgc3VwcG9ydC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovCj4+ICsvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KPj4gKwo+PiArc3RydWN0IGdudGRldl9kbWFidWYgKgo+ PiArZ250ZGV2X2RtYWJ1Zl9pbXBfdG9fcmVmcyhzdHJ1Y3QgZ250ZGV2X2RtYWJ1Zl9wcml2ICpw cml2LCBzdHJ1Y3QgZGV2aWNlICpkZXYsCj4+ICsJCQkgIGludCBmZCwgaW50IGNvdW50LCBpbnQg ZG9taWQpCj4+ICt7Cj4+ICsJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4+ICt9Cj4+ICsKPj4g K3UzMiAqZ250ZGV2X2RtYWJ1Zl9pbXBfZ2V0X3JlZnMoc3RydWN0IGdudGRldl9kbWFidWYgKmdu dGRldl9kbWFidWYpCj4+ICt7Cj4+ICsJcmV0dXJuIE5VTEw7Cj4+ICt9Cj4+ICsKPj4gK2ludCBn bnRkZXZfZG1hYnVmX2ltcF9yZWxlYXNlKHN0cnVjdCBnbnRkZXZfZG1hYnVmX3ByaXYgKnByaXYs IHUzMiBmZCkKPj4gK3sKPj4gKwlyZXR1cm4gLUVJTlZBTDsKPj4gK30KPj4gKwo+PiArc3RydWN0 IGdudGRldl9kbWFidWZfcHJpdiAqZ250ZGV2X2RtYWJ1Zl9pbml0KHZvaWQpCj4+ICt7Cj4+ICsJ c3RydWN0IGdudGRldl9kbWFidWZfcHJpdiAqcHJpdjsKPj4gKwo+PiArCXByaXYgPSBremFsbG9j KHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpOwo+PiArCWlmICghcHJpdikKPj4gKwkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7Cj4+ICsKPj4gKwlyZXR1cm4gcHJpdjsKPj4gK30KPj4gKwo+PiAr dm9pZCBnbnRkZXZfZG1hYnVmX2Zpbmkoc3RydWN0IGdudGRldl9kbWFidWZfcHJpdiAqcHJpdikK Pj4gK3sKPj4gKwlrZnJlZShwcml2KTsKPj4gK30KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L2dudGRldi1kbWFidWYuaCBiL2RyaXZlcnMveGVuL2dudGRldi1kbWFidWYuaAo+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjA0MGIyZGU5MDRhYwo+PiAtLS0g L2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMveGVuL2dudGRldi1kbWFidWYuaAo+PiBAQCAtMCww ICsxLDQxIEBACj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwo+PiAr Cj4+ICsvKgo+PiArICogWGVuIGRtYS1idWYgZnVuY3Rpb25hbGl0eSBmb3IgZ250ZGV2Lgo+PiAr ICoKPj4gKyAqIENvcHlyaWdodCAoYykgMjAxOCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbywgRVBB TSBTeXN0ZW1zIEluYy4KPj4gKyAqLwo+PiArCj4+ICsjaWZuZGVmIF9HTlRERVZfRE1BQlVGX0gK Pj4gKyNkZWZpbmUgX0dOVERFVl9ETUFCVUZfSAo+PiArCj4+ICsjaW5jbHVkZSA8bGludXgva2Vy bmVsLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KPj4gKyNpbmNsdWRlIDxsaW51eC90 eXBlcy5oPgo+PiArCj4+ICtzdHJ1Y3QgZ250ZGV2X2RtYWJ1Zl9wcml2Owo+PiArc3RydWN0IGdu dGRldl9kbWFidWY7Cj4+ICtzdHJ1Y3QgZGV2aWNlOwo+PiArCj4+ICtzdHJ1Y3QgZ250ZGV2X2Rt YWJ1Zl9leHBvcnRfYXJncyB7Cj4+ICsJaW50IGR1bW15Owo+PiArfTsKPgo+IFBsZWFzZSBkZWZp bmUgdGhlIGZ1bGwgc3RydWN0dXJlIChhdCBsZWFzdCB3aGF0IHlvdSBoYXZlIGluIHRoZSBuZXh0 Cj4gcGF0Y2gpIGhlcmUuCk9rLCB3aWxsIGRlZmluZSB3aGF0IEkgaGF2ZSBpbiB0aGUgbmV4dCBw YXRjaCwgYnV0IHdvbid0CmluaXRpYWxpemUgYW55dGhpbmcgdW50aWwgdGhlIG5leHQgcGF0Y2gu IFdpbGwgdGhpcyB3b3JrIGZvciB5b3U/Cj4KPj4gKwo+PiArc3RydWN0IGdudGRldl9kbWFidWZf cHJpdiAqZ250ZGV2X2RtYWJ1Zl9pbml0KHZvaWQpOwo+PiArCj4+ICt2b2lkIGdudGRldl9kbWFi dWZfZmluaShzdHJ1Y3QgZ250ZGV2X2RtYWJ1Zl9wcml2ICpwcml2KTsKPj4gKwo+PiAraW50IGdu dGRldl9kbWFidWZfZXhwX2Zyb21fcGFnZXMoc3RydWN0IGdudGRldl9kbWFidWZfZXhwb3J0X2Fy Z3MgKmFyZ3MpOwo+PiArCj4+ICtpbnQgZ250ZGV2X2RtYWJ1Zl9leHBfd2FpdF9yZWxlYXNlZChz dHJ1Y3QgZ250ZGV2X2RtYWJ1Zl9wcml2ICpwcml2LCBpbnQgZmQsCj4+ICsJCQkJICAgIGludCB3 YWl0X3RvX21zKTsKPj4gKwo+PiArc3RydWN0IGdudGRldl9kbWFidWYgKgo+PiArZ250ZGV2X2Rt YWJ1Zl9pbXBfdG9fcmVmcyhzdHJ1Y3QgZ250ZGV2X2RtYWJ1Zl9wcml2ICpwcml2LCBzdHJ1Y3Qg ZGV2aWNlICpkZXYsCj4+ICsJCQkgIGludCBmZCwgaW50IGNvdW50LCBpbnQgZG9taWQpOwo+PiAr Cj4+ICt1MzIgKmdudGRldl9kbWFidWZfaW1wX2dldF9yZWZzKHN0cnVjdCBnbnRkZXZfZG1hYnVm ICpnbnRkZXZfZG1hYnVmKTsKPj4gKwo+PiAraW50IGdudGRldl9kbWFidWZfaW1wX3JlbGVhc2Uo c3RydWN0IGdudGRldl9kbWFidWZfcHJpdiAqcHJpdiwgdTMyIGZkKTsKPj4gKwo+PiArI2VuZGlm Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9nbnRkZXYuYyBiL2RyaXZlcnMveGVuL2dudGRl di5jCj4+IGluZGV4IDk4MTNmYzQ0MGM3MC4uN2Q1OGRmYjNlNWU4IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL3hlbi9nbnRkZXYuYwo+PiArKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwo+IC4uLgo+ Cj4+ICAgCj4+ICsjaWZkZWYgQ09ORklHX1hFTl9HTlRERVZfRE1BQlVGCj4gVGhpcyBjb2RlIGJl bG9uZ3MgaW4gZ250ZGV2LWRtYWJ1Zi5jLgpUaGUgcmVhc29uIEkgaGF2ZSB0aGlzIGNvZGUgaGVy ZSBpcyB0aGF0IGl0IGlzIGhlYXZpbHkKdGllZCB0byBnbnRkZXYncyBpbnRlcm5hbCBmdW5jdGlv bmFsaXR5LCBlLmcuIG1hcC91bm1hcC4KSSBkbyBub3Qgd2FudCB0byBleHRlbmQgZ250ZGV2J3Mg QVBJLCBzbyBnbnRkZXYtZG1hYnVmIGNhbgphY2Nlc3MgdGhlc2UuIFdoYXQgaXMgbW9yZSBkbWEt YnVmIGRvZXNuJ3QgbmVlZCB0byBrbm93IGFib3V0Cm1hcHMgZG9uZSBieSBnbnRkZXYgYXMgdGhl cmUgaXMgbm8gdXNlIG9mIHRoYXQgaW5mb3JtYXRpb24KaW4gZ250ZGV2LWRtYWJ1Zi4gU28sIGl0 IHNlZW1zIG1vcmUgbmF0dXJhbGx5IHRvIGhhdmUKZG1hLWJ1ZidzIHJlbGF0ZWQgbWFwL3VubWFw IGNvZGUgd2hlcmUgaXQgaXM6IGluIGdudGRldi4KPgo+PiArLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCj4+ICsv KiBETUEgYnVmZmVyIGV4cG9ydCBzdXBwb3J0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKi8KPj4gKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwo+PiArCj4+ICtpbnQgZ250ZGV2X2Rt YWJ1Zl9leHBfZnJvbV9yZWZzKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgaW50IGZsYWdzLAo+ PiArCQkJCWludCBjb3VudCwgdTMyIGRvbWlkLCB1MzIgKnJlZnMsIHUzMiAqZmQpCj4+ICt7Cj4+ ICsJLyogWFhYOiB0aGlzIHdpbGwgbmVlZCB0byB3b3JrIHdpdGggZ250ZGV2J3MgbWFwLCBzbyBs ZWF2ZSBpdCBoZXJlLiAqLwo+IFRoaXMgZG9lc24ndCBoZWxwIHVuZGVyc3RhbmRpbmcgd2hhdCdz IGdvaW5nIG9uIChhdCBsZWFzdCB0byBtZSkgYW5kIGlzCj4gcmVtb3ZlZCBpbiB0aGUgbmV4dCBw YXRjaC4gU28gbm8gbmVlZCBmb3IgdGhpcyBjb21tZW50LgpXaWxsIHJlbW92ZSB0aGUgY29tbWVu dAo+IC1ib3Jpcwo+Cj4+ICsJKmZkID0gLTE7Cj4+ICsJcmV0dXJuIC1FSU5WQUw7Cj4+ICt9Cj4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=