From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v7 3/5] dma-buf: Add ioctls to allow userspace to flush Date: Tue, 9 Feb 2016 11:20:20 +0100 Message-ID: <20160209102020.GS11240@phenom.ffwll.local> References: <1450820214-12509-1-git-send-email-tiago.vignatti@intel.com> <1450820214-12509-4-git-send-email-tiago.vignatti@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id EEB1E6E53B for ; Tue, 9 Feb 2016 02:19:57 -0800 (PST) Received: by mail-wm0-f66.google.com with SMTP id 128so2487153wmz.3 for ; Tue, 09 Feb 2016 02:19:57 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Herrmann Cc: daniel.thompson@linaro.org, marcheu@google.com, Thomas Hellstrom , "dri-devel@lists.freedesktop.org" , Jerome Glisse , reveman@google.com, Daniel Vetter , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBGZWIgMDksIDIwMTYgYXQgMTA6MjY6MjVBTSArMDEwMCwgRGF2aWQgSGVycm1hbm4g d3JvdGU6Cj4gSGkKPiAKPiBPbiBUdWUsIERlYyAyMiwgMjAxNSBhdCAxMDozNiBQTSwgVGlhZ28g VmlnbmF0dGkKPiA8dGlhZ28udmlnbmF0dGlAaW50ZWwuY29tPiB3cm90ZToKPiA+IEZyb206IERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gPgo+ID4gVGhlIHVzZXJzcGFj ZSBtaWdodCBuZWVkIHNvbWUgc29ydCBvZiBjYWNoZSBjb2hlcmVuY3kgbWFuYWdlbWVudCBlLmcu IHdoZW4gQ1BVCj4gPiBhbmQgR1BVIGRvbWFpbnMgYXJlIGJlaW5nIGFjY2Vzc2VkIHRocm91Z2gg ZG1hLWJ1ZiBhdCB0aGUgc2FtZSB0aW1lLiBUbwo+ID4gY2lyY3VtdmVudCB0aGlzIHByb2JsZW0g dGhlcmUgYXJlIGJlZ2luL2VuZCBjb2hlcmVuY3kgbWFya2VycywgdGhhdCBmb3J3YXJkCj4gPiBk aXJlY3RseSB0byBleGlzdGluZyBkbWEtYnVmIGRldmljZSBkcml2ZXJzIHZmdW5jIGhvb2tzLiBV c2Vyc3BhY2UgY2FuIG1ha2UgdXNlCj4gPiBvZiB0aG9zZSBtYXJrZXJzIHRocm91Z2ggdGhlIERN QV9CVUZfSU9DVExfU1lOQyBpb2N0bC4gVGhlIHNlcXVlbmNlIHdvdWxkIGJlCj4gPiB1c2VkIGxp a2UgZm9sbG93aW5nOgo+ID4gICAgICAtIG1tYXAgZG1hLWJ1ZiBmZAo+ID4gICAgICAtIGZvciBl YWNoIGRyYXdpbmcvdXBsb2FkIGN5Y2xlIGluIENQVSAxLiBTWU5DX1NUQVJUIGlvY3RsLCAyLiBy ZWFkL3dyaXRlCj4gPiAgICAgICAgdG8gbW1hcCBhcmVhIDMuIFNZTkNfRU5EIGlvY3RsLiBUaGlz IGNhbiBiZSByZXBlYXRlZCBhcyBvZnRlbiBhcyB5b3UKPiA+ICAgICAgICB3YW50ICh3aXRoIHRo ZSBuZXcgZGF0YSBiZWluZyBjb25zdW1lZCBieSB0aGUgR1BVIG9yIHNheSBzY2Fub3V0IGRldmlj ZSkKPiA+ICAgICAgLSBtdW5tYXAgb25jZSB5b3UgZG9uJ3QgbmVlZCB0aGUgYnVmZmVyIGFueSBt b3JlCj4gPgo+ID4gdjIgKFRpYWdvKTogRml4IGhlYWRlciBmaWxlIHR5cGUgbmFtZXMgKHU2NCAt PiBfX3U2NCkKPiA+IHYzIChUaWFnbyk6IEFkZCBkb2N1bWVudGF0aW9uLiBVc2UgZW51bSBkbWFf YnVmX3N5bmNfZmxhZ3MgdG8gdGhlIGJlZ2luL2VuZAo+ID4gZG1hLWJ1ZiBmdW5jdGlvbnMuIENo ZWNrIGZvciBvdmVyZmxvd3MgaW4gc3RhcnQvbGVuZ3RoLgo+ID4gdjQgKFRpYWdvKTogdXNlIDJk IHJlZ2lvbnMgZm9yIHN5bmMuCj4gPiB2NSAoVGlhZ28pOiBmb3JnZXQgYWJvdXQgMmQgcmVnaW9u cyAodjQpOyB1c2UgX0lPVyBpbiBETUFfQlVGX0lPQ1RMX1NZTkMgYW5kCj4gPiByZW1vdmUgcmFu Z2UgaW5mb3JtYXRpb24gZnJvbSBzdHJ1Y3QgZG1hX2J1Zl9zeW5jLgo+ID4gdjYgKFRpYWdvKTog dXNlIF9fdTY0IHN0cnVjdHVyZWQgcGFkZGVkIGZsYWdzIGluc3RlYWQgZW51bS4gQWRqdXN0Cj4g PiBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSByZWNvbW1lbmRhdGlvbiBvbiB1c2luZyBzeW5jIGlv Y3Rscy4KPiA+IHY3IChUaWFnbyk6IEFsZXgnIG5pdCBvbiBmbGFncyBkZWZpbml0aW9uIGFuZCBi ZWluZyBldmVuIG1vcmUgd29yZGluZyBpbiB0aGUKPiA+IGRvYyBhYm91dCBzeW5jIHVzYWdlLgo+ ID4KPiA+IENjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8ub3JnPgo+ID4gU2ln bmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiBT aWduZWQtb2ZmLWJ5OiBUaWFnbyBWaWduYXR0aSA8dGlhZ28udmlnbmF0dGlAaW50ZWwuY29tPgo+ ID4gLS0tCj4gPiAgRG9jdW1lbnRhdGlvbi9kbWEtYnVmLXNoYXJpbmcudHh0IHwgMjEgKysrKysr KysrKysrKysrKysrLQo+ID4gIGRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMgICAgICAgICB8IDQz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gIGluY2x1ZGUvdWFw aS9saW51eC9kbWEtYnVmLmggICAgICB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvdWFwaS9saW51eC9kbWEtYnVmLmgK PiA+Cj4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kbWEtYnVmLXNoYXJpbmcudHh0IGIv RG9jdW1lbnRhdGlvbi9kbWEtYnVmLXNoYXJpbmcudHh0Cj4gPiBpbmRleCA0ZjRhODRiLi4zMmFj MzJlIDEwMDY0NAo+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9kbWEtYnVmLXNoYXJpbmcudHh0Cj4g PiArKysgYi9Eb2N1bWVudGF0aW9uL2RtYS1idWYtc2hhcmluZy50eHQKPiA+IEBAIC0zNTAsNyAr MzUwLDI2IEBAIEJlaW5nIGFibGUgdG8gbW1hcCBhbiBleHBvcnQgZG1hLWJ1ZiBidWZmZXIgb2Jq ZWN0IGhhcyAyIG1haW4gdXNlLWNhc2VzOgo+ID4gICAgIGhhbmRsZXMsIHRvbykuIFNvIGl0J3Mg YmVuZWZpY2lhbCB0byBzdXBwb3J0IHRoaXMgaW4gYSBzaW1pbGFyIGZhc2hpb24gb24KPiA+ICAg ICBkbWEtYnVmIHRvIGhhdmUgYSBnb29kIHRyYW5zaXRpb24gcGF0aCBmb3IgZXhpc3RpbmcgQW5k cm9pZCB1c2Vyc3BhY2UuCj4gPgo+ID4gLSAgIE5vIHNwZWNpYWwgaW50ZXJmYWNlcywgdXNlcnNw YWNlIHNpbXBseSBjYWxscyBtbWFwIG9uIHRoZSBkbWEtYnVmIGZkLgo+ID4gKyAgIE5vIHNwZWNp YWwgaW50ZXJmYWNlcywgdXNlcnNwYWNlIHNpbXBseSBjYWxscyBtbWFwIG9uIHRoZSBkbWEtYnVm IGZkLCBtYWtpbmcKPiA+ICsgICBzdXJlIHRoYXQgdGhlIGNhY2hlIHN5bmNocm9uaXphdGlvbiBp b2N0bCAoRE1BX0JVRl9JT0NUTF9TWU5DKSBpcyAqYWx3YXlzKgo+ID4gKyAgIHVzZWQgd2hlbiB0 aGUgYWNjZXNzIGhhcHBlbnMuIFRoaXMgaXMgZGlzY3Vzc2VkIG5leHQgcGFyYWdyYXBocy4KPiA+ ICsKPiA+ICsgICBTb21lIHN5c3RlbXMgbWlnaHQgbmVlZCBzb21lIHNvcnQgb2YgY2FjaGUgY29o ZXJlbmN5IG1hbmFnZW1lbnQgZS5nLiB3aGVuCj4gPiArICAgQ1BVIGFuZCBHUFUgZG9tYWlucyBh cmUgYmVpbmcgYWNjZXNzZWQgdGhyb3VnaCBkbWEtYnVmIGF0IHRoZSBzYW1lIHRpbWUuIFRvCj4g PiArICAgY2lyY3VtdmVudCB0aGlzIHByb2JsZW0gdGhlcmUgYXJlIGJlZ2luL2VuZCBjb2hlcmVu Y3kgbWFya2VycywgdGhhdCBmb3J3YXJkCj4gPiArICAgZGlyZWN0bHkgdG8gZXhpc3RpbmcgZG1h LWJ1ZiBkZXZpY2UgZHJpdmVycyB2ZnVuYyBob29rcy4gVXNlcnNwYWNlIGNhbiBtYWtlCj4gPiAr ICAgdXNlIG9mIHRob3NlIG1hcmtlcnMgdGhyb3VnaCB0aGUgRE1BX0JVRl9JT0NUTF9TWU5DIGlv Y3RsLiBUaGUgc2VxdWVuY2UKPiA+ICsgICB3b3VsZCBiZSB1c2VkIGxpa2UgZm9sbG93aW5nOgo+ ID4gKyAgICAgLSBtbWFwIGRtYS1idWYgZmQKPiA+ICsgICAgIC0gZm9yIGVhY2ggZHJhd2luZy91 cGxvYWQgY3ljbGUgaW4gQ1BVIDEuIFNZTkNfU1RBUlQgaW9jdGwsIDIuIHJlYWQvd3JpdGUKPiA+ ICsgICAgICAgdG8gbW1hcCBhcmVhIDMuIFNZTkNfRU5EIGlvY3RsLiBUaGlzIGNhbiBiZSByZXBl YXRlZCBhcyBvZnRlbiBhcyB5b3UKPiA+ICsgICAgICAgd2FudCAod2l0aCB0aGUgbmV3IGRhdGEg YmVpbmcgY29uc3VtZWQgYnkgdGhlIEdQVSBvciBzYXkgc2Nhbm91dCBkZXZpY2UpCj4gPiArICAg ICAtIG11bm1hcCBvbmNlIHlvdSBkb24ndCBuZWVkIHRoZSBidWZmZXIgYW55IG1vcmUKPiA+ICsK PiA+ICsgICAgVGhlcmVmb3JlLCBmb3IgY29ycmVjdG5lc3MgYW5kIG9wdGltYWwgcGVyZm9ybWFu Y2UsIHN5c3RlbXMgd2l0aCB0aGUgbWVtb3J5Cj4gPiArICAgIGNhY2hlIHNoYXJlZCBieSB0aGUg R1BVIGFuZCBDUFUgaS5lLiB0aGUgImNvaGVyZW50IiBhbmQgYWxzbyB0aGUKPiA+ICsgICAgImlu Y29oZXJlbnQiIGFyZSBhbHdheXMgcmVxdWlyZWQgdG8gdXNlIFNZTkNfU1RBUlQgYW5kIFNZTkNf RU5EIGJlZm9yZSBhbmQKPiA+ICsgICAgYWZ0ZXIsIHJlc3BlY3RpdmVseSwgd2hlbiBhY2Nlc3Np bmcgdGhlIG1hcHBlZCBhZGRyZXNzLgo+ID4KPiA+ICAyLiBTdXBwb3J0aW5nIGV4aXN0aW5nIG1t YXAgaW50ZXJmYWNlcyBpbiBpbXBvcnRlcnMKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9k bWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPiA+IGluZGV4IGIy YWMxM2IuLjlhMjk4YmQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5j Cj4gPiArKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4gPiBAQCAtMzQsNiArMzQsOCBA QAo+ID4gICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L3Jlc2Vy dmF0aW9uLmg+Cj4gPgo+ID4gKyNpbmNsdWRlIDx1YXBpL2xpbnV4L2RtYS1idWYuaD4KPiA+ICsK PiA+ICBzdGF0aWMgaW5saW5lIGludCBpc19kbWFfYnVmX2ZpbGUoc3RydWN0IGZpbGUgKik7Cj4g Pgo+ID4gIHN0cnVjdCBkbWFfYnVmX2xpc3Qgewo+ID4gQEAgLTI1MSwxMSArMjUzLDUyIEBAIG91 dDoKPiA+ICAgICAgICAgcmV0dXJuIGV2ZW50czsKPiA+ICB9Cj4gPgo+ID4gK3N0YXRpYyBsb25n IGRtYV9idWZfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQo+ID4gK3sKPiA+ICsg ICAgICAgc3RydWN0IGRtYV9idWYgKmRtYWJ1ZjsKPiA+ICsgICAgICAgc3RydWN0IGRtYV9idWZf c3luYyBzeW5jOwo+ID4gKyAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXJlY3Rpb247 Cj4gPiArCj4gPiArICAgICAgIGRtYWJ1ZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKPiA+ICsKPiA+ ICsgICAgICAgaWYgKCFpc19kbWFfYnVmX2ZpbGUoZmlsZSkpCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIC1FSU5WQUw7Cj4gCj4gV2h5PyBUaGlzIGNhbiBuZXZlciBoYXBwZW4sIGFuZCB5b3Ug YmV0dGVyIG5vdCB1c2UgZG1hX2J1Zl9pb2N0bCgpCj4gb3V0c2lkZSBvZiBkbWFfYnVmX2ZvcHMu Lgo+IEkgZ3Vlc3MgaXQncyBzaW1wbHkgY29waWVkIGZyb20gdGhlIG90aGVyIGZvcCBjYWxsYmFj a3MsIGJ1dCBJIGRvbid0Cj4gc2VlIHdoeS4gZG1hX2J1Zl9wb2xsKCkgZG9lc24ndCBkbyBpdCwg bmVpdGhlciBzaG91bGQgdGhpcywgb3Igb25lIG9mCj4gdGhlIG90aGVyIDMgY2FsbGJhY2tzLgo+ IAo+ID4gKwo+ID4gKyAgICAgICBzd2l0Y2ggKGNtZCkgewo+ID4gKyAgICAgICBjYXNlIERNQV9C VUZfSU9DVExfU1lOQzoKPiA+ICsgICAgICAgICAgICAgICBpZiAoY29weV9mcm9tX3VzZXIoJnN5 bmMsICh2b2lkIF9fdXNlciAqKSBhcmcsIHNpemVvZihzeW5jKSkpCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICBpZiAo c3luYy5mbGFncyAmIERNQV9CVUZfU1lOQ19SVykKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IGRpcmVjdGlvbiA9IERNQV9CSURJUkVDVElPTkFMOwo+ID4gKyAgICAgICAgICAgICAgIGVsc2Ug aWYgKHN5bmMuZmxhZ3MgJiBETUFfQlVGX1NZTkNfUkVBRCkKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGRpcmVjdGlvbiA9IERNQV9GUk9NX0RFVklDRTsKPiA+ICsgICAgICAgICAgICAgICBl bHNlIGlmIChzeW5jLmZsYWdzICYgRE1BX0JVRl9TWU5DX1dSSVRFKQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgZGlyZWN0aW9uID0gRE1BX1RPX0RFVklDRTsKPiA+ICsgICAgICAgICAgICAg ICBlbHNlCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiAKPiBU aGlzIGxvb2tzIGJvZ3VzLiBJdCBhbHdheXMgZW5kcyB1cCBiZWluZyAiRE1BX0JJRElSRUNUSU9O QUwiIG9yCj4gRUlOVkFMLiBJIHJlY29tbWVuZCBjaGFuZ2luZyBpdCB0bzoKPiAKPiBzd2l0Y2gg KHN5bmMuZmxhZ3MgJiBETUFfQlVGX1NZTkNfUlcpIHsKPiBjYXNlIERNQV9CVUZfU1lOQ19SRUFE Ogo+ICAgICAgICAgZGlyZWN0aW9uID0gRE1BX0ZST01fREVWSUNFOwo+ICAgICAgICAgYnJlYWs7 Cj4gY2FzZSBETUFfQlVGX1NZTkNfV1JJVEU6Cj4gICAgICAgICBkaXJlY3Rpb24gPSBETUFfVE9f REVWSUNFOwo+ICAgICAgICAgYnJlYWs7Cj4gY2FzZSBETUFfQlVGX1NZTkNfUkVBRDoKPiAgICAg ICAgIGRpcmVjdGlvbiA9IERNQV9CSURJUkVDVElPTkFMOwo+ICAgICAgICAgYnJlYWs7Cj4gZGVm YXVsdDoKPiAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+IH0KPiAKPiA+ICsKPiA+ICsgICAgICAg ICAgICAgICBpZiAoc3luYy5mbGFncyAmIH5ETUFfQlVGX1NZTkNfVkFMSURfRkxBR1NfTUFTSykK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+IAo+IFdoeSBpc24n dCB0aGlzIGRvbmUgaW1tZWRpYXRlbHkgYWZ0ZXIgY29weV9mcm9tX3VzZXIoKT8KPiAKPiA+ICsK PiA+ICsgICAgICAgICAgICAgICBpZiAoc3luYy5mbGFncyAmIERNQV9CVUZfU1lOQ19FTkQpCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBkbWFfYnVmX2VuZF9jcHVfYWNjZXNzKGRtYWJ1Ziwg ZGlyZWN0aW9uKTsKPiA+ICsgICAgICAgICAgICAgICBlbHNlCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBkbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3MoZG1hYnVmLCBkaXJlY3Rpb24pOwo+IAo+ IFdoeSBhcmUgU1lOQ19TVEFSVCBhbmQgU1lOQ19FTkQgZXhjbHVzaXZlPyBJdCBmZWVscyB2ZXJ5 IG5hdHVyYWwgdG8gbWUKPiB0byBpbnZva2UgYm90aCBhdCB0aGUgc2FtZSB0aW1lIChlc3BlY2lh bGx5IGlmIHR3byBvYmplY3RzIGFyZSBzdG9yZWQKPiBpbiB0aGUgc2FtZSBkbWEtYnVmKS4KPiAK PiA+ICsKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+ICsgICAgICAgZGVmYXVsdDoK PiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT1RUWTsKPiA+ICsgICAgICAgfQo+ID4gK30K PiA+ICsKPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkbWFfYnVmX2Zv cHMgPSB7Cj4gPiAgICAgICAgIC5yZWxlYXNlICAgICAgICA9IGRtYV9idWZfcmVsZWFzZSwKPiA+ ICAgICAgICAgLm1tYXAgICAgICAgICAgID0gZG1hX2J1Zl9tbWFwX2ludGVybmFsLAo+ID4gICAg ICAgICAubGxzZWVrICAgICAgICAgPSBkbWFfYnVmX2xsc2VlaywKPiA+ICAgICAgICAgLnBvbGwg ICAgICAgICAgID0gZG1hX2J1Zl9wb2xsLAo+ID4gKyAgICAgICAudW5sb2NrZWRfaW9jdGwgPSBk bWFfYnVmX2lvY3RsLAo+ID4gIH07Cj4gPgo+ID4gIC8qCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2xpbnV4L2RtYS1idWYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kbWEtYnVmLmgKPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwLi40YTliMzZiCj4gPiAtLS0g L2Rldi9udWxsCj4gPiArKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZG1hLWJ1Zi5oCj4gPiBAQCAt MCwwICsxLDM4IEBACj4gPiArLyoKPiA+ICsgKiBGcmFtZXdvcmsgZm9yIGJ1ZmZlciBvYmplY3Rz IHRoYXQgY2FuIGJlIHNoYXJlZCBhY3Jvc3MgZGV2aWNlcy9zdWJzeXN0ZW1zLgo+ID4gKyAqCj4g PiArICogQ29weXJpZ2h0KEMpIDIwMTUgSW50ZWwgTHRkCj4gPiArICoKPiA+ICsgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeSBpdAo+ID4gKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieQo+ID4gKyAqIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCj4gPiArICoKPiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKPiA+ICsg KiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IKPiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCj4gPiArICogbW9yZSBkZXRh aWxzLgo+ID4gKyAqCj4gPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAo+ID4gKyAqIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KPiA+ICsg Ki8KPiA+ICsKPiA+ICsjaWZuZGVmIF9ETUFfQlVGX1VBUElfSF8KPiA+ICsjZGVmaW5lIF9ETUFf QlVGX1VBUElfSF8KPiA+ICsKPiA+ICsvKiBiZWdpbi9lbmQgZG1hLWJ1ZiBmdW5jdGlvbnMgdXNl ZCBmb3IgdXNlcnNwYWNlIG1tYXAuICovCj4gPiArc3RydWN0IGRtYV9idWZfc3luYyB7Cj4gPiAr ICAgICAgIF9fdTY0IGZsYWdzOwo+ID4gK307Cj4gCj4gUGxlYXNlIGFkZCAnI2luY2x1ZGUgPGxp bnV4L3R5cGVzLmg+Jywgb3RoZXJ3aXNlIHRoaXMgaGVhZGVyIGNhbm5vdCBiZQo+IGNvbXBpbGVk IG9uIGl0cyBvd24gKG1pc3NpbmcgX191NjQpLgo+IAo+ID4gKwo+ID4gKyNkZWZpbmUgRE1BX0JV Rl9TWU5DX1JFQUQgICAgICAoMSA8PCAwKQo+ID4gKyNkZWZpbmUgRE1BX0JVRl9TWU5DX1dSSVRF ICAgICAoMiA8PCAwKQo+ID4gKyNkZWZpbmUgRE1BX0JVRl9TWU5DX1JXICAgICAgICAoRE1BX0JV Rl9TWU5DX1JFQUQgfCBETUFfQlVGX1NZTkNfV1JJVEUpCj4gPiArI2RlZmluZSBETUFfQlVGX1NZ TkNfU1RBUlQgICAgICgwIDw8IDIpCj4gPiArI2RlZmluZSBETUFfQlVGX1NZTkNfRU5EICAgICAg ICgxIDw8IDIpCj4gPiArI2RlZmluZSBETUFfQlVGX1NZTkNfVkFMSURfRkxBR1NfTUFTSyBcCj4g PiArICAgICAgIChETUFfQlVGX1NZTkNfUlcgfCBETUFfQlVGX1NZTkNfRU5EKQo+ID4gKwo+ID4g KyNkZWZpbmUgRE1BX0JVRl9CQVNFICAgICAgICAgICAnYicKPiA+ICsjZGVmaW5lIERNQV9CVUZf SU9DVExfU1lOQyAgICAgX0lPVyhETUFfQlVGX0JBU0UsIDAsIHN0cnVjdCBkbWFfYnVmX3N5bmMp Cj4gCj4gV2h5IF9JT1c/IEEgcmVhZC1vbmx5IGlvY3RsIHNob3VsZCBiZSBhYmxlIHRvIGNhbGwg RE1BX0JVRl9TWU5DX1JFQUQsIHJpZ2h0PwoKT29wcywgbG9va3MgbGlrZSBtb3JlIHdvcmsgaXMg bmVlZGVkLiBUaGFua3MgZm9yIHlvdXIgcmV2aWV3LgoKSSBkcm9wcGVkIHBhdGNoZXMgMy01IGFn YWluIG1lYW53aGlsZSBmcm9tIGRybS1taXNjLgotRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNv ZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK