From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v4 10/15] tools: implement the new libxl get hw info interface Date: Sat, 23 Sep 2017 17:48:19 +0800 Message-ID: <1506160104-5890-11-git-send-email-yi.y.sun@linux.intel.com> References: <1506160104-5890-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dvhMO-0004kf-H9 for xen-devel@lists.xenproject.org; Sat, 23 Sep 2017 10:08:32 +0000 In-Reply-To: <1506160104-5890-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: Wei Liu , Chao Peng , Yi Sun , Ian Jackson , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBuZXcgbGlieGwgZ2V0IGh3IGluZm8gaW50ZXJmYWNl LAonbGlieGxfcHNyX2dldF9od19pbmZvJywgd2hpY2ggaXMgc3VpdGFibGUgdG8gYWxsIHBzciBh bGxvY2F0aW9uCmZlYXR1cmVzLiBJdCBhbHNvIGltcGxlbWVudHMgY29ycmVzcG9uZGluZyBsaXN0 IGZyZWUgZnVuY3Rpb24sCidsaWJ4bF9wc3JfaHdfaW5mb19saXN0X2ZyZWUnIGFuZCBtYWtlcyAn bGlieGxfcHNyX2NhdF9nZXRfaW5mbycgY2FsbAonbGlieGxfcHNyX2dldF9od19pbmZvJyB0byBh dm9pZCByZWR1bmRhbnQgY29kZSBpbiBsaWJ4bF9wc3IuYy4KClNpZ25lZC1vZmYtYnk6IFlpIFN1 biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNp dHJpeC5jb20+CkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ0M6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzogQ2hhbyBQZW5nIDxj aGFvLnAucGVuZ0BsaW51eC5pbnRlbC5jb20+Cgp2NDoKICAgIC0gcmVtb3ZlICd4Y18nIGZyb20g c3RydWN0IG5hbWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0g Zml4IHdvcmRzIGluIGNvbW1pdCBtZXNzYWdlLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBh dSBNb25uw6kpCiAgICAtIGNoYW5nZSB0eXBlIG9mICdsaWJ4bF9faHdfaW5mb190b19saWJ4bF9j YXRfaW5mbycgdG8gdm9pZCBhbmQgdXNlCiAgICAgIGFzc2VydCB0byBjaGVjayBpbnZhbGlkIHR5 cGUuIFRoZW4sIHJlbW92ZSBjaGVjayBmb3IKICAgICAgJ2xpYnhsX19od19pbmZvX3RvX2xpYnhs X2NhdF9pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBj aGFuZ2UgdHlwZSBvZiAnbGlieGxfX3hjX2h3X2luZm9fdG9fbGlieGxfaHdfaW5mbycgdG8gdm9p ZCBhbmQgdXNlCiAgICAgIGFzc2VydCB0byBjaGVjayBpbnZhbGlkIHR5cGUuIFRoZW4sIHJlbW92 ZSBjaGVjayBmb3IKICAgICAgJ2xpYnhsX194Y19od19pbmZvX3RvX2xpYnhsX2h3X2luZm8nLgog ICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCnYzOgogICAgLSByZW1vdmUgY2Fz dGluZy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSByZW1vdmUg aW5saW5lLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGNoYW5n ZSAnbGlieGNfX3Bzcl9od19pbmZvX3RvX2xpYnhsX3Bzcl9od19pbmZvJyB0bwogICAgICAnbGli eGxfX3hjX2h3X2luZm9fdG9fbGlieGxfaHdfaW5mbycuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9n ZXIgUGF1IE1vbm7DqSkKICAgIC0gcmVtb3ZlICdfaHcnIGZyb20gcGFyYW1ldGVyIG5hbWVzLgog ICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGNoYW5nZSBzb21lICdM T0dFJyB0byAnTE9HJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAg LSBjaGVjayByZXR1cm5lZCAneGNfdHlwZScgYW5kIHJlbW92ZSByZWR1bmRhbnQgJ2x2bCcgY2hl Y2suCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKdjI6CiAgICAtIHNwbGl0 IHRoaXMgcGF0Y2ggb3V0IGZyb20gYSBiaWcgcGF0Y2ggaW4gdjEuCiAgICAgIChzdWdnZXN0ZWQg YnkgV2VpIExpdSkKICAgIC0gY2hhbmdlICdDQVRfSU5GTycvJ01CQV9JTkZPJyB0byAnQ0FUJyBh bmQgJ01CQS4gQWxzbyB0aGUgbGlieGwgc3RydWN0dXJlCiAgICAgIG5hbWUgJ2NhdF9pbmZvJy8n bWJhX2luZm8nIGlzIGNoYW5nZWQgdG8gJ2NhdCcvJ21iYScuCiAgICAgIChzdWdnZXN0ZWQgYnkg Q2hhbyBQZW5nKQogICAgLSBjYWxsICdsaWJ4bF9wc3JfaHdfaW5mb19saXN0X2ZyZWUnIGluICds aWJ4bF9wc3JfY2F0X2dldF9pbmZvJyB0byBmcmVlCiAgICAgIGFsbG9jYXRlZCByZXNvdXJjZXMu CiAgICAgIChzdWdnZXN0ZWQgYnkgQ2hhbyBQZW5nKQotLS0KIHRvb2xzL2xpYnhsL2xpYnhsX3Bz ci5jIHwgMTMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jIGIvdG9vbHMvbGlieGwvbGlieGxfcHNy LmMKaW5kZXggNzM0OTQ5MC4uNTcwZDIxYSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxf cHNyLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfcHNyLmMKQEAgLTM4NCw1NiArMzg0LDQxIEBA IHN0YXRpYyB4Y19wc3JfZmVhdF90eXBlIGxpYnhsX19mZWF0X3R5cGVfdG9fbGlieGNfZmVhdF90 eXBlKAogICAgIHJldHVybiB4Y190eXBlOwogfQogCitzdGF0aWMgdm9pZCBsaWJ4bF9faHdfaW5m b190b19saWJ4bF9jYXRfaW5mbygKKyAgICAgICAgICAgICAgICBsaWJ4bF9wc3JfZmVhdF90eXBl IHR5cGUsIGxpYnhsX3Bzcl9od19pbmZvICpod19pbmZvLAorICAgICAgICAgICAgICAgIGxpYnhs X3Bzcl9jYXRfaW5mbyAqY2F0X2luZm8pCit7CisgICAgYXNzZXJ0KHR5cGUgPT0gTElCWExfUFNS X0ZFQVRfVFlQRV9DQVQpOworCisgICAgY2F0X2luZm8tPmlkID0gaHdfaW5mby0+aWQ7CisgICAg Y2F0X2luZm8tPmNvc19tYXggPSBod19pbmZvLT51LmNhdC5jb3NfbWF4OworICAgIGNhdF9pbmZv LT5jYm1fbGVuID0gaHdfaW5mby0+dS5jYXQuY2JtX2xlbjsKKyAgICBjYXRfaW5mby0+Y2RwX2Vu YWJsZWQgPSBod19pbmZvLT51LmNhdC5jZHBfZW5hYmxlZDsKK30KKwogaW50IGxpYnhsX3Bzcl9j YXRfZ2V0X2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKm5yLCB1bnNpZ25lZCBpbnQg bHZsKQogewogICAgIEdDX0lOSVQoY3R4KTsKICAgICBpbnQgcmM7Ci0gICAgaW50IGkgPSAwLCBz b2NrZXRpZCwgbnJfc29ja2V0czsKLSAgICBsaWJ4bF9iaXRtYXAgc29ja2V0bWFwOworICAgIHVu c2lnbmVkIGludCBpOworICAgIGxpYnhsX3Bzcl9od19pbmZvICpod19pbmZvOwogICAgIGxpYnhs X3Bzcl9jYXRfaW5mbyAqcHRyOwotICAgIHhjX3Bzcl9od19pbmZvIGh3X2luZm87Ci0gICAgeGNf cHNyX2ZlYXRfdHlwZSB4Y190eXBlOwotCi0gICAgbGlieGxfYml0bWFwX2luaXQoJnNvY2tldG1h cCk7Ci0KLSAgICByYyA9IGxpYnhsX19jb3VudF9waHlzaWNhbF9zb2NrZXRzKGdjLCAmbnJfc29j a2V0cyk7Ci0gICAgaWYgKHJjKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQgdG8gZ2V0 IHN5c3RlbSBzb2NrZXQgY291bnQiKTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQogCi0gICAg bGlieGxfc29ja2V0X2JpdG1hcF9hbGxvYyhjdHgsICZzb2NrZXRtYXAsIG5yX3NvY2tldHMpOwot ICAgIHJjID0gbGlieGxfZ2V0X29ubGluZV9zb2NrZXRtYXAoY3R4LCAmc29ja2V0bWFwKTsKLSAg ICBpZiAocmMgPCAwKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQgdG8gZ2V0IGF2YWls YWJsZSBzb2NrZXRzIik7CisgICAgcmMgPSBsaWJ4bF9wc3JfZ2V0X2h3X2luZm8oY3R4LCAmaHdf aW5mbywgbnIsIExJQlhMX1BTUl9GRUFUX1RZUEVfQ0FULCBsdmwpOworICAgIGlmIChyYykKICAg ICAgICAgZ290byBvdXQ7Ci0gICAgfQotCi0gICAgeGNfdHlwZSA9IGxpYnhsX19mZWF0X3R5cGVf dG9fbGlieGNfZmVhdF90eXBlKExJQlhMX1BTUl9GRUFUX1RZUEVfQ0FULCBsdmwpOwotCi0gICAg cHRyID0gbGlieGxfX21hbGxvYyhOT0dDLCBucl9zb2NrZXRzICogc2l6ZW9mKGxpYnhsX3Bzcl9j YXRfaW5mbykpOwotCi0gICAgbGlieGxfZm9yX2VhY2hfc2V0X2JpdChzb2NrZXRpZCwgc29ja2V0 bWFwKSB7Ci0gICAgICAgIHB0cltpXS5pZCA9IHNvY2tldGlkOwotICAgICAgICBpZiAoeGNfcHNy X2dldF9od19pbmZvKGN0eC0+eGNoLCBzb2NrZXRpZCwgeGNfdHlwZSwgJmh3X2luZm8pKSB7Ci0g ICAgICAgICAgICBMT0dFKEVSUk9SLCAiZmFpbGVkIHRvIGdldCBodyBpbmZvIik7Ci0gICAgICAg ICAgICByYyA9IEVSUk9SX0ZBSUw7Ci0gICAgICAgICAgICBmcmVlKHB0cik7Ci0gICAgICAgICAg ICBnb3RvIG91dDsKLSAgICAgICAgfQogCi0gICAgICAgIHB0cltpXS5jb3NfbWF4ID0gaHdfaW5m by51LmNhdC5jb3NfbWF4OwotICAgICAgICBwdHJbaV0uY2JtX2xlbiA9IGh3X2luZm8udS5jYXQu Y2JtX2xlbjsKLSAgICAgICAgcHRyW2ldLmNkcF9lbmFibGVkID0gaHdfaW5mby51LmNhdC5jZHBf ZW5hYmxlZDsKKyAgICBwdHIgPSBsaWJ4bF9fbWFsbG9jKE5PR0MsICpuciAqIHNpemVvZihsaWJ4 bF9wc3JfY2F0X2luZm8pKTsKIAotICAgICAgICBpKys7Ci0gICAgfQorICAgIGZvciAoaSA9IDA7 IGkgPCAqbnI7IGkrKykKKyAgICAgICAgbGlieGxfX2h3X2luZm9fdG9fbGlieGxfY2F0X2luZm8o TElCWExfUFNSX0ZFQVRfVFlQRV9DQVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZod19pbmZvW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmcHRyW2ldKTsKIAogICAgICppbmZvID0gcHRyOwotICAgICpuciA9IGk7CisgICAg bGlieGxfcHNyX2h3X2luZm9fbGlzdF9mcmVlKGh3X2luZm8sICpucik7CiBvdXQ6Ci0gICAgbGli eGxfYml0bWFwX2Rpc3Bvc2UoJnNvY2tldG1hcCk7CiAgICAgR0NfRlJFRTsKICAgICByZXR1cm4g cmM7CiB9CkBAIC00NzQsMTUgKzQ1OSw4NSBAQCBpbnQgbGlieGxfcHNyX2dldF92YWwobGlieGxf Y3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiBFUlJPUl9GQUlMOwogfQogCitz dGF0aWMgdm9pZCBsaWJ4bF9feGNfaHdfaW5mb190b19saWJ4bF9od19pbmZvKAorICAgICAgICAg ICAgICAgIGxpYnhsX3Bzcl9mZWF0X3R5cGUgdHlwZSwgeGNfcHNyX2h3X2luZm8gKnhjX2luZm8s CisgICAgICAgICAgICAgICAgbGlieGxfcHNyX2h3X2luZm8gKnhsX2luZm8pCit7CisgICAgc3dp dGNoICh0eXBlKSB7CisgICAgY2FzZSBMSUJYTF9QU1JfRkVBVF9UWVBFX0NBVDoKKyAgICAgICAg eGxfaW5mby0+dS5jYXQuY29zX21heCA9IHhjX2luZm8tPnUuY2F0LmNvc19tYXg7CisgICAgICAg IHhsX2luZm8tPnUuY2F0LmNibV9sZW4gPSB4Y19pbmZvLT51LmNhdC5jYm1fbGVuOworICAgICAg ICB4bF9pbmZvLT51LmNhdC5jZHBfZW5hYmxlZCA9IHhjX2luZm8tPnUuY2F0LmNkcF9lbmFibGVk OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExJQlhMX1BTUl9GRUFUX1RZUEVfTUJBOgorICAg ICAgICB4bF9pbmZvLT51Lm1iYS5jb3NfbWF4ID0geGNfaW5mby0+dS5tYmEuY29zX21heDsKKyAg ICAgICAgeGxfaW5mby0+dS5tYmEudGhydGxfbWF4ID0geGNfaW5mby0+dS5tYmEudGhydGxfbWF4 OworICAgICAgICB4bF9pbmZvLT51Lm1iYS5saW5lYXIgPSB4Y19pbmZvLT51Lm1iYS5saW5lYXI7 CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGFzc2VydCgwKTsKKyAgICB9 Cit9CisKIGludCBsaWJ4bF9wc3JfZ2V0X2h3X2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bz cl9od19pbmZvICoqaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 ICpuciwgbGlieGxfcHNyX2ZlYXRfdHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgbHZsKQogewotICAgIHJldHVybiBFUlJPUl9GQUlMOworICAgIEdDX0lO SVQoY3R4KTsKKyAgICBpbnQgcmMsIG5yX3NvY2tldHM7CisgICAgdW5zaWduZWQgaW50IGkgPSAw LCBzb2NrZXRpZDsKKyAgICBsaWJ4bF9iaXRtYXAgc29ja2V0bWFwOworICAgIGxpYnhsX3Bzcl9o d19pbmZvICpwdHI7CisgICAgeGNfcHNyX2ZlYXRfdHlwZSB4Y190eXBlOworICAgIHhjX3Bzcl9o d19pbmZvIGh3X2luZm87CisKKyAgICBsaWJ4bF9iaXRtYXBfaW5pdCgmc29ja2V0bWFwKTsKKwor ICAgIHhjX3R5cGUgPSBsaWJ4bF9fZmVhdF90eXBlX3RvX2xpYnhjX2ZlYXRfdHlwZSh0eXBlLCBs dmwpOworCisgICAgcmMgPSBsaWJ4bF9fY291bnRfcGh5c2ljYWxfc29ja2V0cyhnYywgJm5yX3Nv Y2tldHMpOworICAgIGlmIChyYykgeworICAgICAgICBMT0coRVJST1IsICJmYWlsZWQgdG8gZ2V0 IHN5c3RlbSBzb2NrZXQgY291bnQiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAg bGlieGxfc29ja2V0X2JpdG1hcF9hbGxvYyhjdHgsICZzb2NrZXRtYXAsIG5yX3NvY2tldHMpOwor ICAgIHJjID0gbGlieGxfZ2V0X29ubGluZV9zb2NrZXRtYXAoY3R4LCAmc29ja2V0bWFwKTsKKyAg ICBpZiAocmMgPCAwKSB7CisgICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQgdG8gZ2V0IGF2YWls YWJsZSBzb2NrZXRzIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIHB0ciA9IGxp YnhsX19tYWxsb2MoTk9HQywgbnJfc29ja2V0cyAqIHNpemVvZihsaWJ4bF9wc3JfaHdfaW5mbykp OworCisgICAgbGlieGxfZm9yX2VhY2hfc2V0X2JpdChzb2NrZXRpZCwgc29ja2V0bWFwKSB7Cisg ICAgICAgIHB0cltpXS5pZCA9IHNvY2tldGlkOworICAgICAgICBpZiAoeGNfcHNyX2dldF9od19p bmZvKGN0eC0+eGNoLCBzb2NrZXRpZCwgeGNfdHlwZSwgJmh3X2luZm8pKSB7CisgICAgICAgICAg ICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAgICAgICBmcmVlKHB0cik7CisgICAgICAgICAgICBn b3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIGxpYnhsX194Y19od19pbmZvX3RvX2xpYnhs X2h3X2luZm8odHlwZSwgJmh3X2luZm8sICZwdHJbaV0pOworCisgICAgICAgIGkrKzsKKyAgICB9 CisKKyAgICAqaW5mbyA9IHB0cjsKKyAgICAqbnIgPSBpOworb3V0OgorICAgIGxpYnhsX2JpdG1h cF9kaXNwb3NlKCZzb2NrZXRtYXApOworICAgIEdDX0ZSRUU7CisgICAgcmV0dXJuIHJjOwogfQog CiB2b2lkIGxpYnhsX3Bzcl9od19pbmZvX2xpc3RfZnJlZShsaWJ4bF9wc3JfaHdfaW5mbyAqbGlz dCwgdW5zaWduZWQgaW50IG5yKQogeworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgZm9yIChp ID0gMDsgaSA8IG5yOyBpKyspCisgICAgICAgIGxpYnhsX3Bzcl9od19pbmZvX2Rpc3Bvc2UoJmxp c3RbaV0pOworICAgIGZyZWUobGlzdCk7CiB9CiAKIC8qCi0tIAoxLjkuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=