From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [RFC v2] drm/i915: Engine discovery query Date: Wed, 11 Apr 2018 09:32:31 -0700 Message-ID: <4321c080-3ed1-f58d-20f4-6abb146184e9@intel.com> References: <20180314140539.9287-1-tvrtko.ursulin@linux.intel.com> <20180411094631.14959-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5C0536E57E for ; Wed, 11 Apr 2018 16:32:34 +0000 (UTC) In-Reply-To: <20180411094631.14959-1-tvrtko.ursulin@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org TG9va3MgZ29vZCB0byBtZSwgYSBmZXcgbml0cyBiZWxvdy4KSSdsbCB0cnkgdG8gZmluZCBzb21l IHRpbWUgdG8gZGlzcGxheSB0aGlzIGluZm9ybWF0aW9uIGluIGdwdXRvcC4KClJldmlld2VkLWJ5 OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+CgpPbiAx MS8wNC8xOCAwMjo0NiwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4gRnJvbTogVHZydGtvIFVyc3Vs aW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPgo+IEVuZ2luZSBkaXNjb3ZlcnkgcXVlcnkg YWxsb3dzIHVzZXJzcGFjZSB0byBlbnVtZXJhdGUgZW5naW5lcywgcHJvYmUgdGhlaXIKPiBjb25m aWd1cmF0aW9uIGZlYXR1cmVzLCBhbGwgd2l0aG91dCBuZWVkaW5nIHRvIG1haW50YWluIHRoZSBp bnRlcm5hbCBQQ0kKPiBJRCBiYXNlZCBkYXRhYmFzZS4KPgo+IEEgbmV3IHF1ZXJ5IGZvciB0aGUg Z2VuZXJpYyBpOTE1IHF1ZXJ5IGlvY3RsIGlzIGFkZGVkIG5hbWVkCj4gRFJNX0k5MTVfUVVFUllf RU5HSU5FX0lORk8sIHRvZ2V0aGVyIHdpdGggYWNjb21wYW55aW5nIHN0cnVjdHVyZQo+IGRybV9p OTE1X3F1ZXJ5X2VuZ2luZV9pbmZvLiBUaGUgYWRkcmVzcyBvZiBsYXR0ZXIgc2hvdWxkIGJlIHBh c3NlZCB0byB0aGUKPiBrZXJuZWwgaW4gdGhlIHF1ZXJ5LmRhdGFfcHRyIGZpZWxkLCBhbmQgc2hv dWxkIGJlIGxhcmdlIGVub3VnaCBmb3IgdGhlCj4ga2VybmVsIHRvIGZpbGwgb3V0IGFsbCBrbm93 biBlbmdpbmVzIGFzIHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbwo+IGVsZW1lbnRzIHRyYWls aW5nIHRoZSBxdWVyeS4KPgo+IEFzIHdpdGggb3RoZXIgcXVlcmllcywgc2V0dGluZyB0aGUgaXRl bSBxdWVyeSBsZW5ndGggdG8gemVybyBhbGxvd3MKPiB1c2Vyc3BhY2UgdG8gcXVlcnkgbWluaW11 bSByZXF1aXJlZCBidWZmZXIgc2l6ZS4KPgo+IEVudW1lcmF0ZWQgZW5naW5lcyBoYXZlIGNvbW1v biB0eXBlIG1hc2sgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcXVlcnkgYWxsCj4gaGFyZHdhcmUgZW5n aW5lcywgdmVyc3VzIGVuZ2luZXMgdXNlcnNwYWNlIGNhbiBzdWJtaXQgdG8gdXNpbmcgdGhlIGV4 ZWNidWYKPiB1QVBJLgo+Cj4gRW5naW5lcyBhbHNvIGhhdmUgY2FwYWJpbGl0aWVzIHdoaWNoIGFy ZSBwZXIgZW5naW5lIGNsYXNzIG5hbWVzcGFjZSBvZgo+IGJpdHMgZGVzY3JpYmluZyBmZWF0dXJl cyBub3QgcHJlc2VudCBvbiBhbGwgZW5naW5lIGluc3RhbmNlcy4KPgo+IHYyOgo+ICAgKiBGaXhl ZCBIRVZDIGFzc2lnbm1lbnQuCj4gICAqIFJlb3JkZXIgc29tZSBmaWVsZHMsIHJlbmFtZSB0eXBl IHRvIGZsYWdzLCBpbmNyZWFzZSB3aWR0aC4gKExpb25lbCkKPiAgICogTm8gbmVlZCB0byBhbGxv Y2F0ZSB0ZW1wb3Jhcnkgc3RvcmFnZSBpZiB3ZSBkbyBpdCBlbmdpbmUgYnkgZW5naW5lLgo+ICAg ICAoTGlvbmVsKQo+Cj4gU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1 bGluQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Cj4gQ2M6IEpvbiBCbG9vbWZpZWxkIDxqb24uYmxvb21maWVsZEBpbnRlbC5jb20+Cj4gQ2M6 IERtaXRyeSBSb2dvemhraW4gPGRtaXRyeS52LnJvZ296aGtpbkBpbnRlbC5jb20+Cj4gQ2M6IExp b25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KPiBDYzogSm9v bmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+IC0tLQo+IFRo aXMgaXMgUkZDIGZvciBub3cgc2luY2UgaXQgaXMgbm90IHZlcnkgdXNhYmxlIGJlZm9yZSB0aGUg bmV3IGV4ZWNidWYgQVBJCj4gb3IgdmlydHVhbCBlbmdpbmUgcXVldWUgc3VibWlzc2lvbiBnZXRz IGNsb3Nlci4KPgo+IEluIHRoaXMgdmVyc2lvbiBJIGhhdmUgYWRkZWQgY2FwYWJpbGl0eSBvZiBk aXN0aW5ndWlzaGluZyBiZXR3ZWVuIGhhcmR3YXJlCj4gZW5naW5lcyBhbmQgQUJJIGVuZ2luZXMu IFRoaXMgaXMgdG8gYWNjb3VudCBmb3IgcHJvYmFibGUgZnV0dXJlIHVzZSBjYXNlcwo+IGxpa2Ug dmlydHVhbGl6YXRpb24sIHdoZXJlIGd1ZXN0IG1pZ2h0IG9ubHkgc2VlIG9uZSBlbmdpbmUgaW5z dGFuY2UsIGJ1dAo+IHdpbGwgd2FudCB0byBrbm93IG92ZXJhbGwgaGFyZHdhcmUgY2FwYWJpbGl0 aWVzIGluIG9yZGVyIHRvIHR1bmUgaXRzCj4gYmVoYXZpb3VyLgo+Cj4gSW4gZ2VuZXJhbCBJIHRo aW5rIHdlIHdpbGwgaGF2ZSB0byB3YWl0IGEgYml0IGJlZm9yZSBkZWZpbmluZyB0aGUgZmluYWwK PiBsb29rIG9mIHRoZSB1QVBJLCBidXQgaW4gdGhlIG1lYW50aW1lIEkgdGhvdWdodCBpdCB1c2Vm dWwgdG8gc2hhcmUgYXMgUkZDLgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9x dWVyeS5jICAgICAgIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgfCAgMiArKwo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgIDMgKysKPiAgIGluY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysr Kwo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcXVlcnkuYwo+IGluZGV4IDNhY2U5MjlkZDkwZi4uYTFjMGUzYWNjODgyIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwo+IEBAIC04Miw5ICs4Miw3MiBAQCBzdGF0aWMgaW50 IHF1ZXJ5X3RvcG9sb2d5X2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAgCXJldHVybiB0b3RhbF9sZW5ndGg7Cj4gICB9Cj4gICAKPiArc3RhdGljIGludAo+ICtxdWVy eV9lbmdpbmVfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiArCQkgIHN0cnVj dCBkcm1faTkxNV9xdWVyeV9pdGVtICpxdWVyeV9pdGVtKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcXVlcnlfZW5naW5lX2luZm8gX191c2VyICpxdWVyeV9wdHIgPQo+ICsJCQkJdTY0X3RvX3Vz ZXJfcHRyKHF1ZXJ5X2l0ZW0tPmRhdGFfcHRyKTsKPiArCXN0cnVjdCBkcm1faTkxNV9lbmdpbmVf aW5mbyBfX3VzZXIgKmluZm9fcHRyID0gJnF1ZXJ5X3B0ci0+ZW5naW5lc1swXTsKPiArCXN0cnVj dCBkcm1faTkxNV9xdWVyeV9lbmdpbmVfaW5mbyBxdWVyeTsKPiArCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZTsKPiArCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+ICsJaW50IGxlbjsK PiArCj4gKwlpZiAocXVlcnlfaXRlbS0+ZmxhZ3MpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ ICsJbGVuID0gc2l6ZW9mKHN0cnVjdCBkcm1faTkxNV9xdWVyeV9lbmdpbmVfaW5mbykgKwo+ICsJ ICAgICAgSTkxNV9OVU1fRU5HSU5FUyAqIHNpemVvZihzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2lu Zm8pOwo+ICsKPiArCWlmICghcXVlcnlfaXRlbS0+bGVuZ3RoKQo+ICsJCXJldHVybiBsZW47Cj4g KwllbHNlIGlmIChxdWVyeV9pdGVtLT5sZW5ndGggPCBsZW4pCj4gKwkJcmV0dXJuIC1FSU5WQUw7 Cj4gKwo+ICsJaWYgKGNvcHlfZnJvbV91c2VyKCZxdWVyeSwgcXVlcnlfcHRyLCBzaXplb2YocXVl cnkpKSkKPiArCQlyZXR1cm4gLUVGQVVMVDsKPiArCj4gKwlpZiAocXVlcnkubnVtX2VuZ2luZXMg fHwgcXVlcnkucnN2ZFswXSB8fCBxdWVyeS5yc3ZkWzFdIHx8Cj4gKwkgICAgcXVlcnkucnN2ZFsy XSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlpZiAoIWFjY2Vzc19vayhWRVJJRllfV1JJ VEUsIHF1ZXJ5X3B0ciwgcXVlcnlfaXRlbS0+bGVuZ3RoKSkKCllvdSBjb3VsZCBsaW1pdCB0aGlz IHRvIGxlbiA/Cgo+ICsJCXJldHVybiAtRUZBVUxUOwo+ICsKPiArCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGk5MTUsIGlkKSB7Cj4gKwkJc3RydWN0IGRybV9pOTE1X2VuZ2luZV9pbmZvIGluZm87 Cj4gKwo+ICsJCWlmIChfX2NvcHlfZnJvbV91c2VyKCZpbmZvLCBpbmZvX3B0ciwgc2l6ZW9mKGlu Zm8pKSkKPiArCQkJcmV0dXJuIC1FRkFVTFQ7Cj4gKwo+ICsJCWlmIChpbmZvLmZsYWdzIHx8IGlu Zm8uY2xhc3MgfHwgaW5mby5pbnN0YW5jZSB8fAo+ICsJCSAgICBpbmZvLmNhcGFiaWxpdGllcyB8 fCBpbmZvLnJzdmQwIHx8IGluZm8ucnN2ZDFbMF0gfHwKPiArCQkgICAgaW5mby5yc3ZkMVsxXSkK PiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJCWluZm8uY2xhc3MgPSBlbmdpbmUtPnVhYmlf Y2xhc3M7Cj4gKwkJaW5mby5pbnN0YW5jZSA9IGVuZ2luZS0+aW5zdGFuY2U7Cj4gKwkJaW5mby5m bGFncyA9IEk5MTVfRU5HSU5FX0ZMQUdfUEhZU0lDQUwgfCBJOTE1X0VOR0lORV9GTEFHX0FCSTsK PiArCQlpbmZvLmNhcGFiaWxpdGllcyA9IGVuZ2luZS0+Y2FwYWJpbGl0aWVzOwo+ICsKPiArCQlp ZiAoX19jb3B5X3RvX3VzZXIoaW5mb19wdHIsICZpbmZvLCBzaXplb2YoaW5mbykpKQo+ICsJCQly ZXR1cm4gLUVGQVVMVDsKPiArCj4gKwkJcXVlcnkubnVtX2VuZ2luZXMrKzsKPiArCQlpbmZvX3B0 cisrOwo+ICsJfQo+ICsKPiArCWlmIChfX2NvcHlfdG9fdXNlcihxdWVyeV9wdHIsICZxdWVyeSwg c2l6ZW9mKHF1ZXJ5KSkpCj4gKwkJcmV0dXJuIC1FRkFVTFQ7Cj4gKwo+ICsJcmV0dXJuIGxlbjsK PiArfQo+ICsKPiAgIHN0YXRpYyBpbnQgKCogY29uc3QgaTkxNV9xdWVyeV9mdW5jc1tdKShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCQkJCXN0cnVjdCBkcm1faTkxNV9x dWVyeV9pdGVtICpxdWVyeV9pdGVtKSA9IHsKPiAgIAlxdWVyeV90b3BvbG9neV9pbmZvLAo+ICsJ cXVlcnlfZW5naW5lX2luZm8sCj4gICB9Owo+ICAgCj4gICBpbnQgaTkxNV9xdWVyeV9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUp Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCAxMjQ4NmQ4ZjUz NGIuLjlkMjZjMzRkZmVjNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9lbmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jCj4gQEAgLTI5NCw2ICsyOTQsOCBAQCBpbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCWVuZ2luZS0+bW1pb19iYXNlID0gX19lbmdpbmVf bW1pb19iYXNlKGRldl9wcml2LCBpbmZvLT5tbWlvX2Jhc2VzKTsKPiAgIAllbmdpbmUtPmNsYXNz ID0gaW5mby0+Y2xhc3M7Cj4gICAJZW5naW5lLT5pbnN0YW5jZSA9IGluZm8tPmluc3RhbmNlOwo+ ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCAmJiBpbmZvLT5pbnN0YW5jZSA9PSAwKQo+ ICsJCWVuZ2luZS0+Y2FwYWJpbGl0aWVzID0gSTkxNV9WQ1NfQ0xBU1NfQ0FQQUJJTElUWV9IRVZD Owo+ICAgCj4gICAJZW5naW5lLT51YWJpX2lkID0gaW5mby0+dWFiaV9pZDsKPiAgIAllbmdpbmUt PnVhYmlfY2xhc3MgPSBpbnRlbF9lbmdpbmVfY2xhc3Nlc1tpbmZvLT5jbGFzc10udWFiaV9jbGFz czsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggMjU2ZDU4 NDg3NTU5Li5iMjNiZTUyZmM4ODIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCj4gQEAgLTMzMCw2ICszMzAsOSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsK PiAgIAo+ICAgCXU4IGNsYXNzOwo+ICAgCXU4IGluc3RhbmNlOwo+ICsKPiArCXUzMiBjYXBhYmls aXRpZXM7Cj4gKwo+ICAgCXUzMiBjb250ZXh0X3NpemU7Cj4gICAJdTMyIG1taW9fYmFzZTsKPiAg IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmgKPiBpbmRleCA3ZjU2MzRjZThlODguLjJlYWZiNjc3Y2Q0MCAxMDA2 NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiArKysgYi9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmgKPiBAQCAtMTYyMCw2ICsxNjIwLDcgQEAgc3RydWN0IGRybV9pOTE1 X3BlcmZfb2FfY29uZmlnIHsKPiAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtIHsKPiAgIAlf X3U2NCBxdWVyeV9pZDsKPiAgICNkZWZpbmUgRFJNX0k5MTVfUVVFUllfVE9QT0xPR1lfSU5GTyAg ICAxCj4gKyNkZWZpbmUgRFJNX0k5MTVfUVVFUllfRU5HSU5FX0lORk8JMgo+ICAgCj4gICAJLyoK PiAgIAkgKiBXaGVuIHNldCB0byB6ZXJvIGJ5IHVzZXJzcGFjZSwgdGhpcyBpcyBmaWxsZWQgd2l0 aCB0aGUgc2l6ZSBvZiB0aGUKPiBAQCAtMTcxNyw2ICsxNzE4LDUxIEBAIHN0cnVjdCBkcm1faTkx NV9xdWVyeV90b3BvbG9neV9pbmZvIHsKPiAgIAlfX3U4IGRhdGFbXTsKPiAgIH07Cj4gICAKPiAr LyoqCj4gKyAqIHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbwo+ICsgKgo+ICsgKiBEZXNjcmli ZXMgb25lIGVuZ2luZSBrbm93biB0byB0aGUgZHJpdmVyLCB3aGV0aGVyIG9yIG5vdCBpcyBwaHlz aWNhbCBlbmdpbmUKPiArICogb25seSwgb3IgaXQgY2FuIGFsc28gYmUgdGFyZ2V0dGVkIGZyb20g dXNlcnNwYWNlLCBhbmQgd2hhdCBhcmUgaXRzCj4gKyAqIGNhcGFiaWxpdGllcyB3aGVyZSBhcHBs aWNhYmxlLgo+ICsgKi8KPiArc3RydWN0IGRybV9pOTE1X2VuZ2luZV9pbmZvIHsKPiArCS8qKiBF bmdpbmUgZmxhZ3MuICovCj4gKwlfX3U2NCBmbGFnczsKPiArI2RlZmluZSBJOTE1X0VOR0lORV9G TEFHX1BIWVNJQ0FMCSgxIDw8IDApCj4gKyNkZWZpbmUgSTkxNV9FTkdJTkVfRkxBR19BQkkJCSgx IDw8IDEpCgpDb3VsZCB5b3UgZGVzY3JpYmUgdGhlIG1lYW5pbmcgZm9yIEFCST8KCj4gKwo+ICsJ LyoqIEVuZ2luZSBjbGFzcyBhcyBpbiBlbnVtIGRybV9pOTE1X2dlbV9lbmdpbmVfY2xhc3MuICov Cj4gKwlfX3UxNiBjbGFzczsKPiArCj4gKwkvKiogRW5naW5lIGluc3RhbmNlIG51bWJlci4gKi8K PiArCV9fdTE2IGluc3RhbmNlOwo+ICsKTUJaCj4gKwlfX3UzMiByc3ZkMDsKPiArCj4gKwkvKiog Q2FwYWJpbGl0aWVzIG9mIHRoaXMgZW5naW5lLiAqLwo+ICsJX191NjQgY2FwYWJpbGl0aWVzOwo+ ICsjZGVmaW5lIEk5MTVfVkNTX0NMQVNTX0NBUEFCSUxJVFlfSEVWQwkoMSA8PCAwKQo+ICsKTUJa Cj4gKwlfX3U2NCByc3ZkMVsyXTsKPiArfTsKPiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX2k5 MTVfcXVlcnlfZW5naW5lX2luZm8KPiArICoKPiArICogRW5naW5lIGluZm8gcXVlcnkgZW51bWVy YXRlcyBhbGwgdGhlIGVuZ2luZXMga25vd24gdG8gdGhlIGRyaXZlciByZXR1cm5pbmcKPiArICog dGhlIGFycmF5IG9mIHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbyBzdHJ1Y3R1cmVzLgo+ICsg Ki8KPiArc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZvIHsKPiArCS8qKiBOdW1iZXIg b2Ygc3RydWN0IGRybV9pOTE1X2VuZ2luZV9pbmZvIHN0cnVjdHMgZm9sbG93aW5nLiAqLwo+ICsJ X191MzIgbnVtX2VuZ2luZXM7Cj4gKwo+ICsJLyoqIE1CWiAqLwo+ICsJX191MzIgcnN2ZFszXTsK PiArCj4gKwkvKiogTWFya2VyIGZvciBkcm1faTkxNV9lbmdpbmVfaW5mbyBzdHJ1Y3R1cmVzLiAq Lwo+ICsJc3RydWN0IGRybV9pOTE1X2VuZ2luZV9pbmZvIGVuZ2luZXNbXTsKPiArfTsKPiArCj4g ICAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKPiAgIH0KPiAgICNlbmRpZgoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=