From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 21/28] xen+tools: Export maximum host and guest cpu featuresets via SYSCTL Date: Tue, 15 Mar 2016 15:35:17 +0000 Message-ID: <1458056124-8024-22-git-send-email-andrew.cooper3@citrix.com> References: <1458056124-8024-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: <1458056124-8024-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: Wei Liu , Andrew Cooper , Tim Deegan , Rob Hoes , Jan Beulich , David Scott List-Id: xen-devel@lists.xenproject.org QW5kIHByb3ZpZGUgc3R1YnMgZm9yIHRvb2xzdGFjayB1c2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNo IDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDQzogV2Vp IExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IERhdmlkIFNjb3R0IDxkYXZlQHJlY29pbC5v cmc+CkNDOiBSb2IgSG9lcyA8Um9iLkhvZXNAY2l0cml4LmNvbT4KCnYzOgogKiBQcm92aWRlIGxp YnhjIGltcGxlbWVudGF0aW9uIGZvciBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHMg YXMgd2VsbC4KdjI6CiAqIFJlYmFzZWQgdG8gdXNlIGxpYnhlbmNhbGwKICogSW1wcm92ZSBoeXBl cmNhbGwgZG9jdW1lbnRhdGlvbgotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAg ICAgIHwgIDQgKysrCiB0b29scy9saWJ4Yy94Y19jcHVpZF94ODYuYyAgICAgICAgICB8IDQxICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwu bWwgICAgICB8ICAzICsrKwogdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsLm1saSAgICAgfCAg NCArKysKIHRvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jIHwgMzUgKysrKysrKysr KysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L3N5c2N0bC5jICAgICAgICAgICAgICAgfCA1 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJs aWMvc3lzY3RsLmggICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKysrCiA3IGZpbGVzIGNo YW5nZWQsIDE2NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVk ZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCAxNTBkNzI3 Li5jMTM2YWE4IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysg Yi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMjUyOSw2ICsyNTI5LDEwIEBAIGlu dCB4Y19wc3JfY2F0X2dldF9kb21haW5fZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qg ZG9taWQsCiBpbnQgeGNfcHNyX2NhdF9nZXRfbDNfaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgdWlu dDMyX3Qgc29ja2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmNvc19t YXgsIHVpbnQzMl90ICpjYm1fbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAq Y2RwX2VuYWJsZWQpOworCitpbnQgeGNfZ2V0X2NwdV9sZXZlbGxpbmdfY2Fwcyh4Y19pbnRlcmZh Y2UgKnhjaCwgdWludDMyX3QgKmNhcHMpOworaW50IHhjX2dldF9jcHVfZmVhdHVyZXNldCh4Y19p bnRlcmZhY2UgKnhjaCwgdWludDMyX3QgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90ICpucl9mZWF0dXJlcywgdWludDMyX3QgKmZlYXR1cmVzZXQpOwogI2VuZGlmCiAK IC8qIENvbXBhdCBzaGltcyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2 LmMgYi90b29scy9saWJ4Yy94Y19jcHVpZF94ODYuYwppbmRleCA3MzNhZGQ0Li41NzgwMzk3IDEw MDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19jcHVpZF94ODYuYworKysgYi90b29scy9saWJ4Yy94 Y19jcHVpZF94ODYuYwpAQCAtMzMsNiArMzMsNDcgQEAKICNkZWZpbmUgREVGX01BWF9JTlRFTEVY VCAgMHg4MDAwMDAwOHUKICNkZWZpbmUgREVGX01BWF9BTURFWFQgICAgMHg4MDAwMDAxY3UKIAor aW50IHhjX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHMoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90 ICpjYXBzKQoreworICAgIERFQ0xBUkVfU1lTQ1RMOworICAgIGludCByZXQ7CisKKyAgICBzeXNj dGwuY21kID0gWEVOX1NZU0NUTF9nZXRfY3B1X2xldmVsbGluZ19jYXBzOworICAgIHJldCA9IGRv X3N5c2N0bCh4Y2gsICZzeXNjdGwpOworCisgICAgaWYgKCAhcmV0ICkKKyAgICAgICAgKmNhcHMg PSBzeXNjdGwudS5jcHVfbGV2ZWxsaW5nX2NhcHMuY2FwczsKKworICAgIHJldHVybiByZXQ7Cit9 CisKK2ludCB4Y19nZXRfY3B1X2ZlYXR1cmVzZXQoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90 IGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbnJfZmVhdHVyZXMs IHVpbnQzMl90ICpmZWF0dXJlc2V0KQoreworICAgIERFQ0xBUkVfU1lTQ1RMOworICAgIERFQ0xB UkVfSFlQRVJDQUxMX0JPVU5DRShmZWF0dXJlc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqbnJfZmVhdHVyZXMgKiBzaXplb2YoKmZlYXR1cmVzZXQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBYQ19IWVBFUkNBTExfQlVGRkVSX0JPVU5DRV9PVVQpOworICAgIGludCBy ZXQ7CisKKyAgICBpZiAoIHhjX2h5cGVyY2FsbF9ib3VuY2VfcHJlKHhjaCwgZmVhdHVyZXNldCkg KQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzeXNjdGwuY21kID0gWEVOX1NZU0NUTF9nZXRf Y3B1X2ZlYXR1cmVzZXQ7CisgICAgc3lzY3RsLnUuY3B1X2ZlYXR1cmVzZXQuaW5kZXggPSBpbmRl eDsKKyAgICBzeXNjdGwudS5jcHVfZmVhdHVyZXNldC5ucl9mZWF0dXJlcyA9ICpucl9mZWF0dXJl czsKKyAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwudS5jcHVfZmVhdHVyZXNldC5mZWF0 dXJlcywgZmVhdHVyZXNldCk7CisKKyAgICByZXQgPSBkb19zeXNjdGwoeGNoLCAmc3lzY3RsKTsK KworICAgIHhjX2h5cGVyY2FsbF9ib3VuY2VfcG9zdCh4Y2gsIGZlYXR1cmVzZXQpOworCisgICAg aWYgKCAhcmV0ICkKKyAgICAgICAgKm5yX2ZlYXR1cmVzID0gc3lzY3RsLnUuY3B1X2ZlYXR1cmVz ZXQubnJfZmVhdHVyZXM7CisKKyAgICByZXR1cm4gcmV0OworfQorCiBzdHJ1Y3QgY3B1aWRfZG9t YWluX2luZm8KIHsKICAgICBlbnVtCmRpZmYgLS1naXQgYS90b29scy9vY2FtbC9saWJzL3hjL3hl bmN0cmwubWwgYi90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWwKaW5kZXggNThhNTNhMS4u NzUwMDZlNyAxMDA2NDQKLS0tIGEvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsLm1sCisrKyBi L3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybC5tbApAQCAtMjQyLDYgKzI0Miw5IEBAIGV4dGVy bmFsIHZlcnNpb25fY2hhbmdlc2V0OiBoYW5kbGUgLT4gc3RyaW5nID0gInN0dWJfeGNfdmVyc2lv bl9jaGFuZ2VzZXQiCiBleHRlcm5hbCB2ZXJzaW9uX2NhcGFiaWxpdGllczogaGFuZGxlIC0+IHN0 cmluZyA9CiAgICJzdHViX3hjX3ZlcnNpb25fY2FwYWJpbGl0aWVzIgogCit0eXBlIGZlYXR1cmVz ZXRfaW5kZXggPSBGZWF0dXJlc2V0X3JhdyB8IEZlYXR1cmVzZXRfaG9zdCB8IEZlYXR1cmVzZXRf cHYgfCBGZWF0dXJlc2V0X2h2bQorZXh0ZXJuYWwgZ2V0X2NwdV9mZWF0dXJlc2V0IDogaGFuZGxl IC0+IGZlYXR1cmVzZXRfaW5kZXggLT4gaW50NjQgYXJyYXkgPSAic3R1Yl94Y19nZXRfY3B1X2Zl YXR1cmVzZXQiCisKIGV4dGVybmFsIHdhdGNoZG9nIDogaGFuZGxlIC0+IGludCAtPiBpbnQzMiAt PiBpbnQKICAgPSAic3R1Yl94Y193YXRjaGRvZyIKIApkaWZmIC0tZ2l0IGEvdG9vbHMvb2NhbWwv bGlicy94Yy94ZW5jdHJsLm1saSBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybC5tbGkKaW5k ZXggMTY0NDNkZi4uNzIwZTRiMiAxMDA2NDQKLS0tIGEvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5j dHJsLm1saQorKysgYi90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWxpCkBAIC0xNDcsNiAr MTQ3LDEwIEBAIGV4dGVybmFsIHZlcnNpb25fY29tcGlsZV9pbmZvIDogaGFuZGxlIC0+IGNvbXBp bGVfaW5mbwogZXh0ZXJuYWwgdmVyc2lvbl9jaGFuZ2VzZXQgOiBoYW5kbGUgLT4gc3RyaW5nID0g InN0dWJfeGNfdmVyc2lvbl9jaGFuZ2VzZXQiCiBleHRlcm5hbCB2ZXJzaW9uX2NhcGFiaWxpdGll cyA6IGhhbmRsZSAtPiBzdHJpbmcKICAgPSAic3R1Yl94Y192ZXJzaW9uX2NhcGFiaWxpdGllcyIK KwordHlwZSBmZWF0dXJlc2V0X2luZGV4ID0gRmVhdHVyZXNldF9yYXcgfCBGZWF0dXJlc2V0X2hv c3QgfCBGZWF0dXJlc2V0X3B2IHwgRmVhdHVyZXNldF9odm0KK2V4dGVybmFsIGdldF9jcHVfZmVh dHVyZXNldCA6IGhhbmRsZSAtPiBmZWF0dXJlc2V0X2luZGV4IC0+IGludDY0IGFycmF5ID0gInN0 dWJfeGNfZ2V0X2NwdV9mZWF0dXJlc2V0IgorCiB0eXBlIGNvcmVfbWFnaWMgPSBNYWdpY19odm0g fCBNYWdpY19wdgogdHlwZSBjb3JlX2hlYWRlciA9IHsKICAgeGNoX21hZ2ljIDogY29yZV9tYWdp YzsKZGlmZiAtLWdpdCBhL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jIGIvdG9v bHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMKaW5kZXggNzQ5MjhlOS4uZTdhZGYzNyAx MDA2NDQKLS0tIGEvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMKKysrIGIvdG9v bHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMKQEAgLTEyMTQsNiArMTIxNCw0MSBAQCBD QU1McHJpbSB2YWx1ZSBzdHViX3hjX2RvbWFpbl9kZWFzc2lnbl9kZXZpY2UodmFsdWUgeGNoLCB2 YWx1ZSBkb21pZCwgdmFsdWUgZGVzYwogCUNBTUxyZXR1cm4oVmFsX3VuaXQpOwogfQogCitDQU1M cHJpbSB2YWx1ZSBzdHViX3hjX2dldF9jcHVfZmVhdHVyZXNldCh2YWx1ZSB4Y2gsIHZhbHVlIGlk eCkKK3sKKwlDQU1McGFyYW0yKHhjaCwgaWR4KTsKKwlDQU1MbG9jYWwxKGJpdG1hcF92YWwpOwor CisJLyogU2FmZSwgYmVjYXVzZSBvZiB0aGUgZ2xvYmFsIG9jYW1sIGxvY2suICovCisJc3RhdGlj IHVpbnQzMl90IGZzX2xlbjsKKworCWlmIChmc19sZW4gPT0gMCkKKwl7CisJCWludCByZXQgPSB4 Y19nZXRfY3B1X2ZlYXR1cmVzZXQoX0goeGNoKSwgMCwgJmZzX2xlbiwgTlVMTCk7CisKKwkJaWYg KHJldCB8fCAoZnNfbGVuID09IDApKQorCQkJZmFpbHdpdGhfeGMoX0goeGNoKSk7CisJfQorCisJ eworCQkvKiBUby9mcm9tIGh5cGVydmlzb3IgdG8gcmV0cmlldmUgYWN0dWFsIGZlYXR1cmVzZXQg Ki8KKwkJdWludDMyX3QgZnNbZnNfbGVuXSwgbGVuID0gZnNfbGVuOworCQl1bnNpZ25lZCBpbnQg aTsKKworCQlpbnQgcmV0ID0geGNfZ2V0X2NwdV9mZWF0dXJlc2V0KF9IKHhjaCksIEludF92YWwo aWR4KSwgJmxlbiwgZnMpOworCisJCWlmIChyZXQpCisJCQlmYWlsd2l0aF94YyhfSCh4Y2gpKTsK KworCQliaXRtYXBfdmFsID0gY2FtbF9hbGxvYyhsZW4sIDApOworCisJCWZvciAoaSA9IDA7IGkg PCBsZW47ICsraSkKKwkJCVN0b3JlX2ZpZWxkKGJpdG1hcF92YWwsIGksIGNhbWxfY29weV9pbnQ2 NChmc1tpXSkpOworCX0KKworCUNBTUxyZXR1cm4oYml0bWFwX3ZhbCk7Cit9CisKIENBTUxwcmlt IHZhbHVlIHN0dWJfeGNfd2F0Y2hkb2codmFsdWUgeGNoLCB2YWx1ZSBkb21pZCwgdmFsdWUgdGlt ZW91dCkKIHsKIAlDQU1McGFyYW0zKHhjaCwgZG9taWQsIHRpbWVvdXQpOwpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3N5c2N0bC5jIGIveGVuL2FyY2gveDg2L3N5c2N0bC5jCmluZGV4IGY2OGNi ZWMuLmNiOTU5MGUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYworKysgYi94ZW4v YXJjaC94ODYvc3lzY3RsLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDx4ZW4vY3B1Lmg+ CiAjaW5jbHVkZSA8eHNtL3hzbS5oPgogI2luY2x1ZGUgPGFzbS9wc3IuaD4KKyNpbmNsdWRlIDxh c20vY3B1aWQuaD4KIAogc3RydWN0IGwzX2NhY2hlX2luZm8gewogICAgIGludCByZXQ7CkBAIC0x OTYsNiArMTk3LDU2IEBAIGxvbmcgYXJjaF9kb19zeXNjdGwoCiAgICAgICAgICAgICByZXQgPSAt RUZBVUxUOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgWEVOX1NZU0NUTF9nZXRfY3B1X2Zl YXR1cmVzZXQ6CisgICAgeworICAgICAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgKmZlYXR1cmVz ZXRfdGFibGVbXSA9IHsKKyAgICAgICAgICAgIFtYRU5fU1lTQ1RMX2NwdV9mZWF0dXJlc2V0X3Jh d10gID0gcmF3X2ZlYXR1cmVzZXQsCisgICAgICAgICAgICBbWEVOX1NZU0NUTF9jcHVfZmVhdHVy ZXNldF9ob3N0XSA9IGhvc3RfZmVhdHVyZXNldCwKKyAgICAgICAgICAgIFtYRU5fU1lTQ1RMX2Nw dV9mZWF0dXJlc2V0X3B2XSAgID0gcHZfZmVhdHVyZXNldCwKKyAgICAgICAgICAgIFtYRU5fU1lT Q1RMX2NwdV9mZWF0dXJlc2V0X2h2bV0gID0gaHZtX2ZlYXR1cmVzZXQsCisgICAgICAgIH07Cisg ICAgICAgIGNvbnN0IHVpbnQzMl90ICpmZWF0dXJlc2V0ID0gTlVMTDsKKyAgICAgICAgdW5zaWdu ZWQgaW50IG5yOworCisgICAgICAgIC8qIFJlcXVlc3QgZm9yIG1heGltdW0gbnVtYmVyIG9mIGZl YXR1cmVzPyAqLworICAgICAgICBpZiAoIGd1ZXN0X2hhbmRsZV9pc19udWxsKHN5c2N0bC0+dS5j cHVfZmVhdHVyZXNldC5mZWF0dXJlcykgKQorICAgICAgICB7CisgICAgICAgICAgICBzeXNjdGwt PnUuY3B1X2ZlYXR1cmVzZXQubnJfZmVhdHVyZXMgPSBGU0NBUElOVFM7CisgICAgICAgICAgICBp ZiAoIF9fY29weV9maWVsZF90b19ndWVzdCh1X3N5c2N0bCwgc3lzY3RsLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdS5jcHVfZmVhdHVyZXNldC5ucl9mZWF0dXJlcykg KQorICAgICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7CisgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgfQorCisgICAgICAgIC8qIENsaXAgdGhlIG51bWJlciBvZiBlbnRyaWVzLiAqLworICAg ICAgICBuciA9IG1pbihzeXNjdGwtPnUuY3B1X2ZlYXR1cmVzZXQubnJfZmVhdHVyZXMsIEZTQ0FQ SU5UUyk7CisKKyAgICAgICAgLyogTG9vayB1cCByZXF1ZXN0ZWQgZmVhdHVyZXNldC4gKi8KKyAg ICAgICAgaWYgKCBzeXNjdGwtPnUuY3B1X2ZlYXR1cmVzZXQuaW5kZXggPCBBUlJBWV9TSVpFKGZl YXR1cmVzZXRfdGFibGUpICkKKyAgICAgICAgICAgIGZlYXR1cmVzZXQgPSBmZWF0dXJlc2V0X3Rh YmxlW3N5c2N0bC0+dS5jcHVfZmVhdHVyZXNldC5pbmRleF07CisKKyAgICAgICAgLyogQmFkIGZl YXR1cmVzZXQgaW5kZXg/ICovCisgICAgICAgIGlmICggIWZlYXR1cmVzZXQgKQorICAgICAgICAg ICAgcmV0ID0gLUVJTlZBTDsKKworICAgICAgICAvKiBDb3B5IHRoZSByZXF1ZXN0ZWQgZmVhdHVy ZXNldCBpbnRvIHBsYWNlLiAqLworICAgICAgICBpZiAoICFyZXQgJiYgY29weV90b19ndWVzdChz eXNjdGwtPnUuY3B1X2ZlYXR1cmVzZXQuZmVhdHVyZXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZlYXR1cmVzZXQsIG5yKSApCisgICAgICAgICAgICByZXQgPSAtRUZBVUxU OworCisgICAgICAgIC8qIEluZm9ybSB0aGUgY2FsbGVyIG9mIGhvdyBtYW55IGZlYXR1cmVzIHdl IHdyb3RlLiAqLworICAgICAgICBzeXNjdGwtPnUuY3B1X2ZlYXR1cmVzZXQubnJfZmVhdHVyZXMg PSBucjsKKyAgICAgICAgaWYgKCAhcmV0ICYmIF9fY29weV9maWVsZF90b19ndWVzdCh1X3N5c2N0 bCwgc3lzY3RsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUu Y3B1X2ZlYXR1cmVzZXQubnJfZmVhdHVyZXMpICkKKyAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7 CisKKyAgICAgICAgLyogSW5mb3JtIHRoZSBjYWxsZXIgaWYgdGhlcmUgd2FzIG1vcmUgZGF0YSB0 byBwcm92aWRlLiAqLworICAgICAgICBpZiAoICFyZXQgJiYgbnIgPCBGU0NBUElOVFMgKQorICAg ICAgICAgICAgcmV0ID0gLUVOT0JVRlM7CisKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAg ZGVmYXVsdDoKICAgICAgICAgcmV0ID0gLUVOT1NZUzsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvc3lz Y3RsLmgKaW5kZXggMGRhY2NhMi4uNzgwYTg1NyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVi bGljL3N5c2N0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaApAQCAtNzg3LDYg Kzc4NywzMSBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfbGV2ZWxsaW5nX2NhcHMgewogdHlwZWRl ZiBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfbGV2ZWxsaW5nX2NhcHMgeGVuX3N5c2N0bF9jcHVfbGV2 ZWxsaW5nX2NhcHNfdDsKIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfY3B1X2xl dmVsbGluZ19jYXBzX3QpOwogCisvKgorICogWEVOX1NZU0NUTF9nZXRfY3B1X2ZlYXR1cmVzZXQg KHg4NiBzcGVjaWZpYykKKyAqCisgKiBSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgZmVhdHVyZXNl dHMgYXZhaWxhYmxlIG9uIHRoaXMgaG9zdC4KKyAqICAtICBSYXc6IFRoZSByZWFsIGNwdWlkIHZh bHVlcy4KKyAqICAtIEhvc3Q6IFRoZSB2YWx1ZXMgWGVuIGlzIHVzaW5nLCAoYWZ0ZXIgY29tbWFu ZCBsaW5lIG92ZXJyaWRlcywgZXRjKS4KKyAqICAtICAgUFY6IE1heGltdW0gc2V0IG9mIGZlYXR1 cmVzIHdoaWNoIGNhbiBiZSBnaXZlbiB0byBhIFBWIGd1ZXN0LgorICogIC0gIEhWTTogTWF4aW11 bSBzZXQgb2YgZmVhdHVyZXMgd2hpY2ggY2FuIGJlIGdpdmVuIHRvIGEgSFZNIGd1ZXN0LgorICov CitzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfZmVhdHVyZXNldCB7CisjZGVmaW5lIFhFTl9TWVNDVExf Y3B1X2ZlYXR1cmVzZXRfcmF3ICAgICAgMAorI2RlZmluZSBYRU5fU1lTQ1RMX2NwdV9mZWF0dXJl c2V0X2hvc3QgICAgIDEKKyNkZWZpbmUgWEVOX1NZU0NUTF9jcHVfZmVhdHVyZXNldF9wdiAgICAg ICAyCisjZGVmaW5lIFhFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfaHZtICAgICAgMworICAgIHVp bnQzMl90IGluZGV4OyAgICAgICAvKiBJTjogV2hpY2ggZmVhdHVyZXNldCB0byBxdWVyeT8gKi8K KyAgICB1aW50MzJfdCBucl9mZWF0dXJlczsgLyogSU4vT1VUOiBOdW1iZXIgb2YgZW50cmllcyBp bi93cml0dGVuIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAqICdmZWF0dXJlcycsIG9y IHRoZSBtYXhpbXVtIG51bWJlciBvZiBmZWF0dXJlcyBpZgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgKiB0aGUgZ3Vlc3QgaGFuZGxlIGlzIE5VTEwuICBOQi4gQWxsIGZlYXR1cmVzZXRzCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAqIGNvbWUgZnJvbSB0aGUgc2FtZSBudW1iZXJzcGFj ZSwgc28gaGF2ZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtYXhpbXVt IGxlbmd0aC4gKi8KKyAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQzMikgZmVhdHVyZXM7IC8q IE9VVDogKi8KK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2ZlYXR1cmVzZXQgeGVuX3N5 c2N0bF9mZWF0dXJlc2V0X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2Zl YXR1cmVzZXRfdCk7CisKIHN0cnVjdCB4ZW5fc3lzY3RsIHsKICAgICB1aW50MzJfdCBjbWQ7CiAj ZGVmaW5lIFhFTl9TWVNDVExfcmVhZGNvbnNvbGUgICAgICAgICAgICAgICAgICAgIDEKQEAgLTgx Myw2ICs4MzgsNyBAQCBzdHJ1Y3QgeGVuX3N5c2N0bCB7CiAjZGVmaW5lIFhFTl9TWVNDVExfcHNy X2NhdF9vcCAgICAgICAgICAgICAgICAgICAgMjMKICNkZWZpbmUgWEVOX1NZU0NUTF90bWVtX29w ICAgICAgICAgICAgICAgICAgICAgICAyNAogI2RlZmluZSBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2 ZWxsaW5nX2NhcHMgICAgICAgIDI1CisjZGVmaW5lIFhFTl9TWVNDVExfZ2V0X2NwdV9mZWF0dXJl c2V0ICAgICAgICAgICAgMjYKICAgICB1aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogWEVO X1NZU0NUTF9JTlRFUkZBQ0VfVkVSU0lPTiAqLwogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0 IHhlbl9zeXNjdGxfcmVhZGNvbnNvbGUgICAgICAgcmVhZGNvbnNvbGU7CkBAIC04MzksNiArODY1 LDcgQEAgc3RydWN0IHhlbl9zeXNjdGwgewogICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9wc3Jf Y2F0X29wICAgICAgICBwc3JfY2F0X29wOwogICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF90bWVt X29wICAgICAgICAgICB0bWVtX29wOwogICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfbGV2 ZWxsaW5nX2NhcHMgY3B1X2xldmVsbGluZ19jYXBzOworICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0 bF9jcHVfZmVhdHVyZXNldCAgICBjcHVfZmVhdHVyZXNldDsKICAgICAgICAgdWludDhfdCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFkWzEyOF07CiAgICAgfSB1OwogfTsKLS0gCjIuMS40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK