From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 05/17] drm: Add atomic driver interface definitions for objects Date: Tue, 4 Nov 2014 15:31:51 -0500 Message-ID: References: <1414934370-11924-1-git-send-email-daniel.vetter@ffwll.ch> <1414934370-11924-6-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1414934370-11924-6-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Intel Graphics Development , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBOb3YgMDIsIDIwMTQgYXQgMDI6MTk6MThQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBIZWF2aWx5IGJhc2VkIHVwb24gUm9iIENsYXJrJ3MgYXRvbWljIHNlcmllcy4KPiAt IERyb3BwZWQgdGhlIGNvbm5jdG9yIHN0YXRlIGZyb20gdGhlIGNydGMgc3RhdGUsIGluc3RlYWQg b3B0aW5nIGZvciBhCgpuaXQ6IHMvY29ubmN0b3IvY29ubmVjdG9yLwoKPiAgIGZ1bGwtYmxvd24g Y29ubmVjdG9yIHN0YXRlLiBUaGUgb25seSB0aGluZyBpdCBoYXMgaXMgdGhlIGRlc2lyZWQKPiAg IGNydGMsIGJ1dCBkcml2ZXJzIHdoaWNoIGhhdmUgY29ubmVjdG9yIHByb3BlcnRpZXMgaGF2ZSBu b3cgYQo+ICAgZGF0YS1zdHJ1Y3R1cmUgdG8gc3ViY2xhc3MuCj4KPiAtIFJlbmFtZSBjcmVhdGVf c3RhdGUgdG8gZHVwbGljYXRlX3N0YXRlLiBFc3BlY2lhbGx5IGZvciBsZWdhY3kgaW9jdGxzCj4g ICB3ZSB3YW50IHVwZGF0ZXMgb24gdG9wIG9mIGV4aXN0aW5nIHN0YXRlLCBzbyB3ZSBuZWVkIGEg d2F5IHRvIGdldCBhdAo+ICAgdGhlIGN1cnJlbnQgc3RhdGUuIFdlIG5lZWQgdG8gYmUgY2FyZWZ1 bCB0byBjbGVhciB0aGUgYmFja3BvaW50ZXJzCj4gICB0byB0aGUgZ2xvYmFsIHN0YXRlIGNvcnJl Y3RseSB0aG91Z2guCj4KPiAtIERyb3AgcHJvcGVydHkgdmFsdWVzLiBEcml2ZXJzIHdpdGggcHJv cGVydGllcyBzaW1wbHkgbmVlZCB0bwo+ICAgc3ViY2xhc3MgdGhlIGRhdGFzdHJ1Y3R1cmVzIGFu ZCB0cmFjayB0aGUgZGVjb2RlZCB2YWx1ZXMgaW4gdGhlcmUuIEkKPiAgIGFsc28gdGhpbmsgdGhh dCBjb21tb24gcHJvcGVydGllcyAobGlrZSByb3RhdGlvbikgc2hvdWxkIGJlIGRlY29kZWQKPiAg IGFuZCBzdG9yZWQgaW4gdGhlIGNvcmUgc3RydWN0dXJlcy4KPgo+IC0gQ3JlYXRlIGEgbmV3IHNl dCBvZiAtPmF0b21pY19zZXRfcHJvcCBmdW5jdGlvbnMsIGZvciBzbW9vdGhlcgo+ICAgdHJhbnNp dGlvbnMgZnJvbSBsZWdhY3kgdG8gYXRvbWljIG9wZXJhdGlvbnMuCj4KPiAtIFBhc3MgdGhlIC0+ YXRvbWljX3NldF9wcm9wIGlvY3RsIHRoZSByaWdodCBzdHJ1Y3R1cmUgdG8gYXZvaWQKPiAgIGNo YXNpbmcgcG9pbnRlcnMgaW4gZHJpdmVycy4KPgo+IC0gRHJvcCB0ZW1wb3JhcnkgYm9vbGVhbiBz dGF0ZSBmb3Igbm93IHVudGlsIHdlIHJlc3VycmVjdCB0aGVtIHdpdGgKPiAgIHRoZSBoZWxwZXIg ZnVuY3Rpb25zLgo+Cj4gLSBEcm9wIGludmVydF9kaW1lbnNpb25zLiBGb3Igbm93IHdlIGRvbid0 IG5lZWQgYW55IGNoZWNraW5nIHNpbmNlCj4gICB0aGF0J3MgZG9uZSBieSB0aGUgaGlnaGVyLWxl dmVsIGxlZ2FjeSBpb2N0bHMuIEJ1dCBldmVuIHRoZW4gd2UKPiAgIHNob3VsZCBhbHNvIGFkZCBy b3RhdGlvbi9mbGlwIHRyYWNraW5nIHRvIHRoZSBjb3JlIGRybV9jcnRjX3N0YXRlLAo+ICAgbm90 IGp1c3Qgd2hldGhlciB0aGUgZGltZW5zaW9ucyBhcmUgaW52ZXJ0ZWQuCj4KPiAtIFRyYWNrIGNy dGMgc3RhdGUgd2l0aCBhbiBlbmFibGUvZGlzYWJsZS4gVGhhdCdzIGVxdWl2YWxlbnQgdG8KPiAg IG1vZGVfdmFsaWQsIGJ1dCBhIGJpdCBjbGVhcmVyIHRoYXQgaXQgbWVhbnMgdGhlIGVudGlyZSBj cnRjLgo+Cj4gVGhlIGdsb2JhbCBpbnRlcmZhY2Ugd2lsbCBmb2xsb3cgaW4gc3Vic2VxdWVudCBw YXRjaGVzLgo+Cj4gdjI6IFdlIG5lZWQgdG8gYWxsb3cgZHJpdmVycyB0byBzb21laG93IHNldCB1 cCB0aGUgaW5pdGlhbCBzdGF0ZSBhbmQKPiBjbGVhciBpdCBvbiByZXN1bWUuIFNvIGFkZCBhIHBs YW5lLT5yZXNldCBjYWxsYmFjayBmb3IgdGhhdC4gSGVscGVycwo+IHdpbGwgYmUgcHJvdmlkZWQg d2l0aCBkZWZhdWx0IGJlaGF2aW91ciBmb3IgYWxsIHRoZXNlLgo+Cj4gdjM6IFNwbGl0IG91dCB0 aGUgcGxhbmUtPnJlc2V0IGludG8gYSBzZXBhcmF0ZSBwYXRjaC4KPgo+IHY0OiBJbXByb3ZlIGtl cm5lbGRvYyBpbiBkcm1fY3J0Yy5oCj4KPiB2NTogUmVtb3ZlIHVudXNlZCBpbmxpbmUgZnVuY3Rp b25zIGZvciBoYW5kbGluZyBzdGF0ZSBvYmplY3RzLCB0aG9zZQo+IGNhbGxiYWNrcyBhcmUgbm93 IG1hbmRhdG9yeSBmb3IgZnVsbCBhdG9taWMgc3VwcG9ydC4KPgo+IFNpZ25lZC1vZmYtYnk6IERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpSZXZpZXdlZC1ieTogU2VhbiBQ YXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cgo+IC0tLQo+ICBpbmNsdWRlL2RybS9kcm1fY3J0 Yy5oIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPiAgMSBmaWxlIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspCj4KPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCBh NjhlMDJiZTdlMzcuLjk4NDcwMDlhZDQ1MSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1f Y3J0Yy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+IEBAIC0yMjQsNiArMjI0LDI1 IEBAIHN0cnVjdCBkcm1fZW5jb2RlcjsKPiAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVu dDsKPiAgc3RydWN0IGRybV9wbGFuZTsKPiAgc3RydWN0IGRybV9icmlkZ2U7Cj4gK3N0cnVjdCBk cm1fYXRvbWljX3N0YXRlOwo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAt IG11dGFibGUgY3J0YyBzdGF0ZQo+ICsgKiBAZW5hYmxlOiB3aGV0aGVyIHRoZSBDUlRDIHNob3Vs ZCBiZSBlbmFibGVkLCBnYXRlcyBhbGwgb3RoZXIgc3RhdGUKPiArICogQG1vZGU6IGN1cnJlbnQg bW9kZSB0aW1pbmdzCj4gKyAqIEBldmVudDogb3B0aW9uYWwgcG9pbnRlciB0byBhIERSTSBldmVu dCB0byBzaWduYWwgdXBvbiBjb21wbGV0aW9uIG9mIHRoZQo+ICsgKiBzdGF0ZSB1cGRhdGUKPiAr ICogQHN0YXRlOiBiYWNrcG9pbnRlciB0byBnbG9iYWwgZHJtX2F0b21pY19zdGF0ZQo+ICsgKi8K PiArc3RydWN0IGRybV9jcnRjX3N0YXRlIHsKPiArIGJvb2wgZW5hYmxlICAgICAgICA6IDE7Cj4g Kwo+ICsgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZTsKPiArCj4gKyBzdHJ1Y3QgZHJtX3Bl bmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKPiArCj4gKyBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGU7Cj4gK307Cj4KPiAgLyoqCj4gICAqIHN0cnVjdCBkcm1fY3J0Y19mdW5jcyAtIGNv bnRyb2wgQ1JUQ3MgZm9yIGEgZ2l2ZW4gZGV2aWNlCj4gQEAgLTIzOCw2ICsyNTcsOSBAQCBzdHJ1 Y3QgZHJtX2JyaWRnZTsKPiAgICogQHNldF9wcm9wZXJ0eTogY2FsbGVkIHdoZW4gYSBwcm9wZXJ0 eSBpcyBjaGFuZ2VkCj4gICAqIEBzZXRfY29uZmlnOiBhcHBseSBhIG5ldyBDUlRDIGNvbmZpZ3Vy YXRpb24KPiAgICogQHBhZ2VfZmxpcDogaW5pdGlhdGUgYSBwYWdlIGZsaXAKPiArICogQGF0b21p Y19kdXBsaWNhdGVfc3RhdGU6IGR1cGxpY2F0ZSB0aGUgYXRvbWljIHN0YXRlIGZvciB0aGlzIENS VEMKPiArICogQGF0b21pY19kZXN0cm95X3N0YXRlOiBkZXN0cm95IGFuIGF0b21pYyBzdGF0ZSBm b3IgdGhpcyBDUlRDCj4gKyAqIEBhdG9taWNfc2V0X3Byb3BlcnR5OiBzZXQgYSBwcm9wZXJ0eSBv biBhbiBhdG9taWMgc3RhdGUgZm9yIHRoaXMgQ1JUQwo+ICAgKgo+ICAgKiBUaGUgZHJtX2NydGNf ZnVuY3Mgc3RydWN0dXJlIGlzIHRoZSBjZW50cmFsIENSVEMgbWFuYWdlbWVudCBzdHJ1Y3R1cmUK PiAgICogaW4gdGhlIERSTS4gIEVhY2ggQ1JUQyBjb250cm9scyBvbmUgb3IgbW9yZSBjb25uZWN0 b3JzIChub3RlIHRoYXQgdGhlIG5hbWUKPiBAQCAtMjg4LDYgKzMxMCwxNSBAQCBzdHJ1Y3QgZHJt X2NydGNfZnVuY3Mgewo+Cj4gICBpbnQgKCpzZXRfcHJvcGVydHkpKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LCB1aW50NjRfdCB2YWwp Owo+ICsKPiArIC8qIGF0b21pYyB1cGRhdGUgaGFuZGxpbmcgKi8KPiArIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqKCphdG9taWNfZHVwbGljYXRlX3N0YXRlKShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Owo+ICsgdm9pZCAoKmF0b21pY19kZXN0cm95X3N0YXRlKShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Cj4gKyAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGUpOwo+ICsgaW50ICgqYXRvbWlj X3NldF9wcm9wZXJ0eSkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICsgICBzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKnN0YXRlLAo+ICsgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiAr ICAgdWludDY0X3QgdmFsKTsKPiAgfTsKPgo+ICAvKioKPiBAQCAtMzE3LDYgKzM0OCw3IEBAIHN0 cnVjdCBkcm1fY3J0Y19mdW5jcyB7Cj4gICAqIEBwaXhlbGR1cl9uczogcHJlY2lzZSBwaXhlbCB0 aW1pbmcKPiAgICogQGhlbHBlcl9wcml2YXRlOiBtaWQtbGF5ZXIgcHJpdmF0ZSBkYXRhCj4gICAq IEBwcm9wZXJ0aWVzOiBwcm9wZXJ0eSB0cmFja2luZyBmb3IgdGhpcyBDUlRDCj4gKyAqIEBzdGF0 ZTogY3VycmVudCBhdG9taWMgc3RhdGUgZm9yIHRoaXMgQ1JUQwo+ICAgKiBAYWNxdWlyZV9jdHg6 IHBlci1DUlRDIGltcGxpY2l0IGFjcXVpcmUgY29udGV4dCB1c2VkIGJ5IGF0b21pYyBkcml2ZXJz IGZvcgo+ICAgKiBsZWdhY3kgaW9jdGxzCj4gICAqCj4gQEAgLTM3NCw2ICs0MDYsOCBAQCBzdHJ1 Y3QgZHJtX2NydGMgewo+Cj4gICBzdHJ1Y3QgZHJtX29iamVjdF9wcm9wZXJ0aWVzIHByb3BlcnRp ZXM7Cj4KPiArIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGU7Cj4gKwo+ICAgLyoKPiAgICog Rm9yIGxlZ2FjeSBjcnRjIGlvY3RscyBzbyB0aGF0IGF0b21pYyBkcml2ZXJzIGNhbiBnZXQgYXQg dGhlIGxvY2tpbmcKPiAgICogYWNxdWlyZSBjb250ZXh0Lgo+IEBAIC0zODEsNiArNDE1LDE2IEBA IHN0cnVjdCBkcm1fY3J0YyB7Cj4gICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmFj cXVpcmVfY3R4Owo+ICB9Owo+Cj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAtIG11dGFibGUgY29ubmVjdG9yIHN0YXRlCj4gKyAqIEBjcnRjOiBjcnRjIHRvIGNvbm5lY3Qg Y29ubmVjdG9yIHRvLCBOVUxMIGlmIGRpc2FibGVkCj4gKyAqIEBzdGF0ZTogYmFja3BvaW50ZXIg dG8gZ2xvYmFsIGRybV9hdG9taWNfc3RhdGUKPiArICovCj4gK3N0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlIHsKPiArIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCj4gKyBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGU7Cj4gK307Cj4KPiAgLyoqCj4gICAqIHN0cnVjdCBkcm1fY29ubmVj dG9yX2Z1bmNzIC0gY29udHJvbCBjb25uZWN0b3JzIG9uIGEgZ2l2ZW4gZGV2aWNlCj4gQEAgLTM5 Myw2ICs0MzcsMTAgQEAgc3RydWN0IGRybV9jcnRjIHsKPiAgICogQHNldF9wcm9wZXJ0eTogcHJv cGVydHkgZm9yIHRoaXMgY29ubmVjdG9yIG1heSBuZWVkIGFuIHVwZGF0ZQo+ICAgKiBAZGVzdHJv eTogbWFrZSBvYmplY3QgZ28gYXdheQo+ICAgKiBAZm9yY2U6IG5vdGlmeSB0aGUgZHJpdmVyIHRo YXQgdGhlIGNvbm5lY3RvciBpcyBmb3JjZWQgb24KPiArICogQGF0b21pY19kdXBsaWNhdGVfc3Rh dGU6IGR1cGxpY2F0ZSB0aGUgYXRvbWljIHN0YXRlIGZvciB0aGlzIGNvbm5lY3Rvcgo+ICsgKiBA YXRvbWljX2Rlc3Ryb3lfc3RhdGU6IGRlc3Ryb3kgYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIGNv bm5lY3Rvcgo+ICsgKiBAYXRvbWljX3NldF9wcm9wZXJ0eTogc2V0IGEgcHJvcGVydHkgb24gYW4g YXRvbWljIHN0YXRlIGZvciB0aGlzIGNvbm5lY3Rvcgo+ICsgKgo+ICAgKgo+ICAgKiBFYWNoIENS VEMgbWF5IGhhdmUgb25lIG9yIG1vcmUgY29ubmVjdG9ycyBhdHRhY2hlZCB0byBpdC4gIFRoZSBm dW5jdGlvbnMKPiAgICogYmVsb3cgYWxsb3cgdGhlIGNvcmUgRFJNIGNvZGUgdG8gY29udHJvbCBj b25uZWN0b3JzLCBlbnVtZXJhdGUgYXZhaWxhYmxlIG1vZGVzLAo+IEBAIC00MTcsNiArNDY1LDE1 IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHsKPiAgICAgICB1aW50NjRfdCB2YWwpOwo+ ICAgdm9pZCAoKmRlc3Ryb3kpKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICAg dm9pZCAoKmZvcmNlKShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiArCj4gKyAv KiBhdG9taWMgdXBkYXRlIGhhbmRsaW5nICovCj4gKyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqKCphdG9taWNfZHVwbGljYXRlX3N0YXRlKShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKTsKPiArIHZvaWQgKCphdG9taWNfZGVzdHJveV9zdGF0ZSkoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiArICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY3N0YXRl KTsKPiArIGludCAoKmF0b21pY19zZXRfcHJvcGVydHkpKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCj4gKyAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSwKPiArICAg c3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gKyAgIHVpbnQ2NF90IHZhbCk7Cj4gIH07 Cj4KPiAgLyoqCj4gQEAgLTUxNSw2ICs1NzIsNyBAQCBzdHJ1Y3QgZHJtX2VuY29kZXIgewo+ICAg KiBAbnVsbF9lZGlkX2NvdW50ZXI6IHRyYWNrIHNpbmtzIHRoYXQgZ2l2ZSB1cyBhbGwgemVyb3Mg Zm9yIHRoZSBFRElECj4gICAqIEBiYWRfZWRpZF9jb3VudGVyOiB0cmFjayBzaW5rcyB0aGF0IGdp dmUgdXMgYW4gRURJRCB3aXRoIGludmFsaWQgY2hlY2tzdW0KPiAgICogQGRlYnVnZnNfZW50cnk6 IGRlYnVnZnMgZGlyZWN0b3J5IGZvciB0aGlzIGNvbm5lY3Rvcgo+ICsgKiBAc3RhdGU6IGN1cnJl bnQgYXRvbWljIHN0YXRlIGZvciB0aGlzIGNvbm5lY3Rvcgo+ICAgKgo+ICAgKiBFYWNoIGNvbm5l Y3RvciBtYXkgYmUgY29ubmVjdGVkIHRvIG9uZSBvciBtb3JlIENSVENzLCBvciBtYXkgYmUgY2xv bmFibGUgYnkKPiAgICogYW5vdGhlciBjb25uZWN0b3IgaWYgdGhleSBjYW4gc2hhcmUgYSBDUlRD LiAgRWFjaCBjb25uZWN0b3IgYWxzbyBoYXMgYSBzcGVjaWZpYwo+IEBAIC01NzUsOCArNjMzLDQy IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yIHsKPiAgIHVuc2lnbmVkIGJhZF9lZGlkX2NvdW50ZXI7 Cj4KPiAgIHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZW50cnk7Cj4gKwo+ICsgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKnN0YXRlOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgLSBtdXRhYmxlIHBsYW5lIHN0YXRlCj4gKyAqIEBjcnRjOiBjdXJyZW50bHkg Ym91bmQgQ1JUQywgTlVMTCBpZiBkaXNhYmxlZAo+ICsgKiBAZmI6IGN1cnJlbnRseSBib3VuZCBm Ygo+ICsgKiBAY3J0Y194OiBsZWZ0IHBvc2l0aW9uIG9mIHZpc2libGUgcG9ydGlvbiBvZiBwbGFu ZSBvbiBjcnRjCj4gKyAqIEBjcnRjX3k6IHVwcGVyIHBvc2l0aW9uIG9mIHZpc2libGUgcG9ydGlv biBvZiBwbGFuZSBvbiBjcnRjCj4gKyAqIEBjcnRjX3c6IHdpZHRoIG9mIHZpc2libGUgcG9ydGlv biBvZiBwbGFuZSBvbiBjcnRjCj4gKyAqIEBjcnRjX2g6IGhlaWdodCBvZiB2aXNpYmxlIHBvcnRp b24gb2YgcGxhbmUgb24gY3J0Ywo+ICsgKiBAc3JjX3g6IGxlZnQgcG9zaXRpb24gb2YgdmlzaWJs ZSBwb3J0aW9uIG9mIHBsYW5lIHdpdGhpbgo+ICsgKiBwbGFuZSAoaW4gMTYuMTYpCj4gKyAqIEBz cmNfeTogdXBwZXIgcG9zaXRpb24gb2YgdmlzaWJsZSBwb3J0aW9uIG9mIHBsYW5lIHdpdGhpbgo+ ICsgKiBwbGFuZSAoaW4gMTYuMTYpCj4gKyAqIEBzcmNfdzogd2lkdGggb2YgdmlzaWJsZSBwb3J0 aW9uIG9mIHBsYW5lIChpbiAxNi4xNikKPiArICogQHNyY19oOiBoZWlnaHQgb2YgdmlzaWJsZSBw b3J0aW9uIG9mIHBsYW5lIChpbiAxNi4xNikKPiArICogQHN0YXRlOiBiYWNrcG9pbnRlciB0byBn bG9iYWwgZHJtX2F0b21pY19zdGF0ZQo+ICsgKi8KPiArc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7 Cj4gKyBzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gKyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YjsKPiArCj4gKyAvKiBTaWduZWQgZGVzdCBsb2NhdGlvbiBhbGxvd3MgaXQgdG8gYmUgcGFydGlh bGx5IG9mZiBzY3JlZW4gKi8KPiArIGludDMyX3QgY3J0Y194LCBjcnRjX3k7Cj4gKyB1aW50MzJf dCBjcnRjX3csIGNydGNfaDsKPiArCj4gKyAvKiBTb3VyY2UgdmFsdWVzIGFyZSAxNi4xNiBmaXhl ZCBwb2ludCAqLwo+ICsgdWludDMyX3Qgc3JjX3gsIHNyY195Owo+ICsgdWludDMyX3Qgc3JjX2gs IHNyY193Owo+ICsKPiArIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiAgfTsKPgo+ ICsKPiAgLyoqCj4gICAqIHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgLSBkcml2ZXIgcGxhbmUgY29u dHJvbCBmdW5jdGlvbnMKPiAgICogQHVwZGF0ZV9wbGFuZTogdXBkYXRlIHRoZSBwbGFuZSBjb25m aWd1cmF0aW9uCj4gQEAgLTU4NCw2ICs2NzYsOSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4g ICAqIEBkZXN0cm95OiBjbGVhbiB1cCBwbGFuZSByZXNvdXJjZXMKPiAgICogQHJlc2V0OiByZXNl dCBwbGFuZSBhZnRlciBzdGF0ZSBoYXMgYmVlbiBpbnZhbGlkYXRlZCAoZS5nLiByZXN1bWUpCj4g ICAqIEBzZXRfcHJvcGVydHk6IGNhbGxlZCB3aGVuIGEgcHJvcGVydHkgaXMgY2hhbmdlZAo+ICsg KiBAYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZTogZHVwbGljYXRlIHRoZSBhdG9taWMgc3RhdGUgZm9y IHRoaXMgcGxhbmUKPiArICogQGF0b21pY19kZXN0cm95X3N0YXRlOiBkZXN0cm95IGFuIGF0b21p YyBzdGF0ZSBmb3IgdGhpcyBwbGFuZQo+ICsgKiBAYXRvbWljX3NldF9wcm9wZXJ0eTogc2V0IGEg cHJvcGVydHkgb24gYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIHBsYW5lCj4gICAqLwo+ICBzdHJ1 Y3QgZHJtX3BsYW5lX2Z1bmNzIHsKPiAgIGludCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCj4gQEAgLTU5OCw2ICs2OTMsMTUgQEAgc3RydWN0IGRybV9wbGFuZV9mdW5j cyB7Cj4KPiAgIGludCAoKnNldF9wcm9wZXJ0eSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4g ICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwgdWludDY0X3QgdmFsKTsKPiArCj4g KyAvKiBhdG9taWMgdXBkYXRlIGhhbmRsaW5nICovCj4gKyBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICooKmF0b21pY19kdXBsaWNhdGVfc3RhdGUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKPiAr IHZvaWQgKCphdG9taWNfZGVzdHJveV9zdGF0ZSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4g KyAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqY3N0YXRlKTsKPiArIGludCAoKmF0b21pY19z ZXRfcHJvcGVydHkpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsgICBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpzdGF0ZSwKPiArICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4g KyAgIHVpbnQ2NF90IHZhbCk7Cj4gIH07Cj4KPiAgZW51bSBkcm1fcGxhbmVfdHlwZSB7Cj4gQEAg LTYyMSw2ICs3MjUsNyBAQCBlbnVtIGRybV9wbGFuZV90eXBlIHsKPiAgICogQGZ1bmNzOiBoZWxw ZXIgZnVuY3Rpb25zCj4gICAqIEBwcm9wZXJ0aWVzOiBwcm9wZXJ0eSB0cmFja2luZyBmb3IgdGhp cyBwbGFuZQo+ICAgKiBAdHlwZTogdHlwZSBvZiBwbGFuZSAob3ZlcmxheSwgcHJpbWFyeSwgY3Vy c29yKQo+ICsgKiBAc3RhdGU6IGN1cnJlbnQgYXRvbWljIHN0YXRlIGZvciB0aGlzIHBsYW5lCj4g ICAqLwo+ICBzdHJ1Y3QgZHJtX3BsYW5lIHsKPiAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXY7Cj4g QEAgLTY0Miw2ICs3NDcsOCBAQCBzdHJ1Y3QgZHJtX3BsYW5lIHsKPiAgIHN0cnVjdCBkcm1fb2Jq ZWN0X3Byb3BlcnRpZXMgcHJvcGVydGllczsKPgo+ICAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBl Owo+ICsKPiArIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlOwo+ICB9Owo+Cj4gIC8qKgo+ IC0tCj4gMi4xLjEKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==