From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2] drm/tegra: Add kerneldoc for UAPI Date: Wed, 23 May 2018 10:59:04 +0200 Message-ID: <20180523085904.GQ3438@phenom.ffwll.local> References: <20180517154132.10058-8-thierry.reding@gmail.com> <20180518203337.26476-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180518203337.26476-1-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: linux-tegra@vger.kernel.org, Dmitry Osipenko , dri-devel@lists.freedesktop.org, Mikko Perttunen List-Id: linux-tegra@vger.kernel.org T24gRnJpLCBNYXkgMTgsIDIwMTggYXQgMTA6MzM6MzdQTSArMDIwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBE b2N1bWVudCB0aGUgdXNlcnNwYWNlIEFCSSB3aXRoIGtlcm5lbGRvYyB0byBwcm92aWRlIHNvbWUg aW5mb3JtYXRpb24gb24KPiBob3cgdG8gdXNlIGl0Lgo+IAo+IHYyOgo+IC0ga2VlcCBHRU0gb2Jq ZWN0IGNyZWF0aW9uIGZsYWdzIGZvciBBQkkgY29tcGF0aWJpbGl0eQo+IC0gZml4IHR5cG8gaW4g c3RydWN0IGRybV90ZWdyYV9zeW5jcHRfaW5jciBrZXJuZWxkb2MKPiAtIGZpeCB0eXBvcyBpbiBz dHJ1Y3QgZHJtX3RlZ3JhX3N1Ym1pdCBrZXJuZWxkb2MKPiAtIHJld29yZGVkIHNvbWUgZGVzY3Jp cHRpb25zIGFzIHN1Z2dlc3RlZAo+IAo+IFNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0 cmVkaW5nQG52aWRpYS5jb20+Cj4gLS0tCj4gIGluY2x1ZGUvdWFwaS9kcm0vdGVncmFfZHJtLmgg fCA0ODAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KCldvdWxkIGJlIGdyZWF0 IHRvIGluY2x1ZGUgdGhhdCBzb21ld2hlcmUgaW4gRG9jdW1lbnRhdGlvbi9ncHUvZHJpdmVycy5y c3QKdW5kZXIgYSB0ZWdyYSBjaGFwdGVyLiBPdGhlcndpc2UgMGRheSB3b24ndCBjaGVjayB5b3Vy IGRvY3MgYXQgYWxsCnVuZm9ydHVuYXRlbHkuCi1EYW5pZWwKCj4gIDEgZmlsZSBjaGFuZ2VkLCA0 NzEgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2RybS90ZWdyYV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vdGVncmFfZHJtLmgKPiBp bmRleCA5OWUxNWQ4MmQxZTkuLjdlMTIxYzY5Y2Q5YSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3Vh cGkvZHJtL3RlZ3JhX2RybS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS90ZWdyYV9kcm0uaAo+ IEBAIC0zMiwxNDMgKzMyLDYwNSBAQCBleHRlcm4gIkMiIHsKPiAgI2RlZmluZSBEUk1fVEVHUkFf R0VNX0NSRUFURV9USUxFRCAgICAgKDEgPDwgMCkKPiAgI2RlZmluZSBEUk1fVEVHUkFfR0VNX0NS RUFURV9CT1RUT01fVVAgKDEgPDwgMSkKPiAgCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3Jh X2dlbV9jcmVhdGUgLSBwYXJhbWV0ZXJzIGZvciB0aGUgR0VNIG9iamVjdCBjcmVhdGlvbiBJT0NU TAo+ICsgKi8KPiAgc3RydWN0IGRybV90ZWdyYV9nZW1fY3JlYXRlIHsKPiArCS8qKgo+ICsJICog QHNpemU6Cj4gKwkgKgo+ICsJICogVGhlIHNpemUsIGluIGJ5dGVzLCBvZiB0aGUgYnVmZmVyIG9i amVjdCB0byBiZSBjcmVhdGVkLgo+ICsJICovCj4gIAlfX3U2NCBzaXplOwo+ICsKPiArCS8qKgo+ ICsJICogQGZsYWdzOgo+ICsJICoKPiArCSAqIEEgYml0bWFzayBvZiBmbGFncyB0aGF0IGluZmx1 ZW5jZSB0aGUgY3JlYXRpb24gb2YgR0VNIG9iamVjdHM6Cj4gKwkgKgo+ICsJICogRFJNX1RFR1JB X0dFTV9DUkVBVEVfVElMRUQKPiArCSAqICAgVXNlIHRoZSAxNngxNiB0aWxpbmcgZm9ybWF0IGZv ciB0aGlzIGJ1ZmZlci4KPiArCSAqCj4gKwkgKiBEUk1fVEVHUkFfR0VNX0NSRUFURV9CT1RUT01f VVAKPiArCSAqICAgVGhlIGJ1ZmZlciBoYXMgYSBib3R0b20tdXAgbGF5b3V0Lgo+ICsJICovCj4g IAlfX3UzMiBmbGFnczsKPiArCj4gKwkvKioKPiArCSAqIEBoYW5kbGU6Cj4gKwkgKgo+ICsJICog VGhlIGhhbmRsZSBvZiB0aGUgY3JlYXRlZCBHRU0gb2JqZWN0LiBTZXQgYnkgdGhlIGtlcm5lbCB1 cG9uCj4gKwkgKiBzdWNjZXNzZnVsIGNvbXBsZXRpb24gb2YgdGhlIElPQ1RMLgo+ICsJICovCj4g IAlfX3UzMiBoYW5kbGU7Cj4gIH07Cj4gIAo+ICsvKioKPiArICogc3RydWN0IGRybV90ZWdyYV9n ZW1fbW1hcCAtIHBhcmFtZXRlcnMgZm9yIHRoZSBHRU0gbW1hcCBJT0NUTAo+ICsgKi8KPiAgc3Ry dWN0IGRybV90ZWdyYV9nZW1fbW1hcCB7Cj4gKwkvKioKPiArCSAqIEBoYW5kbGU6Cj4gKwkgKgo+ ICsJICogSGFuZGxlIG9mIHRoZSBHRU0gb2JqZWN0IHRvIG9idGFpbiBhbiBtbWFwIG9mZnNldCBm b3IuCj4gKwkgKi8KPiAgCV9fdTMyIGhhbmRsZTsKPiArCj4gKwkvKioKPiArCSAqIEBwYWQ6Cj4g KwkgKgo+ICsJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0 dXJlLiBNdXN0IGJlIDAuCj4gKwkgKi8KPiAgCV9fdTMyIHBhZDsKPiArCj4gKwkvKioKPiArCSAq IEBvZmZzZXQ6Cj4gKwkgKgo+ICsJICogVGhlIG1tYXAgb2Zmc2V0IGZvciB0aGUgZ2l2ZW4gR0VN IG9iamVjdC4gU2V0IGJ5IHRoZSBrZXJuZWwgdXBvbgo+ICsJICogc3VjY2Vzc2Z1bCBjb21wbGV0 aW9uIG9mIHRoZSBJT0NUTC4KPiArCSAqLwo+ICAJX191NjQgb2Zmc2V0Owo+ICB9Owo+ICAKPiAr LyoqCj4gKyAqIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X3JlYWQgLSBwYXJhbWV0ZXJzIGZvciB0 aGUgcmVhZCBzeW5jcG9pbnQgSU9DVEwKPiArICovCj4gIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0 X3JlYWQgewo+ICsJLyoqCj4gKwkgKiBAaWQ6Cj4gKwkgKgo+ICsJICogSUQgb2YgdGhlIHN5bmNw b2ludCB0byByZWFkIHRoZSBjdXJyZW50IHZhbHVlIGZyb20uCj4gKwkgKi8KPiAgCV9fdTMyIGlk Owo+ICsKPiArCS8qKgo+ICsJICogQHZhbHVlOgo+ICsJICoKPiArCSAqIFRoZSBjdXJyZW50IHN5 bmNwb2ludCB2YWx1ZS4gU2V0IGJ5IHRoZSBrZXJuZWwgdXBvbiBzdWNjZXNzZnVsCj4gKwkgKiBj b21wbGV0aW9uIG9mIHRoZSBJT0NUTC4KPiArCSAqLwo+ICAJX191MzIgdmFsdWU7Cj4gIH07Cj4g IAo+ICsvKioKPiArICogc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfaW5jciAtIHBhcmFtZXRlcnMg Zm9yIHRoZSBpbmNyZW1lbnQgc3luY3BvaW50IElPQ1RMCj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX3Rl Z3JhX3N5bmNwdF9pbmNyIHsKPiArCS8qKgo+ICsJICogQGlkOgo+ICsJICoKPiArCSAqIElEIG9m IHRoZSBzeW5jcG9pbnQgdG8gaW5jcmVtZW50Lgo+ICsJICovCj4gIAlfX3UzMiBpZDsKPiArCj4g KwkvKioKPiArCSAqIEBwYWQ6Cj4gKwkgKgo+ICsJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBt YXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCj4gKwkgKi8KPiAgCV9fdTMyIHBh ZDsKPiAgfTsKPiAgCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF93YWl0IC0g cGFyYW1ldGVycyBmb3IgdGhlIHdhaXQgc3luY3BvaW50IElPQ1RMCj4gKyAqLwo+ICBzdHJ1Y3Qg ZHJtX3RlZ3JhX3N5bmNwdF93YWl0IHsKPiArCS8qKgo+ICsJICogQGlkOgo+ICsJICoKPiArCSAq IElEIG9mIHRoZSBzeW5jcG9pbnQgdG8gd2FpdCBvbi4KPiArCSAqLwo+ICAJX191MzIgaWQ7Cj4g Kwo+ICsJLyoqCj4gKwkgKiBAdGhyZXNoOgo+ICsJICoKPiArCSAqIFRocmVzaG9sZCB2YWx1ZSBm b3Igd2hpY2ggdG8gd2FpdC4KPiArCSAqLwo+ICAJX191MzIgdGhyZXNoOwo+ICsKPiArCS8qKgo+ ICsJICogQHRpbWVvdXQ6Cj4gKwkgKgo+ICsJICogVGltZW91dCwgaW4gbWlsbGlzZWNvbmRzLCB0 byB3YWl0Lgo+ICsJICovCj4gIAlfX3UzMiB0aW1lb3V0Owo+ICsKPiArCS8qKgo+ICsJICogQHZh bHVlOgo+ICsJICoKPiArCSAqIFRoZSBuZXcgc3luY3BvaW50IHZhbHVlIGFmdGVyIHRoZSB3YWl0 LiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uCj4gKwkgKiBzdWNjZXNzZnVsIGNvbXBsZXRpb24gb2Yg dGhlIElPQ1RMLgo+ICsJICovCj4gIAlfX3UzMiB2YWx1ZTsKPiAgfTsKPiAgCj4gICNkZWZpbmUg RFJNX1RFR1JBX05PX1RJTUVPVVQJKDB4ZmZmZmZmZmYpCj4gIAo+ICsvKioKPiArICogc3RydWN0 IGRybV90ZWdyYV9vcGVuX2NoYW5uZWwgLSBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlbiBjaGFubmVs IElPQ1RMCj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCB7Cj4gKwkvKioK PiArCSAqIEBjbGllbnQ6Cj4gKwkgKgo+ICsJICogVGhlIGNsaWVudCBJRCBmb3IgdGhpcyBjaGFu bmVsLgo+ICsJICovCj4gIAlfX3UzMiBjbGllbnQ7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAcGFkOgo+ ICsJICoKPiArCSAqIFN0cnVjdHVyZSBwYWRkaW5nIHRoYXQgbWF5IGJlIHVzZWQgaW4gdGhlIGZ1 dHVyZS4gTXVzdCBiZSAwLgo+ICsJICovCj4gIAlfX3UzMiBwYWQ7Cj4gKwo+ICsJLyoqCj4gKwkg KiBAY29udGV4dDoKPiArCSAqCj4gKwkgKiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBvZiB0aGlz IGNoYW5uZWwuIFNldCBieSB0aGUga2VybmVsIHVwb24KPiArCSAqIHN1Y2Nlc3NmdWwgY29tcGxl dGlvbiBvZiB0aGUgSU9DVEwuIFRoaXMgY29udGV4dCBuZWVkcyB0byBiZSBwYXNzZWQKPiArCSAq IHRvIHRoZSBEUk1fVEVHUkFfQ0hBTk5FTF9DTE9TRSBvciB0aGUgRFJNX1RFR1JBX1NVQk1JVCBJ T0NUTHMuCj4gKwkgKi8KPiAgCV9fdTY0IGNvbnRleHQ7Cj4gIH07Cj4gIAo+ICsvKioKPiArICog c3RydWN0IGRybV90ZWdyYV9jbG9zZV9jaGFubmVsIC0gcGFyYW1ldGVycyBmb3IgdGhlIGNsb3Nl IGNoYW5uZWwgSU9DVEwKPiArICovCj4gIHN0cnVjdCBkcm1fdGVncmFfY2xvc2VfY2hhbm5lbCB7 Cj4gKwkvKioKPiArCSAqIEBjb250ZXh0Ogo+ICsJICoKPiArCSAqIFRoZSBhcHBsaWNhdGlvbiBj b250ZXh0IG9mIHRoaXMgY2hhbm5lbC4gVGhpcyBpcyBvYnRhaW5lZCBmcm9tIHRoZQo+ICsJICog RFJNX1RFR1JBX09QRU5fQ0hBTk5FTCBJT0NUTC4KPiArCSAqLwo+ICAJX191NjQgY29udGV4dDsK PiAgfTsKPiAgCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHQgLSBwYXJh bWV0ZXJzIGZvciB0aGUgZ2V0IHN5bmNwb2ludCBJT0NUTAo+ICsgKi8KPiAgc3RydWN0IGRybV90 ZWdyYV9nZXRfc3luY3B0IHsKPiArCS8qKgo+ICsJICogQGNvbnRleHQ6Cj4gKwkgKgo+ICsJICog VGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgaWRlbnRpZnlpbmcgdGhlIGNoYW5uZWwgZm9yIHdoaWNo IHRvIG9idGFpbgo+ICsJICogdGhlIHN5bmNwb2ludCBJRC4KPiArCSAqLwo+ICAJX191NjQgY29u dGV4dDsKPiArCj4gKwkvKioKPiArCSAqIEBpbmRleDoKPiArCSAqCj4gKwkgKiBJbmRleCBvZiB0 aGUgY2xpZW50IHN5bmNwb2ludCBmb3Igd2hpY2ggdG8gb2J0YWluIHRoZSBJRC4KPiArCSAqLwo+ ICAJX191MzIgaW5kZXg7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAaWQ6Cj4gKwkgKgo+ICsJICogVGhl IElEIG9mIHRoZSBnaXZlbiBzeW5jcG9pbnQuIFNldCBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vz c2Z1bAo+ICsJICogY29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCj4gKwkgKi8KPiAgCV9fdTMyIGlk Owo+ICB9Owo+ICAKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fdGVncmFfZ2V0X3N5bmNwdF9iYXNl IC0gcGFyYW1ldGVycyBmb3IgdGhlIGdldCB3YWl0IGJhc2UgSU9DVEwKPiArICovCj4gIHN0cnVj dCBkcm1fdGVncmFfZ2V0X3N5bmNwdF9iYXNlIHsKPiArCS8qKgo+ICsJICogQGNvbnRleHQ6Cj4g KwkgKgo+ICsJICogVGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgaWRlbnRpZnlpbmcgZm9yIHdoaWNo IGNoYW5uZWwgdG8gb2J0YWluIHRoZQo+ICsJICogd2FpdCBiYXNlLgo+ICsJICovCj4gIAlfX3U2 NCBjb250ZXh0Owo+ICsKPiArCS8qKgo+ICsJICogQHN5bmNwdDoKPiArCSAqCj4gKwkgKiBJRCBv ZiB0aGUgc3luY3BvaW50IGZvciB3aGljaCB0byBvYnRhaW4gdGhlIHdhaXQgYmFzZS4KPiArCSAq Lwo+ICAJX191MzIgc3luY3B0Owo+ICsKPiArCS8qKgo+ICsJICogQGlkOgo+ICsJICoKPiArCSAq IFRoZSBJRCBvZiB0aGUgd2FpdCBiYXNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNsaWVudCBzeW5j cG9pbnQuIFNldAo+ICsJICogYnkgdGhlIGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlv biBvZiB0aGUgSU9DVEwuCj4gKwkgKi8KPiAgCV9fdTMyIGlkOwo+ICB9Owo+ICAKPiArLyoqCj4g KyAqIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0IC0gc3luY3BvaW50IGluY3JlbWVudCBvcGVyYXRp b24KPiArICovCj4gIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0IHsKPiArCS8qKgo+ICsJICogQGlk Ogo+ICsJICoKPiArCSAqIElEIG9mIHRoZSBzeW5jcG9pbnQgdG8gb3BlcmF0ZSBvbi4KPiArCSAq Lwo+ICAJX191MzIgaWQ7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAaW5jcnM6Cj4gKwkgKgo+ICsJICog TnVtYmVyIG9mIGluY3JlbWVudHMgdG8gcGVyZm9ybSBmb3IgdGhlIHN5bmNwb2ludC4KPiArCSAq Lwo+ICAJX191MzIgaW5jcnM7Cj4gIH07Cj4gIAo+ICsvKioKPiArICogc3RydWN0IGRybV90ZWdy YV9jbWRidWYgLSBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNvbW1hbmQgYnVmZmVyCj4gKyAqLwo+ ICBzdHJ1Y3QgZHJtX3RlZ3JhX2NtZGJ1ZiB7Cj4gKwkvKioKPiArCSAqIEBoYW5kbGU6Cj4gKwkg Kgo+ICsJICogSGFuZGxlIHRvIGEgR0VNIG9iamVjdCBjb250YWluaW5nIHRoZSBjb21tYW5kIGJ1 ZmZlci4KPiArCSAqLwo+ICAJX191MzIgaGFuZGxlOwo+ICsKPiArCS8qKgo+ICsJICogQG9mZnNl dDoKPiArCSAqCj4gKwkgKiBPZmZzZXQsIGluIGJ5dGVzLCBpbnRvIHRoZSBHRU0gb2JqZWN0IGlk ZW50aWZpZWQgYnkgQGhhbmRsZSBhdAo+ICsJICogd2hpY2ggdGhlIGNvbW1hbmQgYnVmZmVyIHN0 YXJ0cy4KPiArCSAqLwo+ICAJX191MzIgb2Zmc2V0Owo+ICsKPiArCS8qKgo+ICsJICogQHdvcmRz Ogo+ICsJICoKPiArCSAqIE51bWJlciBvZiAzMi1iaXQgd29yZHMgaW4gdGhpcyBjb21tYW5kIGJ1 ZmZlci4KPiArCSAqLwo+ICAJX191MzIgd29yZHM7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAcGFkOgo+ ICsJICoKPiArCSAqIFN0cnVjdHVyZSBwYWRkaW5nIHRoYXQgbWF5IGJlIHVzZWQgaW4gdGhlIGZ1 dHVyZS4gTXVzdCBiZSAwLgo+ICsJICovCj4gIAlfX3UzMiBwYWQ7Cj4gIH07Cj4gIAo+ICsvKioK PiArICogc3RydWN0IGRybV90ZWdyYV9yZWxvYyAtIEdFTSBvYmplY3QgcmVsb2NhdGlvbiBzdHJ1 Y3R1cmUKPiArICovCj4gIHN0cnVjdCBkcm1fdGVncmFfcmVsb2Mgewo+ICAJc3RydWN0IHsKPiAr CQkvKioKPiArCQkgKiBAY21kYnVmLmhhbmRsZToKPiArCQkgKgo+ICsJCSAqIEhhbmRsZSB0byB0 aGUgR0VNIG9iamVjdCBjb250YWluaW5nIHRoZSBjb21tYW5kIGJ1ZmZlciBmb3IKPiArCQkgKiB3 aGljaCB0byBwZXJmb3JtIHRoaXMgR0VNIG9iamVjdCByZWxvY2F0aW9uLgo+ICsJCSAqLwo+ICAJ CV9fdTMyIGhhbmRsZTsKPiArCj4gKwkJLyoqCj4gKwkJICogQGNtZGJ1Zi5vZmZzZXQ6Cj4gKwkJ ICoKPiArCQkgKiBPZmZzZXQsIGluIGJ5dGVzLCBpbnRvIHRoZSBjb21tYW5kIGJ1ZmZlciBhdCB3 aGljaCB0bwo+ICsJCSAqIGluc2VydCB0aGUgcmVsb2NhdGVkIGFkZHJlc3MuCj4gKwkJICovCj4g IAkJX191MzIgb2Zmc2V0Owo+ICAJfSBjbWRidWY7Cj4gIAlzdHJ1Y3Qgewo+ICsJCS8qKgo+ICsJ CSAqIEB0YXJnZXQuaGFuZGxlOgo+ICsJCSAqCj4gKwkJICogSGFuZGxlIHRvIHRoZSBHRU0gb2Jq ZWN0IHRvIGJlIHJlbG9jYXRlZC4KPiArCQkgKi8KPiAgCQlfX3UzMiBoYW5kbGU7Cj4gKwo+ICsJ CS8qKgo+ICsJCSAqIEB0YXJnZXQub2Zmc2V0Ogo+ICsJCSAqCj4gKwkJICogT2Zmc2V0LCBpbiBi eXRlcywgaW50byB0aGUgdGFyZ2V0IEdFTSBvYmplY3QgYXQgd2hpY2ggdGhlCj4gKwkJICogcmVs b2NhdGVkIGRhdGEgc3RhcnRzLgo+ICsJCSAqLwo+ICAJCV9fdTMyIG9mZnNldDsKPiAgCX0gdGFy Z2V0Owo+ICsKPiArCS8qKgo+ICsJICogQHNoaWZ0Ogo+ICsJICoKPiArCSAqIFRoZSBudW1iZXIg b2YgYml0cyBieSB3aGljaCB0byBzaGlmdCByZWxvY2F0ZWQgYWRkcmVzc2VzLgo+ICsJICovCj4g IAlfX3UzMiBzaGlmdDsKPiArCj4gKwkvKioKPiArCSAqIEBwYWQ6Cj4gKwkgKgo+ICsJICogU3Ry dWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAu Cj4gKwkgKi8KPiAgCV9fdTMyIHBhZDsKPiAgfTsKPiAgCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJt X3RlZ3JhX3dhaXRjaGsgLSB3YWl0IGNoZWNrIHN0cnVjdHVyZQo+ICsgKi8KPiAgc3RydWN0IGRy bV90ZWdyYV93YWl0Y2hrIHsKPiArCS8qKgo+ICsJICogQGhhbmRsZToKPiArCSAqCj4gKwkgKiBI YW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgY29udGFpbmluZyBhIGNvbW1hbmQgc3RyZWFtIG9uIHdo aWNoIHRvCj4gKwkgKiBwZXJmb3JtIHRoZSB3YWl0IGNoZWNrLgo+ICsJICovCj4gIAlfX3UzMiBo YW5kbGU7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAb2Zmc2V0Ogo+ICsJICoKPiArCSAqIE9mZnNldCwg aW4gYnl0ZXMsIG9mIHRoZSBsb2NhdGlvbiBpbiB0aGUgY29tbWFuZCBzdHJlYW0gdG8gcGVyZm9y bQo+ICsJICogdGhlIHdhaXQgY2hlY2sgb24uCj4gKwkgKi8KPiAgCV9fdTMyIG9mZnNldDsKPiAr Cj4gKwkvKioKPiArCSAqIEBzeW5jcHQ6Cj4gKwkgKgo+ICsJICogSUQgb2YgdGhlIHN5bmNwb2lu dCB0byB3YWl0IGNoZWNrLgo+ICsJICovCj4gIAlfX3UzMiBzeW5jcHQ7Cj4gKwo+ICsJLyoqCj4g KwkgKiBAdGhyZXNoOgo+ICsJICoKPiArCSAqIFRocmVzaG9sZCB2YWx1ZSBmb3Igd2hpY2ggdG8g Y2hlY2suCj4gKwkgKi8KPiAgCV9fdTMyIHRocmVzaDsKPiAgfTsKPiAgCj4gKy8qKgo+ICsgKiBz dHJ1Y3QgZHJtX3RlZ3JhX3N1Ym1pdCAtIGpvYiBzdWJtaXNzaW9uIHN0cnVjdHVyZQo+ICsgKi8K PiAgc3RydWN0IGRybV90ZWdyYV9zdWJtaXQgewo+ICsJLyoqCj4gKwkgKiBAY29udGV4dDoKPiAr CSAqCj4gKwkgKiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBpZGVudGlmeWluZyB0aGUgY2hhbm5l bCB0byB1c2UgZm9yIHRoZQo+ICsJICogZXhlY3V0aW9uIG9mIHRoaXMgam9iLgo+ICsJICovCj4g IAlfX3U2NCBjb250ZXh0Owo+ICsKPiArCS8qKgo+ICsJICogQG51bV9zeW5jcHRzOgo+ICsJICoK PiArCSAqIFRoZSBudW1iZXIgb2Ygc3luY3BvaW50cyBvcGVyYXRlZCBvbiBieSB0aGlzIGpvYi4K PiArCSAqLwo+ICAJX191MzIgbnVtX3N5bmNwdHM7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAbnVtX2Nt ZGJ1ZnM6Cj4gKwkgKgo+ICsJICogVGhlIG51bWJlciBvZiBjb21tYW5kIGJ1ZmZlcnMgdG8gZXhl Y3V0ZSBhcyBwYXJ0IG9mIHRoaXMgam9iLgo+ICsJICovCj4gIAlfX3UzMiBudW1fY21kYnVmczsK PiArCj4gKwkvKioKPiArCSAqIEBudW1fcmVsb2NzOgo+ICsJICoKPiArCSAqIFRoZSBudW1iZXIg b2YgcmVsb2NhdGlvbnMgdG8gcGVyZm9ybSBiZWZvcmUgZXhlY3V0aW5nIHRoaXMgam9iLgo+ICsJ ICovCj4gIAlfX3UzMiBudW1fcmVsb2NzOwo+ICsKPiArCS8qKgo+ICsJICogQG51bV93YWl0Y2hr czoKPiArCSAqCj4gKwkgKiBUaGUgbnVtYmVyIG9mIHdhaXQgY2hlY2tzIHRvIHBlcmZvcm0gYXMg cGFydCBvZiB0aGlzIGpvYi4KPiArCSAqLwo+ICAJX191MzIgbnVtX3dhaXRjaGtzOwo+ICsKPiAr CS8qKgo+ICsJICogQHdhaXRjaGtfbWFzazoKPiArCSAqCj4gKwkgKiBCaXRtYXNrIG9mIHZhbGlk IHdhaXQgY2hlY2tzLgo+ICsJICovCj4gIAlfX3UzMiB3YWl0Y2hrX21hc2s7Cj4gKwo+ICsJLyoq Cj4gKwkgKiBAdGltZW91dDoKPiArCSAqCj4gKwkgKiBUaW1lb3V0LCBpbiBtaWxsaXNlY29uZHMs IGJlZm9yZSB0aGlzIGpvYiBpcyBjYW5jZWxsZWQuCj4gKwkgKi8KPiAgCV9fdTMyIHRpbWVvdXQ7 Cj4gKwo+ICsJLyoqCj4gKwkgKiBAc3luY3B0czoKPiArCSAqCj4gKwkgKiBBIHBvaW50ZXIgdG8g QG51bV9zeW5jcHRzICZzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCBzdHJ1Y3R1cmVzIHRoYXQKPiAr CSAqIHNwZWNpZnkgdGhlIHN5bmNwb2ludCBvcGVyYXRpb25zIHBlcmZvcm1lZCBhcyBwYXJ0IG9m IHRoaXMgam9iLgo+ICsJICovCj4gIAlfX3U2NCBzeW5jcHRzOwo+ICsKPiArCS8qKgo+ICsJICog QGNtZGJ1ZnM6Cj4gKwkgKgo+ICsJICogQSBwb2ludGVyIHRvIEBudW1fY21kYnVmcyAmc3RydWN0 IGRybV90ZWdyYV9jbWRidWYgc3RydWN0dXJlcyB0aGF0Cj4gKwkgKiBkZWZpbmUgdGhlIGNvbW1h bmQgYnVmZmVycyB0byBleGVjdXRlIGFzIHBhcnQgb2YgdGhpcyBqb2IuCj4gKwkgKi8KPiAgCV9f dTY0IGNtZGJ1ZnM7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAcmVsb2NzOgo+ICsJICoKPiArCSAqIEEg cG9pbnRlciB0byBAbnVtX3JlbG9jcyAmc3RydWN0IGRybV90ZWdyYV9yZWxvYyBzdHJ1Y3R1cmVz IHRoYXQKPiArCSAqIHNwZWNpZnkgdGhlIHJlbG9jYXRpb25zIHRoYXQgbmVlZCB0byBiZSBwZXJm b3JtZWQgYmVmb3JlIGV4ZWN1dGluZwo+ICsJICogdGhpcyBqb2IuCj4gKwkgKi8KPiAgCV9fdTY0 IHJlbG9jczsKPiArCj4gKwkvKioKPiArCSAqIEB3YWl0Y2hrczoKPiArCSAqCj4gKwkgKiBBIHBv aW50ZXIgdG8gQG51bV93YWl0Y2hrcyAmc3RydWN0IGRybV90ZWdyYV93YWl0Y2hrIHN0cnVjdHVy ZXMKPiArCSAqIHRoYXQgc3BlY2lmeSB0aGUgd2FpdCBjaGVja3MgdG8gYmUgcGVyZm9ybWVkIHdo aWxlIGV4ZWN1dGluZyB0aGlzCj4gKwkgKiBqb2IuCj4gKwkgKi8KPiAgCV9fdTY0IHdhaXRjaGtz Owo+IC0JX191MzIgZmVuY2U7CQkvKiBSZXR1cm4gdmFsdWUgKi8KPiAgCj4gLQlfX3UzMiByZXNl cnZlZFs1XTsJLyogZnV0dXJlIGV4cGFuc2lvbiAqLwo+ICsJLyoqCj4gKwkgKiBAZmVuY2U6Cj4g KwkgKgo+ICsJICogVGhlIHRocmVzaG9sZCBvZiB0aGUgc3luY3BvaW50IGFzc29jaWF0ZWQgd2l0 aCB0aGlzIGpvYiBhZnRlciBpdAo+ICsJICogaGFzIGJlZW4gY29tcGxldGVkLiBTZXQgYnkgdGhl IGtlcm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZgo+ICsJICogdGhlIElPQ1RMLiBU aGlzIGNhbiBiZSB1c2VkIHdpdGggdGhlIERSTV9URUdSQV9TWU5DUFRfV0FJVCBJT0NUTCB0bwo+ ICsJICogd2FpdCBmb3IgdGhpcyBqb2IgdG8gYmUgZmluaXNoZWQuCj4gKwkgKi8KPiArCV9fdTMy IGZlbmNlOwo+ICsKPiArCS8qKgo+ICsJICogQHJlc2VydmVkOgo+ICsJICoKPiArCSAqIFRoaXMg ZmllbGQgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuIE11c3QgYmUgMC4KPiArCSAqLwo+ICsJ X191MzIgcmVzZXJ2ZWRbNV07Cj4gIH07Cj4gIAo+ICAjZGVmaW5lIERSTV9URUdSQV9HRU1fVElM SU5HX01PREVfUElUQ0ggMAo+ICAjZGVmaW5lIERSTV9URUdSQV9HRU1fVElMSU5HX01PREVfVElM RUQgMQo+ICAjZGVmaW5lIERSTV9URUdSQV9HRU1fVElMSU5HX01PREVfQkxPQ0sgMgo+ICAKPiAr LyoqCj4gKyAqIHN0cnVjdCBkcm1fdGVncmFfZ2VtX3NldF90aWxpbmcgLSBwYXJhbWV0ZXJzIGZv ciB0aGUgc2V0IHRpbGluZyBJT0NUTAo+ICsgKi8KPiAgc3RydWN0IGRybV90ZWdyYV9nZW1fc2V0 X3RpbGluZyB7Cj4gLQkvKiBpbnB1dCAqLwo+ICsJLyoqCj4gKwkgKiBAaGFuZGxlOgo+ICsJICoK PiArCSAqIEhhbmRsZSB0byB0aGUgR0VNIG9iamVjdCBmb3Igd2hpY2ggdG8gc2V0IHRoZSB0aWxp bmcgcGFyYW1ldGVycy4KPiArCSAqLwo+ICAJX191MzIgaGFuZGxlOwo+ICsKPiArCS8qKgo+ICsJ ICogQG1vZGU6Cj4gKwkgKgo+ICsJICogVGhlIHRpbGluZyBtb2RlIHRvIHNldC4gTXVzdCBiZSBv bmUgb2Y6Cj4gKwkgKgo+ICsJICogRFJNX1RFR1JBX0dFTV9USUxJTkdfTU9ERV9QSVRDSAo+ICsJ ICogICBwaXRjaCBsaW5lYXIgZm9ybWF0Cj4gKwkgKgo+ICsJICogRFJNX1RFR1JBX0dFTV9USUxJ TkdfTU9ERV9USUxFRAo+ICsJICogICAxNngxNiB0aWxpbmcgZm9ybWF0Cj4gKwkgKgo+ICsJICog RFJNX1RFR1JBX0dFTV9USUxJTkdfTU9ERV9CTE9DSwo+ICsJICogICAxNkJ4MiB0aWxpbmcgZm9y bWF0Cj4gKwkgKi8KPiAgCV9fdTMyIG1vZGU7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAdmFsdWU6Cj4g KwkgKgo+ICsJICogVGhlIHZhbHVlIHRvIHNldCBmb3IgdGhlIHRpbGluZyBtb2RlIHBhcmFtZXRl ci4KPiArCSAqLwo+ICAJX191MzIgdmFsdWU7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAcGFkOgo+ICsJ ICoKPiArCSAqIFN0cnVjdHVyZSBwYWRkaW5nIHRoYXQgbWF5IGJlIHVzZWQgaW4gdGhlIGZ1dHVy ZS4gTXVzdCBiZSAwLgo+ICsJICovCj4gIAlfX3UzMiBwYWQ7Cj4gIH07Cj4gIAo+ICsvKioKPiAr ICogc3RydWN0IGRybV90ZWdyYV9nZW1fZ2V0X3RpbGluZyAtIHBhcmFtZXRlcnMgZm9yIHRoZSBn ZXQgdGlsaW5nIElPQ1RMCj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9nZXRfdGlsaW5n IHsKPiAtCS8qIGlucHV0ICovCj4gKwkvKioKPiArCSAqIEBoYW5kbGU6Cj4gKwkgKgo+ICsJICog SGFuZGxlIHRvIHRoZSBHRU0gb2JqZWN0IGZvciB3aGljaCB0byBxdWVyeSB0aGUgdGlsaW5nIHBh cmFtZXRlcnMuCj4gKwkgKi8KPiAgCV9fdTMyIGhhbmRsZTsKPiAtCS8qIG91dHB1dCAqLwo+ICsK PiArCS8qKgo+ICsJICogQG1vZGU6Cj4gKwkgKgo+ICsJICogVGhlIHRpbGluZyBtb2RlIGN1cnJl bnRseSBhc3NvY2lhdGVkIHdpdGggdGhlIEdFTSBvYmplY3QuIFNldCBieQo+ICsJICogdGhlIGtl cm5lbCB1cG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0aGUgSU9DVEwuCj4gKwkgKi8KPiAg CV9fdTMyIG1vZGU7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAdmFsdWU6Cj4gKwkgKgo+ICsJICogVGhl IHRpbGluZyBtb2RlIHBhcmFtZXRlciBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBHRU0g b2JqZWN0Lgo+ICsJICogU2V0IGJ5IHRoZSBrZXJuZWwgdXBvbiBzdWNjZXNzZnVsIGNvbXBsZXRp b24gb2YgdGhlIElPQ1RMLgo+ICsJICovCj4gIAlfX3UzMiB2YWx1ZTsKPiArCj4gKwkvKioKPiAr CSAqIEBwYWQ6Cj4gKwkgKgo+ICsJICogU3RydWN0dXJlIHBhZGRpbmcgdGhhdCBtYXkgYmUgdXNl ZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCj4gKwkgKi8KPiAgCV9fdTMyIHBhZDsKPiAgfTsK PiAgCj4gICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9CT1RUT01fVVAJCSgxIDw8IDApCj4gICNkZWZp bmUgRFJNX1RFR1JBX0dFTV9GTEFHUwkJKERSTV9URUdSQV9HRU1fQk9UVE9NX1VQKQo+ICAKPiAr LyoqCj4gKyAqIHN0cnVjdCBkcm1fdGVncmFfZ2VtX3NldF9mbGFncyAtIHBhcmFtZXRlcnMgZm9y IHRoZSBzZXQgZmxhZ3MgSU9DVEwKPiArICovCj4gIHN0cnVjdCBkcm1fdGVncmFfZ2VtX3NldF9m bGFncyB7Cj4gLQkvKiBpbnB1dCAqLwo+ICsJLyoqCj4gKwkgKiBAaGFuZGxlOgo+ICsJICoKPiAr CSAqIEhhbmRsZSB0byB0aGUgR0VNIG9iamVjdCBmb3Igd2hpY2ggdG8gc2V0IHRoZSBmbGFncy4K PiArCSAqLwo+ICAJX191MzIgaGFuZGxlOwo+IC0JLyogb3V0cHV0ICovCj4gKwo+ICsJLyoqCj4g KwkgKiBAZmxhZ3M6Cj4gKwkgKgo+ICsJICogVGhlIGZsYWdzIHRvIHNldCBmb3IgdGhlIEdFTSBv YmplY3QuCj4gKwkgKi8KPiAgCV9fdTMyIGZsYWdzOwo+ICB9Owo+ICAKPiArLyoqCj4gKyAqIHN0 cnVjdCBkcm1fdGVncmFfZ2VtX2dldF9mbGFncyAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgZmxh Z3MgSU9DVEwKPiArICovCj4gIHN0cnVjdCBkcm1fdGVncmFfZ2VtX2dldF9mbGFncyB7Cj4gLQkv KiBpbnB1dCAqLwo+ICsJLyoqCj4gKwkgKiBAaGFuZGxlOgo+ICsJICoKPiArCSAqIEhhbmRsZSB0 byB0aGUgR0VNIG9iamVjdCBmb3Igd2hpY2ggdG8gcXVlcnkgdGhlIGZsYWdzLgo+ICsJICovCj4g IAlfX3UzMiBoYW5kbGU7Cj4gLQkvKiBvdXRwdXQgKi8KPiArCj4gKwkvKioKPiArCSAqIEBmbGFn czoKPiArCSAqCj4gKwkgKiBUaGUgZmxhZ3MgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUg R0VNIG9iamVjdC4gU2V0IGJ5IHRoZQo+ICsJICoga2VybmVsIHVwb24gc3VjY2Vzc2Z1bCBjb21w bGV0aW9uIG9mIHRoZSBJT0NUTC4KPiArCSAqLwo+ICAJX191MzIgZmxhZ3M7Cj4gIH07Cj4gIAo+ IC0tIAo+IDIuMTcuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVs IENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=