From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v5 11/16] tools: implement the new libxl get hw info interface Date: Sat, 30 Sep 2017 09:39:21 +0800 Message-ID: <1506735566-5706-12-git-send-email-yi.y.sun@linux.intel.com> References: <1506735566-5706-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 1dy73x-0004Xx-QR for xen-devel@lists.xenproject.org; Sat, 30 Sep 2017 01:59:29 +0000 In-Reply-To: <1506735566-5706-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 , Yi Sun , Ian Jackson , Chao Peng List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBuZXcgbGlieGwgZ2V0IGh3IGluZm8gaW50ZXJmYWNl LAonbGlieGxfcHNyX2dldF9od19pbmZvJywgd2hpY2ggaXMgc3VpdGFibGUgdG8gYWxsIHBzciBh bGxvY2F0aW9uCmZlYXR1cmVzLiBJdCBhbHNvIGltcGxlbWVudHMgY29ycmVzcG9uZGluZyBsaXN0 IGZyZWUgZnVuY3Rpb24sCidsaWJ4bF9wc3JfaHdfaW5mb19saXN0X2ZyZWUnIGFuZCBtYWtlcyAn bGlieGxfcHNyX2NhdF9nZXRfaW5mbycgY2FsbAonbGlieGxfcHNyX2dldF9od19pbmZvJyB0byBh dm9pZCByZWR1bmRhbnQgY29kZSBpbiBsaWJ4bF9wc3IuYy4KClNpZ25lZC1vZmYtYnk6IFlpIFN1 biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7D qSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4 LmNvbT4KQ0M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDQzogQ2hh byBQZW5nIDxjaGFvLnAucGVuZ0BsaW51eC5pbnRlbC5jb20+Cgp2NToKICAgIC0gY2hhbmdlICdp ZiAocmMgPCAwKScgdG8gJ2lmIChyYyknLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBN b25uw6kpCnY0OgogICAgLSByZW1vdmUgJ3hjXycgZnJvbSBzdHJ1Y3QgbmFtZS4KICAgICAgKHN1 Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBmaXggd29yZHMgaW4gY29tbWl0IG1l c3NhZ2UuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdl IHR5cGUgb2YgJ2xpYnhsX19od19pbmZvX3RvX2xpYnhsX2NhdF9pbmZvJyB0byB2b2lkIGFuZCB1 c2UKICAgICAgYXNzZXJ0IHRvIGNoZWNrIGludmFsaWQgdHlwZS4gVGhlbiwgcmVtb3ZlIGNoZWNr IGZvcgogICAgICAnbGlieGxfX2h3X2luZm9fdG9fbGlieGxfY2F0X2luZm8nLgogICAgICAoc3Vn Z2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGNoYW5nZSB0eXBlIG9mICdsaWJ4bF9f eGNfaHdfaW5mb190b19saWJ4bF9od19pbmZvJyB0byB2b2lkIGFuZCB1c2UKICAgICAgYXNzZXJ0 IHRvIGNoZWNrIGludmFsaWQgdHlwZS4gVGhlbiwgcmVtb3ZlIGNoZWNrIGZvcgogICAgICAnbGli eGxfX3hjX2h3X2luZm9fdG9fbGlieGxfaHdfaW5mbycuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9n ZXIgUGF1IE1vbm7DqSkKdjM6CiAgICAtIHJlbW92ZSBjYXN0aW5nLgogICAgICAoc3VnZ2VzdGVk IGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIHJlbW92ZSBpbmxpbmUuCiAgICAgIChzdWdnZXN0 ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdlICdsaWJ4Y19fcHNyX2h3X2luZm9f dG9fbGlieGxfcHNyX2h3X2luZm8nIHRvCiAgICAgICdsaWJ4bF9feGNfaHdfaW5mb190b19saWJ4 bF9od19pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBy ZW1vdmUgJ19odycgZnJvbSBwYXJhbWV0ZXIgbmFtZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9n ZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdlIHNvbWUgJ0xPR0UnIHRvICdMT0cnLgogICAgICAo c3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGNoZWNrIHJldHVybmVkICd4Y190 eXBlJyBhbmQgcmVtb3ZlIHJlZHVuZGFudCAnbHZsJyBjaGVjay4KICAgICAgKHN1Z2dlc3RlZCBi eSBSb2dlciBQYXUgTW9ubsOpKQp2MjoKICAgIC0gc3BsaXQgdGhpcyBwYXRjaCBvdXQgZnJvbSBh IGJpZyBwYXRjaCBpbiB2MS4KICAgICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1KQogICAgLSBjaGFu Z2UgJ0NBVF9JTkZPJy8nTUJBX0lORk8nIHRvICdDQVQnIGFuZCAnTUJBLiBBbHNvIHRoZSBsaWJ4 bCBzdHJ1Y3R1cmUKICAgICAgbmFtZSAnY2F0X2luZm8nLydtYmFfaW5mbycgaXMgY2hhbmdlZCB0 byAnY2F0Jy8nbWJhJy4KICAgICAgKHN1Z2dlc3RlZCBieSBDaGFvIFBlbmcpCiAgICAtIGNhbGwg J2xpYnhsX3Bzcl9od19pbmZvX2xpc3RfZnJlZScgaW4gJ2xpYnhsX3Bzcl9jYXRfZ2V0X2luZm8n IHRvIGZyZWUKICAgICAgYWxsb2NhdGVkIHJlc291cmNlcy4KICAgICAgKHN1Z2dlc3RlZCBieSBD aGFvIFBlbmcpCi0tLQogdG9vbHMvbGlieGwvbGlieGxfcHNyLmMgfCAxMzEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTMg aW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfcHNyLmMgYi90b29scy9saWJ4bC9saWJ4bF9wc3IuYwppbmRleCBlOGQ2MmUxLi5jZDgy YWMwIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9wc3IuYworKysgYi90b29scy9saWJ4 bC9saWJ4bF9wc3IuYwpAQCAtMzg0LDU2ICszODQsNDEgQEAgc3RhdGljIHhjX3Bzcl9mZWF0X3R5 cGUgbGlieGxfX2ZlYXRfdHlwZV90b19saWJ4Y19mZWF0X3R5cGUoCiAgICAgcmV0dXJuIHhjX3R5 cGU7CiB9CiAKK3N0YXRpYyB2b2lkIGxpYnhsX19od19pbmZvX3RvX2xpYnhsX2NhdF9pbmZvKAor ICAgICAgICAgICAgICAgIGxpYnhsX3Bzcl9mZWF0X3R5cGUgdHlwZSwgbGlieGxfcHNyX2h3X2lu Zm8gKmh3X2luZm8sCisgICAgICAgICAgICAgICAgbGlieGxfcHNyX2NhdF9pbmZvICpjYXRfaW5m bykKK3sKKyAgICBhc3NlcnQodHlwZSA9PSBMSUJYTF9QU1JfRkVBVF9UWVBFX0NBVCk7CisKKyAg ICBjYXRfaW5mby0+aWQgPSBod19pbmZvLT5pZDsKKyAgICBjYXRfaW5mby0+Y29zX21heCA9IGh3 X2luZm8tPnUuY2F0LmNvc19tYXg7CisgICAgY2F0X2luZm8tPmNibV9sZW4gPSBod19pbmZvLT51 LmNhdC5jYm1fbGVuOworICAgIGNhdF9pbmZvLT5jZHBfZW5hYmxlZCA9IGh3X2luZm8tPnUuY2F0 LmNkcF9lbmFibGVkOworfQorCiBpbnQgbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhsaWJ4bF9jdHgg KmN0eCwgbGlieGxfcHNyX2NhdF9pbmZvICoqaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCAqbnIsIHVuc2lnbmVkIGludCBsdmwpCiB7CiAgICAgR0NfSU5JVChj dHgpOwogICAgIGludCByYzsKLSAgICBpbnQgaSA9IDAsIHNvY2tldGlkLCBucl9zb2NrZXRzOwot ICAgIGxpYnhsX2JpdG1hcCBzb2NrZXRtYXA7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgbGli eGxfcHNyX2h3X2luZm8gKmh3X2luZm87CiAgICAgbGlieGxfcHNyX2NhdF9pbmZvICpwdHI7Ci0g ICAgeGNfcHNyX2h3X2luZm8gaHdfaW5mbzsKLSAgICB4Y19wc3JfZmVhdF90eXBlIHhjX3R5cGU7 Ci0KLSAgICBsaWJ4bF9iaXRtYXBfaW5pdCgmc29ja2V0bWFwKTsKLQotICAgIHJjID0gbGlieGxf X2NvdW50X3BoeXNpY2FsX3NvY2tldHMoZ2MsICZucl9zb2NrZXRzKTsKLSAgICBpZiAocmMpIHsK LSAgICAgICAgTE9HRShFUlJPUiwgImZhaWxlZCB0byBnZXQgc3lzdGVtIHNvY2tldCBjb3VudCIp OwotICAgICAgICBnb3RvIG91dDsKLSAgICB9CiAKLSAgICBsaWJ4bF9zb2NrZXRfYml0bWFwX2Fs bG9jKGN0eCwgJnNvY2tldG1hcCwgbnJfc29ja2V0cyk7Ci0gICAgcmMgPSBsaWJ4bF9nZXRfb25s aW5lX3NvY2tldG1hcChjdHgsICZzb2NrZXRtYXApOwotICAgIGlmIChyYyA8IDApIHsKLSAgICAg ICAgTE9HRShFUlJPUiwgImZhaWxlZCB0byBnZXQgYXZhaWxhYmxlIHNvY2tldHMiKTsKKyAgICBy YyA9IGxpYnhsX3Bzcl9nZXRfaHdfaW5mbyhjdHgsIExJQlhMX1BTUl9GRUFUX1RZUEVfQ0FULCBs dmwsIG5yLCAmaHdfaW5mbyk7CisgICAgaWYgKHJjKQogICAgICAgICBnb3RvIG91dDsKLSAgICB9 Ci0KLSAgICB4Y190eXBlID0gbGlieGxfX2ZlYXRfdHlwZV90b19saWJ4Y19mZWF0X3R5cGUoTElC WExfUFNSX0ZFQVRfVFlQRV9DQVQsIGx2bCk7Ci0KLSAgICBwdHIgPSBsaWJ4bF9fbWFsbG9jKE5P R0MsIG5yX3NvY2tldHMgKiBzaXplb2YobGlieGxfcHNyX2NhdF9pbmZvKSk7Ci0KLSAgICBsaWJ4 bF9mb3JfZWFjaF9zZXRfYml0KHNvY2tldGlkLCBzb2NrZXRtYXApIHsKLSAgICAgICAgcHRyW2ld LmlkID0gc29ja2V0aWQ7Ci0gICAgICAgIGlmICh4Y19wc3JfZ2V0X2h3X2luZm8oY3R4LT54Y2gs IHNvY2tldGlkLCB4Y190eXBlLCAmaHdfaW5mbykpIHsKLSAgICAgICAgICAgIExPR0UoRVJST1Is ICJmYWlsZWQgdG8gZ2V0IGh3IGluZm8iKTsKLSAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsK LSAgICAgICAgICAgIGZyZWUocHRyKTsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9 CiAKLSAgICAgICAgcHRyW2ldLmNvc19tYXggPSBod19pbmZvLmNhdC5jb3NfbWF4OwotICAgICAg ICBwdHJbaV0uY2JtX2xlbiA9IGh3X2luZm8uY2F0LmNibV9sZW47Ci0gICAgICAgIHB0cltpXS5j ZHBfZW5hYmxlZCA9IGh3X2luZm8uY2F0LmNkcF9lbmFibGVkOworICAgIHB0ciA9IGxpYnhsX19t YWxsb2MoTk9HQywgKm5yICogc2l6ZW9mKGxpYnhsX3Bzcl9jYXRfaW5mbykpOwogCi0gICAgICAg IGkrKzsKLSAgICB9CisgICAgZm9yIChpID0gMDsgaSA8ICpucjsgaSsrKQorICAgICAgICBsaWJ4 bF9faHdfaW5mb190b19saWJ4bF9jYXRfaW5mbyhMSUJYTF9QU1JfRkVBVF9UWVBFX0NBVCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmh3X2luZm9baV0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwdHJbaV0pOwogCiAgICAgKmlu Zm8gPSBwdHI7Ci0gICAgKm5yID0gaTsKKyAgICBsaWJ4bF9wc3JfaHdfaW5mb19saXN0X2ZyZWUo aHdfaW5mbywgKm5yKTsKIG91dDoKLSAgICBsaWJ4bF9iaXRtYXBfZGlzcG9zZSgmc29ja2V0bWFw KTsKICAgICBHQ19GUkVFOwogICAgIHJldHVybiByYzsKIH0KQEAgLTQ3NCwxNSArNDU5LDg1IEBA IGludCBsaWJ4bF9wc3JfZ2V0X3ZhbChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAg ICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiB9CiAKK3N0YXRpYyB2b2lkIGxpYnhsX194Y19od19pbmZv X3RvX2xpYnhsX2h3X2luZm8oCisgICAgICAgICAgICAgICAgbGlieGxfcHNyX2ZlYXRfdHlwZSB0 eXBlLCB4Y19wc3JfaHdfaW5mbyAqeGNfaW5mbywKKyAgICAgICAgICAgICAgICBsaWJ4bF9wc3Jf aHdfaW5mbyAqeGxfaW5mbykKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIExJQlhM X1BTUl9GRUFUX1RZUEVfQ0FUOgorICAgICAgICB4bF9pbmZvLT51LmNhdC5jb3NfbWF4ID0geGNf aW5mby0+Y2F0LmNvc19tYXg7CisgICAgICAgIHhsX2luZm8tPnUuY2F0LmNibV9sZW4gPSB4Y19p bmZvLT5jYXQuY2JtX2xlbjsKKyAgICAgICAgeGxfaW5mby0+dS5jYXQuY2RwX2VuYWJsZWQgPSB4 Y19pbmZvLT5jYXQuY2RwX2VuYWJsZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTElCWExf UFNSX0ZFQVRfVFlQRV9NQkE6CisgICAgICAgIHhsX2luZm8tPnUubWJhLmNvc19tYXggPSB4Y19p bmZvLT5tYmEuY29zX21heDsKKyAgICAgICAgeGxfaW5mby0+dS5tYmEudGhydGxfbWF4ID0geGNf aW5mby0+bWJhLnRocnRsX21heDsKKyAgICAgICAgeGxfaW5mby0+dS5tYmEubGluZWFyID0geGNf aW5mby0+bWJhLmxpbmVhcjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg YXNzZXJ0KDApOworICAgIH0KK30KKwogaW50IGxpYnhsX3Bzcl9nZXRfaHdfaW5mbyhsaWJ4bF9j dHggKmN0eCwgbGlieGxfcHNyX2ZlYXRfdHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgbHZsLCB1bnNpZ25lZCBpbnQgKm5yLAogICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9wc3JfaHdfaW5mbyAqKmluZm8pCiB7Ci0gICAgcmV0dXJuIEVSUk9S X0ZBSUw7CisgICAgR0NfSU5JVChjdHgpOworICAgIGludCByYywgbnJfc29ja2V0czsKKyAgICB1 bnNpZ25lZCBpbnQgaSA9IDAsIHNvY2tldGlkOworICAgIGxpYnhsX2JpdG1hcCBzb2NrZXRtYXA7 CisgICAgbGlieGxfcHNyX2h3X2luZm8gKnB0cjsKKyAgICB4Y19wc3JfZmVhdF90eXBlIHhjX3R5 cGU7CisgICAgeGNfcHNyX2h3X2luZm8gaHdfaW5mbzsKKworICAgIGxpYnhsX2JpdG1hcF9pbml0 KCZzb2NrZXRtYXApOworCisgICAgeGNfdHlwZSA9IGxpYnhsX19mZWF0X3R5cGVfdG9fbGlieGNf ZmVhdF90eXBlKHR5cGUsIGx2bCk7CisKKyAgICByYyA9IGxpYnhsX19jb3VudF9waHlzaWNhbF9z b2NrZXRzKGdjLCAmbnJfc29ja2V0cyk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIExPRyhFUlJP UiwgImZhaWxlZCB0byBnZXQgc3lzdGVtIHNvY2tldCBjb3VudCIpOworICAgICAgICBnb3RvIG91 dDsKKyAgICB9CisKKyAgICBsaWJ4bF9zb2NrZXRfYml0bWFwX2FsbG9jKGN0eCwgJnNvY2tldG1h cCwgbnJfc29ja2V0cyk7CisgICAgcmMgPSBsaWJ4bF9nZXRfb25saW5lX3NvY2tldG1hcChjdHgs ICZzb2NrZXRtYXApOworICAgIGlmIChyYykgeworICAgICAgICBMT0dFKEVSUk9SLCAiZmFpbGVk IHRvIGdldCBhdmFpbGFibGUgc29ja2V0cyIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisK KyAgICBwdHIgPSBsaWJ4bF9fbWFsbG9jKE5PR0MsIG5yX3NvY2tldHMgKiBzaXplb2YobGlieGxf cHNyX2h3X2luZm8pKTsKKworICAgIGxpYnhsX2Zvcl9lYWNoX3NldF9iaXQoc29ja2V0aWQsIHNv Y2tldG1hcCkgeworICAgICAgICBwdHJbaV0uaWQgPSBzb2NrZXRpZDsKKyAgICAgICAgaWYgKHhj X3Bzcl9nZXRfaHdfaW5mbyhjdHgtPnhjaCwgc29ja2V0aWQsIHhjX3R5cGUsICZod19pbmZvKSkg eworICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICAgICAgZnJlZShwdHIpOwor ICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICBsaWJ4bF9feGNfaHdf aW5mb190b19saWJ4bF9od19pbmZvKHR5cGUsICZod19pbmZvLCAmcHRyW2ldKTsKKworICAgICAg ICBpKys7CisgICAgfQorCisgICAgKmluZm8gPSBwdHI7CisgICAgKm5yID0gaTsKK291dDoKKyAg ICBsaWJ4bF9iaXRtYXBfZGlzcG9zZSgmc29ja2V0bWFwKTsKKyAgICBHQ19GUkVFOworICAgIHJl dHVybiByYzsKIH0KIAogdm9pZCBsaWJ4bF9wc3JfaHdfaW5mb19saXN0X2ZyZWUobGlieGxfcHNy X2h3X2luZm8gKmxpc3QsIHVuc2lnbmVkIGludCBucikKIHsKKyAgICB1bnNpZ25lZCBpbnQgaTsK KworICAgIGZvciAoaSA9IDA7IGkgPCBucjsgaSsrKQorICAgICAgICBsaWJ4bF9wc3JfaHdfaW5m b19kaXNwb3NlKCZsaXN0W2ldKTsKKyAgICBmcmVlKGxpc3QpOwogfQogCiAvKgotLSAKMS45LjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK