From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v2 10/15] tools: implement the new libxl get hw info interface Date: Thu, 24 Aug 2017 09:14:44 +0800 Message-ID: <1503537289-56036-11-git-send-email-yi.y.sun@linux.intel.com> References: <1503537289-56036-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dkh0e-0000rN-58 for xen-devel@lists.xenproject.org; Thu, 24 Aug 2017 01:32:36 +0000 In-Reply-To: <1503537289-56036-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , julien.grall@arm.com, mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBuZXcgbGlieGwgZ2V0IGh3IGluZm8gaW50ZXJmYWNl LAonbGlieGxfcHNyX2dldF9od19pbmZvJywgd2hpY2ggaXMgc3VpdGFibGUgdG8gYWxsIHBzciBh bGxvY2F0aW9uCmZlYXR1cmVzLiBJdCBhbHNvIGltcGxlbWVudHMgY29ycmVzcG9uZGluZyBsaXN0 IGZyZWUgZnVuY3Rpb24sCidsaWJ4bF9wc3JfaHdfaW5mb19saXN0X2ZyZWUnIGFuZCBtYWtlICds aWJ4bF9wc3JfY2F0X2dldF9pbmZvJyB0byBjYWxsCidsaWJ4bF9wc3JfZ2V0X2h3X2luZm8nIHRv IGF2b2lkIHJlZHVuZGFudCBjb2RlcyBpbiBsaWJ4bF9wc3IuYy4KClNpZ25lZC1vZmYtYnk6IFlp IFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KdjI6CiAgICAtIHNwbGl0IHRoaXMg cGF0Y2ggb3V0IGZyb20gYSBiaWcgcGF0Y2ggaW4gdjEuCiAgICAgIChzdWdnZXN0ZWQgYnkgV2Vp IExpdSkKICAgIC0gY2hhbmdlICdDQVRfSU5GTycvJ01CQV9JTkZPJyB0byAnQ0FUJyBhbmQgJ01C QS4gQWxzbyB0aGUgbGlieGwgc3RydWN0dXJlCiAgICAgIG5hbWUgJ2NhdF9pbmZvJy8nbWJhX2lu Zm8nIGlzIGNoYW5nZWQgdG8gJ2NhdCcvJ21iYScuCiAgICAgIChzdWdnZXN0ZWQgYnkgQ2hhbyBQ ZW5nKQogICAgLSBjYWxsICdsaWJ4bF9wc3JfaHdfaW5mb19saXN0X2ZyZWUnIGluICdsaWJ4bF9w c3JfY2F0X2dldF9pbmZvJyB0byBmcmVlCiAgICAgIGFsbG9jYXRlZCByZXNvdXJjZXMuCiAgICAg IChzdWdnZXN0ZWQgYnkgQ2hhbyBQZW5nKQotLS0KIHRvb2xzL2xpYnhsL2xpYnhsX3Bzci5jIHwg MTQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS90b29scy9saWJ4bC9saWJ4bF9wc3IuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jCmlu ZGV4IGIxODMzMDUuLmQ3ZGE3ZDcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jCkBAIC0zODIsNTYgKzM4Miw1MSBAQCBzdGF0 aWMgaW5saW5lIHhjX3Bzcl9mZWF0X3R5cGUgbGlieGxfX3Bzcl9mZWF0X3R5cGVfdG9fbGlieGNf cHNyX2ZlYXRfdHlwZSgKICAgICByZXR1cm4geGNfdHlwZTsKIH0KIAorc3RhdGljIGlubGluZSBp bnQgbGlieGxfX3Bzcl9od19pbmZvX3RvX2xpYnhsX3Bzcl9jYXRfaW5mbygKKyAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9wc3JfZmVhdF90eXBlIHR5cGUsIGxpYnhsX3Bzcl9od19pbmZvICpo d19pbmZvLAorICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3Bzcl9jYXRfaW5mbyAqY2F0X2lu Zm8pCit7CisgICAgaWYgKHR5cGUgIT0gTElCWExfUFNSX0ZFQVRfVFlQRV9DQVQpCisgICAgICAg IHJldHVybiBFUlJPUl9JTlZBTDsKKworICAgIGNhdF9pbmZvLT5pZCA9IGh3X2luZm8tPmlkOwor ICAgIGNhdF9pbmZvLT5jb3NfbWF4ID0gaHdfaW5mby0+dS5jYXQuY29zX21heDsKKyAgICBjYXRf aW5mby0+Y2JtX2xlbiA9IGh3X2luZm8tPnUuY2F0LmNibV9sZW47CisgICAgY2F0X2luZm8tPmNk cF9lbmFibGVkID0gaHdfaW5mby0+dS5jYXQuY2RwX2VuYWJsZWQ7CisKKyAgICByZXR1cm4gMDsK K30KKwogaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bz cl9jYXRfaW5mbyAqKmluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm5yLCB1 bnNpZ25lZCBpbnQgbHZsKQogewogICAgIEdDX0lOSVQoY3R4KTsKICAgICBpbnQgcmM7Ci0gICAg aW50IGkgPSAwLCBzb2NrZXRpZCwgbnJfc29ja2V0czsKLSAgICBsaWJ4bF9iaXRtYXAgc29ja2V0 bWFwOworICAgIHVuc2lnbmVkIGludCBpOworICAgIGxpYnhsX3Bzcl9od19pbmZvICpod19pbmZv OwogICAgIGxpYnhsX3Bzcl9jYXRfaW5mbyAqcHRyOwotICAgIHhjX3Bzcl9od19pbmZvIGh3X2lu Zm87Ci0gICAgeGNfcHNyX2ZlYXRfdHlwZSB4Y190eXBlOwotCi0gICAgbGlieGxfYml0bWFwX2lu aXQoJnNvY2tldG1hcCk7Ci0KLSAgICByYyA9IGxpYnhsX19jb3VudF9waHlzaWNhbF9zb2NrZXRz KGdjLCAmbnJfc29ja2V0cyk7Ci0gICAgaWYgKHJjKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJm YWlsZWQgdG8gZ2V0IHN5c3RlbSBzb2NrZXQgY291bnQiKTsKLSAgICAgICAgZ290byBvdXQ7Ci0g ICAgfQogCi0gICAgbGlieGxfc29ja2V0X2JpdG1hcF9hbGxvYyhjdHgsICZzb2NrZXRtYXAsIG5y X3NvY2tldHMpOwotICAgIHJjID0gbGlieGxfZ2V0X29ubGluZV9zb2NrZXRtYXAoY3R4LCAmc29j a2V0bWFwKTsKLSAgICBpZiAocmMgPCAwKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQg dG8gZ2V0IGF2YWlsYWJsZSBzb2NrZXRzIik7CisgICAgcmMgPSBsaWJ4bF9wc3JfZ2V0X2h3X2lu Zm8oY3R4LCAmaHdfaW5mbywgKHVuc2lnbmVkIGludCAqKW5yLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExJQlhMX1BTUl9GRUFUX1RZUEVfQ0FULCBsdmwpOworICAgIGlmIChyYykK ICAgICAgICAgZ290byBvdXQ7Ci0gICAgfQogCi0gICAgeGNfdHlwZSA9IGxpYnhsX19wc3JfZmVh dF90eXBlX3RvX2xpYnhjX3Bzcl9mZWF0X3R5cGUoCi0gICAgICAgICAgICAgICAgICBMSUJYTF9Q U1JfRkVBVF9UWVBFX0NBVCwgbHZsKTsKKyAgICBwdHIgPSBsaWJ4bF9fbWFsbG9jKE5PR0MsICpu ciAqIHNpemVvZihsaWJ4bF9wc3JfY2F0X2luZm8pKTsKIAotICAgIHB0ciA9IGxpYnhsX19tYWxs b2MoTk9HQywgbnJfc29ja2V0cyAqIHNpemVvZihsaWJ4bF9wc3JfY2F0X2luZm8pKTsKLQotICAg IGxpYnhsX2Zvcl9lYWNoX3NldF9iaXQoc29ja2V0aWQsIHNvY2tldG1hcCkgewotICAgICAgICBw dHJbaV0uaWQgPSBzb2NrZXRpZDsKLSAgICAgICAgaWYgKHhjX3Bzcl9nZXRfaHdfaW5mbyhjdHgt PnhjaCwgc29ja2V0aWQsIHhjX3R5cGUsICZod19pbmZvKSkgeworICAgIGZvciAoaSA9IDA7IGkg PCAqbnI7IGkrKykgeworICAgICAgICBpZiAobGlieGxfX3Bzcl9od19pbmZvX3RvX2xpYnhsX3Bz cl9jYXRfaW5mbygKKyAgICAgICAgICAgICAgICAgICAgTElCWExfUFNSX0ZFQVRfVFlQRV9DQVQs CisgICAgICAgICAgICAgICAgICAgICZod19pbmZvW2ldLCAmcHRyW2ldKSkgeworICAgICAgICAg ICAgbGlieGxfcHNyX2h3X2luZm9fbGlzdF9mcmVlKGh3X2luZm8sICh1bnNpZ25lZCBpbnQpKm5y KTsKICAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgICAgIGZyZWUocHRyKTsK ICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9Ci0KLSAgICAgICAgcHRyW2ldLmNvc19t YXggPSBod19pbmZvLnUueGNfY2F0X2luZm8uY29zX21heDsKLSAgICAgICAgcHRyW2ldLmNibV9s ZW4gPSBod19pbmZvLnUueGNfY2F0X2luZm8uY2JtX2xlbjsKLSAgICAgICAgcHRyW2ldLmNkcF9l bmFibGVkID0gaHdfaW5mby51LnhjX2NhdF9pbmZvLmNkcF9lbmFibGVkOwotCi0gICAgICAgIGkr KzsKICAgICB9CiAKICAgICAqaW5mbyA9IHB0cjsKLSAgICAqbnIgPSBpOworICAgIGxpYnhsX3Bz cl9od19pbmZvX2xpc3RfZnJlZShod19pbmZvLCAodW5zaWduZWQgaW50KSpucik7CiBvdXQ6Ci0g ICAgbGlieGxfYml0bWFwX2Rpc3Bvc2UoJnNvY2tldG1hcCk7CiAgICAgR0NfRlJFRTsKICAgICBy ZXR1cm4gcmM7CiB9CkBAIC00NjksMTUgKzQ2NCw5OSBAQCBpbnQgbGlieGxfcHNyX2dldF92YWwo bGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiBFUlJPUl9GQUlMOwog fQogCitzdGF0aWMgaW5saW5lIGludCBsaWJ4Y19fcHNyX2h3X2luZm9fdG9fbGlieGxfcHNyX2h3 X2luZm8oCisgICAgICAgICAgICAgICAgICAgICAgbGlieGxfcHNyX2ZlYXRfdHlwZSB0eXBlLCB4 Y19wc3JfaHdfaW5mbyAqeGNfaHdfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9w c3JfaHdfaW5mbyAqeGxfaHdfaW5mbykKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNl IExJQlhMX1BTUl9GRUFUX1RZUEVfQ0FUOgorICAgICAgICB4bF9od19pbmZvLT51LmNhdC5jb3Nf bWF4ID0geGNfaHdfaW5mby0+dS54Y19jYXRfaW5mby5jb3NfbWF4OworICAgICAgICB4bF9od19p bmZvLT51LmNhdC5jYm1fbGVuID0geGNfaHdfaW5mby0+dS54Y19jYXRfaW5mby5jYm1fbGVuOwor ICAgICAgICB4bF9od19pbmZvLT51LmNhdC5jZHBfZW5hYmxlZCA9CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4Y19od19pbmZvLT51LnhjX2NhdF9pbmZvLmNkcF9lbmFibGVk OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExJQlhMX1BTUl9GRUFUX1RZUEVfTUJBOgorICAg ICAgICB4bF9od19pbmZvLT51Lm1iYS5jb3NfbWF4ID0geGNfaHdfaW5mby0+dS54Y19tYmFfaW5m by5jb3NfbWF4OworICAgICAgICB4bF9od19pbmZvLT51Lm1iYS50aHJ0bF9tYXggPSB4Y19od19p bmZvLT51LnhjX21iYV9pbmZvLnRocnRsX21heDsKKyAgICAgICAgeGxfaHdfaW5mby0+dS5tYmEu bGluZWFyID0geGNfaHdfaW5mby0+dS54Y19tYmFfaW5mby5saW5lYXI7CisgICAgICAgIGJyZWFr OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBFUlJPUl9JTlZBTDsKKyAgICB9CisKKyAg ICByZXR1cm4gMDsKK30KKwogaW50IGxpYnhsX3Bzcl9nZXRfaHdfaW5mbyhsaWJ4bF9jdHggKmN0 eCwgbGlieGxfcHNyX2h3X2luZm8gKippbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgKm5yLCBsaWJ4bF9wc3JfZmVhdF90eXBlIHR5cGUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsdmwpCiB7Ci0gICAgcmV0dXJuIEVSUk9SX0ZBSUw7 CisgICAgR0NfSU5JVChjdHgpOworICAgIGludCByYywgbnJfc29ja2V0czsKKyAgICB1bnNpZ25l ZCBpbnQgaSA9IDAsIHNvY2tldGlkOworICAgIGxpYnhsX2JpdG1hcCBzb2NrZXRtYXA7CisgICAg bGlieGxfcHNyX2h3X2luZm8gKnB0cjsKKyAgICB4Y19wc3JfZmVhdF90eXBlIHhjX3R5cGU7Cisg ICAgeGNfcHNyX2h3X2luZm8gaHdfaW5mbzsKKworICAgIGxpYnhsX2JpdG1hcF9pbml0KCZzb2Nr ZXRtYXApOworCisgICAgaWYgKHR5cGUgPT0gTElCWExfUFNSX0ZFQVRfVFlQRV9DQVQgJiYgbHZs ICE9IDMgJiYgbHZsICE9IDIpIHsKKyAgICAgICAgTE9HRShFUlJPUiwgImlucHV0IGx2bCAlZCBp cyB3cm9uZyFcbiIsIGx2bCk7CisgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgZ290 byBvdXQ7CisgICAgfQorCisgICAgeGNfdHlwZSA9IGxpYnhsX19wc3JfZmVhdF90eXBlX3RvX2xp YnhjX3Bzcl9mZWF0X3R5cGUodHlwZSwgbHZsKTsKKworICAgIHJjID0gbGlieGxfX2NvdW50X3Bo eXNpY2FsX3NvY2tldHMoZ2MsICZucl9zb2NrZXRzKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAg TE9HRShFUlJPUiwgImZhaWxlZCB0byBnZXQgc3lzdGVtIHNvY2tldCBjb3VudCIpOworICAgICAg ICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBsaWJ4bF9zb2NrZXRfYml0bWFwX2FsbG9jKGN0eCwg JnNvY2tldG1hcCwgbnJfc29ja2V0cyk7CisgICAgcmMgPSBsaWJ4bF9nZXRfb25saW5lX3NvY2tl dG1hcChjdHgsICZzb2NrZXRtYXApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgTE9HRShF UlJPUiwgImZhaWxlZCB0byBnZXQgYXZhaWxhYmxlIHNvY2tldHMiKTsKKyAgICAgICAgZ290byBv dXQ7CisgICAgfQorCisgICAgcHRyID0gbGlieGxfX21hbGxvYyhOT0dDLCBucl9zb2NrZXRzICog c2l6ZW9mKGxpYnhsX3Bzcl9od19pbmZvKSk7CisKKyAgICBsaWJ4bF9mb3JfZWFjaF9zZXRfYml0 KHNvY2tldGlkLCBzb2NrZXRtYXApIHsKKyAgICAgICAgcHRyW2ldLmlkID0gc29ja2V0aWQ7Cisg ICAgICAgIGlmICh4Y19wc3JfZ2V0X2h3X2luZm8oY3R4LT54Y2gsIHNvY2tldGlkLCB4Y190eXBl LCAmaHdfaW5mbykpIHsKKyAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgICAg IGZyZWUocHRyKTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAg aWYgKGxpYnhjX19wc3JfaHdfaW5mb190b19saWJ4bF9wc3JfaHdfaW5mbyh0eXBlLCAmaHdfaW5m bywgJnB0cltpXSkpIHsKKyAgICAgICAgICAgIExPR0UoRVJST1IsICJJbnB1dCB0eXBlICVkIGlz IHdyb25nIVxuIiwgdHlwZSk7CisgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAg ICAgICBmcmVlKHB0cik7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAg ICAgIGkrKzsKKyAgICB9CisKKyAgICAqaW5mbyA9IHB0cjsKKyAgICAqbnIgPSBpOworb3V0Ogor ICAgIGxpYnhsX2JpdG1hcF9kaXNwb3NlKCZzb2NrZXRtYXApOworICAgIEdDX0ZSRUU7CisgICAg cmV0dXJuIHJjOwogfQogCiB2b2lkIGxpYnhsX3Bzcl9od19pbmZvX2xpc3RfZnJlZShsaWJ4bF9w c3JfaHdfaW5mbyAqbGlzdCwgdW5zaWduZWQgaW50IG5yKQogeworICAgIHVuc2lnbmVkIGludCBp OworCisgICAgZm9yIChpID0gMDsgaSA8IG5yOyBpKyspCisgICAgICAgIGxpYnhsX3Bzcl9od19p bmZvX2Rpc3Bvc2UoJmxpc3RbaV0pOworICAgIGZyZWUobGlzdCk7CiB9CiAKIC8qCi0tIAoxLjku MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=