From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [RFC PATCH v1 06/21] ARM: NUMA: Parse CPU NUMA information Date: Mon, 20 Feb 2017 17:32:32 +0000 Message-ID: <52bc3327-beec-792e-3596-5ea8bf2f69fe@arm.com> References: <1486655834-9708-1-git-send-email-vijay.kilari@gmail.com> <1486655834-9708-7-git-send-email-vijay.kilari@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cfrpI-0001jO-37 for xen-devel@lists.xenproject.org; Mon, 20 Feb 2017 17:32:40 +0000 In-Reply-To: <1486655834-9708-7-git-send-email-vijay.kilari@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: vijay.kilari@gmail.com, sstabellini@kernel.org, andre.przywara@arm.com, dario.faggioli@citrix.com Cc: xen-devel@lists.xenproject.org, nd@arm.com, Vijaya Kumar K List-Id: xen-devel@lists.xenproject.org SGVsbG8gVmlqYXksCgpPbiAwOS8wMi8xNyAxNTo1NiwgdmlqYXkua2lsYXJpQGdtYWlsLmNvbSB3 cm90ZToKPiBGcm9tOiBWaWpheWEgS3VtYXIgSyA8VmlqYXlhLkt1bWFyQGNhdml1bS5jb20+Cj4K PiBQYXJzZSBDUFUgbm9kZSBhbmQgZmV0Y2ggbnVtYS1ub2RlLWlkIGluZm9ybWF0aW9uLgo+IEZv ciBlYWNoIG5vZGUtaWQgZm91bmQsIHVwZGF0ZSBub2RlbWFza190IG1hc2suCgpBIGxpbmsgdG8g dGhlIGJpbmRpbmdzIHdvdWxkIGhhdmUgYmVlbiB1c2VmdWwuLi4KCj4gQ2FsbCBudW1hX2luaXQo KSBmcm9tIHNldHVwX21tKCkgd2l0aCBzdGFydCBhbmQgZW5kCj4gcGZuIG9mIHRoZSBjb21wbGV0 ZSByYW0uLgoKcy8uLi8uLwoKCj4gU2lnbmVkLW9mZi1ieTogVmlqYXlhIEt1bWFyIEsgPFZpamF5 YS5LdW1hckBjYXZpdW0uY29tPgo+IC0tLQo+ICB4ZW4vYXJjaC9hcm0vTWFrZWZpbGUgICAgICAg ICB8ICAxICsKPiAgeGVuL2FyY2gvYXJtL2Jvb3RmZHQuYyAgICAgICAgfCAgOCArKy0tLQo+ICB4 ZW4vYXJjaC9hcm0vZHRfbnVtYS5jICAgICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiAgeGVuL2FyY2gvYXJtL251bWEuYyAgICAgICAgICAgfCAx NCArKysrKysrKysKPiAgeGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgICAgfCAgMyArKwo+ICB4 ZW4vaW5jbHVkZS9hc20tYXJtL251bWEuaCAgICB8IDE0ICsrKysrKysrKwo+ICB4ZW4vaW5jbHVk ZS94ZW4vZGV2aWNlX3RyZWUuaCB8ICA0ICsrKwo+ICA3IGZpbGVzIGNoYW5nZWQsIDExMiBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9N YWtlZmlsZSBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQo+IGluZGV4IGI1ZDdhMTkuLjc2OTQ0ODUg MTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL01ha2VmaWxlCj4gKysrIGIveGVuL2FyY2gvYXJt L01ha2VmaWxlCj4gQEAgLTUwLDYgKzUwLDcgQEAgb2JqLXkgKz0gdnRpbWVyLm8KPiAgb2JqLXkg Kz0gdnBzY2kubwo+ICBvYmoteSArPSB2dWFydC5vCj4gIG9iai0kKENPTkZJR19OVU1BKSArPSBu dW1hLm8KPiArb2JqLSQoQ09ORklHX05VTUEpICs9IGR0X251bWEubwoKSSB3b3VsZCBwcmVmZXIg aWYgd2UgaW50cm9kdWNlIGEgZGlyZWN0bHkgbnVtYSB3aXRoaW4gYXJtLiBUaGlzIHdvdWxkIApt YWtlIHRoZSByb290IGNsZWFuZXIuCgo+Cj4gICNvYmotYmluLXkgKz0gLi4uLm8KPgo+IGRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vYm9vdGZkdC5jIGIveGVuL2FyY2gvYXJtL2Jvb3RmZHQuYwo+ IGluZGV4IDk3OWY2NzUuLmQxMTIyZDggMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL2Jvb3Rm ZHQuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9ib290ZmR0LmMKPiBAQCAtMTcsOCArMTcsOCBAQAo+ ICAjaW5jbHVkZSA8eHNtL3hzbS5oPgo+ICAjaW5jbHVkZSA8YXNtL3NldHVwLmg+Cj4KPiAtc3Rh dGljIGJvb2xfdCBfX2luaXQgZGV2aWNlX3RyZWVfbm9kZV9tYXRjaGVzKGNvbnN0IHZvaWQgKmZk dCwgaW50IG5vZGUsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICptYXRjaCkKPiArYm9vbF90IF9faW5pdCBkZXZpY2VfdHJlZV9ub2Rl X21hdGNoZXMoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbWF0Y2gpCj4gIHsKPiAgICAgIGNvbnN0 IGNoYXIgKm5hbWU7Cj4gICAgICBzaXplX3QgbWF0Y2hfbGVuOwo+IEBAIC02Myw4ICs2Myw4IEBA IHN0YXRpYyB2b2lkIF9faW5pdCBkZXZpY2VfdHJlZV9nZXRfcmVnKGNvbnN0IF9fYmUzMiAqKmNl bGwsIHUzMiBhZGRyZXNzX2NlbGxzLAo+ICAgICAgKnNpemUgPSBkdF9uZXh0X2NlbGwoc2l6ZV9j ZWxscywgY2VsbCk7Cj4gIH0KPgo+IC1zdGF0aWMgdTMyIF9faW5pdCBkZXZpY2VfdHJlZV9nZXRf dTMyKGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGUsCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcHJvcF9uYW1lLCB1MzIgZGZsdCkKPiArdTMyIF9f aW5pdCBkZXZpY2VfdHJlZV9nZXRfdTMyKGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGUsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwcm9wX25hbWUsIHUzMiBk Zmx0KQo+ICB7Cj4gICAgICBjb25zdCBzdHJ1Y3QgZmR0X3Byb3BlcnR5ICpwcm9wOwo+Cj4gZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kdF9udW1hLmMgYi94ZW4vYXJjaC9hcm0vZHRfbnVtYS5j Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi40Yjk0YzM2Cj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL3hlbi9hcmNoL2FybS9kdF9udW1hLmMKPiBAQCAtMCwwICsxLDcyIEBA Cj4gKy8qCj4gKyAqIE9GIE5VTUEgUGFyc2luZyBzdXBwb3J0Lgo+ICsgKgo+ICsgKiBDb3B5cmln aHQgKEMpIDIwMTUgLSAyMDE2IENhdml1bSBJbmMuCj4gKyAqCj4gKyAqIFNvbWUgY29kZSBleHRy YWN0cyBhcmUgdGFrZW4gZnJvbSBsaW51eCBkcml2ZXJzL29mL29mX251bWEuYwoKUGxlYXNlIHNw ZWNpZnkgd2hpY2ggY29kZSBoYXMgYmVlbiBleHRyYWN0IGZyb20gTGludXggYW5kIHRoZSBjb21t aXQgaWQuCgpMb29raW5nIGF0IHRoaXMgcGF0Y2ggb25seSwgbm9uZSBvZiB0aGlzIGNvZGUgaXMg ZnJvbSBMaW51eC4gT3IgaXQgaGFzIApiZWVuIGhlYXZpbHkgbW9kaWZpZWQuCgo+ICsgKgo+ICsg KiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQo+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+ICsgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbi4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAq IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKPiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K PiArICoKPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKPiArICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gKyAqLwo+ICsKPiArI2lu Y2x1ZGUgPHhlbi9jb25maWcuaD4KCk5vIG5lZWQgdG8gaW5jbHVkZSB4ZW4vY29uZmlnLmgKCj4g KyNpbmNsdWRlIDx4ZW4vZGV2aWNlX3RyZWUuaD4KClRoaXMgaW5jbHVkZSBzaG91bGQgbm90IGJl IHRoZXJlIGFzIHRoZSBkZXZpY2UgdHJlZSBpcyBub3QgeWV0IHBhcnNlZC4KCj4gKyNpbmNsdWRl IDx4ZW4vbGliZmR0L2xpYmZkdC5oPgo+ICsjaW5jbHVkZSA8eGVuL21tLmg+Cj4gKyNpbmNsdWRl IDx4ZW4vbm9kZW1hc2suaD4KPiArI2luY2x1ZGUgPGFzbS9tbS5oPgo+ICsjaW5jbHVkZSA8eGVu L251bWEuaD4KPiArCj4gK25vZGVtYXNrX3QgbnVtYV9ub2Rlc19wYXJzZWQ7CgpXaHkgZG9lcyB0 aGlzIHZhcmlhYmxlIGxpdmUgaW4gZHRfbnVtYS5jIHdoZW4gdGhpcyBpcyB1c2VkIGJ5IGNvbW1v biBhbmQgCmFjcGkgY29kZT8KCkFsc28sIGFueSB2YXJpYWJsZS9mdW5jdGlvbiBleHBvcnRlZCBz aG91bGQgaGF2ZSB0aGVyZSBwcm90b3R5cGUgaW4gdGhlIAphc3NvY2lhdGVkIGhlYWRlci4KCj4g Kwo+ICsvKgo+ICsgKiBFdmVuIHRob3VnaCB3ZSBjb25uZWN0IGNwdXMgdG8gbnVtYSBkb21haW5z IGxhdGVyIGluIFNNUAo+ICsgKiBpbml0LCB3ZSBuZWVkIHRvIGtub3cgdGhlIG5vZGUgaWRzIG5v dyBmb3IgYWxsIGNwdXMuCj4gKyovCgpDb2Rpbmcgc3R5bGU6CgovKgogICogLi4uCiAgKi8KCj4g K3N0YXRpYyBpbnQgX19pbml0IGR0X251bWFfcHJvY2Vzc19jcHVfbm9kZShjb25zdCB2b2lkICpm ZHQsIGludCBub2RlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbmFtZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHUzMiBhZGRyZXNzX2NlbGxzLCB1MzIgc2l6ZV9jZWxscykKPiArewo+ICsgICAg dTMyIG5pZDsKPiArCj4gKyAgICBuaWQgPSBkZXZpY2VfdHJlZV9nZXRfdTMyKGZkdCwgbm9kZSwg Im51bWEtbm9kZS1pZCIsIE1BWF9OVU1OT0RFUyk7Cj4gKwo+ICsgICAgaWYgKCBuaWQgPj0gTUFY X05VTU5PREVTICkKPiArICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIk5VTUE6IE5vZGUg aWQgJXUgZXhjZWVkcyBtYXhpbXVtIHZhbHVlXG4iLCBuaWQpOwo+ICsgICAgZWxzZQo+ICsgICAg ICAgIG5vZGVfc2V0KG5pZCwgbnVtYV9ub2Rlc19wYXJzZWQpOwo+ICsKPiArICAgIHJldHVybiAw Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IF9faW5pdCBkdF9udW1hX3NjYW5fY3B1X25vZGUoY29u c3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBkZXB0aCwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBhZGRyZXNzX2NlbGxzLCB1MzIgc2l6ZV9jZWxs cywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEp Cj4gKwo+ICt7Cj4gKyAgICBpZiAoIGRldmljZV90cmVlX25vZGVfbWF0Y2hlcyhmZHQsIG5vZGUs ICJjcHUiKSApCj4gKyAgICAgICAgcmV0dXJuIGR0X251bWFfcHJvY2Vzc19jcHVfbm9kZShmZHQs IG5vZGUsIG5hbWUsIGFkZHJlc3NfY2VsbHMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplX2NlbGxzKTsKClRoaXMgY29kZSBpcyB3cm9uZy4gQ1BVcyBub2Rl cyBjYW4gb25seSBiZSBpbiAvY3B1cyBhbmQgeW91IGNhbm5vdCByZWx5IApvbiB0aGUgbmFtZSB0 byBiZSAiY3B1IiAoc2VlIGJpbmRpbmcgaW4gCkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9hcm0vY3B1LnR4dCkuIFRoZSBvbmx5IHdheSB0byBjaGVjayBpZiAKaXQgaXMgYSBDUFUg aXMgdG8gbG9vayBmb3IgdGhlIHByb3BlcnR5IGRldmljZV90eXBlLgoKPiArCj4gKyAgICByZXR1 cm4gMDsKPiArfQo+ICsKPiAraW50IF9faW5pdCBkdF9udW1hX2luaXQodm9pZCkKPiArewo+ICsg ICAgaW50IHJldDsKPiArCj4gKyAgICBub2Rlc19jbGVhcihudW1hX25vZGVzX3BhcnNlZCk7CgpX aHkgdGhpcyBpcyBkb25lIGluIGR0X251bWFfaW5pdCBhbmQgbm90IG51bWFfaW5pdD8KCj4gKyAg ICByZXQgPSBkZXZpY2VfdHJlZV9mb3JfZWFjaF9ub2RlKCh2b2lkICopZGV2aWNlX3RyZWVfZmxh dHRlbmVkLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdF9udW1hX3Nj YW5fY3B1X25vZGUsIE5VTEwpOwo+ICsgICAgcmV0dXJuIHJldDsKPiArfQo+IGRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vbnVtYS5jIGIveGVuL2FyY2gvYXJtL251bWEuYwo+IGluZGV4IDU5ZDA5 YzcuLjlhN2YwYmIgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL251bWEuYwo+ICsrKyBiL3hl bi9hcmNoL2FybS9udW1hLmMKPiBAQCAtMjEsNiArMjEsMjAgQEAKPiAgI2luY2x1ZGUgPHhlbi9u b2RlbWFzay5oPgo+ICAjaW5jbHVkZSA8YXNtL21tLmg+Cj4gICNpbmNsdWRlIDx4ZW4vbnVtYS5o Pgo+ICsjaW5jbHVkZSA8YXNtL2FjcGkuaD4KPiArCj4gK2ludCBfX2luaXQgbnVtYV9pbml0KHZv aWQpCj4gK3sKPiArICAgIGludCByZXQgPSAwOwo+ICsKPiArICAgIGlmICggbnVtYV9vZmYgKQo+ ICsgICAgICAgIGdvdG8gbm9fbnVtYTsKPiArCj4gKyAgICByZXQgPSBkdF9udW1hX2luaXQoKTsK PiArCj4gK25vX251bWE6Cj4gKyAgICByZXR1cm4gcmV0Owo+ICt9Cj4KPiAgaW50IF9faW5pdCBh cmNoX251bWFfc2V0dXAoY2hhciAqb3B0KQo+ICB7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy bS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKPiBpbmRleCAwNDllNDQ5Li5iNjYxOGNh IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9zZXR1cC5jCj4gKysrIGIveGVuL2FyY2gvYXJt L3NldHVwLmMKPiBAQCAtMzksNiArMzksNyBAQAo+ICAjaW5jbHVkZSA8eGVuL2xpYmZkdC9saWJm ZHQuaD4KPiAgI2luY2x1ZGUgPHhlbi9hY3BpLmg+Cj4gICNpbmNsdWRlIDxhc20vYWx0ZXJuYXRp dmUuaD4KPiArI2luY2x1ZGUgPHhlbi9udW1hLmg+Cj4gICNpbmNsdWRlIDxhc20vcGFnZS5oPgo+ ICAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4KPiAgI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgo+IEBA IC03NTMsNiArNzU0LDggQEAgdm9pZCBfX2luaXQgc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgYm9v dF9waHlzX29mZnNldCwKPiAgICAgIC8qIFBhcnNlIHRoZSBBQ1BJIHRhYmxlcyBmb3IgcG9zc2li bGUgYm9vdC10aW1lIGNvbmZpZ3VyYXRpb24gKi8KPiAgICAgIGFjcGlfYm9vdF90YWJsZV9pbml0 KCk7Cj4KPiArICAgIG51bWFfaW5pdCgpOwoKSSBzZWUgdmVyeSBsaXR0bGUgcG9pbnQgdG8gaGF2 ZSBhIGZ1bmN0aW9uIHJldHVybiBhIHZhbHVlIGJ1dCBuZXZlciAKY2hlY2sgaXQuIElmIHRoZSBy ZXR1cm4gZG9lcyBub3QgbWF0dGVyLCB0aGVuIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdm9pZC4K Cj4gKwo+ICAgICAgZW5kX2Jvb3RfYWxsb2NhdG9yKCk7Cj4KPiAgICAgIHZtX2luaXQoKTsKPiBk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9udW1hLmggYi94ZW4vaW5jbHVkZS9hc20t YXJtL251bWEuaAo+IGluZGV4IGMxZThhN2QuLmNkZmVlY2QgMTAwNjQ0Cj4gLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLWFybS9udW1hLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL251bWEuaAo+ IEBAIC0xLDE4ICsxLDMyIEBACj4gICNpZm5kZWYgX19BUkNIX0FSTV9OVU1BX0gKPiAgI2RlZmlu ZSBfX0FSQ0hfQVJNX05VTUFfSAo+Cj4gKyNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KPiArCj4gIHR5 cGVkZWYgdTggbm9kZWlkX3Q7Cj4KPiAgI2RlZmluZSBOT0RFU19TSElGVCAyCj4KPiAgI2lmZGVm IENPTkZJR19OVU1BCj4gIGludCBhcmNoX251bWFfc2V0dXAoY2hhciAqb3B0KTsKPiAraW50IF9f aW5pdCBudW1hX2luaXQodm9pZCk7CgpQbGVhc2UgZHJvcCBfX2luaXQsIGl0IHNob3VsZCBvbmx5 IGJlIG9ubHkgb24gdGhlIGRlY2xhcmF0aW9uLgoKPiAraW50IF9faW5pdCBkdF9udW1hX2luaXQo dm9pZCk7CgpEaXR0by4KCj4gICNlbHNlCj4gIHN0YXRpYyBpbmxpbmUgaW50IGFyY2hfbnVtYV9z ZXR1cChjaGFyICpvcHQpCj4gIHsKPiAgICAgIHJldHVybiAxOwo+ICB9Cj4KPiArc3RhdGljIGlu bGluZSBpbnQgX19pbml0IG51bWFfaW5pdCh2b2lkKQo+ICt7Cj4gKyAgICByZXR1cm4gMDsKPiAr fQo+ICsKPiArc3RhdGljIGlubGluZSBpbnQgX19pbml0IGR0X251bWFfaW5pdCh2b2lkKQo+ICt7 Cj4gKyAgICByZXR1cm4gLUVJTlZBTDsKPiArfQoKVGhpcyB3cmFwcGVyIHNob3VsZCBuZXZlciBi ZSBjYWxsZWQgd2hlbiBOVU1BIGlzIGRpc2FibGVkLiBTbyBwbGVhc2UgCmRyb3AgaXQuCgo+ICsK PiAgLyogRmFrZSBvbmUgbm9kZSBmb3Igbm93LiBTZWUgYWxzbyBub2RlX29ubGluZV9tYXAuICov Cj4gICNkZWZpbmUgY3B1X3RvX25vZGUoY3B1KSAwCj4gICNkZWZpbmUgbm9kZV90b19jcHVtYXNr KG5vZGUpICAgKGNwdV9vbmxpbmVfbWFwKQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4v ZGV2aWNlX3RyZWUuaCBiL3hlbi9pbmNsdWRlL3hlbi9kZXZpY2VfdHJlZS5oCj4gaW5kZXggMGFl Y2JlMC4uZGU2YjM1MSAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vZGV2aWNlX3RyZWUu aAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9kZXZpY2VfdHJlZS5oCj4gQEAgLTE4OCw2ICsxODgs MTAgQEAgaW50IGRldmljZV90cmVlX2Zvcl9lYWNoX25vZGUoY29uc3Qgdm9pZCAqZmR0LAo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3RyZWVfbm9kZV9mdW5j IGZ1bmMsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRh KTsKPgo+ICtib29sX3QgZGV2aWNlX3RyZWVfbm9kZV9tYXRjaGVzKGNvbnN0IHZvaWQgKmZkdCwg aW50IG5vZGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq bWF0Y2gpOwo+ICt1MzIgZGV2aWNlX3RyZWVfZ2V0X3UzMihjb25zdCB2b2lkICpmZHQsIGludCBu b2RlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwcm9wX25hbWUsIHUz MiBkZmx0KTsKClBsZWFzZSBkb24ndCBtaXggY29tbW9uIGFuZCBhcmNoIGNvZGUuIFRob3NlIGZ1 bmN0aW9ucyBhcmUgYXJjaCAKc3BlY2lmaWMuIFRoaXMgc2hvdWxkIGJlIGRlZmluZWQgaW4gYXNt L3NldHVwLmguCgo+ICAvKioKPiAgICogZHRfdW5mbGF0dGVuX2hvc3RfZGV2aWNlX3RyZWUgLSBV bmZsYXR0ZW4gdGhlIGhvc3QgZGV2aWNlIHRyZWUKPiAgICoKPgoKUmVnYXJkcywKCi0tIApKdWxp ZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=