From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 5/9] x86/hypercall: Move the hypercall tables into C Date: Mon, 18 Jul 2016 10:51:41 +0100 Message-ID: <1468835505-7278-6-git-send-email-andrew.cooper3@citrix.com> References: <1468835505-7278-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1468835505-7278-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org RWRpdGluZyAoYW5kIGluZGVlZCwgZmluZGluZykgdGhlIGh5cGVyY2FsbCB0YWJsZXMgY2FuIGJl IHRyaWNreSwgZXNwZWNpYWxseQp0b3dhcmRzIHRoZSBlbmQgd2hlcmUgLnJlcHQncyBhcmUgdXNl ZCB0byBtYWludGFpbiB0aGUgY29ycmVjdCBsYXlvdXQuCgpNb3ZlIHRoaXMgYWxsIGludG8gQywg YW5kIGxldCB0aGUgY29tcGlsZXIgZG8gdGhlIGhhcmQgd29yay4KClRvIGRvIHRoaXMsIHhlbi9o eXBlcmNhbGwuaCBhbmQgYXNtLXg4Ni9oeXBlcmNhbGwuaCBuZWVkIHRvIGNvbnRhaW4gcHJvdG90 eXBlcwpmb3IgYWxsIHRoZSBoeXBlcmNhbGxzOyBzb21lIHdlcmUgcHJldmlvdXNseSBtaXNzaW5n LiAgVGhpcyBpbiB0dXJuIHJlcXVpcmVzCnNvbWUgc2h1ZmZsaW5nIG9mIGRlZmluaXRpb25zIGFu ZCBpbmNsdWRlcy4KCk9uZSBkaWZmZXJlbmNlIGlzIHRoYXQgTlVMTCBmdW5jdGlvbiBwb2ludGVy cyBhcmUgdXNlZCBpbnN0ZWFkIG9mCnssY29tcGF0X31kb19uaV9oeXBlcmNhbGwoKSwgd2hpY2gg cHZfaHlwZXJjYWxsKCkgaGFuZGxlcyBjb3JyZWN0bHkuICBBbGwKbmlfaHlwZXJjYWxsKCkgaW5m cmFzdHJ1Y3R1cmUgaXMgdGhlcmVmb3JlIGRyb3BwZWQuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxK QmV1bGljaEBzdXNlLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvaHlwZXJjYWxsLmMgICAgICAgICAg IHwgMTEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4 Ni94ODZfNjQvY29tcGF0LmMgICAgICAgfCAgIDEgLQogeGVuL2FyY2gveDg2L3g4Nl82NC9jb21w YXQvZW50cnkuUyB8ICA2NSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni94ODZf NjQvY29tcGF0L3RyYXBzLmMgfCAgIDIgLQogeGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TICAg ICAgICB8ICA2MiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3g4Nl82NC90cmFw cy5jICAgICAgICB8ICAgMSArCiB4ZW4vY29tbW9uL2tlcm5lbC5jICAgICAgICAgICAgICAgIHwg ICA2IC0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h5cGVyY2FsbC5oICAgIHwgIDQ4ICsrKysrKysr KysrKysrKysKIHhlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaCAgICAgICAgfCAgMTggKysrKy0t CiA5IGZpbGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCspLCAxNDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h5cGVyY2FsbC5jIGIveGVuL2FyY2gveDg2L2h5cGVy Y2FsbC5jCmluZGV4IDJkYzc4N2UuLjg2YzA5N2EgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9o eXBlcmNhbGwuYworKysgYi94ZW4vYXJjaC94ODYvaHlwZXJjYWxsLmMKQEAgLTExMyw2ICsxMTMs MTE4IEBAIGNvbnN0IHVpbnQ4X3QgY29tcGF0X2h5cGVyY2FsbF9hcmdzX3RhYmxlW05SX2h5cGVy Y2FsbHNdID0KIAogI3VuZGVmIEFSR1MKIAorI2RlZmluZSBIWVBFUkNBTEwoeCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgWyBfX0hZUEVSVklT T1JfICMjIHggXSA9IChoeXBlcmNhbGxfZm5fdCAqKSBkb18gIyMgeAorCisjZGVmaW5lIGRvX2Fy Y2hfMSAgICAgICAgICAgICBwYWdpbmdfZG9tY3RsX2NvbnRpbnVhdGlvbgorCitoeXBlcmNhbGxf Zm5fdCAqY29uc3QgaHlwZXJjYWxsX3RhYmxlW05SX2h5cGVyY2FsbHNdID0geworICAgIEhZUEVS Q0FMTChzZXRfdHJhcF90YWJsZSksCisgICAgSFlQRVJDQUxMKG1tdV91cGRhdGUpLAorICAgIEhZ UEVSQ0FMTChzZXRfZ2R0KSwKKyAgICBIWVBFUkNBTEwoc3RhY2tfc3dpdGNoKSwKKyAgICBIWVBF UkNBTEwoc2V0X2NhbGxiYWNrcyksCisgICAgSFlQRVJDQUxMKGZwdV90YXNrc3dpdGNoKSwKKyAg ICBIWVBFUkNBTEwoc2NoZWRfb3BfY29tcGF0KSwKKyAgICBIWVBFUkNBTEwocGxhdGZvcm1fb3Ap LAorICAgIEhZUEVSQ0FMTChzZXRfZGVidWdyZWcpLAorICAgIEhZUEVSQ0FMTChnZXRfZGVidWdy ZWcpLAorICAgIEhZUEVSQ0FMTCh1cGRhdGVfZGVzY3JpcHRvciksCisgICAgSFlQRVJDQUxMKG1l bW9yeV9vcCksCisgICAgSFlQRVJDQUxMKG11bHRpY2FsbCksCisgICAgSFlQRVJDQUxMKHVwZGF0 ZV92YV9tYXBwaW5nKSwKKyAgICBIWVBFUkNBTEwoc2V0X3RpbWVyX29wKSwKKyAgICBIWVBFUkNB TEwoZXZlbnRfY2hhbm5lbF9vcF9jb21wYXQpLAorICAgIEhZUEVSQ0FMTCh4ZW5fdmVyc2lvbiks CisgICAgSFlQRVJDQUxMKGNvbnNvbGVfaW8pLAorICAgIEhZUEVSQ0FMTChwaHlzZGV2X29wX2Nv bXBhdCksCisgICAgSFlQRVJDQUxMKGdyYW50X3RhYmxlX29wKSwKKyAgICBIWVBFUkNBTEwodm1f YXNzaXN0KSwKKyAgICBIWVBFUkNBTEwodXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4pLAor ICAgIEhZUEVSQ0FMTChpcmV0KSwKKyAgICBIWVBFUkNBTEwodmNwdV9vcCksCisgICAgSFlQRVJD QUxMKHNldF9zZWdtZW50X2Jhc2UpLAorICAgIEhZUEVSQ0FMTChtbXVleHRfb3ApLAorICAgIEhZ UEVSQ0FMTCh4c21fb3ApLAorICAgIEhZUEVSQ0FMTChubWlfb3ApLAorICAgIEhZUEVSQ0FMTChz Y2hlZF9vcCksCisgICAgSFlQRVJDQUxMKGNhbGxiYWNrX29wKSwKKyNpZmRlZiBDT05GSUdfWEVO T1BST0YKKyAgICBIWVBFUkNBTEwoeGVub3Byb2Zfb3ApLAorI2VuZGlmCisgICAgSFlQRVJDQUxM KGV2ZW50X2NoYW5uZWxfb3ApLAorICAgIEhZUEVSQ0FMTChwaHlzZGV2X29wKSwKKyAgICBIWVBF UkNBTEwoaHZtX29wKSwKKyAgICBIWVBFUkNBTEwoc3lzY3RsKSwKKyAgICBIWVBFUkNBTEwoZG9t Y3RsKSwKKyNpZmRlZiBDT05GSUdfS0VYRUMKKyAgICBIWVBFUkNBTEwoa2V4ZWNfb3ApLAorI2Vu ZGlmCisjaWZkZWYgQ09ORklHX1RNRU0KKyAgICBIWVBFUkNBTEwodG1lbV9vcCksCisjZW5kaWYK KyAgICBIWVBFUkNBTEwoeGVucG11X29wKSwKKyAgICBIWVBFUkNBTEwobWNhKSwKKyAgICBIWVBF UkNBTEwoYXJjaF8xKSwKK307CisKKyNkZWZpbmUgQ09NUEFUX0NBTEwoeCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFsgX19IWVBFUlZJU09SXyAj IyB4IF0gPSAoaHlwZXJjYWxsX2ZuX3QgKikgY29tcGF0XyAjIyB4CisKK2h5cGVyY2FsbF9mbl90 ICpjb25zdCBjb21wYXRfaHlwZXJjYWxsX3RhYmxlW05SX2h5cGVyY2FsbHNdID0geworICAgIENP TVBBVF9DQUxMKHNldF90cmFwX3RhYmxlKSwKKyAgICBIWVBFUkNBTEwobW11X3VwZGF0ZSksCisg ICAgQ09NUEFUX0NBTEwoc2V0X2dkdCksCisgICAgSFlQRVJDQUxMKHN0YWNrX3N3aXRjaCksCisg ICAgQ09NUEFUX0NBTEwoc2V0X2NhbGxiYWNrcyksCisgICAgSFlQRVJDQUxMKGZwdV90YXNrc3dp dGNoKSwKKyAgICBIWVBFUkNBTEwoc2NoZWRfb3BfY29tcGF0KSwKKyAgICBDT01QQVRfQ0FMTChw bGF0Zm9ybV9vcCksCisgICAgSFlQRVJDQUxMKHNldF9kZWJ1Z3JlZyksCisgICAgSFlQRVJDQUxM KGdldF9kZWJ1Z3JlZyksCisgICAgQ09NUEFUX0NBTEwodXBkYXRlX2Rlc2NyaXB0b3IpLAorICAg IENPTVBBVF9DQUxMKG1lbW9yeV9vcCksCisgICAgQ09NUEFUX0NBTEwobXVsdGljYWxsKSwKKyAg ICBDT01QQVRfQ0FMTCh1cGRhdGVfdmFfbWFwcGluZyksCisgICAgQ09NUEFUX0NBTEwoc2V0X3Rp bWVyX29wKSwKKyAgICBIWVBFUkNBTEwoZXZlbnRfY2hhbm5lbF9vcF9jb21wYXQpLAorICAgIENP TVBBVF9DQUxMKHhlbl92ZXJzaW9uKSwKKyAgICBIWVBFUkNBTEwoY29uc29sZV9pbyksCisgICAg Q09NUEFUX0NBTEwocGh5c2Rldl9vcF9jb21wYXQpLAorICAgIENPTVBBVF9DQUxMKGdyYW50X3Rh YmxlX29wKSwKKyAgICBDT01QQVRfQ0FMTCh2bV9hc3Npc3QpLAorICAgIENPTVBBVF9DQUxMKHVw ZGF0ZV92YV9tYXBwaW5nX290aGVyZG9tYWluKSwKKyAgICBDT01QQVRfQ0FMTChpcmV0KSwKKyAg ICBDT01QQVRfQ0FMTCh2Y3B1X29wKSwKKyAgICBIWVBFUkNBTEwoc2V0X3NlZ21lbnRfYmFzZSks CisgICAgQ09NUEFUX0NBTEwobW11ZXh0X29wKSwKKyAgICBDT01QQVRfQ0FMTCh4c21fb3ApLAor ICAgIENPTVBBVF9DQUxMKG5taV9vcCksCisgICAgQ09NUEFUX0NBTEwoc2NoZWRfb3ApLAorICAg IENPTVBBVF9DQUxMKGNhbGxiYWNrX29wKSwKKyNpZmRlZiBDT05GSUdfWEVOT1BST0YKKyAgICBD T01QQVRfQ0FMTCh4ZW5vcHJvZl9vcCksCisjZW5kaWYKKyAgICBIWVBFUkNBTEwoZXZlbnRfY2hh bm5lbF9vcCksCisgICAgQ09NUEFUX0NBTEwocGh5c2Rldl9vcCksCisgICAgSFlQRVJDQUxMKGh2 bV9vcCksCisgICAgSFlQRVJDQUxMKHN5c2N0bCksCisgICAgSFlQRVJDQUxMKGRvbWN0bCksCisj aWZkZWYgQ09ORklHX0tFWEVDCisgICAgQ09NUEFUX0NBTEwoa2V4ZWNfb3ApLAorI2VuZGlmCisj aWZkZWYgQ09ORklHX1RNRU0KKyAgICBIWVBFUkNBTEwodG1lbV9vcCksCisjZW5kaWYKKyAgICBI WVBFUkNBTEwoeGVucG11X29wKSwKKyAgICBIWVBFUkNBTEwobWNhKSwKKyAgICBIWVBFUkNBTEwo YXJjaF8xKSwKK307CisKKyN1bmRlZiBkb19hcmNoXzEKKyN1bmRlZiBDT01QQVRfQ0FMTAorI3Vu ZGVmIEhZUEVSQ0FMTAorCiBsb25nIHB2X2h5cGVyY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKIHsKICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQu YwppbmRleCBmOGY2MzNiLi5lZGMzMTE1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0 L2NvbXBhdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0LmMKQEAgLTgsNyArOCw2 IEBAIGFzbSgiLmZpbGUgXCIiIF9fRklMRV9fICJcIiIpOwogI2luY2x1ZGUgPGNvbXBhdC94ZW4u aD4KICNpbmNsdWRlIDxjb21wYXQvcGh5c2Rldi5oPgogCi1ERUZJTkVfWEVOX0dVRVNUX0hBTkRM RShwaHlzZGV2X29wX2NvbXBhdF90KTsKICNkZWZpbmUgcGh5c2Rldl9vcCAgICAgICAgICAgICAg ICAgICAgY29tcGF0X3BoeXNkZXZfb3AKICNkZWZpbmUgcGh5c2Rldl9vcF90ICAgICAgICAgICAg ICAgICAgcGh5c2Rldl9vcF9jb21wYXRfdAogI2RlZmluZSBkb19waHlzZGV2X29wICAgICAgICAg ICAgICAgICBjb21wYXRfcGh5c2Rldl9vcApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82 NC9jb21wYXQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMKaW5k ZXggNTIxYWY0OC4uN2Q4ZTFmOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9jb21w YXQvZW50cnkuUworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TCkBAIC0z NDgsNjggKzM0OCwzIEBAIGNvbXBhdF9jcmFzaF9wYWdlX2ZhdWx0OgogICAgICAgICBqbXAgICAu TGZ0MTQKIC5wcmV2aW91cwogICAgICAgICBfQVNNX0VYVEFCTEUoLkxmdDE0LCAuTGZ4MTQpCi0K LS5zZWN0aW9uIC5yb2RhdGEsICJhIiwgQHByb2diaXRzCi0KLSNpZm5kZWYgQ09ORklHX0tFWEVD Ci0jZGVmaW5lIGNvbXBhdF9rZXhlY19vcCBkb19uaV9oeXBlcmNhbGwKLSNlbmRpZgotCi0jaWZu ZGVmIENPTkZJR19UTUVNCi0jZGVmaW5lIGRvX3RtZW1fb3AgZG9fbmlfaHlwZXJjYWxsCi0jZW5k aWYKLQotI2lmbmRlZiBDT05GSUdfWEVOT1BST0YKLSNkZWZpbmUgY29tcGF0X3hlbm9wcm9mX29w IGRvX25pX2h5cGVyY2FsbAotI2VuZGlmCi0KLUVOVFJZKGNvbXBhdF9oeXBlcmNhbGxfdGFibGUp Ci0gICAgICAgIC5xdWFkIGNvbXBhdF9zZXRfdHJhcF90YWJsZSAgICAgLyogIDAgKi8KLSAgICAg ICAgLnF1YWQgZG9fbW11X3VwZGF0ZQotICAgICAgICAucXVhZCBjb21wYXRfc2V0X2dkdAotICAg ICAgICAucXVhZCBkb19zdGFja19zd2l0Y2gKLSAgICAgICAgLnF1YWQgY29tcGF0X3NldF9jYWxs YmFja3MKLSAgICAgICAgLnF1YWQgZG9fZnB1X3Rhc2tzd2l0Y2ggICAgICAgICAvKiAgNSAqLwot ICAgICAgICAucXVhZCBkb19zY2hlZF9vcF9jb21wYXQKLSAgICAgICAgLnF1YWQgY29tcGF0X3Bs YXRmb3JtX29wCi0gICAgICAgIC5xdWFkIGRvX3NldF9kZWJ1Z3JlZwotICAgICAgICAucXVhZCBk b19nZXRfZGVidWdyZWcKLSAgICAgICAgLnF1YWQgY29tcGF0X3VwZGF0ZV9kZXNjcmlwdG9yICAv KiAxMCAqLwotICAgICAgICAucXVhZCBjb21wYXRfbmlfaHlwZXJjYWxsCi0gICAgICAgIC5xdWFk IGNvbXBhdF9tZW1vcnlfb3AKLSAgICAgICAgLnF1YWQgY29tcGF0X211bHRpY2FsbAotICAgICAg ICAucXVhZCBjb21wYXRfdXBkYXRlX3ZhX21hcHBpbmcKLSAgICAgICAgLnF1YWQgY29tcGF0X3Nl dF90aW1lcl9vcCAgICAgICAvKiAxNSAqLwotICAgICAgICAucXVhZCBkb19ldmVudF9jaGFubmVs X29wX2NvbXBhdAotICAgICAgICAucXVhZCBjb21wYXRfeGVuX3ZlcnNpb24KLSAgICAgICAgLnF1 YWQgZG9fY29uc29sZV9pbwotICAgICAgICAucXVhZCBjb21wYXRfcGh5c2Rldl9vcF9jb21wYXQK LSAgICAgICAgLnF1YWQgY29tcGF0X2dyYW50X3RhYmxlX29wICAgICAvKiAyMCAqLwotICAgICAg ICAucXVhZCBjb21wYXRfdm1fYXNzaXN0Ci0gICAgICAgIC5xdWFkIGNvbXBhdF91cGRhdGVfdmFf bWFwcGluZ19vdGhlcmRvbWFpbgotICAgICAgICAucXVhZCBjb21wYXRfaXJldAotICAgICAgICAu cXVhZCBjb21wYXRfdmNwdV9vcAotICAgICAgICAucXVhZCBkb19zZXRfc2VnbWVudF9iYXNlICAg ICAgIC8qIDI1ICovCi0gICAgICAgIC5xdWFkIGNvbXBhdF9tbXVleHRfb3AKLSAgICAgICAgLnF1 YWQgY29tcGF0X3hzbV9vcAotICAgICAgICAucXVhZCBjb21wYXRfbm1pX29wCi0gICAgICAgIC5x dWFkIGNvbXBhdF9zY2hlZF9vcAotICAgICAgICAucXVhZCBjb21wYXRfY2FsbGJhY2tfb3AgICAg ICAgIC8qIDMwICovCi0gICAgICAgIC5xdWFkIGNvbXBhdF94ZW5vcHJvZl9vcAotICAgICAgICAu cXVhZCBkb19ldmVudF9jaGFubmVsX29wCi0gICAgICAgIC5xdWFkIGNvbXBhdF9waHlzZGV2X29w Ci0gICAgICAgIC5xdWFkIGRvX2h2bV9vcAotICAgICAgICAucXVhZCBkb19zeXNjdGwgICAgICAg ICAgICAgICAgIC8qIDM1ICovCi0gICAgICAgIC5xdWFkIGRvX2RvbWN0bAotICAgICAgICAucXVh ZCBjb21wYXRfa2V4ZWNfb3AKLSAgICAgICAgLnF1YWQgZG9fdG1lbV9vcAotICAgICAgICAucXVh ZCBkb19uaV9oeXBlcmNhbGwgICAgICAgICAgIC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8K LSAgICAgICAgLnF1YWQgZG9feGVucG11X29wICAgICAgICAgICAgICAvKiA0MCAqLwotICAgICAg ICAucmVwdCBfX0hZUEVSVklTT1JfYXJjaF8wLSgoLi1jb21wYXRfaHlwZXJjYWxsX3RhYmxlKS84 KQotICAgICAgICAucXVhZCBjb21wYXRfbmlfaHlwZXJjYWxsCi0gICAgICAgIC5lbmRyCi0gICAg ICAgIC5xdWFkIGRvX21jYSAgICAgICAgICAgICAgICAgICAgLyogNDggKi8KLSAgICAgICAgLnF1 YWQgcGFnaW5nX2RvbWN0bF9jb250aW51YXRpb24KLSAgICAgICAgLnJlcHQgTlJfaHlwZXJjYWxs cy0oKC4tY29tcGF0X2h5cGVyY2FsbF90YWJsZSkvOCkKLSAgICAgICAgLnF1YWQgY29tcGF0X25p X2h5cGVyY2FsbAotICAgICAgICAuZW5kcgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82 NC9jb21wYXQvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L3RyYXBzLmMKaW5k ZXggYTZhZmIyNi4uOTVjNWNiMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9jb21w YXQvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC90cmFwcy5jCkBAIC0z MjksOCArMzI5LDYgQEAgbG9uZyBjb21wYXRfc2V0X2NhbGxiYWNrcyh1bnNpZ25lZCBsb25nIGV2 ZW50X3NlbGVjdG9yLAogICAgIHJldHVybiAwOwogfQogCi1ERUZJTkVfWEVOX0dVRVNUX0hBTkRM RSh0cmFwX2luZm9fY29tcGF0X3QpOwotCiBpbnQgY29tcGF0X3NldF90cmFwX3RhYmxlKFhFTl9H VUVTVF9IQU5ETEUodHJhcF9pbmZvX2NvbXBhdF90KSB0cmFwcykKIHsKICAgICBzdHJ1Y3QgY29t cGF0X3RyYXBfaW5mbyBjdXI7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5 LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKaW5kZXggMWE3ZjhiNy4uODliZWRhYyAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCisrKyBiL3hlbi9hcmNoL3g4 Ni94ODZfNjQvZW50cnkuUwpAQCAtNjgyLDY4ICs2ODIsNiBAQCBFTlRSWShleGNlcHRpb25fdGFi bGUpCiAgICAgICAgIC5lbmRyCiAgICAgICAgIC5zaXplIGV4Y2VwdGlvbl90YWJsZSwgLiAtIGV4 Y2VwdGlvbl90YWJsZQogCi0jaWZuZGVmIENPTkZJR19LRVhFQwotI2RlZmluZSBkb19rZXhlY19v cCBkb19uaV9oeXBlcmNhbGwKLSNlbmRpZgotCi0jaWZuZGVmIENPTkZJR19UTUVNCi0jZGVmaW5l IGRvX3RtZW1fb3AgZG9fbmlfaHlwZXJjYWxsCi0jZW5kaWYKLQotI2lmbmRlZiBDT05GSUdfWEVO T1BST0YKLSNkZWZpbmUgZG9feGVub3Byb2Zfb3AgZG9fbmlfaHlwZXJjYWxsCi0jZW5kaWYKLQot RU5UUlkoaHlwZXJjYWxsX3RhYmxlKQotICAgICAgICAucXVhZCBkb19zZXRfdHJhcF90YWJsZSAg ICAgLyogIDAgKi8KLSAgICAgICAgLnF1YWQgZG9fbW11X3VwZGF0ZQotICAgICAgICAucXVhZCBk b19zZXRfZ2R0Ci0gICAgICAgIC5xdWFkIGRvX3N0YWNrX3N3aXRjaAotICAgICAgICAucXVhZCBk b19zZXRfY2FsbGJhY2tzCi0gICAgICAgIC5xdWFkIGRvX2ZwdV90YXNrc3dpdGNoICAgICAvKiAg NSAqLwotICAgICAgICAucXVhZCBkb19zY2hlZF9vcF9jb21wYXQKLSAgICAgICAgLnF1YWQgZG9f cGxhdGZvcm1fb3AKLSAgICAgICAgLnF1YWQgZG9fc2V0X2RlYnVncmVnCi0gICAgICAgIC5xdWFk IGRvX2dldF9kZWJ1Z3JlZwotICAgICAgICAucXVhZCBkb191cGRhdGVfZGVzY3JpcHRvciAgLyog MTAgKi8KLSAgICAgICAgLnF1YWQgZG9fbmlfaHlwZXJjYWxsCi0gICAgICAgIC5xdWFkIGRvX21l bW9yeV9vcAotICAgICAgICAucXVhZCBkb19tdWx0aWNhbGwKLSAgICAgICAgLnF1YWQgZG9fdXBk YXRlX3ZhX21hcHBpbmcKLSAgICAgICAgLnF1YWQgZG9fc2V0X3RpbWVyX29wICAgICAgIC8qIDE1 ICovCi0gICAgICAgIC5xdWFkIGRvX2V2ZW50X2NoYW5uZWxfb3BfY29tcGF0Ci0gICAgICAgIC5x dWFkIGRvX3hlbl92ZXJzaW9uCi0gICAgICAgIC5xdWFkIGRvX2NvbnNvbGVfaW8KLSAgICAgICAg LnF1YWQgZG9fcGh5c2Rldl9vcF9jb21wYXQKLSAgICAgICAgLnF1YWQgZG9fZ3JhbnRfdGFibGVf b3AgICAgIC8qIDIwICovCi0gICAgICAgIC5xdWFkIGRvX3ZtX2Fzc2lzdAotICAgICAgICAucXVh ZCBkb191cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbgotICAgICAgICAucXVhZCBkb19pcmV0 Ci0gICAgICAgIC5xdWFkIGRvX3ZjcHVfb3AKLSAgICAgICAgLnF1YWQgZG9fc2V0X3NlZ21lbnRf YmFzZSAgIC8qIDI1ICovCi0gICAgICAgIC5xdWFkIGRvX21tdWV4dF9vcAotICAgICAgICAucXVh ZCBkb194c21fb3AKLSAgICAgICAgLnF1YWQgZG9fbm1pX29wCi0gICAgICAgIC5xdWFkIGRvX3Nj aGVkX29wCi0gICAgICAgIC5xdWFkIGRvX2NhbGxiYWNrX29wICAgICAgICAvKiAzMCAqLwotICAg ICAgICAucXVhZCBkb194ZW5vcHJvZl9vcAotICAgICAgICAucXVhZCBkb19ldmVudF9jaGFubmVs X29wCi0gICAgICAgIC5xdWFkIGRvX3BoeXNkZXZfb3AKLSAgICAgICAgLnF1YWQgZG9faHZtX29w Ci0gICAgICAgIC5xdWFkIGRvX3N5c2N0bCAgICAgICAgICAgICAvKiAzNSAqLwotICAgICAgICAu cXVhZCBkb19kb21jdGwKLSAgICAgICAgLnF1YWQgZG9fa2V4ZWNfb3AKLSAgICAgICAgLnF1YWQg ZG9fdG1lbV9vcAotICAgICAgICAucXVhZCBkb19uaV9oeXBlcmNhbGwgICAgICAgLyogcmVzZXJ2 ZWQgZm9yIFhlbkNsaWVudCAqLwotICAgICAgICAucXVhZCBkb194ZW5wbXVfb3AgICAgICAgICAg LyogNDAgKi8KLSAgICAgICAgLnJlcHQgX19IWVBFUlZJU09SX2FyY2hfMC0oKC4taHlwZXJjYWxs X3RhYmxlKS84KQotICAgICAgICAucXVhZCBkb19uaV9oeXBlcmNhbGwKLSAgICAgICAgLmVuZHIK LSAgICAgICAgLnF1YWQgZG9fbWNhICAgICAgICAgICAgICAgIC8qIDQ4ICovCi0gICAgICAgIC5x dWFkIHBhZ2luZ19kb21jdGxfY29udGludWF0aW9uCi0gICAgICAgIC5yZXB0IE5SX2h5cGVyY2Fs bHMtKCguLWh5cGVyY2FsbF90YWJsZSkvOCkKLSAgICAgICAgLnF1YWQgZG9fbmlfaHlwZXJjYWxs Ci0gICAgICAgIC5lbmRyCiAKIC8qIFRhYmxlIG9mIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGVu dHJ5IHBvaW50cy4gIE9uZSBwZXIgdmVjdG9yLiAqLwogICAgICAgICAuc2VjdGlvbiAuaW5pdC5y b2RhdGEsICJhIiwgQHByb2diaXRzCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L3Ry YXBzLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMKaW5kZXggMTlmNThhMS4uOTI4NDhm NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jCisrKyBiL3hlbi9hcmNo L3g4Ni94ODZfNjQvdHJhcHMuYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPHhlbi9ubWku aD4KICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVuL3dhdGNoZG9n Lmg+CisjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+ CiAjaW5jbHVkZSA8YXNtL2ZsdXNodGxiLmg+CiAjaW5jbHVkZSA8YXNtL3RyYXBzLmg+CmRpZmYg LS1naXQgYS94ZW4vY29tbW9uL2tlcm5lbC5jIGIveGVuL2NvbW1vbi9rZXJuZWwuYwppbmRleCA5 MWNjNGVhLi40MzBhZDEzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2tlcm5lbC5jCisrKyBiL3hl bi9jb21tb24va2VybmVsLmMKQEAgLTQ1MSwxMiArNDUxLDYgQEAgRE8odm1fYXNzaXN0KSh1bnNp Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBpbnQgdHlwZSkKIH0KICNlbmRpZgogCi1ETyhuaV9oeXBl cmNhbGwpKHZvaWQpCi17Ci0gICAgLyogTm8tb3AgaHlwZXJjYWxsLiAqLwotICAgIHJldHVybiAt RU5PU1lTOwotfQotCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9oeXBlcmNhbGwuaCBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHlwZXJjYWxsLmgKaW5kZXggNzMxZjNhOC4uYzAwZGUyYiAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9oeXBlcmNhbGwuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h5cGVy Y2FsbC5oCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9waHlzZGV2Lmg+CiAjaW5j bHVkZSA8cHVibGljL2V2ZW50X2NoYW5uZWwuaD4KICNpbmNsdWRlIDxwdWJsaWMvYXJjaC14ODYv eGVuLW1jYS5oPiAvKiBmb3IgZG9fbWNhICovCisjaW5jbHVkZSA8YXNtL3BhZ2luZy5oPgogCiB0 eXBlZGVmIHVuc2lnbmVkIGxvbmcgaHlwZXJjYWxsX2ZuX3QoCiAgICAgdW5zaWduZWQgbG9uZywg dW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywKQEAgLTMyLDYgKzMzLDE0IEBAIGV4dGVybiBs b25nCiBkb19ldmVudF9jaGFubmVsX29wX2NvbXBhdCgKICAgICBYRU5fR1VFU1RfSEFORExFX1BB UkFNKGV2dGNobl9vcF90KSB1b3ApOwogCisvKiBMZWdhY3kgaHlwZXJjYWxsIChhcyBvZiAweDAw MDMwMjAyKS4gKi8KK2V4dGVybiBsb25nIGRvX3BoeXNkZXZfb3BfY29tcGF0KAorICAgIFhFTl9H VUVTVF9IQU5ETEUocGh5c2Rldl9vcF90KSB1b3ApOworCisvKiBMZWdhY3kgaHlwZXJjYWxsIChh cyBvZiAweDAwMDMwMTAxKS4gKi8KK2V4dGVybiBsb25nIGRvX3NjaGVkX29wX2NvbXBhdCgKKyAg ICBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CisKIGV4dGVybiBsb25nCiBkb19zZXRfdHJh cF90YWJsZSgKICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3RyYXBfaW5mb190KSB0 cmFwcyk7CkBAIC05OCw2ICsxMDcsOSBAQCBkb19tbXVleHRfb3AoCiAgICAgWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh1aW50KSBwZG9uZSwKICAgICB1bnNpZ25lZCBpbnQgZm9yZWlnbmRvbSk7CiAK K2V4dGVybiBsb25nIGRvX2NhbGxiYWNrX29wKAorICAgIGludCBjbWQsIFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0oY29uc3Rfdm9pZCkgYXJnKTsKKwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcKIGRvX2ly ZXQoCiAgICAgdm9pZCk7CkBAIC0xMTMsNiArMTI1LDExIEBAIGRvX3NldF9zZWdtZW50X2Jhc2Uo CiAgICAgdW5zaWduZWQgaW50IHdoaWNoLAogICAgIHVuc2lnbmVkIGxvbmcgYmFzZSk7CiAKKyNp ZmRlZiBDT05GSUdfQ09NUEFUCisKKyNpbmNsdWRlIDxjb21wYXQvYXJjaC14ODYveGVuLmg+Cisj aW5jbHVkZSA8Y29tcGF0L3BoeXNkZXYuaD4KKwogZXh0ZXJuIGludAogY29tcGF0X3BoeXNkZXZf b3AoCiAgICAgaW50IGNtZCwKQEAgLTEzMSw0ICsxNDgsMzUgQEAgZXh0ZXJuIGludCBjb21wYXRf bW11ZXh0X29wKAogZXh0ZXJuIGludCBjb21wYXRfcGxhdGZvcm1fb3AoCiAgICAgWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh2b2lkKSB1X3hlbnBmX29wKTsKIAorZXh0ZXJuIGxvbmcgY29tcGF0X2Nh bGxiYWNrX29wKAorICAgIGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEUodm9pZCkgYXJnKTsKKwor ZXh0ZXJuIGludCBjb21wYXRfdXBkYXRlX3ZhX21hcHBpbmcoCisgICAgdW5zaWduZWQgaW50IHZh LCB1MzIgbG8sIHUzMiBoaSwgdW5zaWduZWQgaW50IGZsYWdzKTsKKworZXh0ZXJuIGludCBjb21w YXRfdXBkYXRlX3ZhX21hcHBpbmdfb3RoZXJkb21haW4oCisgICAgdW5zaWduZWQgbG9uZyB2YSwg dTMyIGxvLCB1MzIgaGksIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIGRvbWlkX3QgZG9taWQpOworCitE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh0cmFwX2luZm9fY29tcGF0X3QpOworZXh0ZXJuIGludCBj b21wYXRfc2V0X3RyYXBfdGFibGUoWEVOX0dVRVNUX0hBTkRMRSh0cmFwX2luZm9fY29tcGF0X3Qp IHRyYXBzKTsKKworZXh0ZXJuIGludCBjb21wYXRfc2V0X2dkdCgKKyAgICBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHVpbnQpIGZyYW1lX2xpc3QsIHVuc2lnbmVkIGludCBlbnRyaWVzKTsKKworZXh0 ZXJuIGludCBjb21wYXRfdXBkYXRlX2Rlc2NyaXB0b3IoCisgICAgdTMyIHBhX2xvLCB1MzIgcGFf aGksIHUzMiBkZXNjX2xvLCB1MzIgZGVzY19oaSk7CisKK2V4dGVybiB1bnNpZ25lZCBpbnQgY29t cGF0X2lyZXQodm9pZCk7CisKK2V4dGVybiBpbnQgY29tcGF0X25taV9vcCh1bnNpZ25lZCBpbnQg Y21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZyk7CisKK2V4dGVybiBsb25nIGNv bXBhdF9zZXRfY2FsbGJhY2tzKAorICAgIHVuc2lnbmVkIGxvbmcgZXZlbnRfc2VsZWN0b3IsIHVu c2lnbmVkIGxvbmcgZXZlbnRfYWRkcmVzcywKKyAgICB1bnNpZ25lZCBsb25nIGZhaWxzYWZlX3Nl bGVjdG9yLCB1bnNpZ25lZCBsb25nIGZhaWxzYWZlX2FkZHJlc3MpOworCitERUZJTkVfWEVOX0dV RVNUX0hBTkRMRShwaHlzZGV2X29wX2NvbXBhdF90KTsKK2V4dGVybiBpbnQgY29tcGF0X3BoeXNk ZXZfb3BfY29tcGF0KFhFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9vcF9jb21wYXRfdCkgdW9wKTsK KworI2VuZGlmIC8qIENPTkZJR19DT01QQVQgKi8KKwogI2VuZGlmIC8qIF9fQVNNX1g4Nl9IWVBF UkNBTExfSF9fICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmggYi94 ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmgKaW5kZXggMGM4YWUwZS4uMjA3YTBlOCAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9o eXBlcmNhbGwuaApAQCAtMTksMTAgKzE5LDYgQEAKICNpbmNsdWRlIDx4c20veHNtLmg+CiAKIGV4 dGVybiBsb25nCi1kb19uaV9oeXBlcmNhbGwoCi0gICAgdm9pZCk7Ci0KLWV4dGVybiBsb25nCiBk b19zY2hlZF9vcCgKICAgICBpbnQgY21kLAogICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9p ZCkgYXJnKTsKQEAgLTEzNyw4ICsxMzMsNiBAQCBkb194c21fb3AoCiBleHRlcm4gbG9uZwogZG9f dG1lbV9vcCgKICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHRtZW1fb3BfdCkgdW9wcyk7Ci0j ZWxzZQotI2RlZmluZSBkb190bWVtX29wIGRvX25pX2h5cGVyY2FsbAogI2VuZGlmCiAKIGV4dGVy biBsb25nCkBAIC0xODQsNiArMTc4LDE4IEBAIGNvbXBhdF9zZXRfdGltZXJfb3AoCiAgICAgdTMy IGxvLAogICAgIHMzMiBoaSk7CiAKK2V4dGVybiBpbnQgY29tcGF0X3hzbV9vcCgKKyAgICBYRU5f R1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSBvcCk7CisKK2V4dGVybiBpbnQgY29tcGF0X2tl eGVjX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgdWFy Zyk7CisKK2V4dGVybiBpbnQgY29tcGF0X3ZtX2Fzc2lzdCh1bnNpZ25lZCBpbnQgY21kLCB1bnNp Z25lZCBpbnQgdHlwZSk7CisKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKG11bHRpY2FsbF9lbnRy eV9jb21wYXRfdCk7CitleHRlcm4gaW50IGNvbXBhdF9tdWx0aWNhbGwoCisgICAgWEVOX0dVRVNU X0hBTkRMRV9QQVJBTShtdWx0aWNhbGxfZW50cnlfY29tcGF0X3QpIGNhbGxfbGlzdCwKKyAgICB1 aW50MzJfdCBucl9jYWxscyk7CisKICNlbmRpZgogCiB2b2lkIGFyY2hfZ2V0X3hlbl9jYXBzKHhl bl9jYXBhYmlsaXRpZXNfaW5mb190ICppbmZvKTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==