From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v3 10/15] tools: implement the new libxl get hw info interface Date: Tue, 5 Sep 2017 17:32:32 +0800 Message-ID: <1504603957-5389-11-git-send-email-yi.y.sun@linux.intel.com> References: <1504603957-5389-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 1dpAWF-0007Kn-CD for xen-devel@lists.xenproject.org; Tue, 05 Sep 2017 09:51:43 +0000 In-Reply-To: <1504603957-5389-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, dgdegra@tycho.nsa.gov, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBuZXcgbGlieGwgZ2V0IGh3IGluZm8gaW50ZXJmYWNl LAonbGlieGxfcHNyX2dldF9od19pbmZvJywgd2hpY2ggaXMgc3VpdGFibGUgdG8gYWxsIHBzciBh bGxvY2F0aW9uCmZlYXR1cmVzLiBJdCBhbHNvIGltcGxlbWVudHMgY29ycmVzcG9uZGluZyBsaXN0 IGZyZWUgZnVuY3Rpb24sCidsaWJ4bF9wc3JfaHdfaW5mb19saXN0X2ZyZWUnIGFuZCBtYWtlICds aWJ4bF9wc3JfY2F0X2dldF9pbmZvJyB0byBjYWxsCidsaWJ4bF9wc3JfZ2V0X2h3X2luZm8nIHRv IGF2b2lkIHJlZHVuZGFudCBjb2RlcyBpbiBsaWJ4bF9wc3IuYy4KClNpZ25lZC1vZmYtYnk6IFlp IFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KdjM6CiAgICAtIHJlbW92ZSBjYXN0 aW5nLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIHJlbW92ZSBp bmxpbmUuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdl ICdsaWJ4Y19fcHNyX2h3X2luZm9fdG9fbGlieGxfcHNyX2h3X2luZm8nIHRvCiAgICAgICdsaWJ4 bF9feGNfaHdfaW5mb190b19saWJ4bF9od19pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dl ciBQYXUgTW9ubsOpKQogICAgLSByZW1vdmUgJ19odycgZnJvbSBwYXJhbWV0ZXIgbmFtZXMuCiAg ICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdlIHNvbWUgJ0xP R0UnIHRvICdMT0cnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAt IGNoZWNrIHJldHVybmVkICd4Y190eXBlJyBhbmQgcmVtb3ZlIHJlZHVuZGFudCAnbHZsJyBjaGVj ay4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQp2MjoKICAgIC0gc3BsaXQg dGhpcyBwYXRjaCBvdXQgZnJvbSBhIGJpZyBwYXRjaCBpbiB2MS4KICAgICAgKHN1Z2dlc3RlZCBi eSBXZWkgTGl1KQogICAgLSBjaGFuZ2UgJ0NBVF9JTkZPJy8nTUJBX0lORk8nIHRvICdDQVQnIGFu ZCAnTUJBLiBBbHNvIHRoZSBsaWJ4bCBzdHJ1Y3R1cmUKICAgICAgbmFtZSAnY2F0X2luZm8nLydt YmFfaW5mbycgaXMgY2hhbmdlZCB0byAnY2F0Jy8nbWJhJy4KICAgICAgKHN1Z2dlc3RlZCBieSBD aGFvIFBlbmcpCiAgICAtIGNhbGwgJ2xpYnhsX3Bzcl9od19pbmZvX2xpc3RfZnJlZScgaW4gJ2xp YnhsX3Bzcl9jYXRfZ2V0X2luZm8nIHRvIGZyZWUKICAgICAgYWxsb2NhdGVkIHJlc291cmNlcy4K ICAgICAgKHN1Z2dlc3RlZCBieSBDaGFvIFBlbmcpCi0tLQogdG9vbHMvbGlieGwvbGlieGxfcHNy LmMgfCAxNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jIGIvdG9vbHMvbGlieGwvbGlieGxfcHNy LmMKaW5kZXggZGQ0MTJjYy4uZDUzNGVjMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxf cHNyLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfcHNyLmMKQEAgLTM4Miw2MCArMzgyLDQ5IEBA IHN0YXRpYyB4Y19wc3JfZmVhdF90eXBlIGxpYnhsX19mZWF0X3R5cGVfdG9fbGlieGNfZmVhdF90 eXBlKAogICAgIHJldHVybiB4Y190eXBlOwogfQogCitzdGF0aWMgaW50IGxpYnhsX19od19pbmZv X3RvX2xpYnhsX2NhdF9pbmZvKAorICAgICAgICAgICAgICAgbGlieGxfcHNyX2ZlYXRfdHlwZSB0 eXBlLCBsaWJ4bF9wc3JfaHdfaW5mbyAqaHdfaW5mbywKKyAgICAgICAgICAgICAgIGxpYnhsX3Bz cl9jYXRfaW5mbyAqY2F0X2luZm8pCit7CisgICAgaWYgKHR5cGUgIT0gTElCWExfUFNSX0ZFQVRf VFlQRV9DQVQpCisgICAgICAgIHJldHVybiBFUlJPUl9JTlZBTDsKKworICAgIGNhdF9pbmZvLT5p ZCA9IGh3X2luZm8tPmlkOworICAgIGNhdF9pbmZvLT5jb3NfbWF4ID0gaHdfaW5mby0+dS5jYXQu Y29zX21heDsKKyAgICBjYXRfaW5mby0+Y2JtX2xlbiA9IGh3X2luZm8tPnUuY2F0LmNibV9sZW47 CisgICAgY2F0X2luZm8tPmNkcF9lbmFibGVkID0gaHdfaW5mby0+dS5jYXQuY2RwX2VuYWJsZWQ7 CisKKyAgICByZXR1cm4gMDsKK30KKwogaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8obGlieGxf Y3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgKm5yLCB1bnNpZ25lZCBpbnQgbHZsKQogewogICAgIEdDX0lO SVQoY3R4KTsKICAgICBpbnQgcmM7Ci0gICAgaW50IGkgPSAwLCBzb2NrZXRpZCwgbnJfc29ja2V0 czsKLSAgICBsaWJ4bF9iaXRtYXAgc29ja2V0bWFwOworICAgIHVuc2lnbmVkIGludCBpOworICAg IGxpYnhsX3Bzcl9od19pbmZvICpod19pbmZvOwogICAgIGxpYnhsX3Bzcl9jYXRfaW5mbyAqcHRy OwotICAgIHhjX3Bzcl9od19pbmZvIGh3X2luZm87Ci0gICAgeGNfcHNyX2ZlYXRfdHlwZSB4Y190 eXBlOwotCi0gICAgbGlieGxfYml0bWFwX2luaXQoJnNvY2tldG1hcCk7CiAKLSAgICByYyA9IGxp YnhsX19jb3VudF9waHlzaWNhbF9zb2NrZXRzKGdjLCAmbnJfc29ja2V0cyk7Ci0gICAgaWYgKHJj KSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJmYWlsZWQgdG8gZ2V0IHN5c3RlbSBzb2NrZXQgY291 bnQiKTsKKyAgICByYyA9IGxpYnhsX3Bzcl9nZXRfaHdfaW5mbyhjdHgsICZod19pbmZvLCBuciwg TElCWExfUFNSX0ZFQVRfVFlQRV9DQVQsIGx2bCk7CisgICAgaWYgKHJjKQogICAgICAgICBnb3Rv IG91dDsKLSAgICB9CiAKLSAgICBsaWJ4bF9zb2NrZXRfYml0bWFwX2FsbG9jKGN0eCwgJnNvY2tl dG1hcCwgbnJfc29ja2V0cyk7Ci0gICAgcmMgPSBsaWJ4bF9nZXRfb25saW5lX3NvY2tldG1hcChj dHgsICZzb2NrZXRtYXApOwotICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgTE9HRShFUlJPUiwg ImZhaWxlZCB0byBnZXQgYXZhaWxhYmxlIHNvY2tldHMiKTsKLSAgICAgICAgZ290byBvdXQ7Ci0g ICAgfQotCi0gICAgeGNfdHlwZSA9IGxpYnhsX19mZWF0X3R5cGVfdG9fbGlieGNfZmVhdF90eXBl KExJQlhMX1BTUl9GRUFUX1RZUEVfQ0FULCBsdmwpOwotICAgIGlmICh4Y190eXBlID09IFhDX1BT Ul9GRUFUX1VOS05PV04pIHsKLSAgICAgICAgTE9HKEVSUk9SLCAiZmVhdHVyZSB0eXBlIG9yIGx2 bCBpcyB3cm9uZyIpOwotICAgICAgICByYyA9IEVSUk9SX0ZBSUw7Ci0gICAgICAgIGdvdG8gb3V0 OwotICAgIH0KKyAgICBwdHIgPSBsaWJ4bF9fbWFsbG9jKE5PR0MsICpuciAqIHNpemVvZihsaWJ4 bF9wc3JfY2F0X2luZm8pKTsKIAotICAgIHB0ciA9IGxpYnhsX19tYWxsb2MoTk9HQywgbnJfc29j a2V0cyAqIHNpemVvZihsaWJ4bF9wc3JfY2F0X2luZm8pKTsKLQotICAgIGxpYnhsX2Zvcl9lYWNo X3NldF9iaXQoc29ja2V0aWQsIHNvY2tldG1hcCkgewotICAgICAgICBwdHJbaV0uaWQgPSBzb2Nr ZXRpZDsKLSAgICAgICAgaWYgKHhjX3Bzcl9nZXRfaHdfaW5mbyhjdHgtPnhjaCwgc29ja2V0aWQs IHhjX3R5cGUsICZod19pbmZvKSkgeworICAgIGZvciAoaSA9IDA7IGkgPCAqbnI7IGkrKykgewor ICAgICAgICBpZiAobGlieGxfX2h3X2luZm9fdG9fbGlieGxfY2F0X2luZm8oTElCWExfUFNSX0ZF QVRfVFlQRV9DQVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmaHdfaW5mb1tpXSwgJnB0cltpXSkpIHsKKyAgICAgICAgICAgIGxpYnhsX3Bzcl9od19pbmZv X2xpc3RfZnJlZShod19pbmZvLCAqbnIpOwogICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwog ICAgICAgICAgICAgZnJlZShwdHIpOwogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgIH0K LQotICAgICAgICBwdHJbaV0uY29zX21heCA9IGh3X2luZm8udS54Y19jYXQuY29zX21heDsKLSAg ICAgICAgcHRyW2ldLmNibV9sZW4gPSBod19pbmZvLnUueGNfY2F0LmNibV9sZW47Ci0gICAgICAg IHB0cltpXS5jZHBfZW5hYmxlZCA9IGh3X2luZm8udS54Y19jYXQuY2RwX2VuYWJsZWQ7Ci0KLSAg ICAgICAgaSsrOwogICAgIH0KIAogICAgICppbmZvID0gcHRyOwotICAgICpuciA9IGk7CisgICAg bGlieGxfcHNyX2h3X2luZm9fbGlzdF9mcmVlKGh3X2luZm8sICpucik7CiBvdXQ6Ci0gICAgbGli eGxfYml0bWFwX2Rpc3Bvc2UoJnNvY2tldG1hcCk7CiAgICAgR0NfRlJFRTsKICAgICByZXR1cm4g cmM7CiB9CkBAIC00NzYsMTUgKzQ2NSw5NyBAQCBpbnQgbGlieGxfcHNyX2dldF92YWwobGlieGxf Y3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiBFUlJPUl9GQUlMOwogfQogCitz dGF0aWMgaW50IGxpYnhsX194Y19od19pbmZvX3RvX2xpYnhsX2h3X2luZm8oCisgICAgICAgICAg ICAgICBsaWJ4bF9wc3JfZmVhdF90eXBlIHR5cGUsIHhjX3Bzcl9od19pbmZvICp4Y19pbmZvLAor ICAgICAgICAgICAgICAgbGlieGxfcHNyX2h3X2luZm8gKnhsX2luZm8pCit7CisgICAgc3dpdGNo ICh0eXBlKSB7CisgICAgY2FzZSBMSUJYTF9QU1JfRkVBVF9UWVBFX0NBVDoKKyAgICAgICAgeGxf aW5mby0+dS5jYXQuY29zX21heCA9IHhjX2luZm8tPnUueGNfY2F0LmNvc19tYXg7CisgICAgICAg IHhsX2luZm8tPnUuY2F0LmNibV9sZW4gPSB4Y19pbmZvLT51LnhjX2NhdC5jYm1fbGVuOworICAg ICAgICB4bF9pbmZvLT51LmNhdC5jZHBfZW5hYmxlZCA9IHhjX2luZm8tPnUueGNfY2F0LmNkcF9l bmFibGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExJQlhMX1BTUl9GRUFUX1RZUEVfTUJB OgorICAgICAgICB4bF9pbmZvLT51Lm1iYS5jb3NfbWF4ID0geGNfaW5mby0+dS54Y19tYmEuY29z X21heDsKKyAgICAgICAgeGxfaW5mby0+dS5tYmEudGhydGxfbWF4ID0geGNfaW5mby0+dS54Y19t YmEudGhydGxfbWF4OworICAgICAgICB4bF9pbmZvLT51Lm1iYS5saW5lYXIgPSB4Y19pbmZvLT51 LnhjX21iYS5saW5lYXI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl dHVybiBFUlJPUl9JTlZBTDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogaW50IGxpYnhs X3Bzcl9nZXRfaHdfaW5mbyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcHNyX2h3X2luZm8gKippbmZv LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKm5yLCBsaWJ4bF9wc3Jf ZmVhdF90eXBlIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBs dmwpCiB7Ci0gICAgcmV0dXJuIEVSUk9SX0ZBSUw7CisgICAgR0NfSU5JVChjdHgpOworICAgIGlu dCByYywgbnJfc29ja2V0czsKKyAgICB1bnNpZ25lZCBpbnQgaSA9IDAsIHNvY2tldGlkOworICAg IGxpYnhsX2JpdG1hcCBzb2NrZXRtYXA7CisgICAgbGlieGxfcHNyX2h3X2luZm8gKnB0cjsKKyAg ICB4Y19wc3JfZmVhdF90eXBlIHhjX3R5cGU7CisgICAgeGNfcHNyX2h3X2luZm8gaHdfaW5mbzsK KworICAgIGxpYnhsX2JpdG1hcF9pbml0KCZzb2NrZXRtYXApOworCisgICAgeGNfdHlwZSA9IGxp YnhsX19mZWF0X3R5cGVfdG9fbGlieGNfZmVhdF90eXBlKHR5cGUsIGx2bCk7CisgICAgaWYgKHhj X3R5cGUgPT0gWENfUFNSX0ZFQVRfVU5LTk9XTikgeworICAgICAgICBMT0coRVJST1IsICJmZWF0 dXJlIHR5cGUgb3IgbHZsIGlzIHdyb25nIik7CisgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAg ICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgcmMgPSBsaWJ4bF9fY291bnRfcGh5c2ljYWxf c29ja2V0cyhnYywgJm5yX3NvY2tldHMpOworICAgIGlmIChyYykgeworICAgICAgICBMT0coRVJS T1IsICJmYWlsZWQgdG8gZ2V0IHN5c3RlbSBzb2NrZXQgY291bnQiKTsKKyAgICAgICAgZ290byBv dXQ7CisgICAgfQorCisgICAgbGlieGxfc29ja2V0X2JpdG1hcF9hbGxvYyhjdHgsICZzb2NrZXRt YXAsIG5yX3NvY2tldHMpOworICAgIHJjID0gbGlieGxfZ2V0X29ubGluZV9zb2NrZXRtYXAoY3R4 LCAmc29ja2V0bWFwKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAgICAgIExPR0UoRVJST1IsICJm YWlsZWQgdG8gZ2V0IGF2YWlsYWJsZSBzb2NrZXRzIik7CisgICAgICAgIGdvdG8gb3V0OworICAg IH0KKworICAgIHB0ciA9IGxpYnhsX19tYWxsb2MoTk9HQywgbnJfc29ja2V0cyAqIHNpemVvZihs aWJ4bF9wc3JfaHdfaW5mbykpOworCisgICAgbGlieGxfZm9yX2VhY2hfc2V0X2JpdChzb2NrZXRp ZCwgc29ja2V0bWFwKSB7CisgICAgICAgIHB0cltpXS5pZCA9IHNvY2tldGlkOworICAgICAgICBp ZiAoeGNfcHNyX2dldF9od19pbmZvKGN0eC0+eGNoLCBzb2NrZXRpZCwgeGNfdHlwZSwgJmh3X2lu Zm8pKSB7CisgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAgICAgICBmcmVlKHB0 cik7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaWJ4 bF9feGNfaHdfaW5mb190b19saWJ4bF9od19pbmZvKHR5cGUsICZod19pbmZvLCAmcHRyW2ldKSkg eworICAgICAgICAgICAgTE9HRShFUlJPUiwgIklucHV0IHR5cGUgJWQgaXMgd3JvbmchXG4iLCB0 eXBlKTsKKyAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgICAgIGZyZWUocHRy KTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAgaSsrOworICAg IH0KKworICAgICppbmZvID0gcHRyOworICAgICpuciA9IGk7CitvdXQ6CisgICAgbGlieGxfYml0 bWFwX2Rpc3Bvc2UoJnNvY2tldG1hcCk7CisgICAgR0NfRlJFRTsKKyAgICByZXR1cm4gcmM7CiB9 CiAKIHZvaWQgbGlieGxfcHNyX2h3X2luZm9fbGlzdF9mcmVlKGxpYnhsX3Bzcl9od19pbmZvICps aXN0LCB1bnNpZ25lZCBpbnQgbnIpCiB7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBmb3Ig KGkgPSAwOyBpIDwgbnI7IGkrKykKKyAgICAgICAgbGlieGxfcHNyX2h3X2luZm9fZGlzcG9zZSgm bGlzdFtpXSk7CisgICAgZnJlZShsaXN0KTsKIH0KIAogLyoKLS0gCjEuOS4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==