From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id C9B266E081 for ; Wed, 17 Mar 2021 19:13:24 +0000 (UTC) Date: Wed, 17 Mar 2021 20:13:15 +0100 From: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Message-ID: <20210317191315.GA123572@zkempczy-mobl2> References: <20210317144610.108372-1-zbigniew.kempczynski@intel.com> <20210317144610.108372-3-zbigniew.kempczynski@intel.com> <20210317174343.GB120205@zkempczy-mobl2> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [igt-dev] [PATCH i-g-t v26 02/35] lib/igt_list: igt_hlist implementation. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Jason Ekstrand Cc: IGT GPU Tools List-ID: T24gV2VkLCBNYXIgMTcsIDIwMjEgYXQgMDE6MDI6NTNQTSAtMDUwMCwgSmFzb24gRWtzdHJhbmQg d3JvdGU6Cj4gT24gV2VkLCBNYXIgMTcsIDIwMjEgYXQgMTI6NDMgUE0gWmJpZ25pZXcgS2VtcGN6 ecWEc2tpCj4gPHpiaWduaWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4gd3JvdGU6Cj4gPgo+ID4g T24gV2VkLCBNYXIgMTcsIDIwMjEgYXQgMTE6NDM6MzhBTSAtMDUwMCwgSmFzb24gRWtzdHJhbmQg d3JvdGU6Cj4gPiA+IFdvdWxkIGl0IGJlIGJldHRlciB0byBwdWxsIHRoZSBoYXNoIHRhYmxlIGlt cGxlbWVudGF0aW9uIGZyb20gTWVzYT8KPiA+ID4gT3IgdXNlIGh0dHBzOi8vY2dpdC5mcmVlZGVz a3RvcC5vcmcvfmFuaG9sdC9oYXNoX3RhYmxlLyB3aGljaCBzaG91bGQKPiA+ID4gYmUgaWRlbnRp Y2FsLCB0aG91Z2ggaXQgbWF5IGJlIGEgYml0IG91dC1vZi1kYXRlLiAgSSd2ZSBwb3VyZWQgZW5v dWdoCj4gPiA+IGhvdXJzIG9mIG15IGxpZmUgaW50byBmaW5kaW5nIGFuZCBmaXhpbmcgdGhlIGJ1 Z3MgaW4gdGhlIE1lc2EgaGFzaAo+ID4gPiB0YWJsZSB0aGF0IElHVCByb2xsaW5nIGl0cyBvd24g ZG9lc24ndCByZWFsbHkgZmlsbCBtZSB3aXRoIGhhcHB5Cj4gPiA+IGZlZWxpbmdzLgo+ID4gPgo+ ID4gPiAtLUphc29uCj4gPgo+ID4gSSdtIG5vdCBnb2luZyB0byBiZSBhIGRldmlsIGFkdm9jYXRl LCBJJ2xsIGp1c3QgYXNrIERvbWluaWsgaG93Cj4gPiBjb25maWRlbnQgaXMgaGUgYWJvdXQgdGhh dCBpbXBsZW1lbnRhdGlvbiwgYXQgbGVhc3Qgd2UgY2FuIHByb3ZpZGUKPiA+IHNvbWUgc3RyZXNz IHRlc3Qgd2l0aCBtdWx0aXRocmVhZGluZyBzY2VuYXJpb3MuCj4gPgo+ID4gSGUncyBwb3J0ZWQg a2VybmVsIGhhc2h0YWJsZSBzbyBpZiBoZSBkaWRuJ3QgaW50cm9kdWNlIGEgbm9uIG9idmlvdXMK PiA+IGJ1ZyBpdCBzaG91bGQgd29yay4KPiAKPiBJZiB0aGlzIGlzLCBpbmRlZWQsIGEgcG9ydCBv ZiB0aGUga2VybmVsIGhhc2ggdGFibGUsIHRoZW4gaXQncwo+IHByb2JhYmx5IG9rLiAgTm90IHN1 cmUgaG93IHRoYXQgd29ya3Mgb3V0IG9uIGxpY2Vuc2VzLCBidXQgaXQgc2hvdWxkCj4gYmUgY29y cmVjdC4gIElmIHRoaXMgaGFzIGJlZW4gZnJlc2hseSBoYW5kLXJvbGxlZCBleHByZXNzbHkgZm9y IHRoaXMKPiBwdXJwb3NlLCB0aGVuIGl0IG1ha2VzIG1lIG5lcnZvdXMuCj4gCj4gPiBSZWdhcmRp bmcgRXJpYyBpbXBsZW1lbnRhdGlvbiAtIHdlIG5lZWQgdG8gYWRvcHQgdGhhdCBpbXBsZW1lbnRh dGlvbgo+ID4gdG8gYXQgbGVhc3QgcmVuYW1lIHRvIGlndF8qIGFuZCBmaXggdGhlIGNvZGUgd2hp Y2ggaXMgdXNpbmcuCj4gPiBTaG91bGQgdGFrZSBmZXcgZGF5cyBtYXguCj4gPgo+ID4gSWYgeW91 J2xsIHRha2UgYSBsb29rIHRvIHRlc3RzIGFwaV9pbnRlbF9hbGxvY2F0b3JAdHdvLWxldmVsLWlu Y2VwdGlvbgo+ID4geW91J2xsIHNlZSB3ZSdyZSBzdHJlc3MgdGVzdGluZyB0aGF0IGhhc2h0YWJs ZSBtdWNoIGZyb20gbWFueQo+ID4gcHJvY2Vzc2VzIC8gdGhyZWFkcyBhbmQgd2Ugc2VlIG5vIHBy b2JsZW0gd2l0aCBsb3NpbmcgZGF0YSBjb2hlcmVuY3kKPiA+IGluIHRoZSBtYXAuCj4gCj4gSSdt IGxlc3Mgd29ycmllZCBhYm91dCB0aHJlYWRzLCBzbyBsb25nIGFzIGl0J3MgbG9ja2VkLCBhcyBJ IGFtIGFib3V0Cj4gd2VpcmQgaW5zZXJ0L3JlbW92ZSBwYXR0ZXJucy4gIE1vc3Qgb2YgdGhlIGJ1 Z3MgSSd2ZSBoYWQgdG8gZml4IGluCj4gbWVzYSB3ZXJlIGJlY2F1c2UgY2VydGFpbiBwYXR0ZXJu cyBvZiBpbnNlcnQvcmVtb3ZlIHdpdGggdGhlIHJpZ2h0Cj4gaGFzaGVzIHdvdWxkIGNhdXNlIGl0 IHRvIGJsb3cgdXAuICBJZiBtb3N0IG9mIHdoYXQgeW91IGRvIGlzIGp1c3QgYWRkCj4gYSBidW5j aCBvZiBzdHVmZiB3aXRob3V0IGEgbG90IG9mIHJlbW92YWwsIHRoZXkgY2FuIGJlIHVubGlrZWx5 IGFuZAo+IGhhcmQgdG8gZmluZC4gIFRoYXQgc2FpZCwgZ2l2ZW4gdGhhdCBpdCdzIGxpbmtlZCBs aXN0IGJhc2VkIGFuZCBub3QKPiByZS1oYXNoIGJhc2VkLCBhIGxvdCBvZiB0aG9zZSBjb3JuZXIg Y2FzZXMgYXJlIGxlc3MgbGlrZWx5IHRoYW4gdGhleQo+IHdlcmUgd2l0aCB0aGUgTWVzYSBpbXBs ZW1lbnRhdGlvbi4gIEFnYWluLCBteSBwcmltYXJ5IGNvbmNlcm4gaXMgd2l0aAo+IGEgTkVXIGhh c2ggdGFibGUgaW1wbC4gOi0pCgpJJ20gbm90IHN1cmUgSSd2ZSB1bmRlcnN0YW5kIHlvdSBjb3Jy ZWN0bHkgLSBpdCBpcyByZS1oYXNoIGJhc2VkIChzZWUKaWd0X21hcF9leHRlbmQoKSksIGFuZCBp dCBncm93cyBpZiBuZWNlc3NhcnkuIFdvcmtzIHByb3Blcmx5IHdoZW4geW91CmRvbid0IGZvcmdl dCBhYm91dCBsb2NraW5nIGR1cmluZyBvcGVyYXRpb25zIChub3Qgb25seSBhZGQsIGJ1dCBmaW5k CnRvbyBiZWNhdXNlIGl0IGlzIG5vdCBmdW5ueSB3aGVuIHNvbWVvbmUgaXMgdGFraW5nIHRoZSBy dWcgZnJvbSB1bmRlcgp5b3VyIGZlZXQpLgoKQWxsIG11bHRpcHJvY2Vzcy9tdWx0aXRocmVhZCB0 ZXN0cyBpbiBhcGlfaW50ZWxfYWxsb2NhdG9yIGhlYXZpbHkKZXhlcmNpc2UgaW5zZXJ0L3JlbW92 ZSBzY2VuYXJpb3MgKG9wZW4vY2xvc2UgYWxsb2NhdG9yIGp1c3QgZ2l2ZSAKeW91IG5ldyBoYW5k bGUgaW5zZXJ0ZWQvcmVtb3ZlZCBmcm9tIGhhbmRsZXMgaGFzaCB0YWJsZSBzbyBsYWNrIApvZiBj b25zaXN0ZW5jeSB3b3VsZCBiZSBxdWlja2x5IGZvdW50IGltbykuCgotLQpaYmlnbmlldwoKPiAK PiAtLUphc29uCj4gCj4gPiAtLQo+ID4gWmJpZ25pZXcKPiA+ID4KPiA+ID4gT24gV2VkLCBNYXIg MTcsIDIwMjEgYXQgOTo0NiBBTSBaYmlnbmlldyBLZW1wY3p5xYRza2kKPiA+ID4gPHpiaWduaWV3 LmtlbXBjenluc2tpQGludGVsLmNvbT4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPiBGcm9tOiBEb21p bmlrIEdyemVnb3J6ZWsgPGRvbWluaWsuZ3J6ZWdvcnpla0BpbnRlbC5jb20+Cj4gPiA+ID4KPiA+ ID4gPiBEb3VibGUgbGlua2VkIGxpc3RzIHdpdGggYSBzaW5nbGUgcG9pbnRlciBsaXN0IGhlYWQg aW1wbGVtZW50YXRpb24sCj4gPiA+ID4gYmFzZWQgb24gc2ltaWxhciBpbiB0aGUga2VybmVsLgo+ ID4gPiA+Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRG9taW5payBHcnplZ29yemVrIDxkb21pbmlr LmdyemVnb3J6ZWtAaW50ZWwuY29tPgo+ID4gPiA+IENjOiBaYmlnbmlldyBLZW1wY3p5xYRza2kg PHpiaWduaWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4KPiA+ID4gPiBDYzogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPiA+ID4gQWNrZWQtYnk6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIGxpYi9pZ3Rf bGlzdC5jIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiA+ID4gPiAgbGliL2lndF9saXN0LmggfCA1MCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQo+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfbGlz dC5jIGIvbGliL2lndF9saXN0LmMKPiA+ID4gPiBpbmRleCAzN2FlMTM5YzQuLjQzMjAwZjliMyAx MDA2NDQKPiA+ID4gPiAtLS0gYS9saWIvaWd0X2xpc3QuYwo+ID4gPiA+ICsrKyBiL2xpYi9pZ3Rf bGlzdC5jCj4gPiA+ID4gQEAgLTIyLDYgKzIyLDcgQEAKPiA+ID4gPiAgICoKPiA+ID4gPiAgICov Cj4gPiA+ID4KPiA+ID4gPiArI2luY2x1ZGUgImFzc2VydC5oIgo+ID4gPiA+ICAjaW5jbHVkZSAi aWd0X2xpc3QuaCIKPiA+ID4gPgo+ID4gPiA+ICB2b2lkIElHVF9JTklUX0xJU1RfSEVBRChzdHJ1 Y3QgaWd0X2xpc3RfaGVhZCAqbGlzdCkKPiA+ID4gPiBAQCAtODEsMyArODIsNzQgQEAgYm9vbCBp Z3RfbGlzdF9lbXB0eShjb25zdCBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqaGVhZCkKPiA+ID4gPiAg ewo+ID4gPiA+ICAgICAgICAgcmV0dXJuIGhlYWQtPm5leHQgPT0gaGVhZDsKPiA+ID4gPiAgfQo+ ID4gPiA+ICsKPiA+ID4gPiArdm9pZCBpZ3RfaGxpc3RfaW5pdChzdHJ1Y3QgaWd0X2hsaXN0X25v ZGUgKmgpCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgICAgIGgtPm5leHQgPSBOVUxMOwo+ID4gPiA+ ICsgICAgICAgaC0+cHByZXYgPSBOVUxMOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICtp bnQgaWd0X2hsaXN0X3VuaGFzaGVkKGNvbnN0IHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqaCkKPiA+ ID4gPiArewo+ID4gPiA+ICsgICAgICAgcmV0dXJuICFoLT5wcHJldjsKPiA+ID4gPiArfQo+ID4g PiA+ICsKPiA+ID4gPiAraW50IGlndF9obGlzdF9lbXB0eShjb25zdCBzdHJ1Y3QgaWd0X2hsaXN0 X2hlYWQgKmgpCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgICAgIHJldHVybiAhaC0+Zmlyc3Q7Cj4g PiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyB2b2lkIF9faWd0X2hsaXN0X2RlbChz dHJ1Y3QgaWd0X2hsaXN0X25vZGUgKm4pCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgICAgIHN0cnVj dCBpZ3RfaGxpc3Rfbm9kZSAqbmV4dCA9IG4tPm5leHQ7Cj4gPiA+ID4gKyAgICAgICBzdHJ1Y3Qg aWd0X2hsaXN0X25vZGUgKipwcHJldiA9IG4tPnBwcmV2Owo+ID4gPiA+ICsKPiA+ID4gPiArICAg ICAgICpwcHJldiA9IG5leHQ7Cj4gPiA+ID4gKyAgICAgICBpZiAobmV4dCkKPiA+ID4gPiArICAg ICAgICAgICAgICAgbmV4dC0+cHByZXYgPSBwcHJldjsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ ID4gPiArdm9pZCBpZ3RfaGxpc3RfZGVsKHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqbikKPiA+ID4g PiArewo+ID4gPiA+ICsgICAgICAgX19pZ3RfaGxpc3RfZGVsKG4pOwo+ID4gPiA+ICsgICAgICAg bi0+bmV4dCA9IE5VTEw7Cj4gPiA+ID4gKyAgICAgICBuLT5wcHJldiA9IE5VTEw7Cj4gPiA+ID4g K30KPiA+ID4gPiArCj4gPiA+ID4gK3ZvaWQgaWd0X2hsaXN0X2RlbF9pbml0KHN0cnVjdCBpZ3Rf aGxpc3Rfbm9kZSAqbikKPiA+ID4gPiArewo+ID4gPiA+ICsgICAgICAgaWYgKCFpZ3RfaGxpc3Rf dW5oYXNoZWQobikpIHsKPiA+ID4gPiArICAgICAgICAgICAgICAgX19pZ3RfaGxpc3RfZGVsKG4p Owo+ID4gPiA+ICsgICAgICAgICAgICAgICBpZ3RfaGxpc3RfaW5pdChuKTsKPiA+ID4gPiArICAg ICAgIH0KPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArdm9pZCBpZ3RfaGxpc3RfYWRkX2hl YWQoc3RydWN0IGlndF9obGlzdF9ub2RlICpuLCBzdHJ1Y3QgaWd0X2hsaXN0X2hlYWQgKmgpCj4g PiA+ID4gK3sKPiA+ID4gPiArICAgICAgIHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqZmlyc3QgPSBo LT5maXJzdDsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICBuLT5uZXh0ID0gZmlyc3Q7Cj4gPiA+ ID4gKyAgICAgICBpZiAoZmlyc3QpCj4gPiA+ID4gKyAgICAgICAgICAgICAgIGZpcnN0LT5wcHJl diA9ICZuLT5uZXh0Owo+ID4gPiA+ICsgICAgICAgaC0+Zmlyc3QgPSBuOwo+ID4gPiA+ICsgICAg ICAgbi0+cHByZXYgPSAmaC0+Zmlyc3Q7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3Zv aWQgaWd0X2hsaXN0X2FkZF9iZWZvcmUoc3RydWN0IGlndF9obGlzdF9ub2RlICpuLCBzdHJ1Y3Qg aWd0X2hsaXN0X25vZGUgKm5leHQpCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgICAgIGFzc2VydChu ZXh0KTsKPiA+ID4gPiArICAgICAgIG4tPnBwcmV2ID0gbmV4dC0+cHByZXY7Cj4gPiA+ID4gKyAg ICAgICBuLT5uZXh0ID0gbmV4dDsKPiA+ID4gPiArICAgICAgIG5leHQtPnBwcmV2ID0gJm4tPm5l eHQ7Cj4gPiA+ID4gKyAgICAgICAqKG4tPnBwcmV2KSA9IG47Cj4gPiA+ID4gK30KPiA+ID4gPiAr Cj4gPiA+ID4gK3ZvaWQgaWd0X2hsaXN0X2FkZF9iZWhpbmQoc3RydWN0IGlndF9obGlzdF9ub2Rl ICpuLCBzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKnByZXYpCj4gPiA+ID4gK3sKPiA+ID4gPiArICAg ICAgIG4tPm5leHQgPSBwcmV2LT5uZXh0Owo+ID4gPiA+ICsgICAgICAgcHJldi0+bmV4dCA9IG47 Cj4gPiA+ID4gKyAgICAgICBuLT5wcHJldiA9ICZwcmV2LT5uZXh0Owo+ID4gPiA+ICsKPiA+ID4g PiArICAgICAgIGlmIChuLT5uZXh0KQo+ID4gPiA+ICsgICAgICAgICAgICAgICBuLT5uZXh0LT5w cHJldiAgPSAmbi0+bmV4dDsKPiA+ID4gPiArfQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0 X2xpc3QuaCBiL2xpYi9pZ3RfbGlzdC5oCj4gPiA+ID4gaW5kZXggY2M5M2Q3YTBkLi43OGU3NjFl MDUgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvbGliL2lndF9saXN0LmgKPiA+ID4gPiArKysgYi9saWIv aWd0X2xpc3QuaAo+ID4gPiA+IEBAIC00MCw2ICs0MCwxMCBAQAo+ID4gPiA+ICAgKiBpZ3RfbGlz dCBpcyBhIGRvdWJseS1saW5rZWQgbGlzdCB3aGVyZSBhbiBpbnN0YW5jZSBvZiBpZ3RfbGlzdF9o ZWFkIGlzIGEKPiA+ID4gPiAgICogaGVhZCBzZW50aW5lbCBhbmQgaGFzIHRvIGJlIGluaXRpYWxp emVkLgo+ID4gPiA+ICAgKgo+ID4gPiA+ICsgKiBpZ3RfaGlzdCBpcyBhbHNvIGFuIGRvdWJsZSBs aW5rZWQgbGlzdHMsIGJ1dCB3aXRoIGEgc2luZ2xlIHBvaW50ZXIgbGlzdCBoZWFkLgo+ID4gPiA+ ICsgKiBNb3N0bHkgdXNlZnVsIGZvciBoYXNoIHRhYmxlcyB3aGVyZSB0aGUgdHdvIHBvaW50ZXIg bGlzdCBoZWFkIGlzCj4gPiA+ID4gKyAqIHRvbyB3YXN0ZWZ1bC4gWW91IGxvc2UgdGhlIGFiaWxp dHkgdG8gYWNjZXNzIHRoZSB0YWlsIGluIE8oMSkuCj4gPiA+ID4gKyAqCj4gPiA+ID4gICAqIEV4 YW1wbGUgdXNhZ2U6Cj4gPiA+ID4gICAqCj4gPiA+ID4gICAqIHxbPCEtLSBsYW5ndWFnZT0iQyIg LS0+Cj4gPiA+ID4gQEAgLTcxLDYgKzc1LDEzIEBAIHN0cnVjdCBpZ3RfbGlzdF9oZWFkIHsKPiA+ ID4gPiAgICAgICAgIHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpuZXh0Owo+ID4gPiA+ICB9Owo+ID4g PiA+Cj4gPiA+ID4gK3N0cnVjdCBpZ3RfaGxpc3RfaGVhZCB7Cj4gPiA+ID4gKyAgICAgICBzdHJ1 Y3QgaWd0X2hsaXN0X25vZGUgKmZpcnN0Owo+ID4gPiA+ICt9Owo+ID4gPiA+ICsKPiA+ID4gPiAr c3RydWN0IGlndF9obGlzdF9ub2RlIHsKPiA+ID4gPiArICAgICAgIHN0cnVjdCBpZ3RfaGxpc3Rf bm9kZSAqbmV4dCwgKipwcHJldjsKPiA+ID4gPiArfTsKPiA+ID4gPgo+ID4gPiA+ICB2b2lkIElH VF9JTklUX0xJU1RfSEVBRChzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqaGVhZCk7Cj4gPiA+ID4gIHZv aWQgaWd0X2xpc3RfYWRkKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICplbGVtLCBzdHJ1Y3QgaWd0X2xp c3RfaGVhZCAqaGVhZCk7Cj4gPiA+ID4gQEAgLTgxLDYgKzkyLDE3IEBAIHZvaWQgaWd0X2xpc3Rf bW92ZV90YWlsKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICplbGVtLCBzdHJ1Y3QgaWd0X2xpc3RfaGVh ZCAqbGlzdCk7Cj4gPiA+ID4gIGludCBpZ3RfbGlzdF9sZW5ndGgoY29uc3Qgc3RydWN0IGlndF9s aXN0X2hlYWQgKmhlYWQpOwo+ID4gPiA+ICBib29sIGlndF9saXN0X2VtcHR5KGNvbnN0IHN0cnVj dCBpZ3RfbGlzdF9oZWFkICpoZWFkKTsKPiA+ID4gPgo+ID4gPiA+ICt2b2lkIGlndF9obGlzdF9p bml0KHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqaCk7Cj4gPiA+ID4gK2ludCBpZ3RfaGxpc3RfdW5o YXNoZWQoY29uc3Qgc3RydWN0IGlndF9obGlzdF9ub2RlICpoKTsKPiA+ID4gPiAraW50IGlndF9o bGlzdF9lbXB0eShjb25zdCBzdHJ1Y3QgaWd0X2hsaXN0X2hlYWQgKmgpOwo+ID4gPiA+ICt2b2lk IGlndF9obGlzdF9kZWwoc3RydWN0IGlndF9obGlzdF9ub2RlICpuKTsKPiA+ID4gPiArdm9pZCBp Z3RfaGxpc3RfZGVsX2luaXQoc3RydWN0IGlndF9obGlzdF9ub2RlICpuKTsKPiA+ID4gPiArdm9p ZCBpZ3RfaGxpc3RfYWRkX2hlYWQoc3RydWN0IGlndF9obGlzdF9ub2RlICpuLCBzdHJ1Y3QgaWd0 X2hsaXN0X2hlYWQgKmgpOwo+ID4gPiA+ICt2b2lkIGlndF9obGlzdF9hZGRfYmVmb3JlKHN0cnVj dCBpZ3RfaGxpc3Rfbm9kZSAqbiwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqbmV4dCk7Cj4gPiA+ID4gK3ZvaWQgaWd0X2hsaXN0X2FkZF9i ZWhpbmQoc3RydWN0IGlndF9obGlzdF9ub2RlICpuLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGlndF9obGlzdF9ub2RlICpwcmV2KTsKPiA+ID4gPiArCj4gPiA+ID4g ICNkZWZpbmUgaWd0X2NvbnRhaW5lcl9vZihwdHIsIHNhbXBsZSwgbWVtYmVyKSAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ID4gPiA+ICAgICAgICAgKF9fdHlwZW9mX18oc2FtcGxlKSkoKGNo YXIgKikocHRyKSAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKF9fdHlwZW9mX18oKnNhbXBsZSksIG1l bWJlcikpCj4gPiA+ID4gQEAgLTk2LDkgKzExOCwxMCBAQCBib29sIGlndF9saXN0X2VtcHR5KGNv bnN0IHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFkKTsKPiA+ID4gPiAgICogU2FmZSBhZ2FpbnN0 IHJlbW92ZWwgb2YgdGhlICpjdXJyZW50KiBsaXN0IGVsZW1lbnQuIFRvIGFjaGl2ZSB0aGlzIGl0 Cj4gPiA+ID4gICAqIHJlcXVpcmVzIGFuIGV4dHJhIGhlbHBlciB2YXJpYWJsZSBgdG1wYCB3aXRo IHRoZSBzYW1lIHR5cGUgYXMgYHBvc2AuCj4gPiA+ID4gICAqLwo+ID4gPiA+IC0jZGVmaW5lIGln dF9saXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocG9zLCB0bXAsIGhlYWQsIG1lbWJlcikgICAgICAg ICAgICAgICAgICAgXAo+ID4gPiA+ICsKPiA+ID4gPiArI2RlZmluZSBpZ3RfbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKHBvcywgdG1wLCBoZWFkLCBtZW1iZXIpICAgICAgICAgICBcCj4gPiA+ID4g ICAgICAgICBmb3IgKHBvcyA9IGlndF9jb250YWluZXJfb2YoKGhlYWQpLT5uZXh0LCBwb3MsIG1l bWJlciksICAgICAgICAgXAo+ID4gPiA+IC0gICAgICAgICAgICB0bXAgPSBpZ3RfY29udGFpbmVy X29mKChwb3MpLT5tZW1iZXIubmV4dCwgdG1wLCBtZW1iZXIpOyAgIFwKPiA+ID4gPiArICAgICAg ICAgICAgdG1wID0gaWd0X2NvbnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLm5leHQsIHRtcCwgbWVt YmVyKTsgICBcCj4gPiA+ID4gICAgICAgICAgICAgICZwb3MtPm1lbWJlciAhPSAoaGVhZCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICAgICAgICAgICAgICBw b3MgPSB0bXAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPiA+ID4gPiAgICAgICAgICAgICAgdG1wID0gaWd0X2NvbnRhaW5lcl9vZigocG9zKS0+bWVt YmVyLm5leHQsIHRtcCwgbWVtYmVyKSkKPiA+ID4gPiBAQCAtMTA4LDYgKzEzMSwyNyBAQCBib29s IGlndF9saXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFkKTsKPiA+ID4g PiAgICAgICAgICAgICAgJnBvcy0+bWVtYmVyICE9IChoZWFkKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gICAgICAgICAgICAgIHBvcyA9IGlndF9jb250YWlu ZXJfb2YoKHBvcyktPm1lbWJlci5wcmV2LCBwb3MsIG1lbWJlcikpCj4gPiA+ID4KPiA+ID4gPiAr I2RlZmluZSBpZ3RfbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVyc2UocG9zLCB0bXAsIGhl YWQsIG1lbWJlcikgICAgICAgICAgIFwKPiA+ID4gPiArICAgICAgIGZvciAocG9zID0gaWd0X2Nv bnRhaW5lcl9vZigoaGVhZCktPnByZXYsIHBvcywgbWVtYmVyKSwgICAgICAgICBcCj4gPiA+ID4g KyAgICAgICAgICAgIHRtcCA9IGlndF9jb250YWluZXJfb2YoKHBvcyktPm1lbWJlci5wcmV2LCB0 bXAsIG1lbWJlcik7ICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAmcG9zLT5tZW1iZXIgIT0gKGhl YWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArICAgICAg ICAgICAgcG9zID0gdG1wLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgIHRtcCA9IGlndF9jb250YWluZXJfb2YoKHBv cyktPm1lbWJlci5wcmV2LCB0bXAsIG1lbWJlcikpCj4gPiA+ID4gKwo+ID4gPiA+ICsjZGVmaW5l IGlndF9obGlzdF9lbnRyeV9zYWZlKHB0ciwgc2FtcGxlLCBtZW1iZXIpIFwKPiA+ID4gPiArICAg ICAgICh7IHR5cGVvZihwdHIpIF9fX19wdHIgPSAocHRyKTsgXAo+ID4gPiA+ICsgICAgICAgICAg X19fX3B0ciA/IGlndF9jb250YWluZXJfb2YoX19fX3B0ciwgc2FtcGxlLCBtZW1iZXIpIDogTlVM TDsgXAo+ID4gPiA+ICsgICAgICAgfSkKPiA+ID4gPiArCj4gPiA+ID4gKyNkZWZpbmUgaWd0X2hs aXN0X2Zvcl9lYWNoX2VudHJ5KHBvcywgaGVhZCwgbWVtYmVyKSAgICAgICAgICAgICAgICAgICAg XAo+ID4gPiA+ICsgICAgICAgZm9yIChwb3MgPSBpZ3RfaGxpc3RfZW50cnlfc2FmZSgoaGVhZCkt PmZpcnN0LCBwb3MsIG1lbWJlcik7ICAgIFwKPiA+ID4gPiArICAgICAgICAgICAgcG9zOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ ID4gKyAgICAgICAgICAgIHBvcyA9IGlndF9obGlzdF9lbnRyeV9zYWZlKChwb3MpLT5tZW1iZXIu bmV4dCwgcG9zLCBtZW1iZXIpKQo+ID4gPiA+ICsKPiA+ID4gPiArI2RlZmluZSBpZ3RfaGxpc3Rf Zm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIG4sIGhlYWQsIG1lbWJlcikgICAgICAgICAgICBcCj4g PiA+ID4gKyAgICAgICBmb3IgKHBvcyA9IGlndF9obGlzdF9lbnRyeV9zYWZlKChoZWFkKS0+Zmly c3QsIHBvcywgbWVtYmVyKTsgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICBwb3MgJiYgKHsgbiA9 IHBvcy0+bWVtYmVyLm5leHQ7IDE7IH0pOyAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiAr ICAgICAgICAgICAgcG9zID0gaWd0X2hsaXN0X2VudHJ5X3NhZmUobiwgcG9zLCBtZW1iZXIpKQo+ ID4gPiA+Cj4gPiA+ID4gIC8qIElHVCBjdXN0b20gaGVscGVycyAqLwo+ID4gPiA+Cj4gPiA+ID4g QEAgLTEyNyw0ICsxNzEsNiBAQCBib29sIGlndF9saXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBpZ3Rf bGlzdF9oZWFkICpoZWFkKTsKPiA+ID4gPiAgI2RlZmluZSBpZ3RfbGlzdF9sYXN0X2VudHJ5KGhl YWQsIHR5cGUsIG1lbWJlcikgXAo+ID4gPiA+ICAgICAgICAgaWd0X2NvbnRhaW5lcl9vZigoaGVh ZCktPnByZXYsICh0eXBlKSwgbWVtYmVyKQo+ID4gPiA+Cj4gPiA+ID4gKyNkZWZpbmUgSUdUX0lO SVRfSExJU1RfSEVBRChwdHIpICgocHRyKS0+Zmlyc3QgPSBOVUxMKQo+ID4gPiA+ICsKPiA+ID4g PiAgI2VuZGlmIC8qIElHVF9MSVNUX0ggKi8KPiA+ID4gPiAtLQo+ID4gPiA+IDIuMjYuMAo+ID4g PiA+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1k ZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=