From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Herrmann Subject: Re: [PATCH v9] dma-buf: Add ioctls to allow userspace to flush Date: Fri, 12 Feb 2016 15:50:02 +0100 Message-ID: References: <20160211191054.GG23290@intel.com> <1455228291-29640-1-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 B98BA6EAB5 for ; Fri, 12 Feb 2016 06:50:48 -0800 (PST) Received: by mail-wm0-f66.google.com with SMTP id 128so3092136wmz.3 for ; Fri, 12 Feb 2016 06:50:48 -0800 (PST) In-Reply-To: <1455228291-29640-1-git-send-email-tiago.vignatti@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Tiago Vignatti Cc: Daniel Thompson , =?UTF-8?Q?St=C3=A9phane_Marchesin?= , Daniel Vetter , Thomas Hellstrom , "dri-devel@lists.freedesktop.org" , Jerome Glisse , David Reveman , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SGkKCk9uIFRodSwgRmViIDExLCAyMDE2IGF0IDExOjA0IFBNLCBUaWFnbyBWaWduYXR0aQo8dGlh Z28udmlnbmF0dGlAaW50ZWwuY29tPiB3cm90ZToKPiBGcm9tOiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGZmd2xsLmNoPgo+Cj4gVGhlIHVzZXJzcGFjZSBtaWdodCBuZWVkIHNvbWUgc29y dCBvZiBjYWNoZSBjb2hlcmVuY3kgbWFuYWdlbWVudCBlLmcuIHdoZW4gQ1BVCj4gYW5kIEdQVSBk b21haW5zIGFyZSBiZWluZyBhY2Nlc3NlZCB0aHJvdWdoIGRtYS1idWYgYXQgdGhlIHNhbWUgdGlt ZS4gVG8KPiBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSB0aGVyZSBhcmUgYmVnaW4vZW5kIGNvaGVy ZW5jeSBtYXJrZXJzLCB0aGF0IGZvcndhcmQKPiBkaXJlY3RseSB0byBleGlzdGluZyBkbWEtYnVm IGRldmljZSBkcml2ZXJzIHZmdW5jIGhvb2tzLiBVc2Vyc3BhY2UgY2FuIG1ha2UgdXNlCj4gb2Yg dGhvc2UgbWFya2VycyB0aHJvdWdoIHRoZSBETUFfQlVGX0lPQ1RMX1NZTkMgaW9jdGwuIFRoZSBz ZXF1ZW5jZSB3b3VsZCBiZQo+IHVzZWQgbGlrZSBmb2xsb3dpbmc6Cj4gICAgICAtIG1tYXAgZG1h LWJ1ZiBmZAo+ICAgICAgLSBmb3IgZWFjaCBkcmF3aW5nL3VwbG9hZCBjeWNsZSBpbiBDUFUgMS4g U1lOQ19TVEFSVCBpb2N0bCwgMi4gcmVhZC93cml0ZQo+ICAgICAgICB0byBtbWFwIGFyZWEgMy4g U1lOQ19FTkQgaW9jdGwuIFRoaXMgY2FuIGJlIHJlcGVhdGVkIGFzIG9mdGVuIGFzIHlvdQo+ICAg ICAgICB3YW50ICh3aXRoIHRoZSBuZXcgZGF0YSBiZWluZyBjb25zdW1lZCBieSB0aGUgR1BVIG9y IHNheSBzY2Fub3V0IGRldmljZSkKPiAgICAgIC0gbXVubWFwIG9uY2UgeW91IGRvbid0IG5lZWQg dGhlIGJ1ZmZlciBhbnkgbW9yZQo+Cj4gdjIgKFRpYWdvKTogRml4IGhlYWRlciBmaWxlIHR5cGUg bmFtZXMgKHU2NCAtPiBfX3U2NCkKPiB2MyAoVGlhZ28pOiBBZGQgZG9jdW1lbnRhdGlvbi4gVXNl IGVudW0gZG1hX2J1Zl9zeW5jX2ZsYWdzIHRvIHRoZSBiZWdpbi9lbmQKPiBkbWEtYnVmIGZ1bmN0 aW9ucy4gQ2hlY2sgZm9yIG92ZXJmbG93cyBpbiBzdGFydC9sZW5ndGguCj4gdjQgKFRpYWdvKTog dXNlIDJkIHJlZ2lvbnMgZm9yIHN5bmMuCj4gdjUgKFRpYWdvKTogZm9yZ2V0IGFib3V0IDJkIHJl Z2lvbnMgKHY0KTsgdXNlIF9JT1cgaW4gRE1BX0JVRl9JT0NUTF9TWU5DIGFuZAo+IHJlbW92ZSBy YW5nZSBpbmZvcm1hdGlvbiBmcm9tIHN0cnVjdCBkbWFfYnVmX3N5bmMuCj4gdjYgKFRpYWdvKTog dXNlIF9fdTY0IHN0cnVjdHVyZWQgcGFkZGVkIGZsYWdzIGluc3RlYWQgZW51bS4gQWRqdXN0Cj4g ZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgcmVjb21tZW5kYXRpb24gb24gdXNpbmcgc3luYyBpb2N0 bHMuCj4gdjcgKFRpYWdvKTogQWxleCcgbml0IG9uIGZsYWdzIGRlZmluaXRpb24gYW5kIGJlaW5n IGV2ZW4gbW9yZSB3b3JkaW5nIGluIHRoZQo+IGRvYyBhYm91dCBzeW5jIHVzYWdlLgo+IHY5IChU aWFnbyk6IHJlbW92ZSB1c2VsZXNzIGlzX2RtYV9idWZfZmlsZSBjaGVjay4gRml4IHN5bmMuZmxh Z3MgY29uZGl0aW9uYWxzCj4gYW5kIGl0cyBtYXNrIG9yZGVyIGNoZWNrLiBBZGQgPGxpbnV4L3R5 cGVzLmg+IGluY2x1ZGUgaW4gZG1hLWJ1Zi5oLgo+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IERhdmlkIEhlcnJtYW5uIDxkaC5oZXJy bWFubkBnbWFpbC5jb20+Cj4gQ2M6IFN1bWl0IFNlbXdhbCA8c3VtaXQuc2Vtd2FsQGxpbmFyby5v cmc+Cj4gUmV2aWV3ZWQtYnk6IFN0w6lwaGFuZSBNYXJjaGVzaW4gPG1hcmNoZXVAY2hyb21pdW0u b3JnPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgo+IFNpZ25lZC1vZmYtYnk6IFRpYWdvIFZpZ25hdHRpIDx0aWFnby52aWduYXR0aUBpbnRl bC5jb20+Cj4gLS0tCj4KPiBJIGxlZnQgU1lOQ19TVEFSVCBhbmQgU1lOQ19FTkQgZXhjbHVzaXZl LCBqdXN0IGhvdyB0aGUgbG9naWMgd2FzIGJlZm9yZS4gSWYgd2UKPiBzZWUgYW4gdXNlZnVsIHVz ZSBjYXNlLCBtYXliZSBsaWtlIHRoZSB3YXkgRGF2aWQgc2FpZCwgdG8gc3RvcmUgdHdvIGZyYW1l cwo+IG5leHQgdG8gZWFjaCBvdGhlciBpbiB0aGUgc2FtZSBCTywgd2UgY2FuIHBhdGNoIHVwIGxh dGVyIGZhaXJseSBlYXNpbHkuCj4KPiBBYm91dCB0aGUgaW9jdGwgZGlyZWN0aW9uLCBqdXN0IGxp a2UgVmlsbGUgcG9pbnRlZCwgd2UncmUgZG9pbmcgb25seQo+IGNvcHlfZnJvbV91c2VyIGF0IHRo ZSBtb21lbnQgYW5kIHNlZW1zIHRoYXQgX0lPVyBpcyBhbGwgd2UgbmVlZC4gU28gSSBhbHNvCj4g ZGlkbid0IHRvdWNoIGFueXRoaW5nIG9uIHRoYXQuCgpGYWlyIGVub3VnaC4KCkFsbCBJIGhhdmUg bGVmdCBhcmUgY29tbWVudHMgb24gY29kaW5nLXN0eWxlLCBhbmQgSSdsbCByZWZyYWluIGZyb20K dmVyYmFsaXppbmcgdGhlbS4uIChnbmFoLCBpdCBpcyBzbyB0ZW1wdGluZykuCgpSZXZpZXdlZC1i eTogRGF2aWQgSGVycm1hbm4gPGRoLmhlcnJtYW5uQGdtYWlsLmNvbT4KClRoYW5rcyEKRGF2aWQK Cj4gIERvY3VtZW50YXRpb24vZG1hLWJ1Zi1zaGFyaW5nLnR4dCB8IDIxICsrKysrKysrKysrKysr KysrLQo+ICBkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jICAgICAgICAgfCA0NSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgaW5jbHVkZS91YXBpL2xpbnV4L2RtYS1i dWYuaCAgICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAzIGZp bGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBpbmNsdWRlL3VhcGkvbGludXgvZG1hLWJ1Zi5oCj4KPiBkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9kbWEtYnVmLXNoYXJpbmcudHh0IGIvRG9jdW1lbnRhdGlvbi9kbWEtYnVm LXNoYXJpbmcudHh0Cj4gaW5kZXggNGY0YTg0Yi4uMzJhYzMyZSAxMDA2NDQKPiAtLS0gYS9Eb2N1 bWVudGF0aW9uL2RtYS1idWYtc2hhcmluZy50eHQKPiArKysgYi9Eb2N1bWVudGF0aW9uL2RtYS1i dWYtc2hhcmluZy50eHQKPiBAQCAtMzUwLDcgKzM1MCwyNiBAQCBCZWluZyBhYmxlIHRvIG1tYXAg YW4gZXhwb3J0IGRtYS1idWYgYnVmZmVyIG9iamVjdCBoYXMgMiBtYWluIHVzZS1jYXNlczoKPiAg ICAgaGFuZGxlcywgdG9vKS4gU28gaXQncyBiZW5lZmljaWFsIHRvIHN1cHBvcnQgdGhpcyBpbiBh IHNpbWlsYXIgZmFzaGlvbiBvbgo+ICAgICBkbWEtYnVmIHRvIGhhdmUgYSBnb29kIHRyYW5zaXRp b24gcGF0aCBmb3IgZXhpc3RpbmcgQW5kcm9pZCB1c2Vyc3BhY2UuCj4KPiAtICAgTm8gc3BlY2lh bCBpbnRlcmZhY2VzLCB1c2Vyc3BhY2Ugc2ltcGx5IGNhbGxzIG1tYXAgb24gdGhlIGRtYS1idWYg ZmQuCj4gKyAgIE5vIHNwZWNpYWwgaW50ZXJmYWNlcywgdXNlcnNwYWNlIHNpbXBseSBjYWxscyBt bWFwIG9uIHRoZSBkbWEtYnVmIGZkLCBtYWtpbmcKPiArICAgc3VyZSB0aGF0IHRoZSBjYWNoZSBz eW5jaHJvbml6YXRpb24gaW9jdGwgKERNQV9CVUZfSU9DVExfU1lOQykgaXMgKmFsd2F5cyoKPiAr ICAgdXNlZCB3aGVuIHRoZSBhY2Nlc3MgaGFwcGVucy4gVGhpcyBpcyBkaXNjdXNzZWQgbmV4dCBw YXJhZ3JhcGhzLgo+ICsKPiArICAgU29tZSBzeXN0ZW1zIG1pZ2h0IG5lZWQgc29tZSBzb3J0IG9m IGNhY2hlIGNvaGVyZW5jeSBtYW5hZ2VtZW50IGUuZy4gd2hlbgo+ICsgICBDUFUgYW5kIEdQVSBk b21haW5zIGFyZSBiZWluZyBhY2Nlc3NlZCB0aHJvdWdoIGRtYS1idWYgYXQgdGhlIHNhbWUgdGlt ZS4gVG8KPiArICAgY2lyY3VtdmVudCB0aGlzIHByb2JsZW0gdGhlcmUgYXJlIGJlZ2luL2VuZCBj b2hlcmVuY3kgbWFya2VycywgdGhhdCBmb3J3YXJkCj4gKyAgIGRpcmVjdGx5IHRvIGV4aXN0aW5n IGRtYS1idWYgZGV2aWNlIGRyaXZlcnMgdmZ1bmMgaG9va3MuIFVzZXJzcGFjZSBjYW4gbWFrZQo+ ICsgICB1c2Ugb2YgdGhvc2UgbWFya2VycyB0aHJvdWdoIHRoZSBETUFfQlVGX0lPQ1RMX1NZTkMg aW9jdGwuIFRoZSBzZXF1ZW5jZQo+ICsgICB3b3VsZCBiZSB1c2VkIGxpa2UgZm9sbG93aW5nOgo+ ICsgICAgIC0gbW1hcCBkbWEtYnVmIGZkCj4gKyAgICAgLSBmb3IgZWFjaCBkcmF3aW5nL3VwbG9h ZCBjeWNsZSBpbiBDUFUgMS4gU1lOQ19TVEFSVCBpb2N0bCwgMi4gcmVhZC93cml0ZQo+ICsgICAg ICAgdG8gbW1hcCBhcmVhIDMuIFNZTkNfRU5EIGlvY3RsLiBUaGlzIGNhbiBiZSByZXBlYXRlZCBh cyBvZnRlbiBhcyB5b3UKPiArICAgICAgIHdhbnQgKHdpdGggdGhlIG5ldyBkYXRhIGJlaW5nIGNv bnN1bWVkIGJ5IHRoZSBHUFUgb3Igc2F5IHNjYW5vdXQgZGV2aWNlKQo+ICsgICAgIC0gbXVubWFw IG9uY2UgeW91IGRvbid0IG5lZWQgdGhlIGJ1ZmZlciBhbnkgbW9yZQo+ICsKPiArICAgIFRoZXJl Zm9yZSwgZm9yIGNvcnJlY3RuZXNzIGFuZCBvcHRpbWFsIHBlcmZvcm1hbmNlLCBzeXN0ZW1zIHdp dGggdGhlIG1lbW9yeQo+ICsgICAgY2FjaGUgc2hhcmVkIGJ5IHRoZSBHUFUgYW5kIENQVSBpLmUu IHRoZSAiY29oZXJlbnQiIGFuZCBhbHNvIHRoZQo+ICsgICAgImluY29oZXJlbnQiIGFyZSBhbHdh eXMgcmVxdWlyZWQgdG8gdXNlIFNZTkNfU1RBUlQgYW5kIFNZTkNfRU5EIGJlZm9yZSBhbmQKPiAr ICAgIGFmdGVyLCByZXNwZWN0aXZlbHksIHdoZW4gYWNjZXNzaW5nIHRoZSBtYXBwZWQgYWRkcmVz cy4KPgo+ICAyLiBTdXBwb3J0aW5nIGV4aXN0aW5nIG1tYXAgaW50ZXJmYWNlcyBpbiBpbXBvcnRl cnMKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9k bWEtYnVmL2RtYS1idWYuYwo+IGluZGV4IGIyYWMxM2IuLjk4MTBkMWQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwo+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVm LmMKPiBAQCAtMzQsNiArMzQsOCBAQAo+ICAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgo+ICAjaW5j bHVkZSA8bGludXgvcmVzZXJ2YXRpb24uaD4KPgo+ICsjaW5jbHVkZSA8dWFwaS9saW51eC9kbWEt YnVmLmg+Cj4gKwo+ICBzdGF0aWMgaW5saW5lIGludCBpc19kbWFfYnVmX2ZpbGUoc3RydWN0IGZp bGUgKik7Cj4KPiAgc3RydWN0IGRtYV9idWZfbGlzdCB7Cj4gQEAgLTI1MSwxMSArMjUzLDU0IEBA IG91dDoKPiAgICAgICAgIHJldHVybiBldmVudHM7Cj4gIH0KPgo+ICtzdGF0aWMgbG9uZyBkbWFf YnVmX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCj4gK3sKPiArICAgICAgIHN0cnVj dCBkbWFfYnVmICpkbWFidWY7Cj4gKyAgICAgICBzdHJ1Y3QgZG1hX2J1Zl9zeW5jIHN5bmM7Cj4g KyAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXJlY3Rpb247Cj4gKwo+ICsgICAgICAg ZG1hYnVmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwo+ICsKPiArICAgICAgIHN3aXRjaCAoY21kKSB7 Cj4gKyAgICAgICBjYXNlIERNQV9CVUZfSU9DVExfU1lOQzoKPiArICAgICAgICAgICAgICAgaWYg KGNvcHlfZnJvbV91c2VyKCZzeW5jLCAodm9pZCBfX3VzZXIgKikgYXJnLCBzaXplb2Yoc3luYykp KQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOwo+ICsKPiArICAgICAg ICAgICAgICAgaWYgKHN5bmMuZmxhZ3MgJiB+RE1BX0JVRl9TWU5DX1ZBTElEX0ZMQUdTX01BU0sp Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsgICAgICAg ICAgICAgICBzd2l0Y2ggKHN5bmMuZmxhZ3MgJiBETUFfQlVGX1NZTkNfUlcpIHsKPiArICAgICAg ICAgICAgICAgY2FzZSBETUFfQlVGX1NZTkNfUkVBRDoKPiArICAgICAgICAgICAgICAgICAgICAg ICBkaXJlY3Rpb24gPSBETUFfRlJPTV9ERVZJQ0U7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgRE1BX0JVRl9TWU5DX1dSSVRFOgo+ICsgICAg ICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IERNQV9UT19ERVZJQ0U7Cj4gKyAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgRE1BX0JVRl9TWU5D X1JXOgo+ICsgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IERNQV9CSURJUkVDVElP TkFMOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICBk ZWZhdWx0Ogo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ICsgICAg ICAgICAgICAgICB9Cj4gKwo+ICsgICAgICAgICAgICAgICBpZiAoc3luYy5mbGFncyAmIERNQV9C VUZfU1lOQ19FTkQpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZG1hX2J1Zl9lbmRfY3B1X2Fj Y2VzcyhkbWFidWYsIGRpcmVjdGlvbik7Cj4gKyAgICAgICAgICAgICAgIGVsc2UKPiArICAgICAg ICAgICAgICAgICAgICAgICBkbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3MoZG1hYnVmLCBkaXJlY3Rp b24pOwo+ICsKPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gKyAgICAgICBkZWZhdWx0Ogo+ ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT1RUWTsKPiArICAgICAgIH0KPiArfQo+ICsKPiAg c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZG1hX2J1Zl9mb3BzID0gewo+ICAg ICAgICAgLnJlbGVhc2UgICAgICAgID0gZG1hX2J1Zl9yZWxlYXNlLAo+ICAgICAgICAgLm1tYXAg ICAgICAgICAgID0gZG1hX2J1Zl9tbWFwX2ludGVybmFsLAo+ICAgICAgICAgLmxsc2VlayAgICAg ICAgID0gZG1hX2J1Zl9sbHNlZWssCj4gICAgICAgICAucG9sbCAgICAgICAgICAgPSBkbWFfYnVm X3BvbGwsCj4gKyAgICAgICAudW5sb2NrZWRfaW9jdGwgPSBkbWFfYnVmX2lvY3RsLAo+ICB9Owo+ Cj4gIC8qCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9kbWEtYnVmLmggYi9pbmNs dWRlL3VhcGkvbGludXgvZG1hLWJ1Zi5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwLi5mYjBkZWRiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9kbWEtYnVmLmgKPiBAQCAtMCwwICsxLDQwIEBACj4gKy8qCj4gKyAqIEZyYW1ld29yayBmb3Ig YnVmZmVyIG9iamVjdHMgdGhhdCBjYW4gYmUgc2hhcmVkIGFjcm9zcyBkZXZpY2VzL3N1YnN5c3Rl bXMuCj4gKyAqCj4gKyAqIENvcHlyaWdodChDKSAyMDE1IEludGVsIEx0ZAo+ICsgKgo+ICsgKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeSBpdAo+ICsgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbi4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCj4gKyAqIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWSBvcgo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCj4gKyAqIG1vcmUgZGV0YWlscy4KPiAr ICoKPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAo+ICsgKiB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gKyAqLwo+ICsKPiArI2lmbmRl ZiBfRE1BX0JVRl9VQVBJX0hfCj4gKyNkZWZpbmUgX0RNQV9CVUZfVUFQSV9IXwo+ICsKPiArI2lu Y2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gKwo+ICsvKiBiZWdpbi9lbmQgZG1hLWJ1ZiBmdW5jdGlv bnMgdXNlZCBmb3IgdXNlcnNwYWNlIG1tYXAuICovCj4gK3N0cnVjdCBkbWFfYnVmX3N5bmMgewo+ ICsgICAgICAgX191NjQgZmxhZ3M7Cj4gK307Cj4gKwo+ICsjZGVmaW5lIERNQV9CVUZfU1lOQ19S RUFEICAgICAgKDEgPDwgMCkKPiArI2RlZmluZSBETUFfQlVGX1NZTkNfV1JJVEUgICAgICgyIDw8 IDApCj4gKyNkZWZpbmUgRE1BX0JVRl9TWU5DX1JXICAgICAgICAoRE1BX0JVRl9TWU5DX1JFQUQg fCBETUFfQlVGX1NZTkNfV1JJVEUpCj4gKyNkZWZpbmUgRE1BX0JVRl9TWU5DX1NUQVJUICAgICAo MCA8PCAyKQo+ICsjZGVmaW5lIERNQV9CVUZfU1lOQ19FTkQgICAgICAgKDEgPDwgMikKPiArI2Rl ZmluZSBETUFfQlVGX1NZTkNfVkFMSURfRkxBR1NfTUFTSyBcCj4gKyAgICAgICAoRE1BX0JVRl9T WU5DX1JXIHwgRE1BX0JVRl9TWU5DX0VORCkKPiArCj4gKyNkZWZpbmUgRE1BX0JVRl9CQVNFICAg ICAgICAgICAnYicKPiArI2RlZmluZSBETUFfQlVGX0lPQ1RMX1NZTkMgICAgIF9JT1coRE1BX0JV Rl9CQVNFLCAwLCBzdHJ1Y3QgZG1hX2J1Zl9zeW5jKQo+ICsKPiArI2VuZGlmCj4gLS0KPiAyLjEu NAo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=