From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v5 14/21] xen+tools: Export maximum host and guest cpu featuresets via SYSCTL Date: Thu, 7 Apr 2016 12:57:19 +0100 Message-ID: <1460030246-30153-15-git-send-email-andrew.cooper3@citrix.com> References: <1460030246-30153-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: <1460030246-30153-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 , Daniel De Graaf , Tim Deegan List-Id: xen-devel@lists.xenproject.org QW5kIHByb3ZpZGUgc3R1YnMgZm9yIHRvb2xzdGFjayB1c2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KQWNrZWQtYnk6IERhdmlkIFNjb3R0IDxkYXZlQHJlY29pbC5v cmc+CkFja2VkLWJ5OiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+Ci0tLQpDQzogVGlt IERlZWdhbiA8dGltQHhlbi5vcmc+CkNDOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8u bnNhLmdvdj4KCnYyOgogKiBSZWJhc2VkIHRvIHVzZSBsaWJ4ZW5jYWxsCiAqIEltcHJvdmUgaHlw ZXJjYWxsIGRvY3VtZW50YXRpb24KdjM6CiAqIFByb3ZpZGUgbGlieGMgaW1wbGVtZW50YXRpb24g Zm9yIFhFTl9TWVNDVExfZ2V0X2NwdV9sZXZlbGxpbmdfY2FwcyBhcyB3ZWxsLgp2NDoKICogTW9y ZSBjb25zdC4KdjU6CiAqIFhTTSBiaXRzLgotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kv bW9kdWxlcy94ZW4veGVuLnRlIHwgIDEgKwogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgg ICAgICAgICAgICAgICAgfCAgNCArKysKIHRvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jICAgICAg ICAgICAgICAgICAgIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMvb2NhbWwvbGli cy94Yy94ZW5jdHJsLm1sICAgICAgICAgICAgICAgfCAgMyArKwogdG9vbHMvb2NhbWwvbGlicy94 Yy94ZW5jdHJsLm1saSAgICAgICAgICAgICAgfCAgNCArKysKIHRvb2xzL29jYW1sL2xpYnMveGMv eGVuY3RybF9zdHVicy5jICAgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKwogeGVuL2Fy Y2gveDg2L3N5c2N0bC5jICAgICAgICAgICAgICAgICAgICAgICAgfCA1MSArKysrKysrKysrKysr KysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggICAgICAgICAgICAg ICAgICB8IDI3ICsrKysrKysrKysrKysrKwogeGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMyArKwogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3Rv cnMgICAgICAgICAgfCAgMiArKwogMTAgZmlsZXMgY2hhbmdlZCwgMTcxIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50 ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCmluZGV4IGMy OWIwNjcuLmE1NTE3NTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9k dWxlcy94ZW4veGVuLnRlCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94 ZW4veGVuLnRlCkBAIC03Myw2ICs3Myw3IEBAIGFsbG93IGRvbTBfdCB4ZW5fdDp4ZW4yIHsKICAg ICBwbXVfY3RybAogICAgIGdldF9zeW1ib2wKICAgICBnZXRfY3B1X2xldmVsbGluZ19jYXBzCisg ICAgZ2V0X2NwdV9mZWF0dXJlc2V0CiB9OwogCiAjIEFsbG93IGRvbTAgdG8gdXNlIGFsbCBYRU5W RVJfIHN1Ym9wcyBhbmQgVkVSU0lPTiBzdWJvcHMgdGhhdCBoYXZlIGNoZWNrcy4KZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94 ZW5jdHJsLmgKaW5kZXggZThjYjFlYy4uMWM4NjVhMyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMv aW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKQEAg LTI2MTgsNiArMjYxOCwxMCBAQCBpbnQgeGNfcHNyX2NhdF9nZXRfZG9tYWluX2RhdGEoeGNfaW50 ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogaW50IHhjX3Bzcl9jYXRfZ2V0X2wzX2luZm8o eGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90ICpjb3NfbWF4LCB1aW50MzJfdCAqY2JtX2xlbiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgKmNkcF9lbmFibGVkKTsKKworaW50IHhjX2dldF9jcHVfbGV2 ZWxsaW5nX2NhcHMoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90ICpjYXBzKTsKK2ludCB4Y19n ZXRfY3B1X2ZlYXR1cmVzZXQoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGluZGV4LAorICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbnJfZmVhdHVyZXMsIHVpbnQzMl90ICpm ZWF0dXJlc2V0KTsKICNlbmRpZgogCiAvKiBDb21wYXQgc2hpbXMgKi8KZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jIGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKaW5k ZXggNzMzYWRkNC4uNTc4MDM5NyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2 LmMKKysrIGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKQEAgLTMzLDYgKzMzLDQ3IEBACiAj ZGVmaW5lIERFRl9NQVhfSU5URUxFWFQgIDB4ODAwMDAwMDh1CiAjZGVmaW5lIERFRl9NQVhfQU1E RVhUICAgIDB4ODAwMDAwMWN1CiAKK2ludCB4Y19nZXRfY3B1X2xldmVsbGluZ19jYXBzKHhjX2lu dGVyZmFjZSAqeGNoLCB1aW50MzJfdCAqY2FwcykKK3sKKyAgICBERUNMQVJFX1NZU0NUTDsKKyAg ICBpbnQgcmV0OworCisgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfZ2V0X2NwdV9sZXZlbGxp bmdfY2FwczsKKyAgICByZXQgPSBkb19zeXNjdGwoeGNoLCAmc3lzY3RsKTsKKworICAgIGlmICgg IXJldCApCisgICAgICAgICpjYXBzID0gc3lzY3RsLnUuY3B1X2xldmVsbGluZ19jYXBzLmNhcHM7 CisKKyAgICByZXR1cm4gcmV0OworfQorCitpbnQgeGNfZ2V0X2NwdV9mZWF0dXJlc2V0KHhjX2lu dGVyZmFjZSAqeGNoLCB1aW50MzJfdCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKm5yX2ZlYXR1cmVzLCB1aW50MzJfdCAqZmVhdHVyZXNldCkKK3sKKyAgICBERUNM QVJFX1NZU0NUTDsKKyAgICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UoZmVhdHVyZXNldCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5yX2ZlYXR1cmVzICogc2l6ZW9mKCpmZWF0dXJl c2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWENfSFlQRVJDQUxMX0JVRkZFUl9C T1VOQ0VfT1VUKTsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKCB4Y19oeXBlcmNhbGxfYm91bmNl X3ByZSh4Y2gsIGZlYXR1cmVzZXQpICkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3lzY3Rs LmNtZCA9IFhFTl9TWVNDVExfZ2V0X2NwdV9mZWF0dXJlc2V0OworICAgIHN5c2N0bC51LmNwdV9m ZWF0dXJlc2V0LmluZGV4ID0gaW5kZXg7CisgICAgc3lzY3RsLnUuY3B1X2ZlYXR1cmVzZXQubnJf ZmVhdHVyZXMgPSAqbnJfZmVhdHVyZXM7CisgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3Rs LnUuY3B1X2ZlYXR1cmVzZXQuZmVhdHVyZXMsIGZlYXR1cmVzZXQpOworCisgICAgcmV0ID0gZG9f c3lzY3RsKHhjaCwgJnN5c2N0bCk7CisKKyAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNo LCBmZWF0dXJlc2V0KTsKKworICAgIGlmICggIXJldCApCisgICAgICAgICpucl9mZWF0dXJlcyA9 IHN5c2N0bC51LmNwdV9mZWF0dXJlc2V0Lm5yX2ZlYXR1cmVzOworCisgICAgcmV0dXJuIHJldDsK K30KKwogc3RydWN0IGNwdWlkX2RvbWFpbl9pbmZvCiB7CiAgICAgZW51bQpkaWZmIC0tZ2l0IGEv dG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsLm1sIGIvdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5j dHJsLm1sCmluZGV4IDU4YTUzYTEuLjc1MDA2ZTcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL29jYW1sL2xp YnMveGMveGVuY3RybC5tbAorKysgYi90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmwubWwKQEAg LTI0Miw2ICsyNDIsOSBAQCBleHRlcm5hbCB2ZXJzaW9uX2NoYW5nZXNldDogaGFuZGxlIC0+IHN0 cmluZyA9ICJzdHViX3hjX3ZlcnNpb25fY2hhbmdlc2V0IgogZXh0ZXJuYWwgdmVyc2lvbl9jYXBh YmlsaXRpZXM6IGhhbmRsZSAtPiBzdHJpbmcgPQogICAic3R1Yl94Y192ZXJzaW9uX2NhcGFiaWxp dGllcyIKIAordHlwZSBmZWF0dXJlc2V0X2luZGV4ID0gRmVhdHVyZXNldF9yYXcgfCBGZWF0dXJl c2V0X2hvc3QgfCBGZWF0dXJlc2V0X3B2IHwgRmVhdHVyZXNldF9odm0KK2V4dGVybmFsIGdldF9j cHVfZmVhdHVyZXNldCA6IGhhbmRsZSAtPiBmZWF0dXJlc2V0X2luZGV4IC0+IGludDY0IGFycmF5 ID0gInN0dWJfeGNfZ2V0X2NwdV9mZWF0dXJlc2V0IgorCiBleHRlcm5hbCB3YXRjaGRvZyA6IGhh bmRsZSAtPiBpbnQgLT4gaW50MzIgLT4gaW50CiAgID0gInN0dWJfeGNfd2F0Y2hkb2ciCiAKZGlm ZiAtLWdpdCBhL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybC5tbGkgYi90b29scy9vY2FtbC9s aWJzL3hjL3hlbmN0cmwubWxpCmluZGV4IDE2NDQzZGYuLjcyMGU0YjIgMTAwNjQ0Ci0tLSBhL3Rv b2xzL29jYW1sL2xpYnMveGMveGVuY3RybC5tbGkKKysrIGIvdG9vbHMvb2NhbWwvbGlicy94Yy94 ZW5jdHJsLm1saQpAQCAtMTQ3LDYgKzE0NywxMCBAQCBleHRlcm5hbCB2ZXJzaW9uX2NvbXBpbGVf aW5mbyA6IGhhbmRsZSAtPiBjb21waWxlX2luZm8KIGV4dGVybmFsIHZlcnNpb25fY2hhbmdlc2V0 IDogaGFuZGxlIC0+IHN0cmluZyA9ICJzdHViX3hjX3ZlcnNpb25fY2hhbmdlc2V0IgogZXh0ZXJu YWwgdmVyc2lvbl9jYXBhYmlsaXRpZXMgOiBoYW5kbGUgLT4gc3RyaW5nCiAgID0gInN0dWJfeGNf dmVyc2lvbl9jYXBhYmlsaXRpZXMiCisKK3R5cGUgZmVhdHVyZXNldF9pbmRleCA9IEZlYXR1cmVz ZXRfcmF3IHwgRmVhdHVyZXNldF9ob3N0IHwgRmVhdHVyZXNldF9wdiB8IEZlYXR1cmVzZXRfaHZt CitleHRlcm5hbCBnZXRfY3B1X2ZlYXR1cmVzZXQgOiBoYW5kbGUgLT4gZmVhdHVyZXNldF9pbmRl eCAtPiBpbnQ2NCBhcnJheSA9ICJzdHViX3hjX2dldF9jcHVfZmVhdHVyZXNldCIKKwogdHlwZSBj b3JlX21hZ2ljID0gTWFnaWNfaHZtIHwgTWFnaWNfcHYKIHR5cGUgY29yZV9oZWFkZXIgPSB7CiAg IHhjaF9tYWdpYyA6IGNvcmVfbWFnaWM7CmRpZmYgLS1naXQgYS90b29scy9vY2FtbC9saWJzL3hj L3hlbmN0cmxfc3R1YnMuYyBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jCmlu ZGV4IDRhYzVkY2UuLmU4N2YxNGYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL29jYW1sL2xpYnMveGMveGVu Y3RybF9zdHVicy5jCisrKyBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jCkBA IC0xMjA3LDYgKzEyMDcsNDEgQEAgQ0FNTHByaW0gdmFsdWUgc3R1Yl94Y19kb21haW5fZGVhc3Np Z25fZGV2aWNlKHZhbHVlIHhjaCwgdmFsdWUgZG9taWQsIHZhbHVlIGRlc2MKIAlDQU1McmV0dXJu KFZhbF91bml0KTsKIH0KIAorQ0FNTHByaW0gdmFsdWUgc3R1Yl94Y19nZXRfY3B1X2ZlYXR1cmVz ZXQodmFsdWUgeGNoLCB2YWx1ZSBpZHgpCit7CisJQ0FNTHBhcmFtMih4Y2gsIGlkeCk7CisJQ0FN TGxvY2FsMShiaXRtYXBfdmFsKTsKKworCS8qIFNhZmUsIGJlY2F1c2Ugb2YgdGhlIGdsb2JhbCBv Y2FtbCBsb2NrLiAqLworCXN0YXRpYyB1aW50MzJfdCBmc19sZW47CisKKwlpZiAoZnNfbGVuID09 IDApCisJeworCQlpbnQgcmV0ID0geGNfZ2V0X2NwdV9mZWF0dXJlc2V0KF9IKHhjaCksIDAsICZm c19sZW4sIE5VTEwpOworCisJCWlmIChyZXQgfHwgKGZzX2xlbiA9PSAwKSkKKwkJCWZhaWx3aXRo X3hjKF9IKHhjaCkpOworCX0KKworCXsKKwkJLyogVG8vZnJvbSBoeXBlcnZpc29yIHRvIHJldHJp ZXZlIGFjdHVhbCBmZWF0dXJlc2V0ICovCisJCXVpbnQzMl90IGZzW2ZzX2xlbl0sIGxlbiA9IGZz X2xlbjsKKwkJdW5zaWduZWQgaW50IGk7CisKKwkJaW50IHJldCA9IHhjX2dldF9jcHVfZmVhdHVy ZXNldChfSCh4Y2gpLCBJbnRfdmFsKGlkeCksICZsZW4sIGZzKTsKKworCQlpZiAocmV0KQorCQkJ ZmFpbHdpdGhfeGMoX0goeGNoKSk7CisKKwkJYml0bWFwX3ZhbCA9IGNhbWxfYWxsb2MobGVuLCAw KTsKKworCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpCisJCQlTdG9yZV9maWVsZChiaXRtYXBf dmFsLCBpLCBjYW1sX2NvcHlfaW50NjQoZnNbaV0pKTsKKwl9CisKKwlDQU1McmV0dXJuKGJpdG1h cF92YWwpOworfQorCiBDQU1McHJpbSB2YWx1ZSBzdHViX3hjX3dhdGNoZG9nKHZhbHVlIHhjaCwg dmFsdWUgZG9taWQsIHZhbHVlIHRpbWVvdXQpCiB7CiAJQ0FNTHBhcmFtMyh4Y2gsIGRvbWlkLCB0 aW1lb3V0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYyBiL3hlbi9hcmNoL3g4 Ni9zeXNjdGwuYwppbmRleCBmNjhjYmVjLi45Yzc1ZGU2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvc3lzY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L3N5c2N0bC5jCkBAIC0zMCw2ICszMCw3IEBA CiAjaW5jbHVkZSA8eGVuL2NwdS5oPgogI2luY2x1ZGUgPHhzbS94c20uaD4KICNpbmNsdWRlIDxh c20vcHNyLmg+CisjaW5jbHVkZSA8YXNtL2NwdWlkLmg+CiAKIHN0cnVjdCBsM19jYWNoZV9pbmZv IHsKICAgICBpbnQgcmV0OwpAQCAtMTk2LDYgKzE5Nyw1NiBAQCBsb25nIGFyY2hfZG9fc3lzY3Rs KAogICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNl IFhFTl9TWVNDVExfZ2V0X2NwdV9mZWF0dXJlc2V0OgorICAgIHsKKyAgICAgICAgc3RhdGljIGNv bnN0IHVpbnQzMl90ICpjb25zdCBmZWF0dXJlc2V0X3RhYmxlW10gPSB7CisgICAgICAgICAgICBb WEVOX1NZU0NUTF9jcHVfZmVhdHVyZXNldF9yYXddICA9IHJhd19mZWF0dXJlc2V0LAorICAgICAg ICAgICAgW1hFTl9TWVNDVExfY3B1X2ZlYXR1cmVzZXRfaG9zdF0gPSBob3N0X2ZlYXR1cmVzZXQs CisgICAgICAgICAgICBbWEVOX1NZU0NUTF9jcHVfZmVhdHVyZXNldF9wdl0gICA9IHB2X2ZlYXR1 cmVzZXQsCisgICAgICAgICAgICBbWEVOX1NZU0NUTF9jcHVfZmVhdHVyZXNldF9odm1dICA9IGh2 bV9mZWF0dXJlc2V0LAorICAgICAgICB9OworICAgICAgICBjb25zdCB1aW50MzJfdCAqZmVhdHVy ZXNldCA9IE5VTEw7CisgICAgICAgIHVuc2lnbmVkIGludCBucjsKKworICAgICAgICAvKiBSZXF1 ZXN0IGZvciBtYXhpbXVtIG51bWJlciBvZiBmZWF0dXJlcz8gKi8KKyAgICAgICAgaWYgKCBndWVz dF9oYW5kbGVfaXNfbnVsbChzeXNjdGwtPnUuY3B1X2ZlYXR1cmVzZXQuZmVhdHVyZXMpICkKKyAg ICAgICAgeworICAgICAgICAgICAgc3lzY3RsLT51LmNwdV9mZWF0dXJlc2V0Lm5yX2ZlYXR1cmVz ID0gRlNDQVBJTlRTOworICAgICAgICAgICAgaWYgKCBfX2NvcHlfZmllbGRfdG9fZ3Vlc3QodV9z eXNjdGwsIHN5c2N0bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUu Y3B1X2ZlYXR1cmVzZXQubnJfZmVhdHVyZXMpICkKKyAgICAgICAgICAgICAgICByZXQgPSAtRUZB VUxUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvKiBDbGlwIHRo ZSBudW1iZXIgb2YgZW50cmllcy4gKi8KKyAgICAgICAgbnIgPSBtaW4oc3lzY3RsLT51LmNwdV9m ZWF0dXJlc2V0Lm5yX2ZlYXR1cmVzLCBGU0NBUElOVFMpOworCisgICAgICAgIC8qIExvb2sgdXAg cmVxdWVzdGVkIGZlYXR1cmVzZXQuICovCisgICAgICAgIGlmICggc3lzY3RsLT51LmNwdV9mZWF0 dXJlc2V0LmluZGV4IDwgQVJSQVlfU0laRShmZWF0dXJlc2V0X3RhYmxlKSApCisgICAgICAgICAg ICBmZWF0dXJlc2V0ID0gZmVhdHVyZXNldF90YWJsZVtzeXNjdGwtPnUuY3B1X2ZlYXR1cmVzZXQu aW5kZXhdOworCisgICAgICAgIC8qIEJhZCBmZWF0dXJlc2V0IGluZGV4PyAqLworICAgICAgICBp ZiAoICFmZWF0dXJlc2V0ICkKKyAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7CisKKyAgICAgICAg LyogQ29weSB0aGUgcmVxdWVzdGVkIGZlYXR1cmVzZXQgaW50byBwbGFjZS4gKi8KKyAgICAgICAg aWYgKCAhcmV0ICYmIGNvcHlfdG9fZ3Vlc3Qoc3lzY3RsLT51LmNwdV9mZWF0dXJlc2V0LmZlYXR1 cmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWF0dXJlc2V0LCBucikg KQorICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKKworICAgICAgICAvKiBJbmZvcm0gdGhlIGNh bGxlciBvZiBob3cgbWFueSBmZWF0dXJlcyB3ZSB3cm90ZS4gKi8KKyAgICAgICAgc3lzY3RsLT51 LmNwdV9mZWF0dXJlc2V0Lm5yX2ZlYXR1cmVzID0gbnI7CisgICAgICAgIGlmICggIXJldCAmJiBf X2NvcHlfZmllbGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1LmNwdV9mZWF0dXJlc2V0Lm5yX2ZlYXR1cmVzKSAp CisgICAgICAgICAgICByZXQgPSAtRUZBVUxUOworCisgICAgICAgIC8qIEluZm9ybSB0aGUgY2Fs bGVyIGlmIHRoZXJlIHdhcyBtb3JlIGRhdGEgdG8gcHJvdmlkZS4gKi8KKyAgICAgICAgaWYgKCAh cmV0ICYmIG5yIDwgRlNDQVBJTlRTICkKKyAgICAgICAgICAgIHJldCA9IC1FTk9CVUZTOworCisg ICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldCA9IC1FTk9T WVM7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0 bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCmluZGV4IDFhYjE2ZGIuLjQ1OTZkMjAg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvc3lzY3RsLmgKQEAgLTc4Nyw2ICs3ODcsMzEgQEAgc3RydWN0IHhlbl9zeXNjdGxf Y3B1X2xldmVsbGluZ19jYXBzIHsKIHR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2xldmVs bGluZ19jYXBzIHhlbl9zeXNjdGxfY3B1X2xldmVsbGluZ19jYXBzX3Q7CiBERUZJTkVfWEVOX0dV RVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2NwdV9sZXZlbGxpbmdfY2Fwc190KTsKIAorLyoKKyAqIFhF Tl9TWVNDVExfZ2V0X2NwdV9mZWF0dXJlc2V0ICh4ODYgc3BlY2lmaWMpCisgKgorICogUmV0dXJu IGluZm9ybWF0aW9uIGFib3V0IGZlYXR1cmVzZXRzIGF2YWlsYWJsZSBvbiB0aGlzIGhvc3QuCisg KiAgLSAgUmF3OiBUaGUgcmVhbCBjcHVpZCB2YWx1ZXMuCisgKiAgLSBIb3N0OiBUaGUgdmFsdWVz IFhlbiBpcyB1c2luZywgKGFmdGVyIGNvbW1hbmQgbGluZSBvdmVycmlkZXMsIGV0YykuCisgKiAg LSAgIFBWOiBNYXhpbXVtIHNldCBvZiBmZWF0dXJlcyB3aGljaCBjYW4gYmUgZ2l2ZW4gdG8gYSBQ ViBndWVzdC4KKyAqICAtICBIVk06IE1heGltdW0gc2V0IG9mIGZlYXR1cmVzIHdoaWNoIGNhbiBi ZSBnaXZlbiB0byBhIEhWTSBndWVzdC4KKyAqLworc3RydWN0IHhlbl9zeXNjdGxfY3B1X2ZlYXR1 cmVzZXQgeworI2RlZmluZSBYRU5fU1lTQ1RMX2NwdV9mZWF0dXJlc2V0X3JhdyAgICAgIDAKKyNk ZWZpbmUgWEVOX1NZU0NUTF9jcHVfZmVhdHVyZXNldF9ob3N0ICAgICAxCisjZGVmaW5lIFhFTl9T WVNDVExfY3B1X2ZlYXR1cmVzZXRfcHYgICAgICAgMgorI2RlZmluZSBYRU5fU1lTQ1RMX2NwdV9m ZWF0dXJlc2V0X2h2bSAgICAgIDMKKyAgICB1aW50MzJfdCBpbmRleDsgICAgICAgLyogSU46IFdo aWNoIGZlYXR1cmVzZXQgdG8gcXVlcnk/ICovCisgICAgdWludDMyX3QgbnJfZmVhdHVyZXM7IC8q IElOL09VVDogTnVtYmVyIG9mIGVudHJpZXMgaW4vd3JpdHRlbiB0bworICAgICAgICAgICAgICAg ICAgICAgICAgICAgKiAnZmVhdHVyZXMnLCBvciB0aGUgbWF4aW11bSBudW1iZXIgb2YgZmVhdHVy ZXMgaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIGd1ZXN0IGhhbmRsZSBpcyBO VUxMLiAgTkIuIEFsbCBmZWF0dXJlc2V0cworICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBj b21lIGZyb20gdGhlIHNhbWUgbnVtYmVyc3BhY2UsIHNvIGhhdmUgdGhlIHNhbWUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICogbWF4aW11bSBsZW5ndGguICovCisgICAgWEVOX0dVRVNUX0hB TkRMRV82NCh1aW50MzIpIGZlYXR1cmVzOyAvKiBPVVQ6ICovCit9OwordHlwZWRlZiBzdHJ1Y3Qg eGVuX3N5c2N0bF9mZWF0dXJlc2V0IHhlbl9zeXNjdGxfZmVhdHVyZXNldF90OworREVGSU5FX1hF Tl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9mZWF0dXJlc2V0X3QpOworCiBzdHJ1Y3QgeGVuX3N5 c2N0bCB7CiAgICAgdWludDMyX3QgY21kOwogI2RlZmluZSBYRU5fU1lTQ1RMX3JlYWRjb25zb2xl ICAgICAgICAgICAgICAgICAgICAxCkBAIC04MTMsNiArODM4LDcgQEAgc3RydWN0IHhlbl9zeXNj dGwgewogI2RlZmluZSBYRU5fU1lTQ1RMX3Bzcl9jYXRfb3AgICAgICAgICAgICAgICAgICAgIDIz CiAjZGVmaW5lIFhFTl9TWVNDVExfdG1lbV9vcCAgICAgICAgICAgICAgICAgICAgICAgMjQKICNk ZWZpbmUgWEVOX1NZU0NUTF9nZXRfY3B1X2xldmVsbGluZ19jYXBzICAgICAgICAyNQorI2RlZmlu ZSBYRU5fU1lTQ1RMX2dldF9jcHVfZmVhdHVyZXNldCAgICAgICAgICAgIDI2CiAgICAgdWludDMy X3QgaW50ZXJmYWNlX3ZlcnNpb247IC8qIFhFTl9TWVNDVExfSU5URVJGQUNFX1ZFUlNJT04gKi8K ICAgICB1bmlvbiB7CiAgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3JlYWRjb25zb2xlICAgICAg IHJlYWRjb25zb2xlOwpAQCAtODM5LDYgKzg2NSw3IEBAIHN0cnVjdCB4ZW5fc3lzY3RsIHsKICAg ICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NhdF9vcCAgICAgICAgcHNyX2NhdF9vcDsKICAg ICAgICAgc3RydWN0IHhlbl9zeXNjdGxfdG1lbV9vcCAgICAgICAgICAgdG1lbV9vcDsKICAgICAg ICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2xldmVsbGluZ19jYXBzIGNwdV9sZXZlbGxpbmdfY2Fw czsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2ZlYXR1cmVzZXQgICAgY3B1X2ZlYXR1 cmVzZXQ7CiAgICAgICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZFsx MjhdOwogICAgIH0gdTsKIH07CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMgYi94 ZW4veHNtL2ZsYXNrL2hvb2tzLmMKaW5kZXggZjBlM2U1Zi4uMWZiMGU4NCAxMDA2NDQKLS0tIGEv eGVuL3hzbS9mbGFzay9ob29rcy5jCisrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwpAQCAtODEx LDYgKzgxMSw5IEBAIHN0YXRpYyBpbnQgZmxhc2tfc3lzY3RsKGludCBjbWQpCiAgICAgY2FzZSBY RU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHM6CiAgICAgICAgIHJldHVybiBkb21haW5f aGFzX3hlbihjdXJyZW50LT5kb21haW4sIFhFTjJfX0dFVF9DUFVfTEVWRUxMSU5HX0NBUFMpOwog CisgICAgY2FzZSBYRU5fU1lTQ1RMX2dldF9jcHVfZmVhdHVyZXNldDoKKyAgICAgICAgcmV0dXJu IGRvbWFpbl9oYXNfeGVuKGN1cnJlbnQtPmRvbWFpbiwgWEVOMl9fR0VUX0NQVV9GRUFUVVJFU0VU KTsKKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHByaW50aygiZmxhc2tfc3lzY3RsOiBVbmtub3du IG9wICVkXG4iLCBjbWQpOwogICAgICAgICByZXR1cm4gLUVQRVJNOwpkaWZmIC0tZ2l0IGEveGVu L3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9h Y2Nlc3NfdmVjdG9ycwppbmRleCAzMWVjZjAyLi4wZWJiNTZiIDEwMDY0NAotLS0gYS94ZW4veHNt L2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9h Y2Nlc3NfdmVjdG9ycwpAQCAtOTUsNiArOTUsOCBAQCBjbGFzcyB4ZW4yCiAgICAgcG11X3VzZQog IyBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHMKICAgICBnZXRfY3B1X2xldmVsbGlu Z19jYXBzCisjIFhFTl9TWVNDVExfZ2V0X2NwdV9mZWF0dXJlc2V0CisgICAgZ2V0X2NwdV9mZWF0 dXJlc2V0CiB9CiAKICMgQ2xhc3NlcyBkb21haW4gYW5kIGRvbWFpbjIgY29uc2lzdCBvZiBvcGVy YXRpb25zIHRoYXQgYSBkb21haW4gcGVyZm9ybXMgb24KLS0gCjIuMS40CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK