From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tiago Vignatti Subject: Re: [PATCH v7 3/5] dma-buf: Add ioctls to allow userspace to flush Date: Thu, 11 Feb 2016 15:54:38 -0200 Message-ID: <56BCCADE.2030701@intel.com> 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"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 9266E7A09D for ; Thu, 11 Feb 2016 09:54:42 -0800 (PST) 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, Daniel Vetter , Thomas Hellstrom , "dri-devel@lists.freedesktop.org" , Jerome Glisse , reveman@google.com, Daniel Vetter List-Id: dri-devel@lists.freedesktop.org ClRoYW5rcyBmb3IgcmV2aWV3aW5nLCBEYXZpZC4gUGxlYXNlIHRha2UgYSBsb29rIGluIG15IGNv bW1lbnRzIGluLWxpbmUuCgoKT24gMDIvMDkvMjAxNiAwNzoyNiBBTSwgRGF2aWQgSGVycm1hbm4g d3JvdGU6Cj4KPiBPbiBUdWUsIERlYyAyMiwgMjAxNSBhdCAxMDozNiBQTSwgVGlhZ28gVmlnbmF0 dGkKPiA8dGlhZ28udmlnbmF0dGlAaW50ZWwuY29tPiB3cm90ZToKPj4gRnJvbTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPj4KPj4gVGhlIHVzZXJzcGFjZSBtaWdodCBu ZWVkIHNvbWUgc29ydCBvZiBjYWNoZSBjb2hlcmVuY3kgbWFuYWdlbWVudCBlLmcuIHdoZW4gQ1BV Cj4+IGFuZCBHUFUgZG9tYWlucyBhcmUgYmVpbmcgYWNjZXNzZWQgdGhyb3VnaCBkbWEtYnVmIGF0 IHRoZSBzYW1lIHRpbWUuIFRvCj4+IGNpcmN1bXZlbnQgdGhpcyBwcm9ibGVtIHRoZXJlIGFyZSBi ZWdpbi9lbmQgY29oZXJlbmN5IG1hcmtlcnMsIHRoYXQgZm9yd2FyZAo+PiBkaXJlY3RseSB0byBl eGlzdGluZyBkbWEtYnVmIGRldmljZSBkcml2ZXJzIHZmdW5jIGhvb2tzLiBVc2Vyc3BhY2UgY2Fu IG1ha2UgdXNlCj4+IG9mIHRob3NlIG1hcmtlcnMgdGhyb3VnaCB0aGUgRE1BX0JVRl9JT0NUTF9T WU5DIGlvY3RsLiBUaGUgc2VxdWVuY2Ugd291bGQgYmUKPj4gdXNlZCBsaWtlIGZvbGxvd2luZzoK Pj4gICAgICAgLSBtbWFwIGRtYS1idWYgZmQKPj4gICAgICAgLSBmb3IgZWFjaCBkcmF3aW5nL3Vw bG9hZCBjeWNsZSBpbiBDUFUgMS4gU1lOQ19TVEFSVCBpb2N0bCwgMi4gcmVhZC93cml0ZQo+PiAg ICAgICAgIHRvIG1tYXAgYXJlYSAzLiBTWU5DX0VORCBpb2N0bC4gVGhpcyBjYW4gYmUgcmVwZWF0 ZWQgYXMgb2Z0ZW4gYXMgeW91Cj4+ICAgICAgICAgd2FudCAod2l0aCB0aGUgbmV3IGRhdGEgYmVp bmcgY29uc3VtZWQgYnkgdGhlIEdQVSBvciBzYXkgc2Nhbm91dCBkZXZpY2UpCj4+ICAgICAgIC0g bXVubWFwIG9uY2UgeW91IGRvbid0IG5lZWQgdGhlIGJ1ZmZlciBhbnkgbW9yZQo+Pgo+PiB2MiAo VGlhZ28pOiBGaXggaGVhZGVyIGZpbGUgdHlwZSBuYW1lcyAodTY0IC0+IF9fdTY0KQo+PiB2MyAo VGlhZ28pOiBBZGQgZG9jdW1lbnRhdGlvbi4gVXNlIGVudW0gZG1hX2J1Zl9zeW5jX2ZsYWdzIHRv IHRoZSBiZWdpbi9lbmQKPj4gZG1hLWJ1ZiBmdW5jdGlvbnMuIENoZWNrIGZvciBvdmVyZmxvd3Mg aW4gc3RhcnQvbGVuZ3RoLgo+PiB2NCAoVGlhZ28pOiB1c2UgMmQgcmVnaW9ucyBmb3Igc3luYy4K Pj4gdjUgKFRpYWdvKTogZm9yZ2V0IGFib3V0IDJkIHJlZ2lvbnMgKHY0KTsgdXNlIF9JT1cgaW4g RE1BX0JVRl9JT0NUTF9TWU5DIGFuZAo+PiByZW1vdmUgcmFuZ2UgaW5mb3JtYXRpb24gZnJvbSBz dHJ1Y3QgZG1hX2J1Zl9zeW5jLgo+PiB2NiAoVGlhZ28pOiB1c2UgX191NjQgc3RydWN0dXJlZCBw YWRkZWQgZmxhZ3MgaW5zdGVhZCBlbnVtLiBBZGp1c3QKPj4gZG9jdW1lbnRhdGlvbiBhYm91dCB0 aGUgcmVjb21tZW5kYXRpb24gb24gdXNpbmcgc3luYyBpb2N0bHMuCj4+IHY3IChUaWFnbyk6IEFs ZXgnIG5pdCBvbiBmbGFncyBkZWZpbml0aW9uIGFuZCBiZWluZyBldmVuIG1vcmUgd29yZGluZyBp biB0aGUKPj4gZG9jIGFib3V0IHN5bmMgdXNhZ2UuCj4+Cj4+IENjOiBTdW1pdCBTZW13YWwgPHN1 bWl0LnNlbXdhbEBsaW5hcm8ub3JnPgo+PiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogVGlhZ28gVmlnbmF0dGkg PHRpYWdvLnZpZ25hdHRpQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgRG9jdW1lbnRhdGlvbi9kbWEt YnVmLXNoYXJpbmcudHh0IHwgMjEgKysrKysrKysrKysrKysrKysrLQo+PiAgIGRyaXZlcnMvZG1h LWJ1Zi9kbWEtYnVmLmMgICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+PiAgIGluY2x1ZGUvdWFwaS9saW51eC9kbWEtYnVmLmggICAgICB8IDM4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICAzIGZpbGVzIGNoYW5nZWQsIDEw MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGlu Y2x1ZGUvdWFwaS9saW51eC9kbWEtYnVmLmgKPj4KPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vZG1hLWJ1Zi1zaGFyaW5nLnR4dCBiL0RvY3VtZW50YXRpb24vZG1hLWJ1Zi1zaGFyaW5nLnR4 dAo+PiBpbmRleCA0ZjRhODRiLi4zMmFjMzJlIDEwMDY0NAo+PiAtLS0gYS9Eb2N1bWVudGF0aW9u L2RtYS1idWYtc2hhcmluZy50eHQKPj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kbWEtYnVmLXNoYXJp bmcudHh0Cj4+IEBAIC0zNTAsNyArMzUwLDI2IEBAIEJlaW5nIGFibGUgdG8gbW1hcCBhbiBleHBv cnQgZG1hLWJ1ZiBidWZmZXIgb2JqZWN0IGhhcyAyIG1haW4gdXNlLWNhc2VzOgo+PiAgICAgIGhh bmRsZXMsIHRvbykuIFNvIGl0J3MgYmVuZWZpY2lhbCB0byBzdXBwb3J0IHRoaXMgaW4gYSBzaW1p bGFyIGZhc2hpb24gb24KPj4gICAgICBkbWEtYnVmIHRvIGhhdmUgYSBnb29kIHRyYW5zaXRpb24g cGF0aCBmb3IgZXhpc3RpbmcgQW5kcm9pZCB1c2Vyc3BhY2UuCj4+Cj4+IC0gICBObyBzcGVjaWFs IGludGVyZmFjZXMsIHVzZXJzcGFjZSBzaW1wbHkgY2FsbHMgbW1hcCBvbiB0aGUgZG1hLWJ1ZiBm ZC4KPj4gKyAgIE5vIHNwZWNpYWwgaW50ZXJmYWNlcywgdXNlcnNwYWNlIHNpbXBseSBjYWxscyBt bWFwIG9uIHRoZSBkbWEtYnVmIGZkLCBtYWtpbmcKPj4gKyAgIHN1cmUgdGhhdCB0aGUgY2FjaGUg c3luY2hyb25pemF0aW9uIGlvY3RsIChETUFfQlVGX0lPQ1RMX1NZTkMpIGlzICphbHdheXMqCj4+ ICsgICB1c2VkIHdoZW4gdGhlIGFjY2VzcyBoYXBwZW5zLiBUaGlzIGlzIGRpc2N1c3NlZCBuZXh0 IHBhcmFncmFwaHMuCj4+ICsKPj4gKyAgIFNvbWUgc3lzdGVtcyBtaWdodCBuZWVkIHNvbWUgc29y dCBvZiBjYWNoZSBjb2hlcmVuY3kgbWFuYWdlbWVudCBlLmcuIHdoZW4KPj4gKyAgIENQVSBhbmQg R1BVIGRvbWFpbnMgYXJlIGJlaW5nIGFjY2Vzc2VkIHRocm91Z2ggZG1hLWJ1ZiBhdCB0aGUgc2Ft ZSB0aW1lLiBUbwo+PiArICAgY2lyY3VtdmVudCB0aGlzIHByb2JsZW0gdGhlcmUgYXJlIGJlZ2lu L2VuZCBjb2hlcmVuY3kgbWFya2VycywgdGhhdCBmb3J3YXJkCj4+ICsgICBkaXJlY3RseSB0byBl eGlzdGluZyBkbWEtYnVmIGRldmljZSBkcml2ZXJzIHZmdW5jIGhvb2tzLiBVc2Vyc3BhY2UgY2Fu IG1ha2UKPj4gKyAgIHVzZSBvZiB0aG9zZSBtYXJrZXJzIHRocm91Z2ggdGhlIERNQV9CVUZfSU9D VExfU1lOQyBpb2N0bC4gVGhlIHNlcXVlbmNlCj4+ICsgICB3b3VsZCBiZSB1c2VkIGxpa2UgZm9s bG93aW5nOgo+PiArICAgICAtIG1tYXAgZG1hLWJ1ZiBmZAo+PiArICAgICAtIGZvciBlYWNoIGRy YXdpbmcvdXBsb2FkIGN5Y2xlIGluIENQVSAxLiBTWU5DX1NUQVJUIGlvY3RsLCAyLiByZWFkL3dy aXRlCj4+ICsgICAgICAgdG8gbW1hcCBhcmVhIDMuIFNZTkNfRU5EIGlvY3RsLiBUaGlzIGNhbiBi ZSByZXBlYXRlZCBhcyBvZnRlbiBhcyB5b3UKPj4gKyAgICAgICB3YW50ICh3aXRoIHRoZSBuZXcg ZGF0YSBiZWluZyBjb25zdW1lZCBieSB0aGUgR1BVIG9yIHNheSBzY2Fub3V0IGRldmljZSkKPj4g KyAgICAgLSBtdW5tYXAgb25jZSB5b3UgZG9uJ3QgbmVlZCB0aGUgYnVmZmVyIGFueSBtb3JlCj4+ ICsKPj4gKyAgICBUaGVyZWZvcmUsIGZvciBjb3JyZWN0bmVzcyBhbmQgb3B0aW1hbCBwZXJmb3Jt YW5jZSwgc3lzdGVtcyB3aXRoIHRoZSBtZW1vcnkKPj4gKyAgICBjYWNoZSBzaGFyZWQgYnkgdGhl IEdQVSBhbmQgQ1BVIGkuZS4gdGhlICJjb2hlcmVudCIgYW5kIGFsc28gdGhlCj4+ICsgICAgImlu Y29oZXJlbnQiIGFyZSBhbHdheXMgcmVxdWlyZWQgdG8gdXNlIFNZTkNfU1RBUlQgYW5kIFNZTkNf RU5EIGJlZm9yZSBhbmQKPj4gKyAgICBhZnRlciwgcmVzcGVjdGl2ZWx5LCB3aGVuIGFjY2Vzc2lu ZyB0aGUgbWFwcGVkIGFkZHJlc3MuCj4+Cj4+ICAgMi4gU3VwcG9ydGluZyBleGlzdGluZyBtbWFw IGludGVyZmFjZXMgaW4gaW1wb3J0ZXJzCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1i dWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwo+PiBpbmRleCBiMmFjMTNi Li45YTI5OGJkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4+ICsr KyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPj4gQEAgLTM0LDYgKzM0LDggQEAKPj4gICAj aW5jbHVkZSA8bGludXgvcG9sbC5oPgo+PiAgICNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5o Pgo+Pgo+PiArI2luY2x1ZGUgPHVhcGkvbGludXgvZG1hLWJ1Zi5oPgo+PiArCj4+ICAgc3RhdGlj IGlubGluZSBpbnQgaXNfZG1hX2J1Zl9maWxlKHN0cnVjdCBmaWxlICopOwo+Pgo+PiAgIHN0cnVj dCBkbWFfYnVmX2xpc3Qgewo+PiBAQCAtMjUxLDExICsyNTMsNTIgQEAgb3V0Ogo+PiAgICAgICAg ICByZXR1cm4gZXZlbnRzOwo+PiAgIH0KPj4KPj4gK3N0YXRpYyBsb25nIGRtYV9idWZfaW9jdGwo c3RydWN0IGZpbGUgKmZpbGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRtYV9i dWYgKmRtYWJ1ZjsKPj4gKyAgICAgICBzdHJ1Y3QgZG1hX2J1Zl9zeW5jIHN5bmM7Cj4+ICsgICAg ICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uOwo+PiArCj4+ICsgICAgICAgZG1h YnVmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwo+PiArCj4+ICsgICAgICAgaWYgKCFpc19kbWFfYnVm X2ZpbGUoZmlsZSkpCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPgo+IFdoeT8g VGhpcyBjYW4gbmV2ZXIgaGFwcGVuLCBhbmQgeW91IGJldHRlciBub3QgdXNlIGRtYV9idWZfaW9j dGwoKQo+IG91dHNpZGUgb2YgZG1hX2J1Zl9mb3BzLi4KPiBJIGd1ZXNzIGl0J3Mgc2ltcGx5IGNv cGllZCBmcm9tIHRoZSBvdGhlciBmb3AgY2FsbGJhY2tzLCBidXQgSSBkb24ndAo+IHNlZSB3aHku IGRtYV9idWZfcG9sbCgpIGRvZXNuJ3QgZG8gaXQsIG5laXRoZXIgc2hvdWxkIHRoaXMsIG9yIG9u ZSBvZgo+IHRoZSBvdGhlciAzIGNhbGxiYWNrcy4KCnl1cC4gSSBmaXhlZCBub3cuCgo+PiArCj4+ ICsgICAgICAgc3dpdGNoIChjbWQpIHsKPj4gKyAgICAgICBjYXNlIERNQV9CVUZfSU9DVExfU1lO QzoKPj4gKyAgICAgICAgICAgICAgIGlmIChjb3B5X2Zyb21fdXNlcigmc3luYywgKHZvaWQgX191 c2VyICopIGFyZywgc2l6ZW9mKHN5bmMpKSkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FRkFVTFQ7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgIGlmIChzeW5jLmZsYWdzICYgRE1B X0JVRl9TWU5DX1JXKQo+PiArICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSBETUFf QklESVJFQ1RJT05BTDsKPj4gKyAgICAgICAgICAgICAgIGVsc2UgaWYgKHN5bmMuZmxhZ3MgJiBE TUFfQlVGX1NZTkNfUkVBRCkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0g RE1BX0ZST01fREVWSUNFOwo+PiArICAgICAgICAgICAgICAgZWxzZSBpZiAoc3luYy5mbGFncyAm IERNQV9CVUZfU1lOQ19XUklURSkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9u ID0gRE1BX1RPX0RFVklDRTsKPj4gKyAgICAgICAgICAgICAgIGVsc2UKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4KPiBUaGlzIGxvb2tzIGJvZ3VzLiBJdCBhbHdh eXMgZW5kcyB1cCBiZWluZyAiRE1BX0JJRElSRUNUSU9OQUwiIG9yCj4gRUlOVkFMLiBJIHJlY29t bWVuZCBjaGFuZ2luZyBpdCB0bzoKPgo+IHN3aXRjaCAoc3luYy5mbGFncyAmIERNQV9CVUZfU1lO Q19SVykgewo+IGNhc2UgRE1BX0JVRl9TWU5DX1JFQUQ6Cj4gICAgICAgICAgZGlyZWN0aW9uID0g RE1BX0ZST01fREVWSUNFOwo+ICAgICAgICAgIGJyZWFrOwo+IGNhc2UgRE1BX0JVRl9TWU5DX1dS SVRFOgo+ICAgICAgICAgIGRpcmVjdGlvbiA9IERNQV9UT19ERVZJQ0U7Cj4gICAgICAgICAgYnJl YWs7Cj4gY2FzZSBETUFfQlVGX1NZTkNfUkVBRDoKPiAgICAgICAgICBkaXJlY3Rpb24gPSBETUFf QklESVJFQ1RJT05BTDsKPiAgICAgICAgICBicmVhazsKPiBkZWZhdWx0Ogo+ICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+IH0KCmhtbSBJIGNhbid0IHJlYWxseSBnZXQgd2hhdCdzIHdyb25nIHdp dGggbXkgc25pcC4gV2h5IGJvZ3VzPyBDYW4geW91IApkb3VibGUtY2hlY2sgYWN0dWFsbHkgeW91 ciBzdWdnZXN0aW9uLCBjYXVzZSB0aGF0J3Mgd3Jvbmcgd2l0aCBfUkVBRCAKYmVpbmcgcmVwZWF0 ZWQuCgoKPj4gKwo+PiArICAgICAgICAgICAgICAgaWYgKHN5bmMuZmxhZ3MgJiB+RE1BX0JVRl9T WU5DX1ZBTElEX0ZMQUdTX01BU0spCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwo+Cj4gV2h5IGlzbid0IHRoaXMgZG9uZSBpbW1lZGlhdGVseSBhZnRlciBjb3B5X2Zy b21fdXNlcigpPwoKZG9uZS4KCgo+PiArCj4+ICsgICAgICAgICAgICAgICBpZiAoc3luYy5mbGFn cyAmIERNQV9CVUZfU1lOQ19FTkQpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGRtYV9idWZf ZW5kX2NwdV9hY2Nlc3MoZG1hYnVmLCBkaXJlY3Rpb24pOwo+PiArICAgICAgICAgICAgICAgZWxz ZQo+PiArICAgICAgICAgICAgICAgICAgICAgICBkbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3MoZG1h YnVmLCBkaXJlY3Rpb24pOwo+Cj4gV2h5IGFyZSBTWU5DX1NUQVJUIGFuZCBTWU5DX0VORCBleGNs dXNpdmU/IEl0IGZlZWxzIHZlcnkgbmF0dXJhbCB0byBtZQo+IHRvIGludm9rZSBib3RoIGF0IHRo ZSBzYW1lIHRpbWUgKGVzcGVjaWFsbHkgaWYgdHdvIG9iamVjdHMgYXJlIHN0b3JlZAo+IGluIHRo ZSBzYW1lIGRtYS1idWYpLgoKQ2FuIHlvdSBvcGVuIGEgYml0IGFuZCB0ZWFjaCBob3cgdHdvIG9i amVjdHMgd291bGQgYmUgc3RvcmVkIGluIHRoZSBzYW1lIApkbWEtYnVmPyBJIGRpZG4ndCBjYXJl IGFib3V0IHRoaXMgY2FzZSBhbmQgaWYgd2Ugd2FudCB0aGF0LCB3ZSdkIG5lZWQgCmFsc28gdG8g Y2hhbmdlIHRoZSBzZXF1ZW5jZSBvZiBhY2Nlc3NlcyBhcyBkZXNjcmliZWQgaW4gdGhlIApkbWEt YnVmLXNoYXJpbmcudHh0IEknbSBwcm9wb3NpbmcgaW4gdGhpcyBwYXRjaC4KCgo+PiArCj4+ICsg ICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gKyAgICAgICBkZWZhdWx0Ogo+PiArICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9UVFk7Cj4+ICsgICAgICAgfQo+PiArfQo+PiArCj4+ICAgc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZG1hX2J1Zl9mb3BzID0gewo+PiAgICAgICAg ICAucmVsZWFzZSAgICAgICAgPSBkbWFfYnVmX3JlbGVhc2UsCj4+ICAgICAgICAgIC5tbWFwICAg ICAgICAgICA9IGRtYV9idWZfbW1hcF9pbnRlcm5hbCwKPj4gICAgICAgICAgLmxsc2VlayAgICAg ICAgID0gZG1hX2J1Zl9sbHNlZWssCj4+ICAgICAgICAgIC5wb2xsICAgICAgICAgICA9IGRtYV9i dWZfcG9sbCwKPj4gKyAgICAgICAudW5sb2NrZWRfaW9jdGwgPSBkbWFfYnVmX2lvY3RsLAo+PiAg IH07Cj4+Cj4+ICAgLyoKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9kbWEtYnVm LmggYi9pbmNsdWRlL3VhcGkvbGludXgvZG1hLWJ1Zi5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4+IGluZGV4IDAwMDAwMDAuLjRhOWIzNmIKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9pbmNs dWRlL3VhcGkvbGludXgvZG1hLWJ1Zi5oCj4+IEBAIC0wLDAgKzEsMzggQEAKPj4gKy8qCj4+ICsg KiBGcmFtZXdvcmsgZm9yIGJ1ZmZlciBvYmplY3RzIHRoYXQgY2FuIGJlIHNoYXJlZCBhY3Jvc3Mg ZGV2aWNlcy9zdWJzeXN0ZW1zLgo+PiArICoKPj4gKyAqIENvcHlyaWdodChDKSAyMDE1IEludGVs IEx0ZAo+PiArICoKPj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cj4+ICsgKiB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQg YnkKPj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4+ICsgKgo+PiArICogVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsIGJ1dCBXSVRIT1VUCj4+ICsgKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKPj4gKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IKPj4gKyAqIG1vcmUgZGV0YWlscy4KPj4gKyAqCj4+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRo Cj4+ICsgKiB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCj4+ICsgKi8KPj4gKwo+PiArI2lmbmRlZiBfRE1BX0JVRl9VQVBJX0hfCj4+ICsj ZGVmaW5lIF9ETUFfQlVGX1VBUElfSF8KPj4gKwo+PiArLyogYmVnaW4vZW5kIGRtYS1idWYgZnVu Y3Rpb25zIHVzZWQgZm9yIHVzZXJzcGFjZSBtbWFwLiAqLwo+PiArc3RydWN0IGRtYV9idWZfc3lu YyB7Cj4+ICsgICAgICAgX191NjQgZmxhZ3M7Cj4+ICt9Owo+Cj4gUGxlYXNlIGFkZCAnI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+Jywgb3RoZXJ3aXNlIHRoaXMgaGVhZGVyIGNhbm5vdCBiZQo+IGNv bXBpbGVkIG9uIGl0cyBvd24gKG1pc3NpbmcgX191NjQpLgoKZG9uZS4KCgo+PiArCj4+ICsjZGVm aW5lIERNQV9CVUZfU1lOQ19SRUFEICAgICAgKDEgPDwgMCkKPj4gKyNkZWZpbmUgRE1BX0JVRl9T WU5DX1dSSVRFICAgICAoMiA8PCAwKQo+PiArI2RlZmluZSBETUFfQlVGX1NZTkNfUlcgICAgICAg IChETUFfQlVGX1NZTkNfUkVBRCB8IERNQV9CVUZfU1lOQ19XUklURSkKPj4gKyNkZWZpbmUgRE1B X0JVRl9TWU5DX1NUQVJUICAgICAoMCA8PCAyKQo+PiArI2RlZmluZSBETUFfQlVGX1NZTkNfRU5E ICAgICAgICgxIDw8IDIpCj4+ICsjZGVmaW5lIERNQV9CVUZfU1lOQ19WQUxJRF9GTEFHU19NQVNL IFwKPj4gKyAgICAgICAoRE1BX0JVRl9TWU5DX1JXIHwgRE1BX0JVRl9TWU5DX0VORCkKPj4gKwo+ PiArI2RlZmluZSBETUFfQlVGX0JBU0UgICAgICAgICAgICdiJwo+PiArI2RlZmluZSBETUFfQlVG X0lPQ1RMX1NZTkMgICAgIF9JT1coRE1BX0JVRl9CQVNFLCAwLCBzdHJ1Y3QgZG1hX2J1Zl9zeW5j KQo+Cj4gV2h5IF9JT1c/IEEgcmVhZC1vbmx5IGlvY3RsIHNob3VsZCBiZSBhYmxlIHRvIGNhbGwg RE1BX0JVRl9TWU5DX1JFQUQsIHJpZ2h0PwoKeXVwLiBJJ3ZlIGNoYW5nZWQgaXQgdG8gX0lPV1Ig bm93LgoKVGlhZ28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=