From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 28/28] tools/libxc: Calculate xstate cpuid leaf from guest information Date: Tue, 15 Mar 2016 15:35:24 +0000 Message-ID: <1458056124-8024-29-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: Andrew Cooper , Ian Jackson , Wei Liu List-Id: xen-devel@lists.xenproject.org SXQgaXMgdW5zYWZlIHRvIGdlbmVyYXRlIHRoZSBndWVzdHMgeHN0YXRlIGxlYXZlcyBmcm9tIGhv c3QgaW5mb3JtYXRpb24sIGFzIGl0CnByZXZlbnRzIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGhv c3RzIGZyb20gYmVpbmcgaGlkZGVuLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5k cmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBJYW4gSmFja3NvbiA8SWFuLkphY2tzb25A ZXUuY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cgp2MzoKICog UmVpbnRyb2R1Y2UgTVBYIGFkanVzdG1lbnQgKHRoaXMgc2VyaWVzIGhhcyBiZWVuIGluIGRldmVs b3BtZW50IHNpbmNlCiAgIGJlZm9yZSB0aGUgaW50cm9kdWN0aW9uIG9mIE1QWCB1cHN0cmVhbSwg YW5kIGl0IGdvdCBsb3N0IGluIGEgcmViYXNlKQotLS0KIHRvb2xzL2xpYnhjL3hjX2NwdWlkX3g4 Ni5jIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2NwdWlkX3g4Ni5jIGIvdG9vbHMvbGlieGMveGNfY3B1aWRf eDg2LmMKaW5kZXggMjkwYzk5NS4uMGExNGNjMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNf Y3B1aWRfeDg2LmMKKysrIGIvdG9vbHMvbGlieGMveGNfY3B1aWRfeDg2LmMKQEAgLTM5OCw2ICsz OTgsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfeGNfY3B1aWRfcG9saWN5KHhjX2ludGVyZmFjZSAq eGNoLAogICAgIH0KIH0KIAorI2RlZmluZSBYODZfWENSMF9YODcgICAgKDFVTEwgPDwgIDApCisj ZGVmaW5lIFg4Nl9YQ1IwX1NTRSAgICAoMVVMTCA8PCAgMSkKKyNkZWZpbmUgWDg2X1hDUjBfQVZY ICAgICgxVUxMIDw8ICAyKQorI2RlZmluZSBYODZfWENSMF9CTkRSRUcgKDFVTEwgPDwgIDMpCisj ZGVmaW5lIFg4Nl9YQ1IwX0JORENTUiAoMVVMTCA8PCAgNCkKKyNkZWZpbmUgWDg2X1hDUjBfTFdQ ICAgICgxVUxMIDw8IDYyKQorCiAjZGVmaW5lIFhTQVZFT1BUICAgICAgICAoMSA8PCAwKQogI2Rl ZmluZSBYU0FWRUMgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgWEdFVEJWMSAgICAgICAgICgx IDw8IDIpCkBAIC00MDcsMzQgKzQxNCw1NiBAQCBzdGF0aWMgdm9pZCB4Y19jcHVpZF9jb25maWdf eHNhdmUoeGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGNwdWlkX2RvbWFpbl9pbmZvICppbmZvLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCAqaW5wdXQsIHVuc2lnbmVkIGlu dCAqcmVncykKIHsKLSAgICBpZiAoIGluZm8tPnhmZWF0dXJlX21hc2sgPT0gMCApCisgICAgdWlu dDY0X3QgZ3Vlc3RfeGZlYXR1cmVfbWFzazsKKworICAgIGlmICggaW5mby0+eGZlYXR1cmVfbWFz ayA9PSAwIHx8CisgICAgICAgICAhdGVzdF9iaXQoWDg2X0ZFQVRVUkVfWFNBVkUsIGluZm8tPmZl YXR1cmVzZXQpICkKICAgICB7CiAgICAgICAgIHJlZ3NbMF0gPSByZWdzWzFdID0gcmVnc1syXSA9 IHJlZ3NbM10gPSAwOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgZ3Vlc3RfeGZlYXR1 cmVfbWFzayA9IFg4Nl9YQ1IwX1NTRSB8IFg4Nl9YQ1IwX1g4NzsKKworICAgIGlmICggdGVzdF9i aXQoWDg2X0ZFQVRVUkVfQVZYLCBpbmZvLT5mZWF0dXJlc2V0KSApCisgICAgICAgIGd1ZXN0X3hm ZWF0dXJlX21hc2sgfD0gWDg2X1hDUjBfQVZYOworCisgICAgaWYgKCB0ZXN0X2JpdChYODZfRkVB VFVSRV9NUFgsIGluZm8tPmZlYXR1cmVzZXQpICkKKyAgICAgICAgZ3Vlc3RfeGZlYXR1cmVfbWFz ayB8PSBYODZfWENSMF9CTkRSRUcgfCBYODZfWENSMF9CTkRDU1I7CisKKyAgICBpZiAoIHRlc3Rf Yml0KFg4Nl9GRUFUVVJFX0xXUCwgaW5mby0+ZmVhdHVyZXNldCkgKQorICAgICAgICBndWVzdF94 ZmVhdHVyZV9tYXNrIHw9IFg4Nl9YQ1IwX0xXUDsKKworICAgIC8qCisgICAgICogQ2xhbXAgdG8g aG9zdCBtYXNrLiAgU2hvdWxkIGJlIG5vLW9wLCBhcyBndWVzdF94ZmVhdHVyZV9tYXNrIHNob3Vs ZCBub3QKKyAgICAgKiBiZSBhYmxlIHRvIGJlIGNhbGN1bGF0ZWQgYXMgbGFyZ2VyIHRoYW4gaW5m by0+eGZlYXR1cmVfbWFzay4KKyAgICAgKgorICAgICAqIFRPRE8gLSBzZWUgYWJvdXQgbWFraW5n IHRoaXMgYSBoYXJkZXIgZXJyb3IuCisgICAgICovCisgICAgZ3Vlc3RfeGZlYXR1cmVfbWFzayAm PSBpbmZvLT54ZmVhdHVyZV9tYXNrOworCiAgICAgc3dpdGNoICggaW5wdXRbMV0gKQogICAgIHsK LSAgICBjYXNlIDA6IAorICAgIGNhc2UgMDoKICAgICAgICAgLyogRUFYOiBsb3cgMzJiaXRzIG9m IHhmZWF0dXJlX2VuYWJsZWRfbWFzayAqLwotICAgICAgICByZWdzWzBdID0gaW5mby0+eGZlYXR1 cmVfbWFzayAmIDB4RkZGRkZGRkY7CisgICAgICAgIHJlZ3NbMF0gPSBndWVzdF94ZmVhdHVyZV9t YXNrICYgMHhGRkZGRkZGRjsKICAgICAgICAgLyogRURYOiBoaWdoIDMyYml0cyBvZiB4ZmVhdHVy ZV9lbmFibGVkX21hc2sgKi8KLSAgICAgICAgcmVnc1szXSA9IChpbmZvLT54ZmVhdHVyZV9tYXNr ID4+IDMyKSAmIDB4RkZGRkZGRkY7CisgICAgICAgIHJlZ3NbM10gPSAoZ3Vlc3RfeGZlYXR1cmVf bWFzayA+PiAzMikgJiAweEZGRkZGRkZGOwogICAgICAgICAvKiBFQ1g6IG1heCBzaXplIHJlcXVp cmVkIGJ5IGFsbCBIVyBmZWF0dXJlcyAqLwogICAgICAgICB7CiAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgX2lucHV0WzJdID0gezB4ZCwgMHgwfSwgX3JlZ3NbNF07CiAgICAgICAgICAgICByZWdz WzJdID0gMDsKLSAgICAgICAgICAgIGZvciAoIF9pbnB1dFsxXSA9IDI7IF9pbnB1dFsxXSA8IDY0 OyBfaW5wdXRbMV0rKyApCisgICAgICAgICAgICBmb3IgKCBfaW5wdXRbMV0gPSAyOyBfaW5wdXRb MV0gPD0gNjI7IF9pbnB1dFsxXSsrICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBj cHVpZChfaW5wdXQsIF9yZWdzKTsKICAgICAgICAgICAgICAgICBpZiAoIChfcmVnc1swXSArIF9y ZWdzWzFdKSA+IHJlZ3NbMl0gKQogICAgICAgICAgICAgICAgICAgICByZWdzWzJdID0gX3JlZ3Nb MF0gKyBfcmVnc1sxXTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAvKiBFQlg6 IG1heCBzaXplIHJlcXVpcmVkIGJ5IGVuYWJsZWQgZmVhdHVyZXMuIAotICAgICAgICAgKiBUaGlz IHJlZ2lzdGVyIGNvbnRhaW5zIGEgZHluYW1pYyB2YWx1ZSwgd2hpY2ggdmFyaWVzIHdoZW4gYSBn dWVzdCAKLSAgICAgICAgICogZW5hYmxlcyBvciBkaXNhYmxlcyBYU1RBVEUgZmVhdHVyZXMgKHZp YSB4c2V0YnYpLiBUaGUgZGVmYXVsdCBzaXplIAotICAgICAgICAgKiBhZnRlciByZXNldCBpcyA1 NzYuICovIAorICAgICAgICAvKiBFQlg6IG1heCBzaXplIHJlcXVpcmVkIGJ5IGVuYWJsZWQgZmVh dHVyZXMuCisgICAgICAgICAqIFRoaXMgcmVnaXN0ZXIgY29udGFpbnMgYSBkeW5hbWljIHZhbHVl LCB3aGljaCB2YXJpZXMgd2hlbiBhIGd1ZXN0CisgICAgICAgICAqIGVuYWJsZXMgb3IgZGlzYWJs ZXMgWFNUQVRFIGZlYXR1cmVzICh2aWEgeHNldGJ2KS4gVGhlIGRlZmF1bHQgc2l6ZQorICAgICAg ICAgKiBhZnRlciByZXNldCBpcyA1NzYuICovCiAgICAgICAgIHJlZ3NbMV0gPSA1MTIgKyA2NDsg LyogRlAvU1NFICsgWFNBVkUuSEVBREVSICovCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMTog LyogbGVhZiAxICovCkBAIC00NDIsNyArNDcxLDcgQEAgc3RhdGljIHZvaWQgeGNfY3B1aWRfY29u ZmlnX3hzYXZlKHhjX2ludGVyZmFjZSAqeGNoLAogICAgICAgICByZWdzWzFdID0gcmVnc1syXSA9 IHJlZ3NbM10gPSAwOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDIgLi4uIDYzOiAvKiBzdWIt bGVhdmVzICovCi0gICAgICAgIGlmICggIShpbmZvLT54ZmVhdHVyZV9tYXNrICYgKDFVTEwgPDwg aW5wdXRbMV0pKSApCisgICAgICAgIGlmICggIShndWVzdF94ZmVhdHVyZV9tYXNrICYgKDFVTEwg PDwgaW5wdXRbMV0pKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHJlZ3NbMF0gPSByZWdzWzFd ID0gcmVnc1syXSA9IHJlZ3NbM10gPSAwOwogICAgICAgICAgICAgYnJlYWs7Ci0tIAoyLjEuNAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==