From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v4 19/26] xen+tools: Export maximum host and guest cpu featuresets via SYSCTL Date: Wed, 23 Mar 2016 16:36:22 +0000 Message-ID: <1458750989-28967-20-git-send-email-andrew.cooper3@citrix.com> References: <1458750989-28967-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: <1458750989-28967-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 , Tim Deegan List-Id: xen-devel@lists.xenproject.org QW5kIHByb3ZpZGUgc3R1YnMgZm9yIHRvb2xzdGFjayB1c2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KQWNrZWQtYnk6IERhdmlkIFNjb3R0IDxkYXZlQHJlY29pbC5v cmc+CkFja2VkLWJ5OiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+Ci0tLQpDQzogVGlt IERlZWdhbiA8dGltQHhlbi5vcmc+Cgp2MjoKICogUmViYXNlZCB0byB1c2UgbGlieGVuY2FsbAog KiBJbXByb3ZlIGh5cGVyY2FsbCBkb2N1bWVudGF0aW9uCnYzOgogKiBQcm92aWRlIGxpYnhjIGlt cGxlbWVudGF0aW9uIGZvciBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHMgYXMgd2Vs bC4KdjQ6CiAqIE1vcmUgY29uc3QuCi0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgg ICAgICAgfCAgNCArKysKIHRvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jICAgICAgICAgIHwgNDEg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL29jYW1sL2xpYnMveGMveGVuY3Ry bC5tbCAgICAgIHwgIDMgKysrCiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWxpICAgICB8 ICA0ICsrKwogdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMgfCAzNSArKysrKysr KysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvc3lzY3RsLmMgICAgICAgICAgICAgICB8 IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL3B1 YmxpYy9zeXNjdGwuaCAgICAgICAgIHwgMjcgKysrKysrKysrKysrKysrKysrKysKIDcgZmlsZXMg Y2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IDE1MGQ3 MjcuLmMxMzZhYTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisr KyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0yNTI5LDYgKzI1MjksMTAgQEAg aW50IHhjX3Bzcl9jYXRfZ2V0X2RvbWFpbl9kYXRhKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJf dCBkb21pZCwKIGludCB4Y19wc3JfY2F0X2dldF9sM19pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCB1 aW50MzJfdCBzb2NrZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqY29z X21heCwgdWludDMyX3QgKmNibV9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s ICpjZHBfZW5hYmxlZCk7CisKK2ludCB4Y19nZXRfY3B1X2xldmVsbGluZ19jYXBzKHhjX2ludGVy ZmFjZSAqeGNoLCB1aW50MzJfdCAqY2Fwcyk7CitpbnQgeGNfZ2V0X2NwdV9mZWF0dXJlc2V0KHhj X2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgKm5yX2ZlYXR1cmVzLCB1aW50MzJfdCAqZmVhdHVyZXNldCk7CiAjZW5kaWYK IAogLyogQ29tcGF0IHNoaW1zICovCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19jcHVpZF94 ODYuYyBiL3Rvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jCmluZGV4IDczM2FkZDQuLjU3ODAzOTcg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jCisrKyBiL3Rvb2xzL2xpYnhj L3hjX2NwdWlkX3g4Ni5jCkBAIC0zMyw2ICszMyw0NyBAQAogI2RlZmluZSBERUZfTUFYX0lOVEVM RVhUICAweDgwMDAwMDA4dQogI2RlZmluZSBERUZfTUFYX0FNREVYVCAgICAweDgwMDAwMDFjdQog CitpbnQgeGNfZ2V0X2NwdV9sZXZlbGxpbmdfY2Fwcyh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMy X3QgKmNhcHMpCit7CisgICAgREVDTEFSRV9TWVNDVEw7CisgICAgaW50IHJldDsKKworICAgIHN5 c2N0bC5jbWQgPSBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHM7CisgICAgcmV0ID0g ZG9fc3lzY3RsKHhjaCwgJnN5c2N0bCk7CisKKyAgICBpZiAoICFyZXQgKQorICAgICAgICAqY2Fw cyA9IHN5c2N0bC51LmNwdV9sZXZlbGxpbmdfY2Fwcy5jYXBzOworCisgICAgcmV0dXJuIHJldDsK K30KKworaW50IHhjX2dldF9jcHVfZmVhdHVyZXNldCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMy X3QgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpucl9mZWF0dXJl cywgdWludDMyX3QgKmZlYXR1cmVzZXQpCit7CisgICAgREVDTEFSRV9TWVNDVEw7CisgICAgREVD TEFSRV9IWVBFUkNBTExfQk9VTkNFKGZlYXR1cmVzZXQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICpucl9mZWF0dXJlcyAqIHNpemVvZigqZmVhdHVyZXNldCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFhDX0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNFX09VVCk7CisgICAgaW50 IHJldDsKKworICAgIGlmICggeGNfaHlwZXJjYWxsX2JvdW5jZV9wcmUoeGNoLCBmZWF0dXJlc2V0 KSApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN5c2N0bC5jbWQgPSBYRU5fU1lTQ1RMX2dl dF9jcHVfZmVhdHVyZXNldDsKKyAgICBzeXNjdGwudS5jcHVfZmVhdHVyZXNldC5pbmRleCA9IGlu ZGV4OworICAgIHN5c2N0bC51LmNwdV9mZWF0dXJlc2V0Lm5yX2ZlYXR1cmVzID0gKm5yX2ZlYXR1 cmVzOworICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LmNwdV9mZWF0dXJlc2V0LmZl YXR1cmVzLCBmZWF0dXJlc2V0KTsKKworICAgIHJldCA9IGRvX3N5c2N0bCh4Y2gsICZzeXNjdGwp OworCisgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgZmVhdHVyZXNldCk7CisKKyAg ICBpZiAoICFyZXQgKQorICAgICAgICAqbnJfZmVhdHVyZXMgPSBzeXNjdGwudS5jcHVfZmVhdHVy ZXNldC5ucl9mZWF0dXJlczsKKworICAgIHJldHVybiByZXQ7Cit9CisKIHN0cnVjdCBjcHVpZF9k b21haW5faW5mbwogewogICAgIGVudW0KZGlmZiAtLWdpdCBhL3Rvb2xzL29jYW1sL2xpYnMveGMv eGVuY3RybC5tbCBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybC5tbAppbmRleCA1OGE1M2Ex Li43NTAwNmU3IDEwMDY0NAotLS0gYS90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWwKKysr IGIvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsLm1sCkBAIC0yNDIsNiArMjQyLDkgQEAgZXh0 ZXJuYWwgdmVyc2lvbl9jaGFuZ2VzZXQ6IGhhbmRsZSAtPiBzdHJpbmcgPSAic3R1Yl94Y192ZXJz aW9uX2NoYW5nZXNldCIKIGV4dGVybmFsIHZlcnNpb25fY2FwYWJpbGl0aWVzOiBoYW5kbGUgLT4g c3RyaW5nID0KICAgInN0dWJfeGNfdmVyc2lvbl9jYXBhYmlsaXRpZXMiCiAKK3R5cGUgZmVhdHVy ZXNldF9pbmRleCA9IEZlYXR1cmVzZXRfcmF3IHwgRmVhdHVyZXNldF9ob3N0IHwgRmVhdHVyZXNl dF9wdiB8IEZlYXR1cmVzZXRfaHZtCitleHRlcm5hbCBnZXRfY3B1X2ZlYXR1cmVzZXQgOiBoYW5k bGUgLT4gZmVhdHVyZXNldF9pbmRleCAtPiBpbnQ2NCBhcnJheSA9ICJzdHViX3hjX2dldF9jcHVf ZmVhdHVyZXNldCIKKwogZXh0ZXJuYWwgd2F0Y2hkb2cgOiBoYW5kbGUgLT4gaW50IC0+IGludDMy IC0+IGludAogICA9ICJzdHViX3hjX3dhdGNoZG9nIgogCmRpZmYgLS1naXQgYS90b29scy9vY2Ft bC9saWJzL3hjL3hlbmN0cmwubWxpIGIvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsLm1saQpp bmRleCAxNjQ0M2RmLi43MjBlNGIyIDEwMDY0NAotLS0gYS90b29scy9vY2FtbC9saWJzL3hjL3hl bmN0cmwubWxpCisrKyBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybC5tbGkKQEAgLTE0Nyw2 ICsxNDcsMTAgQEAgZXh0ZXJuYWwgdmVyc2lvbl9jb21waWxlX2luZm8gOiBoYW5kbGUgLT4gY29t cGlsZV9pbmZvCiBleHRlcm5hbCB2ZXJzaW9uX2NoYW5nZXNldCA6IGhhbmRsZSAtPiBzdHJpbmcg PSAic3R1Yl94Y192ZXJzaW9uX2NoYW5nZXNldCIKIGV4dGVybmFsIHZlcnNpb25fY2FwYWJpbGl0 aWVzIDogaGFuZGxlIC0+IHN0cmluZwogICA9ICJzdHViX3hjX3ZlcnNpb25fY2FwYWJpbGl0aWVz IgorCit0eXBlIGZlYXR1cmVzZXRfaW5kZXggPSBGZWF0dXJlc2V0X3JhdyB8IEZlYXR1cmVzZXRf aG9zdCB8IEZlYXR1cmVzZXRfcHYgfCBGZWF0dXJlc2V0X2h2bQorZXh0ZXJuYWwgZ2V0X2NwdV9m ZWF0dXJlc2V0IDogaGFuZGxlIC0+IGZlYXR1cmVzZXRfaW5kZXggLT4gaW50NjQgYXJyYXkgPSAi c3R1Yl94Y19nZXRfY3B1X2ZlYXR1cmVzZXQiCisKIHR5cGUgY29yZV9tYWdpYyA9IE1hZ2ljX2h2 bSB8IE1hZ2ljX3B2CiB0eXBlIGNvcmVfaGVhZGVyID0gewogICB4Y2hfbWFnaWMgOiBjb3JlX21h Z2ljOwpkaWZmIC0tZ2l0IGEvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMgYi90 b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYwppbmRleCA3NDkyOGU5Li5lN2FkZjM3 IDEwMDY0NAotLS0gYS90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYworKysgYi90 b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYwpAQCAtMTIxNCw2ICsxMjE0LDQxIEBA IENBTUxwcmltIHZhbHVlIHN0dWJfeGNfZG9tYWluX2RlYXNzaWduX2RldmljZSh2YWx1ZSB4Y2gs IHZhbHVlIGRvbWlkLCB2YWx1ZSBkZXNjCiAJQ0FNTHJldHVybihWYWxfdW5pdCk7CiB9CiAKK0NB TUxwcmltIHZhbHVlIHN0dWJfeGNfZ2V0X2NwdV9mZWF0dXJlc2V0KHZhbHVlIHhjaCwgdmFsdWUg aWR4KQoreworCUNBTUxwYXJhbTIoeGNoLCBpZHgpOworCUNBTUxsb2NhbDEoYml0bWFwX3ZhbCk7 CisKKwkvKiBTYWZlLCBiZWNhdXNlIG9mIHRoZSBnbG9iYWwgb2NhbWwgbG9jay4gKi8KKwlzdGF0 aWMgdWludDMyX3QgZnNfbGVuOworCisJaWYgKGZzX2xlbiA9PSAwKQorCXsKKwkJaW50IHJldCA9 IHhjX2dldF9jcHVfZmVhdHVyZXNldChfSCh4Y2gpLCAwLCAmZnNfbGVuLCBOVUxMKTsKKworCQlp ZiAocmV0IHx8IChmc19sZW4gPT0gMCkpCisJCQlmYWlsd2l0aF94YyhfSCh4Y2gpKTsKKwl9CisK Kwl7CisJCS8qIFRvL2Zyb20gaHlwZXJ2aXNvciB0byByZXRyaWV2ZSBhY3R1YWwgZmVhdHVyZXNl dCAqLworCQl1aW50MzJfdCBmc1tmc19sZW5dLCBsZW4gPSBmc19sZW47CisJCXVuc2lnbmVkIGlu dCBpOworCisJCWludCByZXQgPSB4Y19nZXRfY3B1X2ZlYXR1cmVzZXQoX0goeGNoKSwgSW50X3Zh bChpZHgpLCAmbGVuLCBmcyk7CisKKwkJaWYgKHJldCkKKwkJCWZhaWx3aXRoX3hjKF9IKHhjaCkp OworCisJCWJpdG1hcF92YWwgPSBjYW1sX2FsbG9jKGxlbiwgMCk7CisKKwkJZm9yIChpID0gMDsg aSA8IGxlbjsgKytpKQorCQkJU3RvcmVfZmllbGQoYml0bWFwX3ZhbCwgaSwgY2FtbF9jb3B5X2lu dDY0KGZzW2ldKSk7CisJfQorCisJQ0FNTHJldHVybihiaXRtYXBfdmFsKTsKK30KKwogQ0FNTHBy aW0gdmFsdWUgc3R1Yl94Y193YXRjaGRvZyh2YWx1ZSB4Y2gsIHZhbHVlIGRvbWlkLCB2YWx1ZSB0 aW1lb3V0KQogewogCUNBTUxwYXJhbTMoeGNoLCBkb21pZCwgdGltZW91dCk7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvc3lzY3RsLmMgYi94ZW4vYXJjaC94ODYvc3lzY3RsLmMKaW5kZXggZjY4 Y2JlYy4uOWM3NWRlNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3N5c2N0bC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9zeXNjdGwuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHhlbi9jcHUu aD4KICNpbmNsdWRlIDx4c20veHNtLmg+CiAjaW5jbHVkZSA8YXNtL3Bzci5oPgorI2luY2x1ZGUg PGFzbS9jcHVpZC5oPgogCiBzdHJ1Y3QgbDNfY2FjaGVfaW5mbyB7CiAgICAgaW50IHJldDsKQEAg LTE5Niw2ICsxOTcsNTYgQEAgbG9uZyBhcmNoX2RvX3N5c2N0bCgKICAgICAgICAgICAgIHJldCA9 IC1FRkFVTFQ7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBYRU5fU1lTQ1RMX2dldF9jcHVf ZmVhdHVyZXNldDoKKyAgICB7CisgICAgICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCAqY29uc3Qg ZmVhdHVyZXNldF90YWJsZVtdID0geworICAgICAgICAgICAgW1hFTl9TWVNDVExfY3B1X2ZlYXR1 cmVzZXRfcmF3XSAgPSByYXdfZmVhdHVyZXNldCwKKyAgICAgICAgICAgIFtYRU5fU1lTQ1RMX2Nw dV9mZWF0dXJlc2V0X2hvc3RdID0gaG9zdF9mZWF0dXJlc2V0LAorICAgICAgICAgICAgW1hFTl9T WVNDVExfY3B1X2ZlYXR1cmVzZXRfcHZdICAgPSBwdl9mZWF0dXJlc2V0LAorICAgICAgICAgICAg W1hFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfaHZtXSAgPSBodm1fZmVhdHVyZXNldCwKKyAgICAg ICAgfTsKKyAgICAgICAgY29uc3QgdWludDMyX3QgKmZlYXR1cmVzZXQgPSBOVUxMOworICAgICAg ICB1bnNpZ25lZCBpbnQgbnI7CisKKyAgICAgICAgLyogUmVxdWVzdCBmb3IgbWF4aW11bSBudW1i ZXIgb2YgZmVhdHVyZXM/ICovCisgICAgICAgIGlmICggZ3Vlc3RfaGFuZGxlX2lzX251bGwoc3lz Y3RsLT51LmNwdV9mZWF0dXJlc2V0LmZlYXR1cmVzKSApCisgICAgICAgIHsKKyAgICAgICAgICAg IHN5c2N0bC0+dS5jcHVfZmVhdHVyZXNldC5ucl9mZWF0dXJlcyA9IEZTQ0FQSU5UUzsKKyAgICAg ICAgICAgIGlmICggX19jb3B5X2ZpZWxkX3RvX2d1ZXN0KHVfc3lzY3RsLCBzeXNjdGwsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1LmNwdV9mZWF0dXJlc2V0Lm5yX2Zl YXR1cmVzKSApCisgICAgICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKKyAgICAgICAgICAgIGJy ZWFrOworICAgICAgICB9CisKKyAgICAgICAgLyogQ2xpcCB0aGUgbnVtYmVyIG9mIGVudHJpZXMu ICovCisgICAgICAgIG5yID0gbWluKHN5c2N0bC0+dS5jcHVfZmVhdHVyZXNldC5ucl9mZWF0dXJl cywgRlNDQVBJTlRTKTsKKworICAgICAgICAvKiBMb29rIHVwIHJlcXVlc3RlZCBmZWF0dXJlc2V0 LiAqLworICAgICAgICBpZiAoIHN5c2N0bC0+dS5jcHVfZmVhdHVyZXNldC5pbmRleCA8IEFSUkFZ X1NJWkUoZmVhdHVyZXNldF90YWJsZSkgKQorICAgICAgICAgICAgZmVhdHVyZXNldCA9IGZlYXR1 cmVzZXRfdGFibGVbc3lzY3RsLT51LmNwdV9mZWF0dXJlc2V0LmluZGV4XTsKKworICAgICAgICAv KiBCYWQgZmVhdHVyZXNldCBpbmRleD8gKi8KKyAgICAgICAgaWYgKCAhZmVhdHVyZXNldCApCisg ICAgICAgICAgICByZXQgPSAtRUlOVkFMOworCisgICAgICAgIC8qIENvcHkgdGhlIHJlcXVlc3Rl ZCBmZWF0dXJlc2V0IGludG8gcGxhY2UuICovCisgICAgICAgIGlmICggIXJldCAmJiBjb3B5X3Rv X2d1ZXN0KHN5c2N0bC0+dS5jcHVfZmVhdHVyZXNldC5mZWF0dXJlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXNldCwgbnIpICkKKyAgICAgICAgICAgIHJldCA9 IC1FRkFVTFQ7CisKKyAgICAgICAgLyogSW5mb3JtIHRoZSBjYWxsZXIgb2YgaG93IG1hbnkgZmVh dHVyZXMgd2Ugd3JvdGUuICovCisgICAgICAgIHN5c2N0bC0+dS5jcHVfZmVhdHVyZXNldC5ucl9m ZWF0dXJlcyA9IG5yOworICAgICAgICBpZiAoICFyZXQgJiYgX19jb3B5X2ZpZWxkX3RvX2d1ZXN0 KHVfc3lzY3RsLCBzeXNjdGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdS5jcHVfZmVhdHVyZXNldC5ucl9mZWF0dXJlcykgKQorICAgICAgICAgICAgcmV0ID0g LUVGQVVMVDsKKworICAgICAgICAvKiBJbmZvcm0gdGhlIGNhbGxlciBpZiB0aGVyZSB3YXMgbW9y ZSBkYXRhIHRvIHByb3ZpZGUuICovCisgICAgICAgIGlmICggIXJldCAmJiBuciA8IEZTQ0FQSU5U UyApCisgICAgICAgICAgICByZXQgPSAtRU5PQlVGUzsKKworICAgICAgICBicmVhazsKKyAgICB9 CisKICAgICBkZWZhdWx0OgogICAgICAgICByZXQgPSAtRU5PU1lTOwogICAgICAgICBicmVhazsK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9zeXNjdGwuaAppbmRleCAxYWIxNmRiLi40NTk2ZDIwIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9wdWJsaWMvc3lzY3RsLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCkBA IC03ODcsNiArNzg3LDMxIEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdV9sZXZlbGxpbmdfY2FwcyB7 CiB0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdV9sZXZlbGxpbmdfY2FwcyB4ZW5fc3lzY3Rs X2NwdV9sZXZlbGxpbmdfY2Fwc190OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0 bF9jcHVfbGV2ZWxsaW5nX2NhcHNfdCk7CiAKKy8qCisgKiBYRU5fU1lTQ1RMX2dldF9jcHVfZmVh dHVyZXNldCAoeDg2IHNwZWNpZmljKQorICoKKyAqIFJldHVybiBpbmZvcm1hdGlvbiBhYm91dCBm ZWF0dXJlc2V0cyBhdmFpbGFibGUgb24gdGhpcyBob3N0LgorICogIC0gIFJhdzogVGhlIHJlYWwg Y3B1aWQgdmFsdWVzLgorICogIC0gSG9zdDogVGhlIHZhbHVlcyBYZW4gaXMgdXNpbmcsIChhZnRl ciBjb21tYW5kIGxpbmUgb3ZlcnJpZGVzLCBldGMpLgorICogIC0gICBQVjogTWF4aW11bSBzZXQg b2YgZmVhdHVyZXMgd2hpY2ggY2FuIGJlIGdpdmVuIHRvIGEgUFYgZ3Vlc3QuCisgKiAgLSAgSFZN OiBNYXhpbXVtIHNldCBvZiBmZWF0dXJlcyB3aGljaCBjYW4gYmUgZ2l2ZW4gdG8gYSBIVk0gZ3Vl c3QuCisgKi8KK3N0cnVjdCB4ZW5fc3lzY3RsX2NwdV9mZWF0dXJlc2V0IHsKKyNkZWZpbmUgWEVO X1NZU0NUTF9jcHVfZmVhdHVyZXNldF9yYXcgICAgICAwCisjZGVmaW5lIFhFTl9TWVNDVExfY3B1 X2ZlYXR1cmVzZXRfaG9zdCAgICAgMQorI2RlZmluZSBYRU5fU1lTQ1RMX2NwdV9mZWF0dXJlc2V0 X3B2ICAgICAgIDIKKyNkZWZpbmUgWEVOX1NZU0NUTF9jcHVfZmVhdHVyZXNldF9odm0gICAgICAz CisgICAgdWludDMyX3QgaW5kZXg7ICAgICAgIC8qIElOOiBXaGljaCBmZWF0dXJlc2V0IHRvIHF1 ZXJ5PyAqLworICAgIHVpbnQzMl90IG5yX2ZlYXR1cmVzOyAvKiBJTi9PVVQ6IE51bWJlciBvZiBl bnRyaWVzIGluL3dyaXR0ZW4gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICogJ2ZlYXR1 cmVzJywgb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIGZlYXR1cmVzIGlmCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAqIHRoZSBndWVzdCBoYW5kbGUgaXMgTlVMTC4gIE5CLiBBbGwgZmVhdHVy ZXNldHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICogY29tZSBmcm9tIHRoZSBzYW1lIG51 bWJlcnNwYWNlLCBzbyBoYXZlIHRoZSBzYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAq IG1heGltdW0gbGVuZ3RoLiAqLworICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSBmZWF0 dXJlczsgLyogT1VUOiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfZmVhdHVyZXNl dCB4ZW5fc3lzY3RsX2ZlYXR1cmVzZXRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9z eXNjdGxfZmVhdHVyZXNldF90KTsKKwogc3RydWN0IHhlbl9zeXNjdGwgewogICAgIHVpbnQzMl90 IGNtZDsKICNkZWZpbmUgWEVOX1NZU0NUTF9yZWFkY29uc29sZSAgICAgICAgICAgICAgICAgICAg MQpAQCAtODEzLDYgKzgzOCw3IEBAIHN0cnVjdCB4ZW5fc3lzY3RsIHsKICNkZWZpbmUgWEVOX1NZ U0NUTF9wc3JfY2F0X29wICAgICAgICAgICAgICAgICAgICAyMwogI2RlZmluZSBYRU5fU1lTQ1RM X3RtZW1fb3AgICAgICAgICAgICAgICAgICAgICAgIDI0CiAjZGVmaW5lIFhFTl9TWVNDVExfZ2V0 X2NwdV9sZXZlbGxpbmdfY2FwcyAgICAgICAgMjUKKyNkZWZpbmUgWEVOX1NZU0NUTF9nZXRfY3B1 X2ZlYXR1cmVzZXQgICAgICAgICAgICAyNgogICAgIHVpbnQzMl90IGludGVyZmFjZV92ZXJzaW9u OyAvKiBYRU5fU1lTQ1RMX0lOVEVSRkFDRV9WRVJTSU9OICovCiAgICAgdW5pb24gewogICAgICAg ICBzdHJ1Y3QgeGVuX3N5c2N0bF9yZWFkY29uc29sZSAgICAgICByZWFkY29uc29sZTsKQEAgLTgz OSw2ICs4NjUsNyBAQCBzdHJ1Y3QgeGVuX3N5c2N0bCB7CiAgICAgICAgIHN0cnVjdCB4ZW5fc3lz Y3RsX3Bzcl9jYXRfb3AgICAgICAgIHBzcl9jYXRfb3A7CiAgICAgICAgIHN0cnVjdCB4ZW5fc3lz Y3RsX3RtZW1fb3AgICAgICAgICAgIHRtZW1fb3A7CiAgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3Rs X2NwdV9sZXZlbGxpbmdfY2FwcyBjcHVfbGV2ZWxsaW5nX2NhcHM7CisgICAgICAgIHN0cnVjdCB4 ZW5fc3lzY3RsX2NwdV9mZWF0dXJlc2V0ICAgIGNwdV9mZWF0dXJlc2V0OwogICAgICAgICB1aW50 OF90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRbMTI4XTsKICAgICB9IHU7CiB9Owot LSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=