From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH 3/6] xen/arm: Allow platforms to hook IRQ routing Date: Thu, 13 Apr 2017 16:26:58 -0700 (PDT) Message-ID: References: <1491508074-31647-1-git-send-email-cjp256@gmail.com> <1491508074-31647-4-git-send-email-cjp256@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1491508074-31647-4-git-send-email-cjp256@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Chris Patterson Cc: Chris Patterson , julien.grall@arm.com, sstabellini@kernel.org, temkink@ainfosec.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gVGh1LCA2IEFwciAyMDE3LCBDaHJpcyBQYXR0ZXJzb24gd3JvdGU6Cj4gRnJvbTogIkNocmlz IFBhdHRlcnNvbiIgPHBhdHRlcnNvbmNAYWluZm9zZWMuY29tPgo+IAo+IFNvbWUgY29tbW9uIHBs YXRmb3JtcyAoZS5nLiBUZWdyYSkgaGF2ZSBub24tdHJhZGl0aW9uYWwgSVJRIGNvbnRyb2xsZXJz Cj4gdGhhdCBtdXN0IGJlIHByb2dyYW1tZWQgaW4gYWRkaXRpb24gdG8gdGhlaXIgcHJpbWFyeSBH SUNzLS0gYW5kIHdoaWNoCj4gY2FuIGNvbWUgaW4gdW51c3VhbCB0b3BvbG9naWVzLiBEZXZpY2Ug dHJlZXMgZm9yIHRhcmdldHMgdGhhdCBmZWF0dXJlCj4gdGhlc2UgY29udHJvbGxlcnMgb2Z0ZW4g ZGV2aWF0ZSBmcm9tIHRoZSBjb252ZW50aW9ucyB0aGF0IFhlbiBleHBlY3RzLgo+IAo+IFRoaXMg Y29tbWl0IHByb3ZpZGVzIGEgZm91bmRhdGlvbiBmb3Igc3VwcG9ydCBvZiB0aGVzZSBwbGF0Zm9y bXMsIGJ5Cj4gYWxsb3dpbmcgdGhlIHBsYXRmb3JtIHRvIGRlY2lkZSB3aGljaCBJUlFzIGNhbiBi ZSByb3V0ZWQgYnkgWGVuLCByYXRoZXIKPiB0aGFuIGFzc3VtaW5nIHRoYXQgb25seSBHSUMtY29u bmVjdGVkIElSUXMgY2FuIGJlIHJvdXRlZC4gIFRoaXMgZW5hYmxlcwo+IHBsYXRmb3JtIHNwZWNp ZmljIGxvZ2ljIHRvIHJvdXRpbmcgdGhlIElSUSB0byBYZW4gYW5kIEd1ZXN0Lgo+IAo+IEFzIGR0 X2lycV90cmFuc2xhdGUoKSBpcyBwcmVzZW50bHkgaGFyZC1jb2RlZCB0byBqdXN0IHN1cHBvcnQg dGhlCj4gcHJpbWFyeSBpbnRlcnJ1cHQgY29udHJvbGxlciwgaW5zdGVhZCByZWx5IG9uIHRoZSBu ZXdseSBhZGRlZAo+IHBsYXRmb3JtX2lycV9pc19yb3V0YWJsZSgpIGNoZWNrIGluc3RlYWQuICBU aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhpcwo+IG5ldyBmdW5jdGlvbiBzaG91bGQgYmUgY29u c2lzdGVudCB3aXRoIHRoZSBwcmV2aW91cyBjaGVja3MgZm9yIHBsYXRmb3Jtcwo+IHRoYXQgZG8g bm90IGltcGxlbWVudCBpdC4KPiAKPiBBdXRob3JlZC1ieTogS3lsZSBUZW1raW4gPHRlbWtpbmtA YWluZm9zZWMuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEt5bGUgVGVta2luIDx0ZW1raW5rQGFpbmZv c2VjLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBQYXR0ZXJzb24gPHBhdHRlcnNvbmNAYWlu Zm9zZWMuY29tPgoKUmV2aWV3ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlA a2VybmVsLm9yZz4KCgo+IC0tLQo+IAo+IGNoYW5nZXMgc2luY2UgcmZjOgo+IC0gdXNlIGJvb2wg aW5zdGVhZCBvZiBib29sX3QKPiAtIGZvcm1hdHRpbmcgJiBjb2RlIHN0eWxlIGNsZWFudXAKPiAt IHJldXNlIGR0X2lycV90cmFuc2xhdGUoKSBwYXRoIGFuZCBkcm9wIHBsYXRmb3JtX2lycV9mb3Jf ZGV2aWNlKCkgYXBwcm9hY2gKPiAtIHVzZSBjb25zdCBxdWFsaWZpZXIgZm9yIHBsYXRmb3JtX2ly cV9pc19yb3V0YWJsZSByaXJxIGFyZ3VtZW50Cj4gCj4gLS0tCj4gCj4gIHhlbi9hcmNoL2FybS9k b21haW5fYnVpbGQuYyAgICB8IDEyICsrKysrKysrLS0tLQo+ICB4ZW4vYXJjaC9hcm0vaXJxLmMg ICAgICAgICAgICAgfCAgNSArKystLQo+ICB4ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYyAgICAgICAg fCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgeGVuL2NvbW1vbi9kZXZpY2Vf dHJlZS5jICAgICAgIHwgIDggKysrLS0tLS0KPiAgeGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9y bS5oIHwgMTIgKysrKysrKysrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5f YnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwo+IGluZGV4IGNiNjYzMDQuLjky NTM2ZGQgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCj4gKysrIGIv eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCj4gQEAgLTExMjAsMTIgKzExMjAsMTYgQEAgc3Rh dGljIGludCBoYW5kbGVfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkdF9kZXZpY2Vf bm9kZSAqZGV2LAo+ICAKPiAgICAgICAgICAvKgo+ICAgICAgICAgICAqIERvbid0IG1hcCBJUlEg dGhhdCBoYXZlIG5vIHBoeXNpY2FsIG1lYW5pbmcKPiAtICAgICAgICAgKiBpZTogSVJRIHdob3Nl IGNvbnRyb2xsZXIgaXMgbm90IHRoZSBHSUMKPiArICAgICAgICAgKiBpZTogSVJRIHRoYXQgZG9l cyBub3Qgd2luZCB1cCBiZWluZyBjb250cm9sbGVkIGJ5IHRoZSBHSUMKPiArICAgICAgICAgKiAo Tm90ZSB0aGF0IHdlIGNhbid0IGp1c3QgY2hlY2sgdG8gc2VlIGlmIGFuIElSUSBpcyBvd25lZCBi eSB0aGUgR0lDLAo+ICsgICAgICAgICAqICBhcyBzb21lIHBsYXRmb3JtcyBoYXZlIGEgY29udHJv bGxlciBiZXR3ZWVuIHRoZSBkZXZpY2UgaXJxIGFuZCB0aGUgR0lDLAo+ICsgICAgICAgICAqICBz dWNoIGFzIHRoZSBUZWdyYSBsZWdhY3kgaW50ZXJydXB0IGNvbnRyb2xsZXIuKQo+ICAgICAgICAg ICAqLwo+IC0gICAgICAgIGlmICggcmlycS5jb250cm9sbGVyICE9IGR0X2ludGVycnVwdF9jb250 cm9sbGVyICkKPiArICAgICAgICBpZiAoICFwbGF0Zm9ybV9pcnFfaXNfcm91dGFibGUoJnJpcnEp ICkKPiAgICAgICAgICB7Cj4gLSAgICAgICAgICAgIGR0X2RwcmludGsoImlycSAldSBub3QgY29u bmVjdGVkIHRvIHByaW1hcnkgY29udHJvbGxlci4gQ29ubmVjdGVkIHRvICVzXG4iLAo+IC0gICAg ICAgICAgICAgICAgICAgICAgaSwgZHRfbm9kZV9mdWxsX25hbWUocmlycS5jb250cm9sbGVyKSk7 Cj4gKyAgICAgICAgICAgIGR0X2RwcmludGsoImlycSAldSBub3QgKGRpcmVjdGx5IG9yIGluZGly ZWN0bHkpIGNvbm5lY3RlZCB0byBwcmltYXJ5Igo+ICsgICAgICAgICAgICAgICAgICAgICAgICAi Y29udHJvbGxlci4gQ29ubmVjdGVkIHRvICVzXG4iLCBpLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBkdF9ub2RlX2Z1bGxfbmFtZShyaXJxLmNvbnRyb2xsZXIpKTsKPiAgICAgICAgICAgICAg Y29udGludWU7Cj4gICAgICAgICAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2ly cS5jIGIveGVuL2FyY2gvYXJtL2lycS5jCj4gaW5kZXggZjNmMjBhNi4uMGI0ZWFhOSAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC9hcm0vaXJxLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vaXJxLmMKPiBA QCAtMjYsNiArMjYsNyBAQAo+ICAKPiAgI2luY2x1ZGUgPGFzbS9naWMuaD4KPiAgI2luY2x1ZGUg PGFzbS92Z2ljLmg+Cj4gKyNpbmNsdWRlIDxhc20vcGxhdGZvcm0uaD4KPiAgCj4gIHN0YXRpYyB1 bnNpZ25lZCBpbnQgbG9jYWxfaXJxc190eXBlW05SX0xPQ0FMX0lSUVNdOwo+ICBzdGF0aWMgREVG SU5FX1NQSU5MT0NLKGxvY2FsX2lycXNfdHlwZV9sb2NrKTsKPiBAQCAtMzY5LDcgKzM3MCw3IEBA IGludCBzZXR1cF9pcnEodW5zaWduZWQgaW50IGlycSwgdW5zaWduZWQgaW50IGlycWZsYWdzLCBz dHJ1Y3QgaXJxYWN0aW9uICpuZXcpCj4gICAgICAvKiBGaXJzdCB0aW1lIHRoZSBJUlEgaXMgc2V0 dXAgKi8KPiAgICAgIGlmICggZGlzYWJsZWQgKQo+ICAgICAgewo+IC0gICAgICAgIGdpY19yb3V0 ZV9pcnFfdG9feGVuKGRlc2MsIEdJQ19QUklfSVJRKTsKPiArICAgICAgICBwbGF0Zm9ybV9yb3V0 ZV9pcnFfdG9feGVuKGRlc2MsIEdJQ19QUklfSVJRKTsKPiAgICAgICAgICAvKiBJdCdzIGZpbmUg dG8gdXNlIHNtcF9wcm9jZXNzb3JfaWQoKSBiZWNhdXNlOgo+ICAgICAgICAgICAqIEZvciBQUEk6 IGlycV9kZXNjIGlzIGJhbmtlZAo+ICAgICAgICAgICAqIEZvciBTUEk6IHdlIGRvbid0IGNhcmUg Zm9yIG5vdyB3aGljaCBDUFUgd2lsbCByZWNlaXZlIHRoZQo+IEBAIC01MDYsNyArNTA3LDcgQEAg aW50IHJvdXRlX2lycV90b19ndWVzdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdmly cSwKPiAgICAgIGlmICggcmV0dmFsICkKPiAgICAgICAgICBnb3RvIG91dDsKPiAgCj4gLSAgICBy ZXR2YWwgPSBnaWNfcm91dGVfaXJxX3RvX2d1ZXN0KGQsIHZpcnEsIGRlc2MsIEdJQ19QUklfSVJR KTsKPiArICAgIHJldHZhbCA9IHBsYXRmb3JtX3JvdXRlX2lycV90b19ndWVzdChkLCB2aXJxLCBk ZXNjLCBHSUNfUFJJX0lSUSk7Cj4gIAo+ICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVz Yy0+bG9jaywgZmxhZ3MpOwo+ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3BsYXRmb3Jt LmMgYi94ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYwo+IGluZGV4IDBhZjZkNTcuLjUzOWVlM2IgMTAw NjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3BsYXRmb3JtLmMKPiArKysgYi94ZW4vYXJjaC9hcm0v cGxhdGZvcm0uYwo+IEBAIC0xNDcsNiArMTQ3LDM2IEBAIGJvb2xfdCBwbGF0Zm9ybV9kZXZpY2Vf aXNfYmxhY2tsaXN0ZWQoY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKQo+ICAgICAg cmV0dXJuIChkdF9tYXRjaF9ub2RlKGJsYWNrbGlzdCwgbm9kZSkgIT0gTlVMTCk7Cj4gIH0KPiAg Cj4gK2ludCBwbGF0Zm9ybV9yb3V0ZV9pcnFfdG9fZ3Vlc3Qoc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgaW50IHZpcnEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGlycV9kZXNjICpkZXNjLCB1bnNpZ25lZCBpbnQgcHJpb3JpdHkpCj4gK3sKPiArICAgIGlmICgg cGxhdGZvcm0gJiYgcGxhdGZvcm0tPnJvdXRlX2lycV90b19ndWVzdCApCj4gKyAgICAgICAgcmV0 dXJuIHBsYXRmb3JtLT5yb3V0ZV9pcnFfdG9fZ3Vlc3QoZCwgdmlycSwgZGVzYywgcHJpb3JpdHkp Owo+ICsgICAgZWxzZQo+ICsgICAgICAgIHJldHVybiBnaWNfcm91dGVfaXJxX3RvX2d1ZXN0KGQs IHZpcnEsIGRlc2MsIHByaW9yaXR5KTsKPiArfQo+ICsKPiArdm9pZCBwbGF0Zm9ybV9yb3V0ZV9p cnFfdG9feGVuKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgdW5zaWduZWQgaW50IHByaW9yaXR5KQo+ ICt7Cj4gKyAgICBpZiAoIHBsYXRmb3JtICYmIHBsYXRmb3JtLT5yb3V0ZV9pcnFfdG9feGVuICkK PiArICAgICAgICBwbGF0Zm9ybS0+cm91dGVfaXJxX3RvX3hlbihkZXNjLCBwcmlvcml0eSk7Cj4g KyAgICBlbHNlCj4gKyAgICAgICAgZ2ljX3JvdXRlX2lycV90b194ZW4oZGVzYywgcHJpb3JpdHkp Owo+ICt9Cj4gKwo+ICtib29sIHBsYXRmb3JtX2lycV9pc19yb3V0YWJsZShjb25zdCBzdHJ1Y3Qg ZHRfcmF3X2lycSAqIHJpcnEpCj4gK3sKPiArICAgIC8qCj4gKyAgICAgKiBJZiB3ZSBoYXZlIGEg cGxhdGZvcm0tc3BlY2lmaWMgbWV0aG9kIHRvIGRldGVybWluZSBpZiBhbiBJUlEgaXMgcm91dGFi bGUsCj4gKyAgICAgKiBjaGVjayB0aGF0OyBvdGhlcndpc2UgZmFsbCBiYWNrIHRvIGNoZWNraW5n IHRvIHNlZSBpZiBhbiBJUlEgYmVsb25ncyB0bwo+ICsgICAgICogdGhlIEdJQy4KPiArICAgICAq Lwo+ICsgICAgaWYgKCBwbGF0Zm9ybSAmJiBwbGF0Zm9ybS0+aXJxX2lzX3JvdXRhYmxlICkKPiAr ICAgICAgICByZXR1cm4gcGxhdGZvcm0tPmlycV9pc19yb3V0YWJsZShyaXJxKTsKPiArICAgIGVs c2UKPiArICAgICAgICByZXR1cm4gKHJpcnEtPmNvbnRyb2xsZXIgPT0gZHRfaW50ZXJydXB0X2Nv bnRyb2xsZXIpOwo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gICAqIG1v ZGU6IEMKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kZXZpY2VfdHJlZS5jIGIveGVuL2NvbW1v bi9kZXZpY2VfdHJlZS5jCj4gaW5kZXggN2IwMDllYS4uMDYxNjkzYiAxMDA2NDQKPiAtLS0gYS94 ZW4vY29tbW9uL2RldmljZV90cmVlLmMKPiArKysgYi94ZW4vY29tbW9uL2RldmljZV90cmVlLmMK PiBAQCAtMjIsNiArMjIsNyBAQAo+ICAjaW5jbHVkZSA8eGVuL3N0cmluZy5oPgo+ICAjaW5jbHVk ZSA8eGVuL2NwdW1hc2suaD4KPiAgI2luY2x1ZGUgPHhlbi9jdHlwZS5oPgo+ICsjaW5jbHVkZSA8 YXNtL3BsYXRmb3JtLmg+Cj4gICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KPiAgI2luY2x1ZGUgPHhl bi9lcnIuaD4KPiAgCj4gQEAgLTE0NjcsMTEgKzE0NjgsOCBAQCBpbnQgZHRfaXJxX3RyYW5zbGF0 ZShjb25zdCBzdHJ1Y3QgZHRfcmF3X2lycSAqcmF3LAo+ICAgICAgQVNTRVJUKGR0X2lycV94bGF0 ZSAhPSBOVUxMKTsKPiAgICAgIEFTU0VSVChkdF9pbnRlcnJ1cHRfY29udHJvbGxlciAhPSBOVUxM KTsKPiAgCj4gLSAgICAvKgo+IC0gICAgICogVE9ETzogUmV0cmlldmUgdGhlIHJpZ2h0IGlycV94 bGF0ZS4gVGhpcyBpcyBvbmx5IHdvcmtzIGZvciB0aGUgcHJpbWFyeQo+IC0gICAgICogaW50ZXJy dXB0IGNvbnRyb2xsZXIuCj4gLSAgICAgKi8KPiAtICAgIGlmICggcmF3LT5jb250cm9sbGVyICE9 IGR0X2ludGVycnVwdF9jb250cm9sbGVyICkKPiArICAgIC8qIE9ubHkgcHJvY2VlZCB3aXRoIHRy YW5zbGF0aW9uIGlmIHRoZSBpcnEgaXMgcm91dGFibGUgb24gdGhlIHBsYXRmb3JtLiAqLwo+ICsg ICAgaWYgKCAhcGxhdGZvcm1faXJxX2lzX3JvdXRhYmxlKHJhdykgKQo+ICAgICAgICAgIHJldHVy biAtRUlOVkFMOwo+ICAKPiAgICAgIHJldHVybiBkdF9pcnFfeGxhdGUocmF3LT5zcGVjaWZpZXIs IHJhdy0+c2l6ZSwKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9ybS5o IGIveGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9ybS5oCj4gaW5kZXggMDgwMTBiYS4uMTE5YWQy ZSAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3BsYXRmb3JtLmgKPiArKysgYi94 ZW4vaW5jbHVkZS9hc20tYXJtL3BsYXRmb3JtLmgKPiBAQCAtMjYsNiArMjYsMTIgQEAgc3RydWN0 IHBsYXRmb3JtX2Rlc2Mgewo+ICAgICAgdm9pZCAoKnJlc2V0KSh2b2lkKTsKPiAgICAgIC8qIFBs YXRmb3JtIHBvd2VyLW9mZiAqLwo+ICAgICAgdm9pZCAoKnBvd2Vyb2ZmKSh2b2lkKTsKPiArICAg IC8qIFBsYXRmb3JtLXNwZWNpZmljIElSUSByb3V0aW5nICovCj4gKyAgICBpbnQgKCpyb3V0ZV9p cnFfdG9fZ3Vlc3QpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlycV9kZXNjICpkZXNjLCB1bnNpZ25l ZCBpbnQgcHJpb3JpdHkpOwo+ICsgICAgdm9pZCAoKnJvdXRlX2lycV90b194ZW4pKHN0cnVjdCBp cnFfZGVzYyAqZGVzYywgdW5zaWduZWQgaW50IHByaW9yaXR5KTsKPiArICAgIGJvb2wgKCppcnFf aXNfcm91dGFibGUpKGNvbnN0IHN0cnVjdCBkdF9yYXdfaXJxICogcmlycSk7Cj4gKwo+ICAgICAg LyoKPiAgICAgICAqIFBsYXRmb3JtIHF1aXJrcwo+ICAgICAgICogRGVmaW5lZCBoYXMgYSBmdW5j dGlvbiBiZWNhdXNlIGEgcGxhdGZvcm0gY2FuIHN1cHBvcnQgbXVsdGlwbGUKPiBAQCAtNTYsNiAr NjIsMTIgQEAgaW50IHBsYXRmb3JtX2NwdV91cChpbnQgY3B1KTsKPiAgdm9pZCBwbGF0Zm9ybV9y ZXNldCh2b2lkKTsKPiAgdm9pZCBwbGF0Zm9ybV9wb3dlcm9mZih2b2lkKTsKPiAgYm9vbF90IHBs YXRmb3JtX2hhc19xdWlyayh1aW50MzJfdCBxdWlyayk7Cj4gKwo+ICtpbnQgcGxhdGZvcm1fcm91 dGVfaXJxX3RvX2d1ZXN0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIHVu c2lnbmVkIGludCBwcmlvcml0eSk7Cj4gK3ZvaWQgcGxhdGZvcm1fcm91dGVfaXJxX3RvX3hlbihz dHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIHVuc2lnbmVkIGludCBwcmlvcml0eSk7Cj4gK2Jvb2wgcGxh dGZvcm1faXJxX2lzX3JvdXRhYmxlKGNvbnN0IHN0cnVjdCBkdF9yYXdfaXJxICpyaXJxKTsKPiAr Cj4gIGJvb2xfdCBwbGF0Zm9ybV9kZXZpY2VfaXNfYmxhY2tsaXN0ZWQoY29uc3Qgc3RydWN0IGR0 X2RldmljZV9ub2RlICpub2RlKTsKPiAgCj4gICNkZWZpbmUgUExBVEZPUk1fU1RBUlQoX25hbWUs IF9uYW1lc3RyKSAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gLS0gCj4gMi4xLjQKPiAKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=