From mboxrd@z Thu Jan 1 00:00:00 1970 From: Volodymyr Babchuk Subject: [PATCH v5 06/10] arm: smccc: handle SMCs according to SMCCC Date: Thu, 31 Aug 2017 23:09:28 +0300 Message-ID: <1504210172-27234-7-git-send-email-volodymyr_babchuk@epam.com> References: <1504210172-27234-1-git-send-email-volodymyr_babchuk@epam.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1504210172-27234-1-git-send-email-volodymyr_babchuk@epam.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: "Edgar E . Iglesias" , Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Volodymyr Babchuk List-Id: xen-devel@lists.xenproject.org U01DQ0MgKFNNQyBDYWxsIENvbnZlbnRpb24pIGRlc2NyaWJlcyBob3cgdG8gaGFuZGxlIGJvdGgg SFZDcyBhbmQgU01Dcy4KU01DQ0Mgc3RhdGVzIHRoYXQgYm90aCBIVkMgYW5kIFNNQyBhcmUgdmFs aWQgY29uZHVpdHMgdG8gY2FsbCB0byBkaWZmZXJlbnQKZmlybXdhcmUgZnVuY3Rpb25zLiBUaHVz LCBmb3IgZXhhbXBsZSwgUFNDSSBjYWxscyBjYW4gYmUgbWFkZSBib3RoIGJ5ClNNQyBvciBIVkMu IEFsc28gU01DQ0MgZGVmaW5lcyBmdW5jdGlvbiBudW1iZXIgY29kaW5nIGZvciBzdWNoIGNhbGxz LgpCZXNpZGVzIGZ1bmN0aW9uYWwgY2FsbHMgdGhlcmUgYXJlIHF1ZXJ5IGNhbGxzLCB3aGljaCBh bGxvd3MgdW5kZXJsaW5nCk9TIGRldGVybWluZSB2ZXJzaW9uLCBVVUlEIGFuZCBudW1iZXIgb2Yg ZnVuY3Rpb25zIHByb3ZpZGVkIGJ5IHNlcnZpY2UKcHJvdmlkZXIuCgpUaGlzIHBhdGNoIGFkZHMg bmV3IGZpbGUgYHZzbWMuY2AsIHdoaWNoIGhhbmRsZXMgYm90aCBnZW5lcmljIFNNQ3MKYW5kIEhW QyBhY2NvcmRpbmcgdG8gU01DQ0MuIEF0IHRoaXMgbW9tZW50IGl0IGltcGxlbWVudHMgb25seSBv bmUKc2VydmljZTogU3RhbmRhcmQgSHlwZXJ2aXNvciBTZXJ2aWNlLgoKQXQgdGhpcyB0aW1lIFN0 YW5kYXJkIEh5cGVydmlzb3IgU2VydmljZSBvbmx5IHN1cHBvcnRzIHF1ZXJ5IGNhbGxzLApzbyBj YWxsZXIgY2FuIGFzayBhYm91dCBoeXBlcnZpc29yIFVJRCBhbmQgZGV0ZXJtaW5lIHRoYXQgaXQg aXMgWEVOIHJ1bm5pbmcuCgpUaGlzIGNoYW5nZSBhbGxvd3MgbW9yZSBnZW5lcmljIGhhbmRsaW5n IGZvciBTTUNzIGFuZCBIVkNzIGFuZCBpdCBjYW4KYmUgZWFzaWx5IGV4dGVuZGVkIHRvIHN1cHBv cnQgbmV3IHNlcnZpY2VzIGFuZCBmdW5jdGlvbnMuCgpCdXQsIGJlZm9yZSBTTUMgaXMgZm9yd2Fy ZGVkIHRvIHN0YW5kYXJkIFNNQ0NDIGhhbmRsZXIsIGl0IGNhbiBiZSByb3V0ZWQKdG8gYSBkb21h aW4gbW9uaXRvciwgaWYgb25lIGlzIGluc3RhbGxlZC4KClNpZ25lZC1vZmYtYnk6IFZvbG9keW15 ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4KUmV2aWV3ZWQtYnk6IE9sZWtz YW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVzaGNoZW5rb0BlcGFtLmNvbT4KUmV2 aWV3ZWQtYnk6IE9sZWtzYW5kciBUeXNoY2hlbmtvIDxvbGVrc2FuZHJfdHlzaGNoZW5rb0BlcGFt LmNvbT4KLS0tCgogKiByZXdvcmtlZCBmaWxsX3V1aWQoKSBmdW5jdGlvbgogKiBkcm9wcGVkIHZz bWMuaCBoZWFkZXIuIEZ1bmN0aW9uIHByb3RvdHlwZXMgbW92ZWQgdG8gdHJhcHMuaAogKiBwdWJs aWMvYXJjaC1hcm0vc21jLmggaGVhZGVyIHJlbmFtZWQgdG8gc21jY2MuaAogKiBpbnRyb2R1Y2Vk IGByZWdpc3Rlcl90IGZ1bmNpZGAgaW4gdnNtY2NjX2hhbmRsZV9jYWxsKCl4CiAqIHNwZWxsaW5n IGZpeGVzCiAqIGNvZGluZyBzdHlsZSBmaXhlcwoKLS0tCnhlbi9hcmNoL2FybS9NYWtlZmlsZSAg ICAgICAgICAgICAgIHwgICAxICsKIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAgICAg IHwgIDE3IC0tLS0KIHhlbi9hcmNoL2FybS92c21jLmMgICAgICAgICAgICAgICAgIHwgMTY4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLWFybS90 cmFwcy5oICAgICAgICAgfCAgIDMgKwogeGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtL3NtY2Nj LmggfCAgNTggKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygr KSwgMTcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL3ZzbWMu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS9zbWNjYy5o CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL01ha2VmaWxlIGIveGVuL2FyY2gvYXJtL01ha2Vm aWxlCmluZGV4IGRlMDBjNWUuLjNkN2RkZTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9NYWtl ZmlsZQorKysgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTUxLDYgKzUxLDcgQEAgb2JqLSQo Q09ORklHX0hBU19HSUNWMykgKz0gdmdpYy12My5vCiBvYmotJChDT05GSUdfSEFTX0lUUykgKz0g dmdpYy12My1pdHMubwogb2JqLXkgKz0gdm1fZXZlbnQubwogb2JqLXkgKz0gdnRpbWVyLm8KK29i ai15ICs9IHZzbWMubwogb2JqLXkgKz0gdnBzY2kubwogb2JqLXkgKz0gdnVhcnQubwogCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCmluZGV4 IDkxMzJmZTEuLmYzYjY0YjQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS90cmFwcy5jCisrKyBi L3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0yMTU1LDIzICsyMTU1LDYgQEAgc3RhdGljIHZvaWQg ZG9fdHJhcF9kYXRhX2Fib3J0X2d1ZXN0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLAogICAg IGluamVjdF9kYWJ0X2V4Y2VwdGlvbihyZWdzLCBpbmZvLmd2YSwgaHNyLmxlbik7CiB9CiAKLXN0 YXRpYyB2b2lkIGRvX3RyYXBfc21jKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCBjb25zdCB1 bmlvbiBoc3IgaHNyKQotewotICAgIGludCByYyA9IDA7Ci0KLSAgICBpZiAoICFjaGVja19jb25k aXRpb25hbF9pbnN0cihyZWdzLCBoc3IpICkKLSAgICB7Ci0gICAgICAgIGFkdmFuY2VfcGMocmVn cywgaHNyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICggY3VycmVudC0+ZG9t YWluLT5hcmNoLm1vbml0b3IucHJpdmlsZWdlZF9jYWxsX2VuYWJsZWQgKQotICAgICAgICByYyA9 IG1vbml0b3Jfc21jKCk7Ci0KLSAgICBpZiAoIHJjICE9IDEgKQotICAgICAgICBpbmplY3RfdW5k ZWZfZXhjZXB0aW9uKHJlZ3MsIGhzcik7Ci19Ci0KIHN0YXRpYyB2b2lkIGVudGVyX2h5cGVydmlz b3JfaGVhZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKICAgICBpZiAoIGd1ZXN0X21v ZGUocmVncykgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZzbWMuYyBiL3hlbi9hcmNoL2Fy bS92c21jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdhNmJlMwotLS0g L2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL2FybS92c21jLmMKQEAgLTAsMCArMSwxNjggQEAKKy8q CisgKiB4ZW4vYXJjaC9hcm0vdnNtYy5jCisgKgorICogR2VuZXJpYyBoYW5kbGVyIGZvciBTTUMg YW5kIEhWQyBjYWxscyBhY2NvcmRpbmcgdG8KKyAqIEFSTSBTTUMgY2FsbGluZyBjb252ZW50aW9u CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisK KworI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KKyNpbmNsdWRl IDxwdWJsaWMvYXJjaC1hcm0vc21jY2MuaD4KKyNpbmNsdWRlIDxhc20vbW9uaXRvci5oPgorI2lu Y2x1ZGUgPGFzbS9yZWdzLmg+CisjaW5jbHVkZSA8YXNtL3NtY2NjLmg+CisjaW5jbHVkZSA8YXNt L3RyYXBzLmg+CisKKy8qIE51bWJlciBvZiBmdW5jdGlvbnMgY3VycmVudGx5IHN1cHBvcnRlZCBi eSBIeXBlcnZpc29yIFNlcnZpY2UuICovCisjZGVmaW5lIFhFTl9TTUNDQ19GVU5DVElPTl9DT1VO VCAzCisKK3N0YXRpYyB2b2lkIGZpbGxfdXVpZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywg Y29uc3QgeGVuX3V1aWRfdCAqdSkKK3sKKyAgICBpbnQgbjsKKworICAgIC8qCisgICAgICogVVVJ RHMgYXJlIHJldHVybmVkIGluIHJlZ2lzdGVycyByMC4ucjMsIGZvdXIgYnl0ZXMgcGVyIHJlZ2lz dGVyLAorICAgICAqIGZpcnN0IGJ5dGUgaXMgc3RvcmVkIGluIGxvdy1vcmRlciBiaXRzIG9mIGEg cmVnaXN0ZXIuCisgICAgICogKEFSTSBERU4gMDAyOEIgcGFnZSAxNCkKKyAgICAgKi8KKyAgICBm b3IgKG4gPSAwOyBuIDwgNDsgbisrKQorICAgIHsKKyAgICAgICAgY29uc3QgdWludDhfdCAqYnl0 ZXMgPSB1LT5hICsgbiAqIDQ7CisgICAgICAgIHVpbnQzMl90IHI7CisKKyAgICAgICAgciA9IGJ5 dGVzWzBdOworICAgICAgICByIHw9IGJ5dGVzWzFdIDw8IDg7CisgICAgICAgIHIgfD0gYnl0ZXNb Ml0gPDwgMTY7CisgICAgICAgIHIgfD0gYnl0ZXNbM10gPDwgMjQ7CisKKyAgICAgICAgc2V0X3Vz ZXJfcmVnKHJlZ3MsIG4sIHIpOworICAgIH0KK30KKworLyogU01DQ0MgaW50ZXJmYWNlIGZvciBo eXBlcnZpc29yLiBUZWxsIGFib3V0IGl0c2VsZi4gKi8KK3N0YXRpYyBib29sIGhhbmRsZV9oeXBl cnZpc29yKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQoreworICAgIHN0YXRpYyBjb25zdCB4 ZW5fdXVpZF90IHhlbl91dWlkID0gWEVOX1NNQ0NDX1VJRDsKKworICAgIHN3aXRjaCAoIHNtY2Nj X2dldF9mbihnZXRfdXNlcl9yZWcocmVncywgMCkpICkKKyAgICB7CisgICAgY2FzZSBBUk1fU01D Q0NfRlVOQ19DQUxMX0NPVU5UOgorICAgICAgICBzZXRfdXNlcl9yZWcocmVncywgMCwgWEVOX1NN Q0NDX0ZVTkNUSU9OX0NPVU5UKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBBUk1f U01DQ0NfRlVOQ19DQUxMX1VJRDoKKyAgICAgICAgZmlsbF91dWlkKHJlZ3MsICZ4ZW5fdXVpZCk7 CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgQVJNX1NNQ0NDX0ZVTkNfQ0FMTF9SRVZJ U0lPTjoKKyAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDAsIFhFTl9TTUNDQ19NQUpPUl9SRVZJ U0lPTik7CisgICAgICAgIHNldF91c2VyX3JlZyhyZWdzLCAxLCBYRU5fU01DQ0NfTUlOT1JfUkVW SVNJT04pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgfQorfQorCisvKgorICogdnNtY2NjX2hhbmRsZV9jYWxsKCkgLSBoYW5k bGUgU01DL0hWQyBjYWxsIGFjY29yZGluZyB0byBBUk0gU01DQ0MuCisgKiByZXR1cm5zIHRydWUg aWYgdGhhdCB3YXMgdmFsaWQgU01DQ0MgY2FsbCAoZXZlbiBpZiBmdW5jdGlvbiBudW1iZXIKKyAq IHdhcyB1bmtub3duKS4KKyAqLworc3RhdGljIGJvb2wgdnNtY2NjX2hhbmRsZV9jYWxsKHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzKQoreworICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOworICAg IGNvbnN0IHVuaW9uIGhzciBoc3IgPSB7IC5iaXRzID0gcmVncy0+aHNyIH07CisgICAgcmVnaXN0 ZXJfdCBmdW5jaWQgPSBnZXRfdXNlcl9yZWcocmVncywgMCk7CisKKyAgICAvKgorICAgICAqIENo ZWNrIGltbWVkaWF0ZSB2YWx1ZSBmb3IgSFZDMzIsIEhWQzY0IGFuZCBTTUM2NC4KKyAgICAgKiBJ dCBpcyBub3Qgc28gZWFzeSB0byBjaGVjayBpbW1lZGlhdGUgdmFsdWUgZm9yIFNNQzMyLAorICAg ICAqIGJlY2F1c2UgaXQgaXMgbm90IHN0b3JlZCBpbiBIU1IuSVNTIGZpZWxkLiBUbyBnZXQgaW1t ZWRpYXRlCisgICAgICogdmFsdWUgd2UgbmVlZCB0byBkaXNhc3NlbWJsZSBpbnN0cnVjdGlvbiBh dCBjdXJyZW50IHBjLCB3aGljaAorICAgICAqIGlzIGV4cGVuc2l2ZS4gU28gd2Ugd2lsbCBhc3N1 bWUgdGhhdCBpdCBpcyAweDAuCisgICAgICovCisgICAgc3dpdGNoICggaHNyLmVjICkKKyAgICB7 CisgICAgY2FzZSBIU1JfRUNfSFZDMzI6CisgICAgY2FzZSBIU1JfRUNfSFZDNjQ6CisgICAgY2Fz ZSBIU1JfRUNfU01DNjQ6CisgICAgICAgIGlmICggKGhzci5pc3MgJiBIU1JfWFhDX0lNTV9NQVNL KSAhPSAwKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBj YXNlIEhTUl9FQ19TTUMzMjoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qIDY0IGJpdCBjYWxscyBhcmUgYWxsb3dlZCBv bmx5IGZyb20gNjQgYml0IGRvbWFpbnMuICovCisgICAgaWYgKCBzbWNjY19pc19jb252XzY0KGZ1 bmNpZCkgJiYgaXNfMzJiaXRfZG9tYWluKGN1cnJlbnQtPmRvbWFpbikgKQorICAgIHsKKyAgICAg ICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDAsIEFSTV9TTUNDQ19FUlJfVU5LTk9XTl9GVU5DVElPTik7 CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHN3aXRjaCAoIHNtY2NjX2dldF9v d25lcihmdW5jaWQpICkKKyAgICB7CisgICAgY2FzZSBBUk1fU01DQ0NfT1dORVJfSFlQRVJWSVNP UjoKKyAgICAgICAgaGFuZGxlZCA9IGhhbmRsZV9oeXBlcnZpc29yKHJlZ3MpOworICAgICAgICBi cmVhazsKKyAgICB9CisKKyAgICBpZiAoICFoYW5kbGVkICkKKyAgICB7CisgICAgICAgIGdwcmlu dGsoWEVOTE9HX0lORk8sICJVbmhhbmRsZWQgU01DL0hWQzogJTA4IlBSSXJlZ2lzdGVyIlxuIiwg ZnVuY2lkKTsKKworICAgICAgICAvKiBJbmZvcm0gY2FsbGVyIHRoYXQgZnVuY3Rpb24gaXMgbm90 IHN1cHBvcnRlZC4gKi8KKyAgICAgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDAsIEFSTV9TTUNDQ19F UlJfVU5LTk9XTl9GVU5DVElPTik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv aWQgZG9fdHJhcF9zbWMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGNvbnN0IHVuaW9uIGhz ciBoc3IpCit7CisgICAgaW50IHJjID0gMDsKKworICAgIGlmICggIWNoZWNrX2NvbmRpdGlvbmFs X2luc3RyKHJlZ3MsIGhzcikgKQorICAgIHsKKyAgICAgICAgYWR2YW5jZV9wYyhyZWdzLCBoc3Ip OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogSWYgbW9uaXRvciBpcyBlbmFibGVk LCBsZXQgaXQgaGFuZGxlIHRoZSBjYWxsLiAqLworICAgIGlmICggY3VycmVudC0+ZG9tYWluLT5h cmNoLm1vbml0b3IucHJpdmlsZWdlZF9jYWxsX2VuYWJsZWQgKQorICAgICAgICByYyA9IG1vbml0 b3Jfc21jKCk7CisKKyAgICBpZiAoIHJjID09IDEgKQorICAgICAgICByZXR1cm47CisKKyAgICAv KgorICAgICAqIFVzZSBzdGFuZGFyZCByb3V0aW5lcyB0byBoYW5kbGUgdGhlIGNhbGwuCisgICAg ICogdnNtY2NjX2hhbmRsZV9jYWxsKCkgd2lsbCByZXR1cm4gZmFsc2UgaWYgdGhpcyBjYWxsIGlz IG5vdAorICAgICAqIFNNQ0NDIGNvbXBhdGlibGUgKGUuZy4gaW1tZWRpYXRlIHZhbHVlICE9IDAp LiBBcyBpdCBpcyBub3QKKyAgICAgKiBjb21wYXRpYmxlLCB3ZSBjYW4ndCBiZSBzdXJlIHRoYXQg Z3Vlc3Qgd2lsbCB1bmRlcnN0YW5kCisgICAgICogQVJNX1NNQ0NDX0VSUl9VTktOT1dOX0ZVTkNU SU9OLgorICAgICAqLworICAgIGlmICggdnNtY2NjX2hhbmRsZV9jYWxsKHJlZ3MpICkKKyAgICAg ICAgYWR2YW5jZV9wYyhyZWdzLCBoc3IpOworICAgIGVsc2UKKyAgICAgICAgaW5qZWN0X3VuZGVm X2V4Y2VwdGlvbihyZWdzLCBoc3IpOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICog bW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAq IGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20tYXJtL3RyYXBzLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3RyYXBzLmgKaW5kZXgg Zjg4Y2JmNi4uNmVmZDFjNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS90cmFwcy5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vdHJhcHMuaApAQCAtMzEsNiArMzEsOSBAQCB2b2lk IGRvX2NwMTRfNjQoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGNvbnN0IHVuaW9uIGhzciBo c3IpOwogdm9pZCBkb19jcDE0X2RiZyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgY29uc3Qg dW5pb24gaHNyIGhzcik7CiB2b2lkIGRvX2NwKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCBj b25zdCB1bmlvbiBoc3IgaHNyKTsKIAorLyogU01DQ0MgaGFuZGxpbmcgKi8KK3ZvaWQgZG9fdHJh cF9zbWMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGNvbnN0IHVuaW9uIGhzciBoc3IpOwor CiAjZW5kaWYgLyogX19BU01fQVJNX1RSQVBTX18gKi8KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6 CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0vc21jY2MuaCBiL3hlbi9p bmNsdWRlL3B1YmxpYy9hcmNoLWFybS9zbWNjYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmExZDAwYWUKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv YXJjaC1hcm0vc21jY2MuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogc21jY2MuaAorICoKKyAq IFNNQy9IVkMgaW50ZXJmYWNlIGluIGFjY29yZGFuY2Ugd2l0aCBTTUMgQ2FsbGluZyBDb252ZW50 aW9uLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICog ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdh cmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElO IFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQgMjAxNyAoQykgRVBBTSBTeXN0ZW1zCisg Ki8KKworI2lmbmRlZiBfX1hFTl9QVUJMSUNfQVJDSF9BUk1fU01DQ0NfSF9fCisjZGVmaW5lIF9f WEVOX1BVQkxJQ19BUkNIX0FSTV9TTUNDQ19IX18KKworI2luY2x1ZGUgInB1YmxpYy94ZW4uaCIK KworLyoKKyAqIEh5cGVydmlzb3IgU2VydmljZSB2ZXJzaW9uLgorICoKKyAqIFdlIGNhbid0IHVz ZSBYRU4gdmVyc2lvbiBoZXJlLCBiZWNhdXNlIG9mIFNNQ0NDIHJlcXVpcmVtZW50czoKKyAqIE1h am9yIHJldmlzaW9uIHNob3VsZCBjaGFuZ2UgZXZlcnkgdGltZSBTTUMvSFZDIGZ1bmN0aW9uIGlz IHJlbW92ZWQuCisgKiBNaW5vciByZXZpc2lvbiBzaG91bGQgY2hhbmdlIGV2ZXJ5IHRpbWUgU01D L0hWQyBmdW5jdGlvbiBpcyBhZGRlZC4KKyAqIFNvLCBpdCBpcyBTTUNDQyBwcm90b2NvbCByZXZp c2lvbiBjb2RlLCBub3QgWEVOIHZlcnNpb24uCisgKgorICogVGhvc2UgdmFsdWVzIGFyZSBzdWJq ZWN0ZWQgdG8gY2hhbmdlLCB3aGVuIGludGVyZmFjZSB3aWxsIGJlIGV4dGVuZGVkLgorICovCisj ZGVmaW5lIFhFTl9TTUNDQ19NQUpPUl9SRVZJU0lPTiAwCisjZGVmaW5lIFhFTl9TTUNDQ19NSU5P Ul9SRVZJU0lPTiAxCisKKy8qIEh5cGVydmlzb3IgU2VydmljZSBVSUQuIFJhbmRvbWx5IGdlbmVy YXRlZCB3aXRoIHV1aWRnZW4uICovCisjZGVmaW5lIFhFTl9TTUNDQ19VSUQgWEVOX0RFRklORV9V VUlEKDB4YTcxODEyZGMsIDB4YzY5OCwgMHg0MzY5LCAweDlhY2YsIFwKKwkJCQkgICAgICAweDc5 LCAweGQxLCAweDhkLCAweGRlLCAweGU2LCAweDY3KQorCisjZW5kaWYgLyogX19YRU5fUFVCTElD X0FSQ0hfQVJNX1NNQ0NDX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9k ZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGlu ZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOmIKKyAqLwotLSAKMi43LjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK