From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v1 2/6] arm: add generic TEE mediator framework Date: Wed, 22 Aug 2018 18:03:16 +0100 Message-ID: References: <1534947094-9974-1-git-send-email-volodymyr_babchuk@epam.com> <1534947094-9974-3-git-send-email-volodymyr_babchuk@epam.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1534947094-9974-3-git-send-email-volodymyr_babchuk@epam.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Volodymyr Babchuk , xen-devel@lists.xen.org, Andrew Cooper , George Dunlap , Ian Jackson , Jan Beulich , Konrad Rzeszutek Wilk , Stefano Stabellini , Tim Deegan , Wei Liu Cc: tee-dev@lists.linaro.org List-Id: xen-devel@lists.xenproject.org SGkgVm9sb2R5bXlyLAoKT24gMjIvMDgvMTggMTU6MTEsIFZvbG9keW15ciBCYWJjaHVrIHdyb3Rl Ogo+IFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBmcmFtZXdvcmsgZm9yIFRFRSBtZWRpYXRvcnMuIEd1 ZXN0cyBjYW4ndCB0YWxrCj4gdG8gVEVFIGRpcmVjdGx5LCB3ZSBuZWVkIHNvbWUgZW50aXR5IHRo YXQgd2lsbCBpbnRlcmNlcHQgcmVxdWVzdAo+IGFuZCBkZWNpZGUgd2hhdCB0byBkbyB3aXRoIHRo ZW0uICJURUUgbWVkaWF0b3IiIGlzIGEgc3VjaCBlbnRpdHkuCj4gCj4gVGhpcyBpcyBob3cgaXQg d29ya3M6IHVzZXIgY2FuIGJ1aWxkIFhFTiB3aXRoIG11bHRpcGxlIFRFRSBtZWRpYXRvcnMKPiAo c2VlIHRoZSBuZXh0IHBhdGNoZXMsIHdoZXJlIE9QLVRFRSBtZWRpYXRvciBpcyBpbnRyb2R1Y2Vk KS4KPiBURUUgbWVkaWF0b3IgcmVnaXN0ZXIgc2VsZiB3aXRoIFJFR0lTVEVSX1RFRV9NRURJQVRP UigpIG1hY3JvIGluIHRoZQo+IHNhbWUgd2F5LCBhcyBkZXZpY2UgZHJpdmVycyB1c2UgRFRfREVW SUNFX1NUQVJUKCkvRFRfREVWSUNFX0VORCgpCj4gbWFjcm9zLgo+IEluIHJ1bnRpbWUsIGR1cmlu ZyBpbml0aWFsaXphdGlvbiwgZnJhbWV3b3JrIGNhbGxzIHByb2JlKCkgZnVuY3Rpb24KPiBmb3Ig ZWFjaCBhdmFpbGFibGUgbWVkaWF0b3IgZHJpdmVyIHRvIGZpbmQgd2hpY2ggVEVFIGlzIGluc3Rh bGxlZAo+IG9uIHRoZSBwbGF0Zm9ybS4gVGhlbiBnZW5lcmljIHZTTUMgaGFuZGxlciB3aWxsIGNh bGwgc2VsZWN0ZWQgbWVkaWF0b3IKPiB3aGVuIGl0IGludGVyY2VwdCBTTUMgdGhhdCBiZWxvbmdz IHRvIFRFRSBPUyBvciBURUUgYXBwbGljYXRpb24uCj4gCj4gQWxzbywgdGhlcmUgYXJlIGhvb2tz IGZvciBkb21haW4gY29uc3RydWN0aW9uIGFuZCBkZXN0cnVjdGlvbiwgc28KPiBURUUgbWVkaWF0 b3IgY2FuIGluZm9ybSBURUUgYWJvdXQgVk0gbGlmZWN5Y2xlLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IFZvbG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4KPiAtLS0KPiAK PiBjaGFuZ2VzIGZyb20gIlJGQyIgdmVyc2lvbjoKPiAgIC0gcmVuYW1lZCBDT05GSUdfQVJNX1RF RSB0byBDT05GSUdfVEVFCj4gICAtIGNoYW5nZWQgZGlzY292ZXJ5IG1lY2hhbmlzbTogaW5zdGVh ZCBvZiBVVUlEIG1hdGhpbmcsIFRFRS1zcGVjaWZpYwo+ICAgICBwcm9iaW5nIGlzIHVzZWQKPiAK PiAgIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgIHwgICA1ICsrCj4gICB4ZW4vYXJjaC9h cm0vS2NvbmZpZyAgICAgICAgICB8ICAxMCArKysrCj4gICB4ZW4vYXJjaC9hcm0vTWFrZWZpbGUg ICAgICAgICB8ICAgMSArCj4gICB4ZW4vYXJjaC9hcm0vZG9tYWluLmMgICAgICAgICB8ICAgNyAr KysKPiAgIHhlbi9hcmNoL2FybS9zZXR1cC5jICAgICAgICAgIHwgICA0ICsrCj4gICB4ZW4vYXJj aC9hcm0vc2h1dGRvd24uYyAgICAgICB8ICAgMiArCj4gICB4ZW4vYXJjaC9hcm0vdGVlL0tjb25m aWcgICAgICB8ICAgMAo+ICAgeGVuL2FyY2gvYXJtL3RlZS9NYWtlZmlsZSAgICAgfCAgIDEgKwo+ ICAgeGVuL2FyY2gvYXJtL3RlZS90ZWUuYyAgICAgICAgfCAgNzkgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgIHhlbi9hcmNoL2FybS92c21jLmMgICAgICAgICAgIHwgICA1ICsr Cj4gICB4ZW4vYXJjaC9hcm0veGVuLmxkcy5TICAgICAgICB8ICAgNyArKysKPiAgIHhlbi9pbmNs dWRlL2FzbS1hcm0vdGVlL3RlZS5oIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICAgMTIgZmlsZXMgY2hhbmdlZCwgMjI0IGluc2VydGlvbnMoKykKPiAg IGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vdGVlL0tjb25maWcKPiAgIGNyZWF0ZSBt b2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vdGVlL01ha2VmaWxlCj4gICBjcmVhdGUgbW9kZSAxMDA2 NDQgeGVuL2FyY2gvYXJtL3RlZS90ZWUuYwo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNs dWRlL2FzbS1hcm0vdGVlL3RlZS5oCj4gCj4gZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJ TlRBSU5FUlMKPiBpbmRleCAxNWQ0NWQwLi5iMDAzNGE5IDEwMDY0NAo+IC0tLSBhL01BSU5UQUlO RVJTCj4gKysrIGIvTUFJTlRBSU5FUlMKPiBAQCAtMzY1LDYgKzM2NSwxMSBAQCBGOgljb25maWcv U3R1YmRvbS5tay5pbgo+ICAgRjoJbTQvc3R1YmRvbS5tNAo+ICAgRjoJc3R1YmRvbS8KPiAgIAo+ ICtURUUgTUVESUFUT1JTCj4gK006CVZvbG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1 a0BlcGFtLmNvbT4KPiArUzoJU3VwcG9ydGVkCj4gK0Y6CXhlbi9hcmNoL2FybS90ZWUvKgoKVGhl IHN0YXIgaXMgbm90IG5lY2Vzc2FyeSBoZXJlLgoKPiArCj4gICBUT09MU1RBQ0sKPiAgIE06CUlh biBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgo+ICAgTToJV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL0tjb25maWcgYi94 ZW4vYXJjaC9hcm0vS2NvbmZpZwo+IGluZGV4IDI3ODJlZTYuLjA5YmZjOWIgMTAwNjQ0Cj4gLS0t IGEveGVuL2FyY2gvYXJtL0tjb25maWcKPiArKysgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwo+IEBA IC01Nyw2ICs1NywxNCBAQCBjb25maWcgU0JTQV9WVUFSVF9DT05TT0xFCj4gICAJICBBbGxvd3Mg YSBndWVzdCB0byB1c2UgU0JTQSBHZW5lcmljIFVBUlQgYXMgYSBjb25zb2xlLiBUaGUKPiAgIAkg IFNCU0EgR2VuZXJpYyBVQVJUIGltcGxlbWVudHMgYSBzdWJzZXQgb2YgQVJNIFBMMDExIFVBUlQu Cj4gICAKPiArY29uZmlnIFRFRQo+ICsJYm9vbCAiRW5hYmxlIFRFRSBtZWRpYXRvcnMgc3VwcG9y dCIKPiArCWRlZmF1bHQgbgoKSSB0aGluayB3ZSB3YW50IHRoaXMgdG8gZGVwZW5kcyBvbiBFWFBF UlQgZm9yIGEgZmV3IHJlbGVhc2VzLiBXZSBjYW4gWGVuIApkaXNjdXNzIGhvdyB3ZSBhcmUgZ29p bmcgdG8gc2VjdXJpdHkgc3VwcG9ydCB0aGlzLgoKPiArCWRlcGVuZHMgb24gQVJNCgpObyBuZWVk IHRvIGRlcGVuZCBvbiBBcm0gaGVyZS4KCj4gKwloZWxwCj4gKwkgIFRoaXMgb3B0aW9uIGVuYWJs ZXMgZ2VuZXJpYyBURUUgbWVkaWF0b3JzIHN1cHBvcnQuIEl0IGFsbG93cyBndWVzdHMKPiArCSAg dG8gYWNjZXNzIHJlYWwgVEVFIHZpYSBvbmUgb2YgVEVFIG1lZGlhdG9ycyBpbXBsZW1lbnRlZCBp biBYRU4uCj4gKwo+ICAgZW5kbWVudQo+ICAgCj4gICBtZW51ICJBUk0gZXJyYXRhIHdvcmthcm91 bmQgdmlhIHRoZSBhbHRlcm5hdGl2ZSBmcmFtZXdvcmsiCj4gQEAgLTE5NywzICsyMDUsNSBAQCBj b25maWcgQVJNMzJfSEFSREVOX0JSQU5DSF9QUkVESUNUT1IKPiAgIHNvdXJjZSAiY29tbW9uL0tj b25maWciCj4gICAKPiAgIHNvdXJjZSAiZHJpdmVycy9LY29uZmlnIgo+ICsKPiArc291cmNlICJh cmNoL2FybS90ZWUvS2NvbmZpZyIKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL01ha2VmaWxl IGIveGVuL2FyY2gvYXJtL01ha2VmaWxlCj4gaW5kZXggMzBhMmE2NS4uYWYyOWFhNyAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKPiArKysgYi94ZW4vYXJjaC9hcm0vTWFrZWZp bGUKPiBAQCAtMyw2ICszLDcgQEAgc3ViZGlyLSQoQ09ORklHX0FSTV82NCkgKz0gYXJtNjQKPiAg IHN1YmRpci15ICs9IHBsYXRmb3Jtcwo+ICAgc3ViZGlyLSQoQ09ORklHX0FSTV82NCkgKz0gZWZp Cj4gICBzdWJkaXItJChDT05GSUdfQUNQSSkgKz0gYWNwaQo+ICtzdWJkaXItJChDT05GSUdfVEVF KSArPSB0ZWUKPiAgIAo+ICAgb2JqLSQoQ09ORklHX0hBU19BTFRFUk5BVElWRSkgKz0gYWx0ZXJu YXRpdmUubwo+ICAgb2JqLXkgKz0gYm9vdGZkdC5pbml0Lm8KPiBkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbi5jCj4gaW5kZXggYTc0ZmYxYy4u NDFlNDFiOSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMKPiArKysgYi94ZW4v YXJjaC9hcm0vZG9tYWluLmMKPiBAQCAtMzEsNiArMzEsNyBAQAo+ICAgI2luY2x1ZGUgPGFzbS9w bGF0Zm9ybS5oPgo+ICAgI2luY2x1ZGUgPGFzbS9wcm9jaW5mby5oPgo+ICAgI2luY2x1ZGUgPGFz bS9yZWdzLmg+Cj4gKyNpbmNsdWRlIDxhc20vdGVlL3RlZS5oPgo+ICAgI2luY2x1ZGUgPGFzbS92 ZnAuaD4KPiAgICNpbmNsdWRlIDxhc20vdmdpYy5oPgo+ICAgI2luY2x1ZGUgPGFzbS92dGltZXIu aD4KPiBAQCAtNjcxLDYgKzY3Miw5IEBAIGludCBhcmNoX2RvbWFpbl9jcmVhdGUoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgaW50IGRvbWNyX2ZsYWdzLAo+ICAgICAgIGlmICggaXNfaGFyZHdh cmVfZG9tYWluKGQpICYmIChyYyA9IGRvbWFpbl92dWFydF9pbml0KGQpKSApCj4gICAgICAgICAg IGdvdG8gZmFpbDsKPiAgIAo+ICsgICAgLyogTm90aWZ5IFRFRSB0aGF0IG5ldyBkb21haW4gd2Fz IGNyZWF0ZWQgKi8KPiArICAgIHRlZV9kb21haW5fY3JlYXRlKGQpOwoKTXkgY29uY2VybiBhYm91 dCBkb21haW4gY3JlYXRpb24gaXMgc3RpbGwgbm90IGFkZHJlc3NlZC4gSSB3b3VsZCBleHBlY3Qg CnRoZSB0b29sc3RhY2sgdG8gZGVjaWRlIHdoZXRoZXIgVEVFIHNob3VsZCBiZSBpbml0aWFsaXpl ZCBmb3IgYSBnaXZlbiAKZ3Vlc3QgYW5kIHBvdGVudGlhbGx5IHJldHVybiBhbiBlcnJvciBvbiBm YWlsdXJlIChlLmcgbWF4aW11bSBjbGllbnQgSUQgCmhhcyBiZWVuIHJlYWNoZWQpLgoKQnV0IHZl cnkgbGlrZWx5LCB5b3UgZG9uJ3QgbmVlZCB0byBpbml0aWFsaXplIFRFRSB0aGF0IGVhcmx5LiBU aGlzIGNvdWxkIApiZSBkb25lIGluIGEgc2VwYXJhdGUgRE9NQ1RMIGFzIHdlIGRpZCBmb3IgVlBM MDExLgoKPiArCj4gICAgICAgcmV0dXJuIDA7Cj4gICAKPiAgIGZhaWw6Cj4gQEAgLTg3OCw2ICs4 ODIsOSBAQCBpbnQgZG9tYWluX3JlbGlucXVpc2hfcmVzb3VyY2VzKHN0cnVjdCBkb21haW4gKmQp Cj4gICAgICAgICAgICAqLwo+ICAgICAgICAgICBkb21haW5fdnBsMDExX2RlaW5pdChkKTsKPiAg IAo+ICsgICAgICAgIC8qIEZyZWUgVEVFIG1lZGlhdG9yIHJlc291cmNlcyAqLwo+ICsgICAgICAg IHRlZV9kb21haW5fZGVzdHJveShkKTsKPiArCj4gICAgICAgICAgIGQtPmFyY2gucmVsbWVtID0g UkVMTUVNX3hlbjsKPiAgICAgICAgICAgLyogRmFsbHRocm91Z2ggKi8KPiAgIAo+IGRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vc2V0dXAuYyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCj4gaW5kZXgg MDMyYTZhOC4uNGQzMWQ5NCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vc2V0dXAuYwo+ICsr KyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCj4gQEAgLTQ3LDYgKzQ3LDcgQEAKPiAgICNpbmNsdWRl IDxhc20vcGxhdGZvcm0uaD4KPiAgICNpbmNsdWRlIDxhc20vcHJvY2luZm8uaD4KPiAgICNpbmNs dWRlIDxhc20vc2V0dXAuaD4KPiArI2luY2x1ZGUgPGFzbS90ZWUvdGVlLmg+Cj4gICAjaW5jbHVk ZSA8eHNtL3hzbS5oPgo+ICAgI2luY2x1ZGUgPGFzbS9hY3BpLmg+Cj4gICAKPiBAQCAtODUxLDYg Kzg1Miw5IEBAIHZvaWQgX19pbml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19v ZmZzZXQsCj4gICAgICAgYXBwbHlfYWx0ZXJuYXRpdmVzX2FsbCgpOwo+ICAgICAgIGVuYWJsZV9l cnJhdGFfd29ya2Fyb3VuZHMoKTsKPiAgIAo+ICsgICAgLyogSW5pdGlhbGl6ZSBURUUgbWVkaWF0 b3IgKi8KPiArICAgIHRlZV9pbml0KCk7CgpEb2VzIHRoaXMgcmVhbGx5IG5lZWQgdG8gYmUgY2Fs bGVkIGRpcmVjdGx5PyBDYW4ndCB0aGlzIGJlIHVzaW5nIGFuIGluaXQgCmNhbGw/Cgo+ICsKPiAg ICAgICAvKiBDcmVhdGUgaW5pdGlhbCBkb21haW4gMC4gKi8KPiAgICAgICAvKiBUaGUgdkdJQyBm b3IgRE9NMCBpcyBleGFjdGx5IGVtdWxhdGluZyB0aGUgaGFyZHdhcmUgR0lDICovCj4gICAgICAg Y29uZmlnLmdpY192ZXJzaW9uID0gWEVOX0RPTUNUTF9DT05GSUdfR0lDX05BVElWRTsKPiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL3NodXRkb3duLmMgYi94ZW4vYXJjaC9hcm0vc2h1dGRvd24u Ywo+IGluZGV4IGIzMmYwN2UuLmUxYWNlMTggMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3No dXRkb3duLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vc2h1dGRvd24uYwo+IEBAIC01LDYgKzUsNyBA QAo+ICAgI2luY2x1ZGUgPHhlbi9zbXAuaD4KPiAgICNpbmNsdWRlIDxhc20vcGxhdGZvcm0uaD4K PiAgICNpbmNsdWRlIDxhc20vcHNjaS5oPgo+ICsjaW5jbHVkZSA8YXNtL3RlZS90ZWUuaD4KPiAg IAo+ICAgc3RhdGljIHZvaWQgbm9yZXR1cm4gaGFsdF90aGlzX2NwdSh2b2lkICphcmcpCj4gICB7 Cj4gQEAgLTE1LDYgKzE2LDcgQEAgdm9pZCBtYWNoaW5lX2hhbHQodm9pZCkKPiAgIHsKPiAgICAg ICBpbnQgdGltZW91dCA9IDEwOwo+ICAgCj4gKyAgICB0ZWVfcmVtb3ZlKCk7CgpUaGlzIGNhbGxi YWNrIGRvZXMgbm90IHNlZW0gdG8gYmUgaW1wbGVtZW50ZWQgZm9yIE9QLVRFRS4gSSB3b3VsZCBy YXRoZXIgCm9ubHkgaW50cm9kdWNlIGNhbGxiYWNrIHRoYXQgYXJlIG9ubHkgbmVjZXNzYXJ5IGF0 IHRoZSBtb21lbnQuIFRoZSBvdGhlciAKY2FuIGJlIGFkZGVkIGxhdGVyIG9uLgoKPiAgICAgICB3 YXRjaGRvZ19kaXNhYmxlKCk7Cj4gICAgICAgY29uc29sZV9zdGFydF9zeW5jKCk7Cj4gICAgICAg bG9jYWxfaXJxX2VuYWJsZSgpOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL0tjb25m aWcgYi94ZW4vYXJjaC9hcm0vdGVlL0tjb25maWcKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGlu ZGV4IDAwMDAwMDAuLmU2OWRlMjkKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9NYWtl ZmlsZSBiL3hlbi9hcmNoL2FybS90ZWUvTWFrZWZpbGUKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAuLmM1NGQ0NzkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIveGVuL2FyY2gv YXJtL3RlZS9NYWtlZmlsZQo+IEBAIC0wLDAgKzEgQEAKPiArb2JqLXkgKz0gdGVlLm8KPiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS90ZWUuYyBiL3hlbi9hcmNoL2FybS90ZWUvdGVlLmMK PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjZkZjNiMDkKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS90ZWUuYwo+IEBAIC0wLDAgKzEsNzkgQEAK PiArLyoKPiArICogeGVuL2FyY2gvYXJtL3RlZS90ZWUuYwo+ICsgKgo+ICsgKiBHZW5lcmljIHBh cnQgb2YgVEVFIG1lZGlhdG9yIHN1YnN5c3RlbQo+ICsgKgo+ICsgKiBWb2xvZHlteXIgQmFiY2h1 ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20+Cj4gKyAqIENvcHlyaWdodCAoYykgMjAxNyBF UEFNIFN5c3RlbXMuCj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCj4gKyAq IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsgKgo+ICsgKiBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQo+ICsgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDx4ZW4vZXJybm8u aD4KPiArI2luY2x1ZGUgPHhlbi90eXBlcy5oPgo+ICsjaW5jbHVkZSA8YXNtL3RlZS90ZWUuaD4K PiArCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3QgdGVlX21lZGlhdG9yX2Rlc2MgX3N0ZWVtZWRpYXRv cltdLCBfZXRlZW1lZGlhdG9yW107Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGVlX21lZGlhdG9y X29wcyAqbWVkaWF0b3Jfb3BzOwo+ICsKPiArdm9pZCB0ZWVfaW5pdCh2b2lkKQo+ICt7Cj4gKyAg ICBjb25zdCBzdHJ1Y3QgdGVlX21lZGlhdG9yX2Rlc2MgKmRlc2M7Cj4gKwo+ICsgICAgZm9yICgg ZGVzYyA9IF9zdGVlbWVkaWF0b3I7IGRlc2MgIT0gX2V0ZWVtZWRpYXRvcjsgZGVzYysrICkKCnsK Cj4gKyAgICAgICAgaWYgKCBkZXNjLT5vcHMtPnByb2JlKCkgPT0gMCApCgpOSVQ6ICFkZXNjLT5v cHMtPnByb2JlKCkKCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX0lO Rk8gIlVzaW5nIFRFRSBtZWRpYXRvciBmb3IgJXNcbiIsIGRlc2MtPm5hbWUpOwo+ICsgICAgICAg ICAgICBtZWRpYXRvcl9vcHMgPSBkZXNjLT5vcHM7Cj4gKyAgICAgICAgICAgIHJldHVybjsKPiAr ICAgICAgICB9Cgp9Cgo+ICsgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJObyBURUUgbWVkaWF0 b3IgZm91bmRcbiIpOwoKTm90IGhhdmluZyBhIFRFRSBpcyBhIHZhbGlkIHVzZSBjYXNlLiBTbyBw cmludGluZyBhIHdhcm5pbmcgc2VlbXMgYSBiaXQgCnRvbyBtdWNoLgoKPiArfQo+ICsKPiArYm9v bCB0ZWVfaGFuZGxlX3NtYyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKCkhvdyBhYm91dCBI VkM/Cgo+ICt7Cj4gKyAgICBpZiAoICFtZWRpYXRvcl9vcHMgKQo+ICsgICAgICAgIHJldHVybiBm YWxzZTsKPiArCj4gKyAgICByZXR1cm4gbWVkaWF0b3Jfb3BzLT5oYW5kbGVfc21jKHJlZ3MpOwo+ ICt9Cj4gKwo+ICtpbnQgdGVlX2RvbWFpbl9jcmVhdGUoc3RydWN0IGRvbWFpbiAqZCkKPiArewo+ ICsgICAgaWYgKCAhbWVkaWF0b3Jfb3BzICkKPiArICAgICAgICByZXR1cm4gLUVOT0RFVjsKPiAr Cj4gKyAgICByZXR1cm4gbWVkaWF0b3Jfb3BzLT5kb21haW5fY3JlYXRlKGQpOwo+ICt9Cj4gKwo+ ICt2b2lkIHRlZV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQo+ICt7Cj4gKyAgICBp ZiAoICFtZWRpYXRvcl9vcHMgKQo+ICsgICAgICAgIHJldHVybjsKPiArCj4gKyAgICByZXR1cm4g bWVkaWF0b3Jfb3BzLT5kb21haW5fZGVzdHJveShkKTsKPiArfQo+ICsKPiArdm9pZCB0ZWVfcmVt b3ZlKHZvaWQpCj4gK3sKPiArICAgIGlmICggIW1lZGlhdG9yX29wcyApCj4gKyAgICAgICAgcmV0 dXJuOwo+ICsKPiArICAgIHJldHVybiBtZWRpYXRvcl9vcHMtPnJlbW92ZSgpOwo+ICt9Cj4gKwo+ ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiArICogYy1maWxlLXN0 eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiBpbmRlbnQtdGFicy1tb2Rl OiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZzbWMu YyBiL3hlbi9hcmNoL2FybS92c21jLmMKPiBpbmRleCA0MGE4MGQ1Li5hYWNlYmY5IDEwMDY0NAo+ IC0tLSBhL3hlbi9hcmNoL2FybS92c21jLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vdnNtYy5jCj4g QEAgLTIyLDYgKzIyLDcgQEAKPiAgICNpbmNsdWRlIDxhc20vbW9uaXRvci5oPgo+ICAgI2luY2x1 ZGUgPGFzbS9yZWdzLmg+Cj4gICAjaW5jbHVkZSA8YXNtL3NtY2NjLmg+Cj4gKyNpbmNsdWRlIDxh c20vdGVlL3RlZS5oPgo+ICAgI2luY2x1ZGUgPGFzbS90cmFwcy5oPgo+ICAgI2luY2x1ZGUgPGFz bS92cHNjaS5oPgo+ICAgCj4gQEAgLTIzNSw2ICsyMzYsMTAgQEAgc3RhdGljIGJvb2wgdnNtY2Nj X2hhbmRsZV9jYWxsKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQo+ICAgICAgICAgICBjYXNl IEFSTV9TTUNDQ19PV05FUl9TVEFOREFSRDoKPiAgICAgICAgICAgICAgIGhhbmRsZWQgPSBoYW5k bGVfc3NzYyhyZWdzKTsKPiAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIGNhc2UgQVJN X1NNQ0NDX09XTkVSX1RSVVNURURfQVBQIC4uLiBBUk1fU01DQ0NfT1dORVJfVFJVU1RFRF9BUFBf RU5EOgo+ICsgICAgICAgIGNhc2UgQVJNX1NNQ0NDX09XTkVSX1RSVVNURURfT1MgLi4uIEFSTV9T TUNDQ19PV05FUl9UUlVTVEVEX09TX0VORDoKPiArICAgICAgICAgICAgaGFuZGxlZCA9IHRlZV9o YW5kbGVfc21jKHJlZ3MpOwoKSSB0aGluayB5b3Ugd2FudCB0byByZW5hbWUgdGhhdCBmdW5jdGlv biAidGVlX2hhbmRsZV9jYWxsIi4KCj4gKyAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgICB9 Cj4gICAgICAgfQo+ICAgCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS94ZW4ubGRzLlMgYi94 ZW4vYXJjaC9hcm0veGVuLmxkcy5TCj4gaW5kZXggYzliOTU0Ni4uYjc4YjdmMSAxMDA2NDQKPiAt LS0gYS94ZW4vYXJjaC9hcm0veGVuLmxkcy5TCj4gKysrIGIveGVuL2FyY2gvYXJtL3hlbi5sZHMu Uwo+IEBAIC0xMjYsNiArMTI2LDEzIEBAIFNFQ1RJT05TCj4gICAgICAgICBfYWVkZXZpY2UgPSAu Owo+ICAgICB9IDp0ZXh0Cj4gICAKPiArICAuID0gQUxJR04oOCk7Cj4gKyAgLnRlZW1lZGlhdG9y LmluZm8gOiB7Cj4gKyAgICAgIF9zdGVlbWVkaWF0b3IgPSAuOwo+ICsgICAgICAqKC50ZWVtZWRp YXRvci5pbmZvKQo+ICsgICAgICBfZXRlZW1lZGlhdG9yID0gLjsKPiArICB9IDp0ZXh0Cj4gKwo+ ICAgICAuID0gQUxJR04oUEFHRV9TSVpFKTsgICAgICAgICAgICAgLyogSW5pdCBjb2RlIGFuZCBk YXRhICovCj4gICAgIF9faW5pdF9iZWdpbiA9IC47Cj4gICAgIC5pbml0LnRleHQgOiB7Cj4gZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdGVlL3RlZS5oIGIveGVuL2luY2x1ZGUvYXNt LWFybS90ZWUvdGVlLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmZm ZDI1YjAKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS90ZWUvdGVl LmgKPiBAQCAtMCwwICsxLDEwMyBAQAo+ICsvKgo+ICsgKiB4ZW4vaW5jbHVkZS9hc20tYXJtL3Rl ZS5oCj4gKyAqCj4gKyAqIEdlbmVyaWMgcGFydCBvZiBURUUgbWVkaWF0b3Igc3Vic3lzdGVtCj4g KyAqCj4gKyAqIFZvbG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4K PiArICogQ29weXJpZ2h0IChjKSAyMDE3IEVQQU0gU3lzdGVtcy4KPiArICoKPiArICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiArICogKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KClhlbiBpcyBHUEx2MiBvbmx5LgoKPiArICoKPiArICog VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPiArICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9fQVJDSF9BUk1f VEVFX1RFRV9IX18KPiArI2RlZmluZSBfX0FSQ0hfQVJNX1RFRV9URUVfSF9fCj4gKwo+ICsjaW5j bHVkZSA8eGVuL2xpYi5oPgo+ICsjaW5jbHVkZSA8eGVuL3R5cGVzLmg+Cj4gKyNpbmNsdWRlIDxh c20vcmVncy5oPgo+ICsKPiArI2lmZGVmIENPTkZJR19URUUKPiArCj4gK3N0cnVjdCB0ZWVfbWVk aWF0b3Jfb3BzIHsKPiArICAgIC8qCj4gKyAgICAgKiBQcm9iZSBmb3IgVEVFLiBTaG91bGQgcmV0 dXJuIDAgaWYgVEVFIGZvdW5kIGFuZAo+ICsgICAgICogbWVkaWF0b3IgaXMgaW5pdGlhbGl6ZWQu Cj4gKyAgICAgKi8KPiArICAgIGludCAoKnByb2JlKSh2b2lkKTsKClRoZSBjYWxsZXIgZG9lcyBu b3QgY2FyZSBhYm91dCB0aGUgdmFsdWUgYnV0IGtub3dpbmcgdGhlcmUgd2FzIGFuIGVycm9yLiAK U28gaXQgbG9va3MgbGlrZSB0byBtZSB5b3Ugd2FudCB0byByZXR1cm4gYSBib29sZWFuIGluc3Rl YWQuCgo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBDYWxsZWQgZHVyaW5nIGRvbWFpbiBjb25zdHJ1 Y3Rpb24gc28gbWVkaWF0b3IgY2FuIGluZm9ybSBURUUgYWJvdXQgbmV3Cj4gKyAgICAgKiBndWVz dCBhbmQgY3JlYXRlIG93biBzdHJ1Y3R1cmVzIGZvciB0aGUgbmV3IGRvbWFpbi4KPiArICAgICAq Lwo+ICsgICAgaW50ICgqZG9tYWluX2NyZWF0ZSkoc3RydWN0IGRvbWFpbiAqZCk7Cj4gKwo+ICsg ICAgLyoKPiArICAgICAqIENhbGxlZCBkdXJpbmcgZG9tYWluIGRlc3RydWN0aW9uIHRvIGluZm9y bSBURUUgdGhhdCBndWVzdCBpcyBub3cgZGVhZAo+ICsgICAgICogYW5kIHRvIGRlc3Ryb3kgYWxs IHJlc291cmNlcyBhbGxvY2F0ZWQgZm9yIHRoZSBkb21haW4gYmVpbmcgZGVzdHJveWVkLgo+ICsg ICAgICovCj4gKyAgICB2b2lkICgqZG9tYWluX2Rlc3Ryb3kpKHN0cnVjdCBkb21haW4gKmQpOwo+ ICsKPiArICAgIC8qIEhhbmRsZSBTTUMgY2FsbCBmb3IgY3VycmVudCBkb21haW4uICovCj4gKyAg ICBib29sICgqaGFuZGxlX3NtYykoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpOwo+ICsKPiAr ICAgIC8qIENhbGxlZCBkdXJpbmcgWEVOIHNodXRkb3duIHRvIGZyZWUgcmVtYWluaW5nIHJlc291 cmNlcy4gKi8KPiArICAgIHZvaWQgKCpyZW1vdmUpKHZvaWQpOwo+ICt9Owo+ICsKPiArc3RydWN0 IHRlZV9tZWRpYXRvcl9kZXNjIHsKPiArICAgIC8qIE5hbWUgb2YgdGhlIFRFRS4gSnVzdCBmb3Ig ZGVidWdnaW5nIHB1cnBvc2VzLiAqLwo+ICsgICAgY29uc3QgY2hhciAqbmFtZTsKPiArCj4gKyAg ICAvKiBNZWRpYXRvciBjYWxsYmFja3MgYXMgZGVzY3JpYmVkIGFib3ZlLiAqLwo+ICsgICAgY29u c3Qgc3RydWN0IHRlZV9tZWRpYXRvcl9vcHMgKm9wczsKPiArfTsKPiArCj4gK3ZvaWQgdGVlX2lu aXQodm9pZCk7Cj4gK2Jvb2wgdGVlX2hhbmRsZV9zbWMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MpOwo+ICtpbnQgdGVlX2RvbWFpbl9jcmVhdGUoc3RydWN0IGRvbWFpbiAqZCk7Cj4gK3ZvaWQg dGVlX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpOwo+ICt2b2lkIHRlZV9yZW1vdmUo dm9pZCk7Cj4gKwo+ICsjZGVmaW5lIFJFR0lTVEVSX1RFRV9NRURJQVRPUihfbmFtZSwgX25hbWVz dHIsIF9vcHMpICAgICAgICAgIFwKPiArc3RhdGljIGNvbnN0IHN0cnVjdCB0ZWVfbWVkaWF0b3Jf ZGVzYyBfX3RlZV9kZXNjXyMjX25hbWUgX191c2VkICAgICBcCj4gK19fc2VjdGlvbigiLnRlZW1l ZGlhdG9yLmluZm8iKSA9IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsg ICAgLm5hbWUgPSBfbmFtZXN0ciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKPiArICAgIC5vcHMgPSBfb3BzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gK30KPiArCj4gKyNlbHNlCj4gKwo+ICtzdGF0 aWMgaW5saW5lIHZvaWQgdGVlX2luaXQodm9pZCkge30KPiArc3RhdGljIGlubGluZSBib29sIHRl ZV9oYW5kbGVfc21jKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQo+ICt7Cj4gKyAgICByZXR1 cm4gZmFsc2U7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgaW50IHRlZV9kb21haW5fY3JlYXRl KHN0cnVjdCBkb21haW4gKmQpCj4gK3sKPiArICAgIHJldHVybiAtRU5PREVWOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW5saW5lIHZvaWQgdGVlX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQp IHt9Cj4gK3N0YXRpYyBpbmxpbmUgdm9pZCB0ZWVfcmVtb3ZlKHZvaWQpIHt9Cj4gKwo+ICsjZW5k aWYgIC8qIENPTkZJR19URUUgKi8KPiArCj4gKyNlbmRpZiAvKiBfX0FSQ0hfQVJNX1RFRV9URUVf SF9fICovCj4gKwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiAr ICogYy1maWxlLXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiBpbmRl bnQtdGFicy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiAKCkNoZWVycywKCi0tIApKdWxp ZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=