From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 36/37] drm: Add mode_config .get_format_info() hook Date: Mon, 21 Nov 2016 15:18:23 +0200 Message-ID: <20161121131823.GR31595@intel.com> References: <1479498793-31021-1-git-send-email-ville.syrjala@linux.intel.com> <1479498793-31021-37-git-send-email-ville.syrjala@linux.intel.com> <2703991.LGPkj034Dl@avalon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <2703991.LGPkj034Dl@avalon> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Laurent Pinchart Cc: Ben Widawsky , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBOb3YgMjAsIDIwMTYgYXQgMTA6MTM6MTBBTSArMDIwMCwgTGF1cmVudCBQaW5jaGFy dCB3cm90ZToKPiBIaSBWaWxsZSwKPiAKPiBUaGFuayB5b3UgZm9yIHRoZSBwYXRjaC4KPiAKPiBP biBGcmlkYXkgMTggTm92IDIwMTYgMjE6NTM6MTIgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20gd3JvdGU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+ID4gCj4gPiBBbGxvdyBkcml2ZXJzIHRvIHJldHVybiBhIGN1c3RvbSBkcm1f Zm9ybWF0X2luZm8gc3RydWN0dXJlIGZvciBzcGVjaWFsCj4gPiBmYiBsYXlvdXRzLiBXZSdsbCB1 c2UgdGhpcyBmb3IgdGhlIGNvbXByZXNzaW9uIGNvbnRyb2wgc3VyZmFjZSBpbiBpOTE1Lgo+ID4g Cj4gPiBDYzogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0Pgo+ID4gQ2M6IGludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYyAgfCAgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9k cm1fZm91cmNjLmMgICAgICAgICB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBk cml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgICAgfCAgOSArKysrKysrLS0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVyLmMgfCAgMiArLQo+ID4gIGluY2x1ZGUv ZHJtL2RybV9mb3VyY2MuaCAgICAgICAgICAgICB8ICA2ICsrKysrKwo+ID4gIGluY2x1ZGUvZHJt L2RybV9tb2RlX2NvbmZpZy5oICAgICAgICB8IDE1ICsrKysrKysrKysrKysrKwo+ID4gIDYgZmls ZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jCj4gPiBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jIGluZGV4IGFhYjQ0NjUzMDdlZC4uZDdmODg3 NmNmNWU5Cj4gPiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hl bHBlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID4g QEAgLTE4Niw3ICsxODYsNyBAQCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyCj4gPiAqZHJtX2ZiX2Nt YV9jcmVhdGVfd2l0aF9mdW5jcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcmV0Owo+ID4g IAlpbnQgaTsKPiA+IAo+ID4gLQlpbmZvID0gZHJtX2Zvcm1hdF9pbmZvKG1vZGVfY21kLT5waXhl bF9mb3JtYXQpOwo+ID4gKwlpbmZvID0gZHJtX2dldF9mb3JtYXRfaW5mbyhkZXYsIG1vZGVfY21k KTsKPiA+ICAJaWYgKCFpbmZvKQo+ID4gIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gPiAK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9mb3VyY2MuYwo+ID4gaW5kZXggOTBkMmNjOGRhOGViLi43Y2ZhZWU2ODlmMGMg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCj4gPiBAQCAtMTk5LDYgKzE5OSwzMSBAQCBjb25z dCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpkcm1fZm9ybWF0X2luZm8odTMyCj4gPiBmb3JtYXQp IEVYUE9SVF9TWU1CT0woZHJtX2Zvcm1hdF9pbmZvKTsKPiA+IAo+ID4gIC8qKgo+ID4gKyAqIGRy bV9mb3JtYXRfaW5mbyAtIHF1ZXJ5IGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIGZyYW1lYnVmZmVy Cj4gPiBjb25maWd1cmF0aW9uCj4gCj4gSSBhc3N1bWUgeW91IG1lYW50IGRybV9nZXRfZm9ybWF0 X2luZm8oKQoKWWVzLgoKPiAKPiA+ICsgKiBAZGV2OiBEUk0gZGV2aWNlCj4gCj4gRG8gd2UgbmVl ZCB0aGUgZGV2IHBvaW50ZXIgPwoKTm90IGF0IHRoZSBtb21lbnQuIEkgd2FzIHRoaW5raW5nIHdl IG1pZ2h0IGFsbG93IGRyaXZlcnMgdG8gcmV0dXJuIGEKZGlmZmVyZW50IHNldCBvZiBmb3JtYXRz IGJhc2VkIG9uIHRoZSBkZXZpY2UgdHlwZSwgYnV0IEknbSBub3Qgc3VyZQp0aGF0J3MgYWxsIHRo YXQgdXNlZnVsIHNpbmNlIGRyaXZlcnMgd2lsbCBoYXZlIHRvIGNoZWNrIGZvciB1bnN1cHBvcnRl ZApmb3JtYXRzIGFueXdheSBpbiAuZmJfY3JlYXRlKCkuIFRoZSBvbmx5IHVzZSBjYXNlIG1pZ2h0 IGJlIGlmIHlvdSBuZWVkCnRvIHNlbGVjdCBiZXR3ZWVuIHR3byBkaWZmZXJlbnQgZm9ybWF0IGlu Zm8gc3RydWN0cyBiYXNlZCBvbiB0aGUgZGV2aWNlCnR5cGUsIGJlY2F1c2UgeW91IHNpbXBseSBj YW4ndCB0ZWxsIHRoZSBmb3JtYXRzIGFwYXJ0IGJhc2VkIG9uIHRoZQptb2RlX2NtZC4gQnV0IHRo YXQgc29ydCBvZiB0aGluZyBmZWVscyBsaWtlIGEgYmFkIGlkZWEgdG8gbWUsIGFuZCBtaWdodAph cyB3ZWxsIGp1c3QgcmVxdWlyZSB0aGF0IHlvdSBtdXN0IGJlIGFibGUgdG8gdGVsbCBmb3JtYXRz IHRoYXQgcmVxdWlyZQpkaWZmZXJlbnQgZm9ybWF0IGludG9zIGFwYXJ0IGJhc2VkIG9uIHRoZSBt b2RlX2NtZCAoZWcuIGJ5IGhhdmluZwpkaWZmZXJlbnQgbW9kaWZpZXJzIG9uIHRoZW0pLgoKU28g SSBndWVzcyB3ZSBjb3VsZCBqdXN0IGRyb3AgdGhlICdkZXYnIGFyZ3VtZW50IHRvIG1ha2UgaXQg aGFyZGVyIGZvcgpwZW9wbGUgdG8gbWFrZSB0aGF0IHNvcnQgb2YgbWlzdGFrZS4KCj4gCj4gPiAr ICogQG1vZGVfY21kOiBtZXRhZGF0YSBmcm9tIHRoZSB1c2Vyc3BhY2UgZmIgY3JlYXRpb24gcmVx dWVzdAo+ID4gKyAqCj4gPiArICogUmV0dXJuczoKPiA+ICsgKiBUaGUgaW5zdGFuY2Ugb2Ygc3Ry dWN0IGRybV9mb3JtYXRfaW5mbyB0aGF0IGRlc2NyaWJlcyB0aGUgcGl4ZWwgZm9ybWF0LAo+ID4g b3IKPiA+ICsgKiBOVUxMIGlmIHRoZSBmb3JtYXQgaXMgdW5zdXBwb3J0ZWQuCj4gCj4gSXQgd291 bGQgYmUgdXNlZnVsIHRvIGRvY3VtZW50IGhvdyB0aGlzIGZ1bmN0aW9uIGRpZmZlcnMgZnJvbSAK PiBkcm1fZm9ybWF0X2luZm8oKS4gSSBhbHNvIHdvbmRlciB3aGV0aGVyIGl0IHdvdWxkIG1ha2Ug c2Vuc2UgdG8gY29tcGxldGVseSAKPiByZXBsYWNlIGRybV9mb3JtYXRfaW5mbygpIHRvIGF2b2lk IGtlZXBpbmcgdHdvIHNlcGFyYXRlIGJ1dCB2ZXJ5IHNpbWlsYXIgCj4gZnVuY3Rpb25zLgoKWWVh aCwgdGhhdCBpcyBiYXNpY2FsbHkgd2hhdCBJIHdhcyB0aGlua2luZy4gQnV0IEkgZGlkbid0IGZl ZWwgbGlrZQpkb2luZyB0aGF0IG15c2VsZiBhcyBpdCBsb29rZWQgbGlrZSB0aGF0IG1pZ2h0IGlu dm9sdmUgYWN0dWFsIHdvcmsKaW4gc29tZSBvZiB0aGUgZHJpdmVycy4gSSBmaWd1cmVkIEknZCBs ZWF2ZSBpdCB1cCB0byB3aG9ldmVyIGNhcmVzCmFib3V0IHNhaWQgZHJpdmVycy4KCj4gCj4gPiAr ICovCj4gPiArY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqCj4gPiArZHJtX2dldF9mb3Jt YXRfaW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gKwkJICAgIGNvbnN0IHN0cnVjdCBk cm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKPiA+ICt7Cj4gPiArCWNvbnN0IHN0cnVjdCBkcm1f Zm9ybWF0X2luZm8gKmluZm8gPSBOVUxMOwo+ID4gKwo+ID4gKwlpZiAoZGV2LT5tb2RlX2NvbmZp Zy5mdW5jcy0+Z2V0X2Zvcm1hdF9pbmZvKQo+ID4gKwkJaW5mbyA9IGRldi0+bW9kZV9jb25maWcu ZnVuY3MtPmdldF9mb3JtYXRfaW5mbyhkZXYsIG1vZGVfY21kKTsKPiA+ICsKPiA+ICsJaWYgKCFp bmZvKQo+ID4gKwkJaW5mbyA9IGRybV9mb3JtYXRfaW5mbyhtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0 KTsKPiA+ICsKPiA+ICsJcmV0dXJuIGluZm87Cj4gPiArfQo+ID4gK0VYUE9SVF9TWU1CT0woZHJt X2dldF9mb3JtYXRfaW5mbyk7Cj4gPiArCj4gPiArLyoqCj4gPiAgICogZHJtX2Zvcm1hdF9udW1f cGxhbmVzIC0gZ2V0IHRoZSBudW1iZXIgb2YgcGxhbmVzIGZvciBmb3JtYXQKPiA+ICAgKiBAZm9y bWF0OiBwaXhlbCBmb3JtYXQgKERSTV9GT1JNQVRfKikKPiA+ICAgKgo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ZyYW1lYnVmZmVyLmMgaW5kZXggOTRkZGFiNDFmMjRmLi4yOTI5MzBhNWRjYzIgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4gQEAgLTEyNiwxMSArMTI2LDEzIEBA IGludCBkcm1fbW9kZV9hZGRmYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAlyZXR1cm4g MDsKPiA+ICB9Cj4gPiAKPiA+IC1zdGF0aWMgaW50IGZyYW1lYnVmZmVyX2NoZWNrKGNvbnN0IHN0 cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpyKQo+ID4gK3N0YXRpYyBpbnQgZnJhbWVidWZmZXJfY2hl Y2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICsJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1f bW9kZV9mYl9jbWQyICpyKQo+ID4gIHsKPiA+ICAJY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5m byAqaW5mbzsKPiA+ICAJaW50IGk7Cj4gPiAKPiA+ICsJLyogY2hlY2sgaWYgdGhlIGZvcm1hdCBp cyBzdXBwb3J0ZWQgYXQgYWxsICovCj4gPiAgCWluZm8gPSBfX2RybV9mb3JtYXRfaW5mbyhyLT5w aXhlbF9mb3JtYXQgJiB+RFJNX0ZPUk1BVF9CSUdfRU5ESUFOKTsKPiA+ICAJaWYgKCFpbmZvKSB7 Cj4gPiAgCQlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKPiA+IEBAIC0x NDAsNiArMTQyLDkgQEAgc3RhdGljIGludCBmcmFtZWJ1ZmZlcl9jaGVjayhjb25zdCBzdHJ1Y3QK PiA+IGRybV9tb2RlX2ZiX2NtZDIgKnIpIHJldHVybiAtRUlOVkFMOwo+ID4gIAl9Cj4gPiAKPiA+ ICsJLyogbm93IGxldCB0aGUgZHJpdmVyIHBpY2sgaXRzIG93biBmb3JtYXQgaW5mbyAqLwo+ID4g KwlpbmZvID0gZHJtX2dldF9mb3JtYXRfaW5mbyhkZXYsIHIpOwo+ID4gKwo+ID4gIAlpZiAoci0+ d2lkdGggPT0gMCB8fCByLT53aWR0aCAlIGluZm8tPmhzdWIpIHsKPiA+ICAJCURSTV9ERUJVR19L TVMoImJhZCBmcmFtZWJ1ZmZlciB3aWR0aCAldVxuIiwgci0+d2lkdGgpOwo+ID4gIAkJcmV0dXJu IC1FSU5WQUw7Cj4gPiBAQCAtMjYzLDcgKzI2OCw3IEBAIGRybV9pbnRlcm5hbF9mcmFtZWJ1ZmZl cl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJCXJldHVybiBFUlJfUFRSKC1F SU5WQUwpOwo+ID4gIAl9Cj4gPiAKPiA+IC0JcmV0ID0gZnJhbWVidWZmZXJfY2hlY2socik7Cj4g PiArCXJldCA9IGZyYW1lYnVmZmVyX2NoZWNrKGRldiwgcik7Cj4gPiAgCWlmIChyZXQpCj4gPiAg CQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNl dF9oZWxwZXIuYyBpbmRleCA1YjA1MTg1OWI4ZDMuLmY3OGRmMDZhOTQwZAo+ID4gMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVyLmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYwo+ID4gQEAgLTc1LDcgKzc1LDcgQEAg dm9pZCBkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3Qoc3RydWN0IGRybV9kZXZpY2UKPiA+ ICpkZXYsIGludCBpOwo+ID4gCj4gPiAgCWZiLT5kZXYgPSBkZXY7Cj4gPiAtCWZiLT5mb3JtYXQg PSBkcm1fZm9ybWF0X2luZm8obW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7Cj4gPiArCWZiLT5mb3Jt YXQgPSBkcm1fZ2V0X2Zvcm1hdF9pbmZvKGRldiwgbW9kZV9jbWQpOwo+ID4gIAlmYi0+d2lkdGgg PSBtb2RlX2NtZC0+d2lkdGg7Cj4gPiAgCWZiLT5oZWlnaHQgPSBtb2RlX2NtZC0+aGVpZ2h0Owo+ ID4gIAlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2ZvdXJjYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5oCj4gPiBpbmRleCBmY2Mw OGRhODUwYzguLjY5NDJlODRiNmVkZCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9m b3VyY2MuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5oCj4gPiBAQCAtMjUsNiAr MjUsOSBAQAo+ID4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ID4gICNpbmNsdWRlIDx1YXBp L2RybS9kcm1fZm91cmNjLmg+Cj4gPiAKPiA+ICtzdHJ1Y3QgZHJtX2RldmljZTsKPiA+ICtzdHJ1 Y3QgZHJtX21vZGVfZmJfY21kMjsKPiA+ICsKPiA+ICAvKioKPiA+ICAgKiBzdHJ1Y3QgZHJtX2Zv cm1hdF9pbmZvIC0gaW5mb3JtYXRpb24gYWJvdXQgYSBEUk0gZm9ybWF0Cj4gPiAgICogQGZvcm1h dDogNENDIGZvcm1hdCBpZGVudGlmaWVyIChEUk1fRk9STUFUXyopCj4gPiBAQCAtNTUsNiArNTgs OSBAQCBzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiB7Cj4gPiAKPiA+ICBjb25zdCBzdHJ1Y3Qg ZHJtX2Zvcm1hdF9pbmZvICpfX2RybV9mb3JtYXRfaW5mbyh1MzIgZm9ybWF0KTsKPiA+ICBjb25z dCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpkcm1fZm9ybWF0X2luZm8odTMyIGZvcm1hdCk7Cj4g PiArY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqCj4gPiArZHJtX2dldF9mb3JtYXRfaW5m byhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gKwkJICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9k ZV9mYl9jbWQyICptb2RlX2NtZCk7Cj4gPiAgdWludDMyX3QgZHJtX21vZGVfbGVnYWN5X2ZiX2Zv cm1hdCh1aW50MzJfdCBicHAsIHVpbnQzMl90IGRlcHRoKTsKPiA+ICBpbnQgZHJtX2Zvcm1hdF9u dW1fcGxhbmVzKHVpbnQzMl90IGZvcm1hdCk7Cj4gPiAgaW50IGRybV9mb3JtYXRfcGxhbmVfY3Bw KHVpbnQzMl90IGZvcm1hdCwgaW50IHBsYW5lKTsKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gPiBp bmRleCBiZjk5OTFiMjA2MTEuLjgwYmI3ZTQ5YmY4ZSAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUv ZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25m aWcuaAo+ID4gQEAgLTM0LDYgKzM0LDcgQEAgc3RydWN0IGRybV9maWxlOwo+ID4gIHN0cnVjdCBk cm1fZGV2aWNlOwo+ID4gIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlOwo+ID4gIHN0cnVjdCBkcm1f bW9kZV9mYl9jbWQyOwo+ID4gK3N0cnVjdCBkcm1fZm9ybWF0X2luZm87Cj4gPiAKPiA+ICAvKioK PiA+ICAgKiBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIC0gYmFzaWMgZHJpdmVyIHByb3Zp ZGVkIG1vZGUgc2V0dGluZwo+ID4gZnVuY3Rpb25zIEBAIC03MCw2ICs3MSwyMCBAQCBzdHJ1Y3Qg ZHJtX21vZGVfY29uZmlnX2Z1bmNzIHsKPiA+ICAJCQkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9t b2RlX2ZiX2NtZDIgCj4gKm1vZGVfY21kKTsKPiA+IAo+ID4gIAkvKioKPiA+ICsJICogQGdldF9m b3JtYXRfaW5mbzoKPiA+ICsJICoKPiA+ICsJICogQWxsb3dzIGEgZHJpdmVyIHRvIHJldHVybiBj dXN0b20gZm9ybWF0IGluZm9ybWF0aW9uIGZvciBzcGVjaWFsCj4gPiArCSAqIGZiIGxheW91dHMg KGVnLiBvbmVzIHdpdGggYXV4aWxpYXJ5IGNvbXByZXNzc2lvbiBjb250cm9sIHBsYW5lcykuCj4g PiArCSAqCj4gPiArCSAqIFJFVFVSTlM6Cj4gPiArCSAqCj4gPiArCSAqIFRoZSBmb3JtYXQgaW5m b3JtYXRpb24gc3BlY2lmaWMgdG8gdGhlIGdpdmVuIGZiIG1ldGFkYXRhLCBvcgo+ID4gKwkgKiBO VUxMIGlmIG5vbmUgaXMgZm91bmQuCj4gPiArCSAqLwo+ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Zv cm1hdF9pbmZvICooKmdldF9mb3JtYXRfaW5mbykoc3RydWN0IGRybV9kZXZpY2UgCj4gKmRldiwK PiA+ICsJCQkJCQkJIGNvbnN0IHN0cnVjdCAKPiBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCk7 Cj4gPiArCj4gPiArCS8qKgo+ID4gIAkgKiBAb3V0cHV0X3BvbGxfY2hhbmdlZDoKPiA+ICAJICoK PiA+ICAJICogQ2FsbGJhY2sgdXNlZCBieSBoZWxwZXJzIHRvIGluZm9ybSB0aGUgZHJpdmVyIG9m IG91dHB1dCAKPiBjb25maWd1cmF0aW9uCj4gCj4gLS0gCj4gUmVnYXJkcywKPiAKPiBMYXVyZW50 IFBpbmNoYXJ0CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK