From mboxrd@z Thu Jan 1 00:00:00 1970 From: Volodymyr Babchuk Subject: [PATCH v3 01/11] arm: add generic TEE mediator framework Date: Tue, 18 Dec 2018 21:11:46 +0000 Message-ID: <20181218211126.6886-2-volodymyr_babchuk@epam.com> References: <20181218211126.6886-1-volodymyr_babchuk@epam.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gZMeg-00051V-Qs for xen-devel@lists.xenproject.org; Tue, 18 Dec 2018 21:11:54 +0000 In-Reply-To: <20181218211126.6886-1-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: "xen-devel@lists.xenproject.org" , Julien Grall Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , "tee-dev@lists.linaro.org" , Jan Beulich , Volodymyr Babchuk List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGJhc2ljIGZyYW1ld29yayBmb3IgVEVFIG1lZGlhdG9ycy4gR3Vlc3Rz IGNhbid0IHRhbGsKdG8gVEVFIGRpcmVjdGx5LCB3ZSBuZWVkIHNvbWUgZW50aXR5IHRoYXQgd2ls bCBpbnRlcmNlcHQgcmVxdWVzdAphbmQgZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCB0aGVtLiAiVEVF IG1lZGlhdG9yIiBpcyBhIHN1Y2ggZW50aXR5LgoKVGhpcyBpcyBob3cgaXQgd29ya3M6IHVzZXIg Y2FuIGJ1aWxkIFhFTiB3aXRoIG11bHRpcGxlIFRFRSBtZWRpYXRvcnMKKHNlZSB0aGUgbmV4dCBw YXRjaGVzLCB3aGVyZSBPUC1URUUgbWVkaWF0b3IgaXMgaW50cm9kdWNlZCkuClRFRSBtZWRpYXRv ciByZWdpc3RlciBzZWxmIHdpdGggUkVHSVNURVJfVEVFX01FRElBVE9SKCkgbWFjcm8gaW4gdGhl CnNhbWUgd2F5LCBhcyBkZXZpY2UgZHJpdmVycyB1c2UgRFRfREVWSUNFX1NUQVJUKCkvRFRfREVW SUNFX0VORCgpCm1hY3Jvcy4KSW4gcnVuLXRpbWUsIGR1cmluZyBpbml0aWFsaXphdGlvbiwgZnJh bWV3b3JrIGNhbGxzIHByb2JlKCkgZnVuY3Rpb24KZm9yIGVhY2ggYXZhaWxhYmxlIG1lZGlhdG9y IGRyaXZlciB0byBmaW5kIHdoaWNoIFRFRSBpcyBpbnN0YWxsZWQKb24gdGhlIHBsYXRmb3JtLiBU aGVuIGdlbmVyaWMgdlNNQyBoYW5kbGVyIHdpbGwgY2FsbCBzZWxlY3RlZCBtZWRpYXRvcgp3aGVu IGl0IGludGVyY2VwdCBTTUMvSFZDIHRoYXQgYmVsb25ncyB0byBURUUgT1Mgb3IgVEVFIGFwcGxp Y2F0aW9uLgoKQ3VycmVudGx5IFRFRSBtZWRpYXRvciBpcyBlbmFibGVkIG9ubHkgZm9yIERvbTAu CgpTaWduZWQtb2ZmLWJ5OiBWb2xvZHlteXIgQmFiY2h1ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBh bS5jb20+Ci0tLQogQ2hhbmdlcyBmcm9tIHYyOgogIC0gUmVtb3ZlZCBlbXB0eSB0ZWUvS2NvbmZp ZyBmaWxlCgogQ2hhbmdlcyBmcm9tIHYxOgogIC0gUmVtb3ZlZCB0ZWVfcmVtb3ZlKCkgZnVuY3Rp b24KICAtIENPTkZJR19URUUgZGVwZW5kcyBvbiBFWFBFUlQKICAtIHRlZV9kb21haW5fY3JlYXRl ZCgpIGNvbnZlcnRlZCB0byB0ZWVfZW5hYmxlKCkKICAtIHRlZV9pbml0KCkgaXMgY2FsbGVkIHVz aW5nIGluaXRjYWxsKCkgbWVjaGFuaXNtCiAgLSB0ZWVfaGFuZGxlX3NtYygpIHJlbmFtZWQgdG8g dGVlX2hhbmRsZV9jYWxsKCkKCiBDaGFuZ2VzIGZyb20gIlJGQyIgdmVyc2lvbjoKICAtIHJlbmFt ZWQgQ09ORklHX0FSTV9URUUgdG8gQ09ORklHX1RFRQogIC0gY2hhbmdlZCBkaXNjb3ZlcnkgbWVj aGFuaXNtOiBpbnN0ZWFkIG9mIFVVSUQgbWF0aGluZywgVEVFLXNwZWNpZmljCiAgICAgcHJvYmlu ZyBpcyB1c2VkCgogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgfCAgNiArKysKIHhlbi9h cmNoL2FybS9LY29uZmlnICAgICAgICAgIHwgIDcgKysrCiB4ZW4vYXJjaC9hcm0vTWFrZWZpbGUg ICAgICAgICB8ICAxICsKIHhlbi9hcmNoL2FybS9kb21haW4uYyAgICAgICAgIHwgIDQgKysKIHhl bi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyAgIHwgIDQgKysKIHhlbi9hcmNoL2FybS9zZXR1cC5j ICAgICAgICAgIHwgIDEgKwogeGVuL2FyY2gvYXJtL3NodXRkb3duLmMgICAgICAgfCAgMSArCiB4 ZW4vYXJjaC9hcm0vdGVlL01ha2VmaWxlICAgICB8ICAxICsKIHhlbi9hcmNoL2FybS90ZWUvdGVl LmMgICAgICAgIHwgNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL2FybS92 c21jLmMgICAgICAgICAgIHwgIDUgKysKIHhlbi9hcmNoL2FybS94ZW4ubGRzLlMgICAgICAgIHwg IDcgKysrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3RlZS90ZWUuaCB8IDkxICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiAxMiBmaWxlcyBjaGFuZ2VkLCAxOTcgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS90ZWUvTWFrZWZpbGUKIGNyZWF0ZSBt b2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vdGVlL3RlZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2luY2x1ZGUvYXNtLWFybS90ZWUvdGVlLmgKCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01B SU5UQUlORVJTCmluZGV4IDk2YTA1MThmNDkuLmVhYzJiNDBmZGYgMTAwNjQ0Ci0tLSBhL01BSU5U QUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0zNzYsNiArMzc2LDEyIEBAIEY6CWNvbmZpZy9T dHViZG9tLm1rLmluCiBGOgltNC9zdHViZG9tLm00CiBGOglzdHViZG9tLwogCitURUUgTUVESUFU T1JTCitNOglWb2xvZHlteXIgQmFiY2h1ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20+CitT OglTdXBwb3J0ZWQKK0Y6CXhlbi9hcmNoL2FybS90ZWUvCitGOgl4ZW4vaW5jbHVkZS9hc20tYXJt L3RlZQorCiBUT09MU1RBQ0sKIE06CUlhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXgu Y29tPgogTToJV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9LY29uZmlnIGIveGVuL2FyY2gvYXJtL0tjb25maWcKaW5kZXggNTgxZGU2N2I2Yi4u ZTUyN2IyZjg4NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL0tjb25maWcKKysrIGIveGVuL2Fy Y2gvYXJtL0tjb25maWcKQEAgLTEwNSw2ICsxMDUsMTMgQEAgY29uZmlnIEhBUkRFTl9CUkFOQ0hf UFJFRElDVE9SCiAKIAkgIElmIHVuc3VyZSwgc2F5IFkuCiAKK2NvbmZpZyBURUUKKwlib29sICJF bmFibGUgVEVFIG1lZGlhdG9ycyBzdXBwb3J0IiBpZiBFWFBFUlQgPSAieSIKKwlkZWZhdWx0IG4K KwloZWxwCisJICBUaGlzIG9wdGlvbiBlbmFibGVzIGdlbmVyaWMgVEVFIG1lZGlhdG9ycyBzdXBw b3J0LiBJdCBhbGxvd3MgZ3Vlc3RzCisJICB0byBhY2Nlc3MgcmVhbCBURUUgdmlhIG9uZSBvZiBU RUUgbWVkaWF0b3JzIGltcGxlbWVudGVkIGluIFhFTi4KKwogZW5kbWVudQogCiBtZW51ICJBUk0g ZXJyYXRhIHdvcmthcm91bmQgdmlhIHRoZSBhbHRlcm5hdGl2ZSBmcmFtZXdvcmsiCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKaW5kZXgg Y2I5MDJjYjZmZS4uNWMyYWEzNDU1NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL01ha2VmaWxl CisrKyBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQpAQCAtNSw2ICs1LDcgQEAgc3ViZGlyLSQoQ09O RklHX0FDUEkpICs9IGFjcGkKIGlmbmVxICgkKENPTkZJR19OT19QTEFUKSx5KQogc3ViZGlyLXkg Kz0gcGxhdGZvcm1zCiBlbmRpZgorc3ViZGlyLSQoQ09ORklHX1RFRSkgKz0gdGVlCiAKIG9iai0k KENPTkZJR19IQVNfQUxURVJOQVRJVkUpICs9IGFsdGVybmF0aXZlLm8KIG9iai15ICs9IGJvb3Rm ZHQuaW5pdC5vCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMgYi94ZW4vYXJjaC9h cm0vZG9tYWluLmMKaW5kZXggMWQ5MjZkY2IyOS4uMTFiNjE4NTE1YiAxMDA2NDQKLS0tIGEveGVu L2FyY2gvYXJtL2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW4uYwpAQCAtMzIsNiAr MzIsNyBAQAogI2luY2x1ZGUgPGFzbS9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jaW5m by5oPgogI2luY2x1ZGUgPGFzbS9yZWdzLmg+CisjaW5jbHVkZSA8YXNtL3RlZS90ZWUuaD4KICNp bmNsdWRlIDxhc20vdmZwLmg+CiAjaW5jbHVkZSA8YXNtL3ZnaWMuaD4KICNpbmNsdWRlIDxhc20v dnRpbWVyLmg+CkBAIC05MzEsNiArOTMyLDkgQEAgaW50IGRvbWFpbl9yZWxpbnF1aXNoX3Jlc291 cmNlcyhzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAgKi8KICAgICAgICAgZG9tYWluX3ZwbDAx MV9kZWluaXQoZCk7CiAKKyAgICAgICAgLyogRnJlZSBURUUgbWVkaWF0b3IgcmVzb3VyY2VzICov CisgICAgICAgIHRlZV9kb21haW5fZGVzdHJveShkKTsKKwogICAgICAgICBkLT5hcmNoLnJlbG1l bSA9IFJFTE1FTV94ZW47CiAgICAgICAgIC8qIEZhbGx0aHJvdWdoICovCiAKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQu YwppbmRleCBiMGVjM2YwYjcyLi4zOWE4ODdiNTA1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0v ZG9tYWluX2J1aWxkLmMKKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCkBAIC0yNCw2 ICsyNCw3IEBACiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAjaW5jbHVkZSA8YXNtL2NwdWZlYXR1 cmUuaD4KICNpbmNsdWRlIDxhc20vZG9tYWluX2J1aWxkLmg+CisjaW5jbHVkZSA8YXNtL3RlZS90 ZWUuaD4KIAogI2luY2x1ZGUgPHhlbi9pcnEuaD4KICNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUu aD4KQEAgLTE5NjIsNiArMTk2Myw5IEBAIHN0YXRpYyBpbnQgX19pbml0IGNvbnN0cnVjdF9kb21h aW4oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykKICAgICBzZXRf Y3VycmVudChzYXZlZF9jdXJyZW50KTsKICAgICBwMm1fcmVzdG9yZV9zdGF0ZShzYXZlZF9jdXJy ZW50KTsKIAorICAgIC8qIEVuYWJsZSBURUUgKi8KKyAgICB0ZWVfZW5hYmxlKGQpOworCiAgICAg bWVtc2V0KHJlZ3MsIDAsIHNpemVvZigqcmVncykpOwogCiAgICAgcmVncy0+cGMgPSAocmVnaXN0 ZXJfdClraW5mby0+ZW50cnk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vc2V0dXAuYyBiL3hl bi9hcmNoL2FybS9zZXR1cC5jCmluZGV4IGU4MzIyMWFiNzkuLmNhZDU2OGQ0MzIgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL2FybS9zZXR1cC5jCisrKyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCkBAIC00 OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8YXNtL3BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8YXNtL3By b2NpbmZvLmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL3RlZS90ZWUu aD4KICNpbmNsdWRlIDx4c20veHNtLmg+CiAjaW5jbHVkZSA8YXNtL2FjcGkuaD4KIApkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL3NodXRkb3duLmMgYi94ZW4vYXJjaC9hcm0vc2h1dGRvd24uYwpp bmRleCBiMzJmMDdlYzBlLi4zMGM2OTUwNmZmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vc2h1 dGRvd24uYworKysgYi94ZW4vYXJjaC9hcm0vc2h1dGRvd24uYwpAQCAtNSw2ICs1LDcgQEAKICNp bmNsdWRlIDx4ZW4vc21wLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8 YXNtL3BzY2kuaD4KKyNpbmNsdWRlIDxhc20vdGVlL3RlZS5oPgogCiBzdGF0aWMgdm9pZCBub3Jl dHVybiBoYWx0X3RoaXNfY3B1KHZvaWQgKmFyZykKIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy bS90ZWUvTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vdGVlL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM1NGQ0Nzk2ZmYKLS0tIC9kZXYvbnVsbAorKysgYi94 ZW4vYXJjaC9hcm0vdGVlL01ha2VmaWxlCkBAIC0wLDAgKzEgQEAKK29iai15ICs9IHRlZS5vCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL3RlZS5jIGIveGVuL2FyY2gvYXJtL3RlZS90ZWUu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43ZmQwMTQ4YjhhCi0tLSAv ZGV2L251bGwKKysrIGIveGVuL2FyY2gvYXJtL3RlZS90ZWUuYwpAQCAtMCwwICsxLDY5IEBACisv KgorICogeGVuL2FyY2gvYXJtL3RlZS90ZWUuYworICoKKyAqIEdlbmVyaWMgcGFydCBvZiBURUUg bWVkaWF0b3Igc3Vic3lzdGVtCisgKgorICogVm9sb2R5bXlyIEJhYmNodWsgPHZvbG9keW15cl9i YWJjaHVrQGVwYW0uY29tPgorICogQ29weXJpZ2h0IChjKSAyMDE4IEVQQU0gU3lzdGVtcy4KKyAq CisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDx4ZW4vaW5pdC5oPgorI2luY2x1 ZGUgPHhlbi9lcnJuby5oPgorI2luY2x1ZGUgPHhlbi90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS90 ZWUvdGVlLmg+CisKK2V4dGVybiBjb25zdCBzdHJ1Y3QgdGVlX21lZGlhdG9yX2Rlc2MgX3N0ZWVt ZWRpYXRvcltdLCBfZXRlZW1lZGlhdG9yW107CitzdGF0aWMgY29uc3Qgc3RydWN0IHRlZV9tZWRp YXRvcl9vcHMgKm1lZGlhdG9yX29wczsKKworYm9vbCB0ZWVfaGFuZGxlX2NhbGwoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpCit7CisgICAgaWYgKCAhbWVkaWF0b3Jfb3BzICkKKyAgICAgICAg cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhdG9yX29wcy0+aGFuZGxlX2NhbGwocmVn cyk7Cit9CisKK2ludCB0ZWVfZW5hYmxlKHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgaWYgKCAh bWVkaWF0b3Jfb3BzICkKKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7CisKKyAgICByZXR1cm4gbWVk aWF0b3Jfb3BzLT5lbmFibGUoZCk7Cit9CisKK3ZvaWQgdGVlX2RvbWFpbl9kZXN0cm95KHN0cnVj dCBkb21haW4gKmQpCit7CisgICAgaWYgKCAhbWVkaWF0b3Jfb3BzICkKKyAgICAgICAgcmV0dXJu OworCisgICAgcmV0dXJuIG1lZGlhdG9yX29wcy0+ZG9tYWluX2Rlc3Ryb3koZCk7Cit9CisKK3N0 YXRpYyBpbnQgX19pbml0IHRlZV9pbml0KHZvaWQpCit7CisgICAgY29uc3Qgc3RydWN0IHRlZV9t ZWRpYXRvcl9kZXNjICpkZXNjOworCisgICAgZm9yICggZGVzYyA9IF9zdGVlbWVkaWF0b3I7IGRl c2MgIT0gX2V0ZWVtZWRpYXRvcjsgZGVzYysrICkKKyAgICAgICAgaWYgKCBkZXNjLT5vcHMtPnBy b2JlKCkgKQorICAgICAgICB7CisgICAgICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIlVzaW5n IFRFRSBtZWRpYXRvciBmb3IgJXNcbiIsIGRlc2MtPm5hbWUpOworICAgICAgICAgICAgbWVkaWF0 b3Jfb3BzID0gZGVzYy0+b3BzOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAg ICByZXR1cm4gMDsKK30KKworX19pbml0Y2FsbCh0ZWVfaW5pdCk7CisKKy8qCisgKiBMb2NhbCB2 YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2lj LW9mZnNldDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAt LWdpdCBhL3hlbi9hcmNoL2FybS92c21jLmMgYi94ZW4vYXJjaC9hcm0vdnNtYy5jCmluZGV4IGM0 Y2NhZTYwMzAuLmQwMTk5Yzc4NzQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92c21jLmMKKysr IGIveGVuL2FyY2gvYXJtL3ZzbWMuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPGFzbS9t b25pdG9yLmg+CiAjaW5jbHVkZSA8YXNtL3JlZ3MuaD4KICNpbmNsdWRlIDxhc20vc21jY2MuaD4K KyNpbmNsdWRlIDxhc20vdGVlL3RlZS5oPgogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgogI2luY2x1 ZGUgPGFzbS92cHNjaS5oPgogCkBAIC0yNzIsNiArMjczLDEwIEBAIHN0YXRpYyBib29sIHZzbWNj Y19oYW5kbGVfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgY2FzZSBB Uk1fU01DQ0NfT1dORVJfU1RBTkRBUkQ6CiAgICAgICAgICAgICBoYW5kbGVkID0gaGFuZGxlX3Nz c2MocmVncyk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBUk1fU01DQ0NfT1dO RVJfVFJVU1RFRF9BUFAgLi4uIEFSTV9TTUNDQ19PV05FUl9UUlVTVEVEX0FQUF9FTkQ6CisgICAg ICAgIGNhc2UgQVJNX1NNQ0NDX09XTkVSX1RSVVNURURfT1MgLi4uIEFSTV9TTUNDQ19PV05FUl9U UlVTVEVEX09TX0VORDoKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0ZWVfaGFuZGxlX2NhbGwocmVn cyk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEv eGVuL2FyY2gvYXJtL3hlbi5sZHMuUyBiL3hlbi9hcmNoL2FybS94ZW4ubGRzLlMKaW5kZXggMWU3 MjkwNjQ3Ny4uZTY2NGM0NDQxYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3hlbi5sZHMuUwor KysgYi94ZW4vYXJjaC9hcm0veGVuLmxkcy5TCkBAIC0xMzcsNiArMTM3LDEzIEBAIFNFQ1RJT05T CiAgICAgICBfYWVkZXZpY2UgPSAuOwogICB9IDp0ZXh0CiAKKyAgLiA9IEFMSUdOKDgpOworICAu dGVlbWVkaWF0b3IuaW5mbyA6IHsKKyAgICAgIF9zdGVlbWVkaWF0b3IgPSAuOworICAgICAgKigu dGVlbWVkaWF0b3IuaW5mbykKKyAgICAgIF9ldGVlbWVkaWF0b3IgPSAuOworICB9IDp0ZXh0CisK ICAgLiA9IEFMSUdOKFBBR0VfU0laRSk7ICAgICAgICAgICAgIC8qIEluaXQgY29kZSBhbmQgZGF0 YSAqLwogICBfX2luaXRfYmVnaW4gPSAuOwogICAuaW5pdC50ZXh0IDogewpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLWFybS90ZWUvdGVlLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3RlZS90 ZWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wZThiNTc2MzcyCi0t LSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS90ZWUvdGVlLmgKQEAgLTAsMCAr MSw5MSBAQAorLyoKKyAqIHhlbi9pbmNsdWRlL2FzbS1hcm0vdGVlL3RlZS5oCisgKgorICogR2Vu ZXJpYyBwYXJ0IG9mIFRFRSBtZWRpYXRvciBzdWJzeXN0ZW0KKyAqCisgKiBWb2xvZHlteXIgQmFi Y2h1ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDIwMTgg RVBBTSBTeXN0ZW1zLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2lmbmRlZiBfX0FS Q0hfQVJNX1RFRV9URUVfSF9fCisjZGVmaW5lIF9fQVJDSF9BUk1fVEVFX1RFRV9IX18KKworI2lu Y2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20v cmVncy5oPgorCisjaWZkZWYgQ09ORklHX1RFRQorCitzdHJ1Y3QgdGVlX21lZGlhdG9yX29wcyB7 CisgICAgLyoKKyAgICAgKiBQcm9iZSBmb3IgVEVFLiBTaG91bGQgcmV0dXJuIHRydWUgaWYgVEVF IGZvdW5kIGFuZAorICAgICAqIG1lZGlhdG9yIGlzIGluaXRpYWxpemVkLgorICAgICAqLworICAg IGJvb2wgKCpwcm9iZSkodm9pZCk7CisKKyAgICAvKgorICAgICAqIENhbGxlZCBkdXJpbmcgZG9t YWluIGNvbnN0cnVjdGlvbiBpZiB0b29sc3RhY2sgcmVxdWVzdHMgdG8gZW5hYmxlCisgICAgICog VEVFIHN1cHBvcnQgc28gbWVkaWF0b3IgY2FuIGluZm9ybSBURUUgYWJvdXQgbmV3CisgICAgICog Z3Vlc3QgYW5kIGNyZWF0ZSBvd24gc3RydWN0dXJlcyBmb3IgdGhlIG5ldyBkb21haW4uCisgICAg ICovCisgICAgaW50ICgqZW5hYmxlKShzdHJ1Y3QgZG9tYWluICpkKTsKKworICAgIC8qCisgICAg ICogQ2FsbGVkIGR1cmluZyBkb21haW4gZGVzdHJ1Y3Rpb24gdG8gaW5mb3JtIFRFRSB0aGF0IGd1 ZXN0IGlzIG5vdyBkZWFkCisgICAgICogYW5kIHRvIGRlc3Ryb3kgYWxsIHJlc291cmNlcyBhbGxv Y2F0ZWQgZm9yIHRoZSBkb21haW4gYmVpbmcgZGVzdHJveWVkLgorICAgICAqLworICAgIHZvaWQg KCpkb21haW5fZGVzdHJveSkoc3RydWN0IGRvbWFpbiAqZCk7CisKKyAgICAvKiBIYW5kbGUgU01D Q0MgY2FsbCBmb3IgY3VycmVudCBkb21haW4uICovCisgICAgYm9vbCAoKmhhbmRsZV9jYWxsKShz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7Cit9OworCitzdHJ1Y3QgdGVlX21lZGlhdG9yX2Rl c2MgeworICAgIC8qIE5hbWUgb2YgdGhlIFRFRS4gSnVzdCBmb3IgZGVidWdnaW5nIHB1cnBvc2Vz LiAqLworICAgIGNvbnN0IGNoYXIgKm5hbWU7CisKKyAgICAvKiBNZWRpYXRvciBjYWxsYmFja3Mg YXMgZGVzY3JpYmVkIGFib3ZlLiAqLworICAgIGNvbnN0IHN0cnVjdCB0ZWVfbWVkaWF0b3Jfb3Bz ICpvcHM7Cit9OworCitib29sIHRlZV9oYW5kbGVfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncyk7CitpbnQgdGVlX2VuYWJsZShzdHJ1Y3QgZG9tYWluICpkKTsKK3ZvaWQgdGVlX2RvbWFp bl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpOworCisjZGVmaW5lIFJFR0lTVEVSX1RFRV9NRURJ QVRPUihfbmFtZSwgX25hbWVzdHIsIF9vcHMpICAgICAgICAgIFwKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgdGVlX21lZGlhdG9yX2Rlc2MgX190ZWVfZGVzY18jI19uYW1lIF9fdXNlZCAgICAgXAorX19z ZWN0aW9uKCIudGVlbWVkaWF0b3IuaW5mbyIpID0geyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgLm5hbWUgPSBfbmFtZXN0ciwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAub3BzID0gX29wcyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisjZWxzZQorCitzdGF0 aWMgaW5saW5lIGJvb2wgdGVlX2hhbmRsZV9jYWxsKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGlubGluZSBpbnQgdGVlX2VuYWJs ZShzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHJldHVybiAtRU5PREVWOworfQorCitzdGF0aWMg aW5saW5lIHZvaWQgdGVlX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpIHt9CisKKyNl bmRpZiAgLyogQ09ORklHX1RFRSAqLworCisjZW5kaWYgLyogX19BUkNIX0FSTV9URUVfVEVFX0hf XyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0 eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5p bAorICogRW5kOgorICovCi0tIAoyLjIwLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=