From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v2 3/3] xen/arm: vpsci: Move PSCI function dispatching from vsmc.c to vpsci.c Date: Fri, 2 Feb 2018 11:41:50 +0000 Message-ID: <20180202114150.23817-4-julien.grall@linaro.org> References: <20180202114150.23817-1-julien.grall@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180202114150.23817-1-julien.grall@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, volodymyr_babchuk@epam.com, andre.przywara@linaro.org, Julien Grall List-Id: xen-devel@lists.xenproject.org QXQgdGhlIG1vbWVudCBQU0NJIGZ1bmN0aW9uIGRpc3BhdGNoaW5nIGlzIGRvbmUgaW4gdnNtYy5j IGFuZCB0aGUKZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gaW4gdnBzY2kuYy4gU29tZSBiaXRzIG9m IHRoZSBpbXBsZW1lbnRhdGlvbiBpcwpldmVuIGRvbmUgaW4gdnNtYy5jIChzZWUgUFNDSV9TWVNU RU1fUkVTRVQpLgoKVGhpcyBtZWFucyB0aGF0IGl0IGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgdGhl IGltcGxlbWVudGF0aW9uIGFuZCBhbHNvCnJlcXVpcmVzIHRvIGV4cG9ydCBmdW5jdGlvbnMgZm9y IGVhY2ggUFNDSSBmdW5jdGlvbnMuCgpUaGVyZWZvcmUgbW92ZSBQU0NJIGRpc3BhdGNoaW5nIGlu IHR3byBuZXcgZnVuY3Rpb25zIGRvX3Zwc2NpXzBfMV9jYWxsCmFuZCBkb192cHNjaV8wXzJfY2Fs bC4gVGhlIGZvcm1lciB3aWxsIGhhbmRsZSBQU0NJIDAuMSBjYWxsIHdoaWxlIHRoZSBsYXR0ZXIK MC4yIG9yIGxhdGVyIGNhbGwuCgpBdCB0aGUgc2FtZSB0aW1lLCBhIG5ldyBoZWFkZXIgdnBzY2ku aCB3YXMgY3JlYXRlZCB0byBjb250YWluIGFsbApkZWZpbml0aW9ucyBmb3IgdmlydHVhbCBQU0NJ IGFuZCBhdm9pZCBjb25mdXNpb24gd2l0aCB0aGUgaG9zdCBQU0NJLgoKU2lnbmVkLW9mZi1ieTog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAbGluYXJvLm9yZz4KCi0tLQogICAgQ2hhbmdlcyBp biB2MjoKICAgICAgICAtIEFkZCBhICd2JyBpbiB0aGUgZnVuY3Rpb24gbmFtZXMgdG8gaGVscCBk aXN0aW5ndWlzaCB2aXJ0dWFsIHZzCiAgICAgICAgcGh5c2ljYWwgUFNDSQogICAgICAgIC0gSW50 cm9kdWNlIHZwc2NpLmggYW5kIFZTQ1BJX05SX0ZVTkNTCi0tLQogeGVuL2FyY2gvYXJtL3Zwc2Np LmMgICAgICAgIHwgMTQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tCiB4ZW4vYXJjaC9hcm0vdnNtYy5jICAgICAgICAgfCAgOTkgKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vcHNjaS5oICB8ICAxOSAtLS0tLS0KIHhl bi9pbmNsdWRlL2FzbS1hcm0vdnBzY2kuaCB8ICAxMyArKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE1 MiBpbnNlcnRpb25zKCspLCAxMjYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2luY2x1ZGUvYXNtLWFybS92cHNjaS5oCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Zwc2Np LmMgYi94ZW4vYXJjaC9hcm0vdnBzY2kuYwppbmRleCA5NzlkMzJlZDZkLi44ODRmMGZhNzEwIDEw MDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdnBzY2kuYworKysgYi94ZW4vYXJjaC9hcm0vdnBzY2ku YwpAQCAtMTYsNyArMTYsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4KICNpbmNsdWRl IDxhc20vdmdpYy5oPgotI2luY2x1ZGUgPGFzbS9wc2NpLmg+CisjaW5jbHVkZSA8YXNtL3Zwc2Np Lmg+CiAjaW5jbHVkZSA8YXNtL2V2ZW50Lmg+CiAKICNpbmNsdWRlIDxwdWJsaWMvc2NoZWQuaD4K QEAgLTkxLDEyICs5MSwxMiBAQCBzdGF0aWMgaW50IGRvX2NvbW1vbl9jcHVfb24ocmVnaXN0ZXJf dCB0YXJnZXRfY3B1LCByZWdpc3Rlcl90IGVudHJ5X3BvaW50LAogICAgIHJldHVybiBQU0NJX1NV Q0NFU1M7CiB9CiAKLWludDMyX3QgZG9fcHNjaV9jcHVfb24odWludDMyX3QgdmNwdWlkLCByZWdp c3Rlcl90IGVudHJ5X3BvaW50KQorc3RhdGljIGludDMyX3QgZG9fcHNjaV9jcHVfb24odWludDMy X3QgdmNwdWlkLCByZWdpc3Rlcl90IGVudHJ5X3BvaW50KQogewogICAgIHJldHVybiBkb19jb21t b25fY3B1X29uKHZjcHVpZCwgZW50cnlfcG9pbnQsIDAgLCBQU0NJX1ZFUlNJT04oMCwgMSkpOwog fQogCi1pbnQzMl90IGRvX3BzY2lfY3B1X29mZih1aW50MzJfdCBwb3dlcl9zdGF0ZSkKK3N0YXRp YyBpbnQzMl90IGRvX3BzY2lfY3B1X29mZih1aW50MzJfdCBwb3dlcl9zdGF0ZSkKIHsKICAgICBz dHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CiAgICAgaWYgKCAhdGVzdF9hbmRfc2V0X2JpdChfVlBG X2Rvd24sICZ2LT5wYXVzZV9mbGFncykgKQpAQCAtMTA0LDEzICsxMDQsMTQgQEAgaW50MzJfdCBk b19wc2NpX2NwdV9vZmYodWludDMyX3QgcG93ZXJfc3RhdGUpCiAgICAgcmV0dXJuIFBTQ0lfU1VD Q0VTUzsKIH0KIAotdWludDMyX3QgZG9fcHNjaV8wXzJfdmVyc2lvbih2b2lkKQorc3RhdGljIHVp bnQzMl90IGRvX3BzY2lfMF8yX3ZlcnNpb24odm9pZCkKIHsKICAgICByZXR1cm4gUFNDSV9WRVJT SU9OKDAsIDIpOwogfQogCi1yZWdpc3Rlcl90IGRvX3BzY2lfMF8yX2NwdV9zdXNwZW5kKHVpbnQz Ml90IHBvd2VyX3N0YXRlLCByZWdpc3Rlcl90IGVudHJ5X3BvaW50LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlZ2lzdGVyX3QgY29udGV4dF9pZCkKK3N0YXRpYyByZWdpc3Rlcl90IGRv X3BzY2lfMF8yX2NwdV9zdXNwZW5kKHVpbnQzMl90IHBvd2VyX3N0YXRlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCBlbnRyeV9wb2ludCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3QgY29udGV4 dF9pZCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CiAKQEAgLTEyMywxMyArMTI0 LDE0IEBAIHJlZ2lzdGVyX3QgZG9fcHNjaV8wXzJfY3B1X3N1c3BlbmQodWludDMyX3QgcG93ZXJf c3RhdGUsIHJlZ2lzdGVyX3QgZW50cnlfcG9pbnQsCiAgICAgcmV0dXJuIFBTQ0lfU1VDQ0VTUzsK IH0KIAotaW50MzJfdCBkb19wc2NpXzBfMl9jcHVfb2ZmKHZvaWQpCitzdGF0aWMgaW50MzJfdCBk b19wc2NpXzBfMl9jcHVfb2ZmKHZvaWQpCiB7CiAgICAgcmV0dXJuIGRvX3BzY2lfY3B1X29mZigw KTsKIH0KIAotaW50MzJfdCBkb19wc2NpXzBfMl9jcHVfb24ocmVnaXN0ZXJfdCB0YXJnZXRfY3B1 LCByZWdpc3Rlcl90IGVudHJ5X3BvaW50LAotICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rl cl90IGNvbnRleHRfaWQpCitzdGF0aWMgaW50MzJfdCBkb19wc2NpXzBfMl9jcHVfb24ocmVnaXN0 ZXJfdCB0YXJnZXRfY3B1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lz dGVyX3QgZW50cnlfcG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn aXN0ZXJfdCBjb250ZXh0X2lkKQogewogICAgIHJldHVybiBkb19jb21tb25fY3B1X29uKHRhcmdl dF9jcHUsIGVudHJ5X3BvaW50LCBjb250ZXh0X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBTQ0lfVkVSU0lPTigwLCAyKSk7CkBAIC0xNDQsOCArMTQ2LDggQEAgc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGxvbmcgdGFyZ2V0X2FmZmluaXR5X21hc2tbXSA9IHsKICNlbmRpZgogfTsKIAot aW50MzJfdCBkb19wc2NpXzBfMl9hZmZpbml0eV9pbmZvKHJlZ2lzdGVyX3QgdGFyZ2V0X2FmZmlu aXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbG93ZXN0X2FmZmlu aXR5X2xldmVsKQorc3RhdGljIGludDMyX3QgZG9fcHNjaV8wXzJfYWZmaW5pdHlfaW5mbyhyZWdp c3Rlcl90IHRhcmdldF9hZmZpbml0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3QgbG93ZXN0X2FmZmluaXR5X2xldmVsKQogewogICAgIHN0cnVjdCBk b21haW4gKmQgPSBjdXJyZW50LT5kb21haW47CiAgICAgc3RydWN0IHZjcHUgKnY7CkBAIC0xNzIs MjMgKzE3NCwxNDAgQEAgaW50MzJfdCBkb19wc2NpXzBfMl9hZmZpbml0eV9pbmZvKHJlZ2lzdGVy X3QgdGFyZ2V0X2FmZmluaXR5LAogICAgIHJldHVybiBQU0NJXzBfMl9BRkZJTklUWV9MRVZFTF9P RkY7CiB9CiAKLXVpbnQzMl90IGRvX3BzY2lfMF8yX21pZ3JhdGVfaW5mb190eXBlKHZvaWQpCitz dGF0aWMgdWludDMyX3QgZG9fcHNjaV8wXzJfbWlncmF0ZV9pbmZvX3R5cGUodm9pZCkKIHsKICAg ICByZXR1cm4gUFNDSV8wXzJfVE9TX01QX09SX05PVF9QUkVTRU5UOwogfQogCi12b2lkIGRvX3Bz Y2lfMF8yX3N5c3RlbV9vZmYoIHZvaWQgKQorc3RhdGljIHZvaWQgZG9fcHNjaV8wXzJfc3lzdGVt X29mZiggdm9pZCApCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsK ICAgICBkb21haW5fc2h1dGRvd24oZCxTSFVURE9XTl9wb3dlcm9mZik7CiB9CiAKLXZvaWQgZG9f cHNjaV8wXzJfc3lzdGVtX3Jlc2V0KHZvaWQpCitzdGF0aWMgdm9pZCBkb19wc2NpXzBfMl9zeXN0 ZW1fcmVzZXQodm9pZCkKIHsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWlu OwogICAgIGRvbWFpbl9zaHV0ZG93bihkLFNIVVRET1dOX3JlYm9vdCk7CiB9CiAKKyNkZWZpbmUg UFNDSV9TRVRfUkVTVUxUKHJlZywgdmFsKSBzZXRfdXNlcl9yZWcocmVnLCAwLCB2YWwpCisjZGVm aW5lIFBTQ0lfQVJHKHJlZywgbikgZ2V0X3VzZXJfcmVnKHJlZywgbikKKworI2lmZGVmIENPTkZJ R19BUk1fNjQKKyNkZWZpbmUgUFNDSV9BUkczMihyZWcsIG4pICh1aW50MzJfdCkoZ2V0X3VzZXJf cmVnKHJlZywgbikpCisjZWxzZQorI2RlZmluZSBQU0NJX0FSRzMyKHJlZywgbikgUFNDSV9BUkco cmVnLCBuKQorI2VuZGlmCisKKy8qCisgKiBQU0NJIDAuMSBjYWxscy4gSXQgd2lsbCByZXR1cm4g ZmFsc2UgaWYgdGhlIGZ1bmN0aW9uIElEIGlzIG5vdAorICogaGFuZGxlZC4KKyAqLworYm9vbCBk b192cHNjaV8wXzFfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdWludDMyX3QgZmlk KQoreworICAgIHN3aXRjaCAoICh1aW50MzJfdClnZXRfdXNlcl9yZWcocmVncywgMCkgKQorICAg IHsKKyAgICBjYXNlIFBTQ0lfY3B1X29mZjoKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHBzdGF0 ZSA9IFBTQ0lfQVJHMzIocmVncywgMSk7CisKKyAgICAgICAgcGVyZmNfaW5jcih2cHNjaV9jcHVf b2ZmKTsKKyAgICAgICAgUFNDSV9TRVRfUkVTVUxUKHJlZ3MsIGRvX3BzY2lfY3B1X29mZihwc3Rh dGUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2UgUFNDSV9jcHVfb246 CisgICAgeworICAgICAgICB1aW50MzJfdCB2Y3B1aWQgPSBQU0NJX0FSRzMyKHJlZ3MsIDEpOwor ICAgICAgICByZWdpc3Rlcl90IGVwb2ludCA9IFBTQ0lfQVJHKHJlZ3MsIDIpOworCisgICAgICAg IHBlcmZjX2luY3IodnBzY2lfY3B1X29uKTsKKyAgICAgICAgUFNDSV9TRVRfUkVTVUxUKHJlZ3Ms IGRvX3BzY2lfY3B1X29uKHZjcHVpZCwgZXBvaW50KSk7CisgICAgICAgIHJldHVybiB0cnVlOwor ICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCisv KgorICogUFNDSSAwLjIgb3IgbGF0ZXIgY2FsbHMuIEl0IHdpbGwgcmV0dXJuIGZhbHNlIGlmIHRo ZSBmdW5jdGlvbiBJRCBpcworICogbm90IGhhbmRsZWQuCisgKi8KK2Jvb2wgZG9fdnBzY2lfMF8y X2NhbGwoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVpbnQzMl90IGZpZCkKK3sKKyAgICAv KgorICAgICAqIC8hXCBWUFNDSV9OUl9GVU5DUyAoaW4gYXNtLWFybS92cHNjaS5oKSBzaG91bGQg YmUgdXBkYXRlZCB3aGVuCisgICAgICogYWRkaW5nL3JlbW92aW5nIGEgZnVuY3Rpb24KKyAgICAg Ki8KKyAgICBzd2l0Y2ggKCBmaWQgKQorICAgIHsKKyAgICBjYXNlIFBTQ0lfMF8yX0ZOMzIoUFND SV9WRVJTSU9OKToKKyAgICAgICAgcGVyZmNfaW5jcih2cHNjaV92ZXJzaW9uKTsKKyAgICAgICAg UFNDSV9TRVRfUkVTVUxUKHJlZ3MsIGRvX3BzY2lfMF8yX3ZlcnNpb24oKSk7CisgICAgICAgIHJl dHVybiB0cnVlOworCisgICAgY2FzZSBQU0NJXzBfMl9GTjMyKENQVV9PRkYpOgorICAgICAgICBw ZXJmY19pbmNyKHZwc2NpX2NwdV9vZmYpOworICAgICAgICBQU0NJX1NFVF9SRVNVTFQocmVncywg ZG9fcHNjaV8wXzJfY3B1X29mZigpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNl IFBTQ0lfMF8yX0ZOMzIoTUlHUkFURV9JTkZPX1RZUEUpOgorICAgICAgICBwZXJmY19pbmNyKHZw c2NpX21pZ3JhdGVfaW5mb190eXBlKTsKKyAgICAgICAgUFNDSV9TRVRfUkVTVUxUKHJlZ3MsIGRv X3BzY2lfMF8yX21pZ3JhdGVfaW5mb190eXBlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKwor ICAgIGNhc2UgUFNDSV8wXzJfRk4zMihTWVNURU1fT0ZGKToKKyAgICAgICAgcGVyZmNfaW5jcih2 cHNjaV9zeXN0ZW1fb2ZmKTsKKyAgICAgICAgZG9fcHNjaV8wXzJfc3lzdGVtX29mZigpOworICAg ICAgICBQU0NJX1NFVF9SRVNVTFQocmVncywgUFNDSV9JTlRFUk5BTF9GQUlMVVJFKTsKKyAgICAg ICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNlIFBTQ0lfMF8yX0ZOMzIoU1lTVEVNX1JFU0VUKToK KyAgICAgICAgcGVyZmNfaW5jcih2cHNjaV9zeXN0ZW1fcmVzZXQpOworICAgICAgICBkb19wc2Np XzBfMl9zeXN0ZW1fcmVzZXQoKTsKKyAgICAgICAgUFNDSV9TRVRfUkVTVUxUKHJlZ3MsIFBTQ0lf SU5URVJOQUxfRkFJTFVSRSk7CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBQU0NJ XzBfMl9GTjMyKENQVV9PTik6CisgICAgY2FzZSBQU0NJXzBfMl9GTjY0KENQVV9PTik6CisgICAg eworICAgICAgICByZWdpc3Rlcl90IHZjcHVpZCA9IFBTQ0lfQVJHKHJlZ3MsIDEpOworICAgICAg ICByZWdpc3Rlcl90IGVwb2ludCA9IFBTQ0lfQVJHKHJlZ3MsIDIpOworICAgICAgICByZWdpc3Rl cl90IGNpZCA9IFBTQ0lfQVJHKHJlZ3MsIDMpOworCisgICAgICAgIHBlcmZjX2luY3IodnBzY2lf Y3B1X29uKTsKKyAgICAgICAgUFNDSV9TRVRfUkVTVUxUKHJlZ3MsIGRvX3BzY2lfMF8yX2NwdV9v bih2Y3B1aWQsIGVwb2ludCwgY2lkKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor ICAgIGNhc2UgUFNDSV8wXzJfRk4zMihDUFVfU1VTUEVORCk6CisgICAgY2FzZSBQU0NJXzBfMl9G TjY0KENQVV9TVVNQRU5EKToKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHBzdGF0ZSA9IFBTQ0lf QVJHMzIocmVncywgMSk7CisgICAgICAgIHJlZ2lzdGVyX3QgZXBvaW50ID0gUFNDSV9BUkcocmVn cywgMik7CisgICAgICAgIHJlZ2lzdGVyX3QgY2lkID0gUFNDSV9BUkcocmVncywgMyk7CisKKyAg ICAgICAgcGVyZmNfaW5jcih2cHNjaV9jcHVfc3VzcGVuZCk7CisgICAgICAgIFBTQ0lfU0VUX1JF U1VMVChyZWdzLCBkb19wc2NpXzBfMl9jcHVfc3VzcGVuZChwc3RhdGUsIGVwb2ludCwgY2lkKSk7 CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGNhc2UgUFNDSV8wXzJfRk4zMihB RkZJTklUWV9JTkZPKToKKyAgICBjYXNlIFBTQ0lfMF8yX0ZONjQoQUZGSU5JVFlfSU5GTyk6Cisg ICAgeworICAgICAgICByZWdpc3Rlcl90IHRhZmYgPSBQU0NJX0FSRyhyZWdzLCAxKTsKKyAgICAg ICAgdWludDMyX3QgbGFmZiA9IFBTQ0lfQVJHMzIocmVncywgMik7CisKKyAgICAgICAgcGVyZmNf aW5jcih2cHNjaV9jcHVfYWZmaW5pdHlfaW5mbyk7CisgICAgICAgIFBTQ0lfU0VUX1JFU1VMVChy ZWdzLCBkb19wc2NpXzBfMl9hZmZpbml0eV9pbmZvKHRhZmYsIGxhZmYpKTsKKyAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICB9Cit9CisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vdnNtYy5jIGIveGVuL2FyY2gvYXJtL3ZzbWMuYwppbmRleCAzZDhjYmNj ODA4Li4zZDNiZDk1ZmVlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdnNtYy5jCisrKyBiL3hl bi9hcmNoL2FybS92c21jLmMKQEAgLTE5LDE2ICsxOSwxNiBAQAogI2luY2x1ZGUgPHhlbi90eXBl cy5oPgogI2luY2x1ZGUgPHB1YmxpYy9hcmNoLWFybS9zbWNjYy5oPgogI2luY2x1ZGUgPGFzbS9t b25pdG9yLmg+Ci0jaW5jbHVkZSA8YXNtL3BzY2kuaD4KICNpbmNsdWRlIDxhc20vcmVncy5oPgog I2luY2x1ZGUgPGFzbS9zbWNjYy5oPgogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgorI2luY2x1ZGUg PGFzbS92cHNjaS5oPgogCiAvKiBOdW1iZXIgb2YgZnVuY3Rpb25zIGN1cnJlbnRseSBzdXBwb3J0 ZWQgYnkgSHlwZXJ2aXNvciBTZXJ2aWNlLiAqLwogI2RlZmluZSBYRU5fU01DQ0NfRlVOQ1RJT05f Q09VTlQgMwogCiAvKiBOdW1iZXIgb2YgZnVuY3Rpb25zIGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkg U3RhbmRhcmQgU2VydmljZSBTZXJ2aWNlIENhbGxzLiAqLwotI2RlZmluZSBTU1NDX1NNQ0NDX0ZV TkNUSU9OX0NPVU5UIDE0CisjZGVmaW5lIFNTU0NfU01DQ0NfRlVOQ1RJT05fQ09VTlQgKDMgKyBW UFNDSV9OUl9GVU5DUykKIAogc3RhdGljIGJvb2wgZmlsbF91aWQoc3RydWN0IGNwdV91c2VyX3Jl Z3MgKnJlZ3MsIHhlbl91dWlkX3QgdXVpZCkKIHsKQEAgLTEwMCw0MSArMTAwLDEzIEBAIHN0YXRp YyBib29sIGhhbmRsZV9oeXBlcnZpc29yKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAg IH0KIH0KIAotI2RlZmluZSBQU0NJX1NFVF9SRVNVTFQocmVnLCB2YWwpIHNldF91c2VyX3JlZyhy ZWcsIDAsIHZhbCkKLSNkZWZpbmUgUFNDSV9BUkcocmVnLCBuKSBnZXRfdXNlcl9yZWcocmVnLCBu KQotCi0jaWZkZWYgQ09ORklHX0FSTV82NAotI2RlZmluZSBQU0NJX0FSRzMyKHJlZywgbikgKHVp bnQzMl90KShnZXRfdXNlcl9yZWcocmVnLCBuKSkKLSNlbHNlCi0jZGVmaW5lIFBTQ0lfQVJHMzIo cmVnLCBuKSBQU0NJX0FSRyhyZWcsIG4pCi0jZW5kaWYKLQogLyogRXhpc3RpbmcgKHByZSBTTUND QykgQVBJcy4gVGhpcyBpbmNsdWRlcyBQU0NJIDAuMSBpbnRlcmZhY2UgKi8KIHN0YXRpYyBib29s IGhhbmRsZV9leGlzdGluZ19hcGlzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewogICAg IC8qIE9ubHkgbGVhc3QgMzIgYml0cyBhcmUgc2lnbmlmaWNhbnQgKEFSTSBERU4gMDAyOEIsIHBh Z2UgMTIpICovCi0gICAgc3dpdGNoICggKHVpbnQzMl90KWdldF91c2VyX3JlZyhyZWdzLCAwKSAp Ci0gICAgewotICAgIGNhc2UgUFNDSV9jcHVfb2ZmOgotICAgIHsKLSAgICAgICAgdWludDMyX3Qg cHN0YXRlID0gUFNDSV9BUkczMihyZWdzLCAxKTsKLQotICAgICAgICBwZXJmY19pbmNyKHZwc2Np X2NwdV9vZmYpOwotICAgICAgICBQU0NJX1NFVF9SRVNVTFQocmVncywgZG9fcHNjaV9jcHVfb2Zm KHBzdGF0ZSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgY2FzZSBQU0NJX2Nw dV9vbjoKLSAgICB7Ci0gICAgICAgIHVpbnQzMl90IHZjcHVpZCA9IFBTQ0lfQVJHMzIocmVncywg MSk7Ci0gICAgICAgIHJlZ2lzdGVyX3QgZXBvaW50ID0gUFNDSV9BUkcocmVncywgMik7CisgICAg dWludDMyX3QgZmlkID0gKHVpbnQzMl90KWdldF91c2VyX3JlZyhyZWdzLCAwKTsKIAotICAgICAg ICBwZXJmY19pbmNyKHZwc2NpX2NwdV9vbik7Ci0gICAgICAgIFBTQ0lfU0VUX1JFU1VMVChyZWdz LCBkb19wc2NpX2NwdV9vbih2Y3B1aWQsIGVwb2ludCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsK LSAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICBy ZXR1cm4gZG9fdnBzY2lfMF8xX2NhbGwocmVncywgZmlkKTsKIH0KIAogLyogUFNDSSAwLjIgaW50 ZXJmYWNlIGFuZCBvdGhlciBTdGFuZGFyZCBTZWN1cmUgQ2FsbHMgKi8KQEAgLTE0Miw3MCArMTE0 LDExIEBAIHN0YXRpYyBib29sIGhhbmRsZV9zc3NjKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz KQogewogICAgIHVpbnQzMl90IGZpZCA9ICh1aW50MzJfdClnZXRfdXNlcl9yZWcocmVncywgMCk7 CiAKLSAgICBzd2l0Y2ggKCBmaWQgKQotICAgIHsKLSAgICBjYXNlIFBTQ0lfMF8yX0ZOMzIoUFND SV9WRVJTSU9OKToKLSAgICAgICAgcGVyZmNfaW5jcih2cHNjaV92ZXJzaW9uKTsKLSAgICAgICAg UFNDSV9TRVRfUkVTVUxUKHJlZ3MsIGRvX3BzY2lfMF8yX3ZlcnNpb24oKSk7CisgICAgaWYgKCBk b192cHNjaV8wXzJfY2FsbChyZWdzLCBmaWQpICkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg ICBjYXNlIFBTQ0lfMF8yX0ZOMzIoQ1BVX09GRik6Ci0gICAgICAgIHBlcmZjX2luY3IodnBzY2lf Y3B1X29mZik7Ci0gICAgICAgIFBTQ0lfU0VUX1JFU1VMVChyZWdzLCBkb19wc2NpXzBfMl9jcHVf b2ZmKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGNhc2UgUFNDSV8wXzJfRk4zMihN SUdSQVRFX0lORk9fVFlQRSk6Ci0gICAgICAgIHBlcmZjX2luY3IodnBzY2lfbWlncmF0ZV9pbmZv X3R5cGUpOwotICAgICAgICBQU0NJX1NFVF9SRVNVTFQocmVncywgZG9fcHNjaV8wXzJfbWlncmF0 ZV9pbmZvX3R5cGUoKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgY2FzZSBQU0NJXzBf Ml9GTjMyKFNZU1RFTV9PRkYpOgotICAgICAgICBwZXJmY19pbmNyKHZwc2NpX3N5c3RlbV9vZmYp OwotICAgICAgICBkb19wc2NpXzBfMl9zeXN0ZW1fb2ZmKCk7Ci0gICAgICAgIFBTQ0lfU0VUX1JF U1VMVChyZWdzLCBQU0NJX0lOVEVSTkFMX0ZBSUxVUkUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsK LQotICAgIGNhc2UgUFNDSV8wXzJfRk4zMihTWVNURU1fUkVTRVQpOgotICAgICAgICBwZXJmY19p bmNyKHZwc2NpX3N5c3RlbV9yZXNldCk7Ci0gICAgICAgIGRvX3BzY2lfMF8yX3N5c3RlbV9yZXNl dCgpOwotICAgICAgICBQU0NJX1NFVF9SRVNVTFQocmVncywgUFNDSV9JTlRFUk5BTF9GQUlMVVJF KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBjYXNlIFBTQ0lfMF8yX0ZOMzIoQ1BVX09O KToKLSAgICBjYXNlIFBTQ0lfMF8yX0ZONjQoQ1BVX09OKToKLSAgICB7Ci0gICAgICAgIHJlZ2lz dGVyX3QgdmNwdWlkID0gUFNDSV9BUkcocmVncywgMSk7Ci0gICAgICAgIHJlZ2lzdGVyX3QgZXBv aW50ID0gUFNDSV9BUkcocmVncywgMik7Ci0gICAgICAgIHJlZ2lzdGVyX3QgY2lkID0gUFNDSV9B UkcocmVncywgMyk7Ci0KLSAgICAgICAgcGVyZmNfaW5jcih2cHNjaV9jcHVfb24pOwotICAgICAg ICBQU0NJX1NFVF9SRVNVTFQocmVncywgZG9fcHNjaV8wXzJfY3B1X29uKHZjcHVpZCwgZXBvaW50 LCBjaWQpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgY2FzZSBQU0NJXzBf Ml9GTjMyKENQVV9TVVNQRU5EKToKLSAgICBjYXNlIFBTQ0lfMF8yX0ZONjQoQ1BVX1NVU1BFTkQp OgotICAgIHsKLSAgICAgICAgdWludDMyX3QgcHN0YXRlID0gUFNDSV9BUkczMihyZWdzLCAxKTsK LSAgICAgICAgcmVnaXN0ZXJfdCBlcG9pbnQgPSBQU0NJX0FSRyhyZWdzLCAyKTsKLSAgICAgICAg cmVnaXN0ZXJfdCBjaWQgPSBQU0NJX0FSRyhyZWdzLCAzKTsKLQotICAgICAgICBwZXJmY19pbmNy KHZwc2NpX2NwdV9zdXNwZW5kKTsKLSAgICAgICAgUFNDSV9TRVRfUkVTVUxUKHJlZ3MsIGRvX3Bz Y2lfMF8yX2NwdV9zdXNwZW5kKHBzdGF0ZSwgZXBvaW50LCBjaWQpKTsKLSAgICAgICAgcmV0dXJu IHRydWU7Ci0gICAgfQotCi0gICAgY2FzZSBQU0NJXzBfMl9GTjMyKEFGRklOSVRZX0lORk8pOgot ICAgIGNhc2UgUFNDSV8wXzJfRk42NChBRkZJTklUWV9JTkZPKToKKyAgICBzd2l0Y2ggKCBmaWQg KQogICAgIHsKLSAgICAgICAgcmVnaXN0ZXJfdCB0YWZmID0gUFNDSV9BUkcocmVncywgMSk7Ci0g ICAgICAgIHVpbnQzMl90IGxhZmYgPSBQU0NJX0FSRzMyKHJlZ3MsIDIpOwotCi0gICAgICAgIHBl cmZjX2luY3IodnBzY2lfY3B1X2FmZmluaXR5X2luZm8pOwotICAgICAgICBQU0NJX1NFVF9SRVNV TFQocmVncywgZG9fcHNjaV8wXzJfYWZmaW5pdHlfaW5mbyh0YWZmLCBsYWZmKSk7Ci0gICAgICAg IHJldHVybiB0cnVlOwotICAgIH0KLQogICAgIGNhc2UgQVJNX1NNQ0NDX0NBTExfQ09VTlRfRklE KFNUQU5EQVJEKToKICAgICAgICAgcmV0dXJuIGZpbGxfZnVuY3Rpb25fY2FsbF9jb3VudChyZWdz LCBTU1NDX1NNQ0NDX0ZVTkNUSU9OX0NPVU5UKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLWFybS9wc2NpLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BzY2kuaAppbmRleCAzMmMxZjgx ZjIxLi4zYzQ0NDY4ZTcyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3BzY2kuaAor KysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BzY2kuaApAQCAtMjIsMjUgKzIyLDYgQEAgaW50IGNh bGxfcHNjaV9jcHVfb24oaW50IGNwdSk7CiB2b2lkIGNhbGxfcHNjaV9zeXN0ZW1fb2ZmKHZvaWQp Owogdm9pZCBjYWxsX3BzY2lfc3lzdGVtX3Jlc2V0KHZvaWQpOwogCi0vKiBmdW5jdGlvbnMgdG8g aGFuZGxlIGd1ZXN0IFBTQ0kgcmVxdWVzdHMgKi8KLWludDMyX3QgZG9fcHNjaV9jcHVfb24odWlu dDMyX3QgdmNwdWlkLCByZWdpc3Rlcl90IGVudHJ5X3BvaW50KTsKLWludDMyX3QgZG9fcHNjaV9j cHVfb2ZmKHVpbnQzMl90IHBvd2VyX3N0YXRlKTsKLWludDMyX3QgZG9fcHNjaV9jcHVfc3VzcGVu ZCh1aW50MzJfdCBwb3dlcl9zdGF0ZSwgcmVnaXN0ZXJfdCBlbnRyeV9wb2ludCk7Ci1pbnQzMl90 IGRvX3BzY2lfbWlncmF0ZSh1aW50MzJfdCB2Y3B1aWQpOwotCi0vKiBQU0NJIDAuMiBmdW5jdGlv bnMgdG8gaGFuZGxlIGd1ZXN0IFBTQ0kgcmVxdWVzdHMgKi8KLXVpbnQzMl90IGRvX3BzY2lfMF8y X3ZlcnNpb24odm9pZCk7Ci1yZWdpc3Rlcl90IGRvX3BzY2lfMF8yX2NwdV9zdXNwZW5kKHVpbnQz Ml90IHBvd2VyX3N0YXRlLCByZWdpc3Rlcl90IGVudHJ5X3BvaW50LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlZ2lzdGVyX3QgY29udGV4dF9pZCk7Ci1pbnQzMl90IGRvX3BzY2lfMF8y X2NwdV9vZmYodm9pZCk7Ci1pbnQzMl90IGRvX3BzY2lfMF8yX2NwdV9vbihyZWdpc3Rlcl90IHRh cmdldF9jcHUsIHJlZ2lzdGVyX3QgZW50cnlfcG9pbnQsCi0gICAgICAgICAgICAgICAgICAgICAg IHJlZ2lzdGVyX3QgY29udGV4dF9pZCk7Ci1pbnQzMl90IGRvX3BzY2lfMF8yX2FmZmluaXR5X2lu Zm8ocmVnaXN0ZXJfdCB0YXJnZXRfYWZmaW5pdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBsb3dlc3RfYWZmaW5pdHlfbGV2ZWwpOwotdWludDMyX3QgZG9fcHNjaV8w XzJfbWlncmF0ZV9pbmZvX3R5cGUodm9pZCk7Ci12b2lkIGRvX3BzY2lfMF8yX3N5c3RlbV9vZmYo dm9pZCk7Ci12b2lkIGRvX3BzY2lfMF8yX3N5c3RlbV9yZXNldCh2b2lkKTsKLQogLyogUFNDSSB2 MC4yIGludGVyZmFjZSAqLwogI2RlZmluZSBQU0NJXzBfMl9GTjMyKG5hbWUpIEFSTV9TTUNDQ19D QUxMX1ZBTChBUk1fU01DQ0NfRkFTVF9DQUxMLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSTV9TTUNDQ19DT05WXzMyLCAgICAg ICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdnBzY2kuaCBiL3hl bi9pbmNsdWRlL2FzbS1hcm0vdnBzY2kuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi5kNmE4OTBmNmEyCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFy bS92cHNjaS5oCkBAIC0wLDAgKzEsMTMgQEAKKyNpZm5kZWYgX19BU01fVlBTQ0lfSF9fCisjZGVm aW5lIF9fQVNNX1ZQU0NJX0hfXworCisjaW5jbHVkZSA8YXNtL3BzY2kuaD4KKworLyogTnVtYmVy IG9mIGZ1bmN0aW9uIGltcGxlbWVudGVkIGJ5IHZpcnR1YWwgUFNDSSAob25seSAwLjIgb3IgbGF0 ZXIpICovCisjZGVmaW5lIFZQU0NJX05SX0ZVTkNTICAxMQorCisvKiBGdW5jdGlvbnMgaGFuZGxl IFBTQ0kgY2FsbHMgZnJvbSB0aGUgZ3Vlc3RzICovCitib29sIGRvX3Zwc2NpXzBfMV9jYWxsKHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCB1aW50MzJfdCBmaWQpOworYm9vbCBkb192cHNjaV8w XzJfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdWludDMyX3QgZmlkKTsKKworI2Vu ZGlmIC8qIF9fQVNNX1ZQU0NJX0hfXyAqLwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==