From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v4 02/26] xen/x86: Script to automatically process featureset information Date: Wed, 23 Mar 2016 16:36:05 +0000 Message-ID: <1458750989-28967-3-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 List-Id: xen-devel@lists.xenproject.org VGhpcyBzY3JpcHQgY29uc3VtZXMgaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNl dC5oIGFuZCBnZW5lcmF0ZXMgYQpzaW5nbGUgaW5jbHVkZS9hc20teDg2L2NwdWlkLWF1dG9nZW4u aCBjb250YWluaW5nIGFsbCB0aGUgcHJvY2Vzc2VkCmluZm9ybWF0aW9uLgoKSXQgY3VycmVudGx5 IGdlbmVyYXRlcyBqdXN0IEZFQVRVUkVTRVRfTlJfRU5UUklFUy4gIEZ1dHVyZSBjaGFuZ2VzIHdp bGwKZ2VuZXJhdGUgbW9yZSBpbmZvcm1hdGlvbi4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkFja2VkLWJ5OiBKYW4gQmV1bGljaCA8SkJl dWxpY2hAc3VzZS5jb20+Ci0tLQp2MjoKICogTmV3CnYzOgogKiBSZWJhc2VkIG92ZXIgdGhlIG5l dyBuYW1lc3BhY2luZyBpbiBjcHVmZWF0dXJlc2V0LmgKdjQ6CiAqIFNwZWVsaW5nIGZpeGVzCi0t LQogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogeGVuL2luY2x1ZGUv TWFrZWZpbGUgICAgICAgICAgICAgfCAgMTAgKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVh dHVyZS5oIHwgICAzICstCiB4ZW4vdG9vbHMvZ2VuLWNwdWlkLnB5ICAgICAgICAgICB8IDE5NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwg MjEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDc1NSB4ZW4v dG9vbHMvZ2VuLWNwdWlkLnB5CgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUK aW5kZXggOTFmNjkwYy4uYjQwNDUzZSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0 aWdub3JlCkBAIC0yNTIsNiArMjUyLDcgQEAgeGVuL2luY2x1ZGUvaGVhZGVycy5jaGsKIHhlbi9p bmNsdWRlL2hlYWRlcnMrKy5jaGsKIHhlbi9pbmNsdWRlL2FzbQogeGVuL2luY2x1ZGUvYXNtLSov YXNtLW9mZnNldHMuaAoreGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZC1hdXRvZ2VuLmgKIHhlbi9p bmNsdWRlL2NvbXBhdC8qCiB4ZW4vaW5jbHVkZS9jb25maWcvCiB4ZW4vaW5jbHVkZS9nZW5lcmF0 ZWQvCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9NYWtlZmlsZSBiL3hlbi9pbmNsdWRlL01ha2Vm aWxlCmluZGV4IDljODE4OGIuLjI2OGJjOWQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL01ha2Vm aWxlCisrKyBiL3hlbi9pbmNsdWRlL01ha2VmaWxlCkBAIC0xMTcsNSArMTE3LDE1IEBAIGhlYWRl cnMrKy5jaGs6ICQoUFVCTElDX0hFQURFUlMpIE1ha2VmaWxlCiAKIGVuZGlmCiAKK2lmZXEgKCQo WEVOX1RBUkdFVF9BUkNIKSx4ODZfNjQpCisKKyQoQkFTRURJUikvaW5jbHVkZS9hc20teDg2L2Nw dWlkLWF1dG9nZW4uaDogJChCQVNFRElSKS9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0 dXJlc2V0LmggJChCQVNFRElSKS90b29scy9nZW4tY3B1aWQucHkgRk9SQ0UKKwkkKFBZVEhPTikg JChCQVNFRElSKS90b29scy9nZW4tY3B1aWQucHkgLWkgJF4gLW8gJEAubmV3CisJJChjYWxsIG1v dmUtaWYtY2hhbmdlZCwkQC5uZXcsJEApCisKK2FsbDogJChCQVNFRElSKS9pbmNsdWRlL2FzbS14 ODYvY3B1aWQtYXV0b2dlbi5oCitlbmRpZgorCiBjbGVhbjo6CiAJcm0gLXJmIGNvbXBhdCBoZWFk ZXJzLmNoayBoZWFkZXJzKysuY2hrCisJcm0gLWYgJChCQVNFRElSKS9pbmNsdWRlL2FzbS14ODYv Y3B1aWQtYXV0b2dlbi5oCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1 cmUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCmluZGV4IGEwNDQ2MTYuLmJj ZGEwOWIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCkBAIC0xMSw4ICsxMSw5IEBACiAKICNp bmNsdWRlIDx4ZW4vY29uc3QuaD4KICNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZXNldC5oPgorI2lu Y2x1ZGUgPGFzbS9jcHVpZC1hdXRvZ2VuLmg+CiAKLSNkZWZpbmUgRlNDQVBJTlRTIDkKKyNkZWZp bmUgRlNDQVBJTlRTIEZFQVRVUkVTRVRfTlJfRU5UUklFUwogI2RlZmluZSBOQ0FQSU5UUyAoRlND QVBJTlRTICsgMSkgLyogTiAzMi1iaXQgd29yZHMgd29ydGggb2YgaW5mbyAqLwogCiAvKiBPdGhl ciBmZWF0dXJlcywgWGVuLWRlZmluZWQgbWFwcGluZy4gKi8KZGlmZiAtLWdpdCBhL3hlbi90b29s cy9nZW4tY3B1aWQucHkgYi94ZW4vdG9vbHMvZ2VuLWNwdWlkLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NzU1CmluZGV4IDAwMDAwMDAuLmM2YmQ5OGQKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vdG9vbHMv Z2VuLWNwdWlkLnB5CkBAIC0wLDAgKzEsMTk3IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMg LSotIGNvZGluZzogdXRmLTggLSotCisKK2ltcG9ydCBzeXMsIG9zLCByZQorCitjbGFzcyBGYWls KEV4Y2VwdGlvbik6CisgICAgcGFzcworCitjbGFzcyBTdGF0ZShvYmplY3QpOgorCisgICAgZGVm IF9faW5pdF9fKHNlbGYsIGlucHV0LCBvdXRwdXQpOgorCisgICAgICAgIHNlbGYuc291cmNlID0g aW5wdXQKKyAgICAgICAgc2VsZi5pbnB1dCAgPSBvcGVuX2ZpbGVfb3JfZmQoaW5wdXQsICJyIiwg MikKKyAgICAgICAgc2VsZi5vdXRwdXQgPSBvcGVuX2ZpbGVfb3JfZmQob3V0cHV0LCAidyIsIDIp CisKKyAgICAgICAgIyBTdGF0ZSBwYXJzZWQgZnJvbSBpbnB1dAorICAgICAgICBzZWxmLm5hbWVz ID0ge30gIyBOYW1lID0+IHZhbHVlIG1hcHBpbmcKKworICAgICAgICAjIFN0YXRlIGNhbGN1bGF0 ZWQKKyAgICAgICAgc2VsZi5ucl9lbnRyaWVzID0gMCAjIE51bWJlciBvZiB3b3JkcyBpbiBhIGZl YXR1cmVzZXQKKworZGVmIHBhcnNlX2RlZmluaXRpb25zKHN0YXRlKToKKyAgICAiIiIKKyAgICBQ YXJzZSBmZWF0dXJlc2V0IGluZm9ybWF0aW9uIGZyb20gQHBhcmFtIGYgYW5kIG11dGF0ZSB0aGUg Z2xvYmFsCisgICAgbmFtZXNwYWNlIHdpdGggc3ltYm9scworICAgICIiIgorICAgIGZlYXRfcmVn ZXggPSByZS5jb21waWxlKAorICAgICAgICByIl5YRU5fQ1BVRkVBVFVSRVwoKFtBLVowLTlfXSsp LCIKKyAgICAgICAgIlxzKyhbXHNcZF0rXCpbXHNcZF0rXCtbXHNcZF0rKVwpLiokIikKKworICAg IHRoaXMgPSBzeXMubW9kdWxlc1tfX25hbWVfX10KKworICAgIGZvciBsIGluIHN0YXRlLmlucHV0 LnJlYWRsaW5lcygpOgorICAgICAgICAjIFNob3J0IGNpcmN1aXQgdGhlIHJlZ2V4Li4uCisgICAg ICAgIGlmIG5vdCBsLnN0YXJ0c3dpdGgoIlhFTl9DUFVGRUFUVVJFKCIpOgorICAgICAgICAgICAg Y29udGludWUKKworICAgICAgICByZXMgPSBmZWF0X3JlZ2V4Lm1hdGNoKGwpCisKKyAgICAgICAg aWYgcmVzIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBGYWlsKCJGYWlsZWQgdG8gaW50ZXJw cmV0ICclcyciICUgKGwuc3RyaXAoKSwgKSkKKworICAgICAgICBuYW1lID0gcmVzLmdyb3Vwcygp WzBdCisgICAgICAgIHZhbCA9IGV2YWwocmVzLmdyb3VwcygpWzFdKSAjIFJlZ2V4IGNvbmZpbmVz IHRoaXMgdG8gYSB2ZXJ5IHNpbXBsZSBleHByZXNzaW9uCisKKyAgICAgICAgaWYgaGFzYXR0cih0 aGlzLCBuYW1lKToKKyAgICAgICAgICAgIHJhaXNlIEZhaWwoIkR1cGxpY2F0ZSBzeW1ib2wgJXMi ICUgKG5hbWUsKSkKKworICAgICAgICBpZiB2YWwgaW4gc3RhdGUubmFtZXM6CisgICAgICAgICAg ICByYWlzZSBGYWlsKCJBbGlhc2VkIHZhbHVlIGJldHdlZW4gJXMgYW5kICVzIiAlCisgICAgICAg ICAgICAgICAgICAgICAgIChuYW1lLCBzdGF0ZS5uYW1lc1t2YWxdKSkKKworICAgICAgICAjIE11 dGF0ZSB0aGUgY3VycmVudCBuYW1lc3BhY2UgdG8gaW5zZXJ0IGEgZmVhdHVyZSBsaXRlcmFsIHdp dGggaXRzCisgICAgICAgICMgYml0IGluZGV4LiAgUHJlcGVuZCBhbiB1bmRlcnNjb3JlIGlmIHRo ZSBuYW1lIHN0YXJ0cyB3aXRoIGEgZGlnaXQuCisgICAgICAgIGlmIG5hbWVbMF0gaW4gIjAxMjM0 NTY3ODkiOgorICAgICAgICAgICAgdGhpc19uYW1lID0gIl8iICsgbmFtZQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgdGhpc19uYW1lID0gbmFtZQorICAgICAgICBzZXRhdHRyKHRoaXMsIHRo aXNfbmFtZSwgdmFsKQorCisgICAgICAgICMgQ29uc3RydWN0IGEgcmV2ZXJzZSBtYXBwaW5nIG9m IHZhbHVlIHRvIG5hbWUKKyAgICAgICAgc3RhdGUubmFtZXNbdmFsXSA9IG5hbWUKKworICAgIGlm IGxlbihzdGF0ZS5uYW1lcykgPT0gMDoKKyAgICAgICAgcmFpc2UgRmFpbCgiTm8gZmVhdHVyZXMg Zm91bmQiKQorCitkZWYgZmVhdHVyZXNldF90b191aW50MzJzKGZzLCBucik6CisgICAgIiIiIFJl cHJlc2VudCBhIGZlYXR1cmVzZXQgYXMgYSBsaXN0IG9mIEMtY29tcGF0aWJsZSB1aW50MzJfdCdz ICIiIgorCisgICAgYml0bWFwID0gMEwKKyAgICBmb3IgZiBpbiBmczoKKyAgICAgICAgYml0bWFw IHw9IDFMIDw8IGYKKworICAgIHdvcmRzID0gW10KKyAgICB3aGlsZSBiaXRtYXA6CisgICAgICAg IHdvcmRzLmFwcGVuZChiaXRtYXAgJiAoKDFMIDw8IDMyKSAtIDEpKQorICAgICAgICBiaXRtYXAg Pj49IDMyCisKKyAgICBhc3NlcnQgbGVuKHdvcmRzKSA8PSBucgorCisgICAgaWYgbGVuKHdvcmRz KSA8IG5yOgorICAgICAgICB3b3Jkcy5leHRlbmQoWzBdICogKG5yIC0gbGVuKHdvcmRzKSkpCisK KyAgICByZXR1cm4gWyAiMHglMDh4VSIgJSB4IGZvciB4IGluIHdvcmRzIF0KKworZGVmIGZvcm1h dF91aW50MzJzKHdvcmRzLCBpbmRlbnQpOgorICAgICIiIiBGb3JtYXQgYSBsaXN0IG9mIHVpbnQz Ml90J3Mgc3VpdGFibGUgZm9yIGEgbWFjcm8gZGVmaW5pdGlvbiAiIiIKKyAgICBzcGFjZXMgPSAi ICIgKiBpbmRlbnQKKyAgICByZXR1cm4gc3BhY2VzICsgKCIsIFxcXG4iICsgc3BhY2VzKS5qb2lu KHdvcmRzKSArICIsIFxcIgorCisKK2RlZiBjcnVuY2hfbnVtYmVycyhzdGF0ZSk6CisKKyAgICAj IFNpemUgb2YgYml0bWFwcworICAgIHN0YXRlLm5yX2VudHJpZXMgPSBucl9lbnRyaWVzID0gKG1h eChzdGF0ZS5uYW1lcy5rZXlzKCkpID4+IDUpICsgMQorCisKK2RlZiB3cml0ZV9yZXN1bHRzKHN0 YXRlKToKKyAgICBzdGF0ZS5vdXRwdXQud3JpdGUoCisiIiIvKgorICogQXV0b21hdGljYWxseSBn ZW5lcmF0ZWQgYnkgJXMgLSBEbyBub3QgZWRpdCEKKyAqIFNvdXJjZSBkYXRhOiAlcworICovCisj aWZuZGVmIF9fWEVOX1g4Nl9fRkVBVFVSRVNFVF9EQVRBX18KKyNkZWZpbmUgX19YRU5fWDg2X19G RUFUVVJFU0VUX0RBVEFfXworIiIiICUgKHN5cy5hcmd2WzBdLCBzdGF0ZS5zb3VyY2UpKQorCisg ICAgc3RhdGUub3V0cHV0LndyaXRlKAorIiIiCisjZGVmaW5lIEZFQVRVUkVTRVRfTlJfRU5UUklF UyAlc1UKKyIiIiAlIChzdGF0ZS5ucl9lbnRyaWVzLAorICAgICAgICkpCisKKyAgICBzdGF0ZS5v dXRwdXQud3JpdGUoCisiIiIKKyNlbmRpZiAvKiBfX1hFTl9YODZfX0ZFQVRVUkVTRVRfREFUQV9f ICovCisiIiIpCisKKworZGVmIG9wZW5fZmlsZV9vcl9mZCh2YWwsIG1vZGUsIGJ1ZmZlcmluZyk6 CisgICAgIiIiCisgICAgSWYgJ3ZhbCcgbG9va3MgbGlrZSBhIGRlY2ltYWwgaW50ZWdlciwgb3Bl biBpdCBhcyBhbiBmZC4gIElmIG5vdCwgdHJ5IHRvCisgICAgb3BlbiBpdCBhcyBhIHJlZ3VsYXIg ZmlsZS4KKyAgICAiIiIKKworICAgIGZkID0gLTEKKyAgICB0cnk6CisgICAgICAgICMgRG9lcyBp dCBsb29rIGxpa2UgYW4gaW50ZWdlcj8KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZmQgPSBp bnQodmFsLCAxMCkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICBwYXNz CisKKyAgICAgICAgaWYgZmQgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBzeXMuc3RkaW4KKyAg ICAgICAgZWxpZiBmZCA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIHN5cy5zdGRvdXQKKyAgICAg ICAgZWxpZiBmZCA9PSAyOgorICAgICAgICAgICAgcmV0dXJuIHN5cy5zdGRlcnIKKworICAgICAg ICAjIFRyeSB0byBvcGVuIGl0Li4uCisgICAgICAgIGlmIGZkICE9IC0xOgorICAgICAgICAgICAg cmV0dXJuIG9zLmZkb3BlbihmZCwgbW9kZSwgYnVmZmVyaW5nKQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgcmV0dXJuIG9wZW4odmFsLCBtb2RlLCBidWZmZXJpbmcpCisKKyAgICBleGNlcHQg U3RhbmRhcmRFcnJvciwgZToKKyAgICAgICAgaWYgZmQgIT0gLTE6CisgICAgICAgICAgICByYWlz ZSBGYWlsKCJVbmFibGUgdG8gb3BlbiBmZCAlZDogJXM6ICVzIiAlCisgICAgICAgICAgICAgICAg ICAgICAgIChmZCwgZS5fX2NsYXNzX18uX19uYW1lX18sIGUpKQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgcmFpc2UgRmFpbCgiVW5hYmxlIHRvIG9wZW4gZmlsZSAnJXMnOiAlczogJXMiICUK KyAgICAgICAgICAgICAgICAgICAgICAgKHZhbCwgZS5fX2NsYXNzX18uX19uYW1lX18sIGUpKQor CisgICAgcmFpc2UgU3lzdGVtRXhpdCgyKQorCitkZWYgbWFpbigpOgorICAgIGZyb20gb3B0cGFy c2UgaW1wb3J0IE9wdGlvblBhcnNlcgorCisgICAgIyBDaGFuZ2Ugc3Rkb3V0IHRvIGJlIGxpbmUt YnVmZmVyZWQuCisgICAgc3lzLnN0ZG91dCA9IG9zLmZkb3BlbihzeXMuc3Rkb3V0LmZpbGVubygp LCAndycsIDEpCisKKyAgICBwYXJzZXIgPSBPcHRpb25QYXJzZXIodXNhZ2UgPSAiJXByb2cgW29w dGlvbnNdIC1pIElOUFVUIC1vIE9VVFBVVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRl c2NyaXB0aW9uID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb2Nlc3MgZmVhdHVyZXNl dCBpbmZvcm1hdGlvbiIpCisKKyAgICBwYXJzZXIuYWRkX29wdGlvbigiLWkiLCAiLS1pbiIsIGRl c3QgPSAiZmluIiwgbWV0YXZhciA9ICI8RkQgb3IgRklMRT4iLAorICAgICAgICAgICAgICAgICAg ICAgIGRlZmF1bHQgPSAiMCIsCisgICAgICAgICAgICAgICAgICAgICAgaGVscCA9ICJGZWF0dXJl c2V0IGRlZmluaXRpb25zIikKKyAgICBwYXJzZXIuYWRkX29wdGlvbigiLW8iLCAiLS1vdXQiLCBk ZXN0ID0gImZvdXQiLCBtZXRhdmFyID0gIjxGRCBvciBGSUxFPiIsCisgICAgICAgICAgICAgICAg ICAgICAgZGVmYXVsdCA9ICIxIiwKKyAgICAgICAgICAgICAgICAgICAgICBoZWxwID0gIkZlYXR1 cmVzZXQgY2FsY3VsYXRlZCBpbmZvcm1hdGlvbiIpCisKKyAgICBvcHRzLCBfID0gcGFyc2VyLnBh cnNlX2FyZ3MoKQorCisgICAgaWYgb3B0cy5maW4gaXMgTm9uZSBvciBvcHRzLmZvdXQgaXMgTm9u ZToKKyAgICAgICAgcGFyc2VyLnByaW50X2hlbHAoc3lzLnN0ZGVycikKKyAgICAgICAgcmFpc2Ug U3lzdGVtRXhpdCgxKQorCisgICAgc3RhdGUgPSBTdGF0ZShvcHRzLmZpbiwgb3B0cy5mb3V0KQor CisgICAgcGFyc2VfZGVmaW5pdGlvbnMoc3RhdGUpCisgICAgY3J1bmNoX251bWJlcnMoc3RhdGUp CisgICAgd3JpdGVfcmVzdWx0cyhzdGF0ZSkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18i OgorICAgIHRyeToKKyAgICAgICAgc3lzLmV4aXQobWFpbigpKQorICAgIGV4Y2VwdCBGYWlsLCBl OgorICAgICAgICBwcmludCA+PnN5cy5zdGRlcnIsICIlczoiICUgKHN5cy5hcmd2WzBdLCksIGUK KyAgICAgICAgc3lzLmV4aXQoMSkKKyAgICBleGNlcHQgU3lzdGVtRXhpdCwgZToKKyAgICAgICAg c3lzLmV4aXQoZS5jb2RlKQorICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAg c3lzLmV4aXQoMikKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK