From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v4 17/32] libxl_qmp: Parse JSON input from QMP Date: Fri, 27 Jul 2018 15:05:59 +0100 Message-ID: <20180727140614.13256-18-anthony.perard@citrix.com> References: <20180727140614.13256-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fj3jt-0000Jn-5s for xen-devel@lists.xenproject.org; Fri, 27 Jul 2018 14:29:05 +0000 In-Reply-To: <20180727140614.13256-1-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Anthony PERARD , Ian Jackson , Wei Liu List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+ Ci0tLQoKTm90ZXM6CiAgICB2NDoKICAgICAgICBzaW1wbGlmaWNhdGlvbiBvZiB0aGUgcGF0Y2gg ZHVlIHRvIHVzZSBvZiBhIHNpbmdsZSBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRoZQogICAgICAgIHJl Y2VpdmUgYnVmZmVyLgoKIHRvb2xzL2xpYnhsL2xpYnhsX3FtcC5jIHwgNTQgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1NCBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcW1wLmMgYi90b29scy9saWJ4 bC9saWJ4bF9xbXAuYwppbmRleCBiMDU1NGRmODQzLi42NjViNmY1ZDA1IDEwMDY0NAotLS0gYS90 b29scy9saWJ4bC9saWJ4bF9xbXAuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9xbXAuYwpAQCAt MTI5Miw2ICsxMjkyLDcgQEAgc3RhdGljIGludCBxbXBfZXZfY2FsbGJhY2tfcmVhZGFibGUobGli eGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZfcW1wICpldiwgaW50IGZkKQogewogICAgIEVHQ19HQzsK ICAgICBzc2l6ZV90IHI7CisgICAgY2hhciAqZW5kID0gTlVMTDsKIAogICAgIGlmICghZXYtPnJ4 X2J1ZikgewogICAgICAgICBldi0+cnhfYnVmID0gbGlieGxfX21hbGxvYyhOT0dDLCBRTVBfUkVD RUlWRV9CVUZGRVJfU0laRSk7CkBAIC0xMzMzLDYgKzEzMzQsNTkgQEAgc3RhdGljIGludCBxbXBf ZXZfY2FsbGJhY2tfcmVhZGFibGUobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZfcW1wICpldiwg aW50IGZkKQogICAgIGV2LT5idWZfdXNlZCArPSByOwogICAgIGFzc2VydChldi0+YnVmX3VzZWQg PCBldi0+YnVmX3NpemUpOwogCisgICAgLyogd29ya2Fyb3VuZCBzdHJzdHIgbGltaXRhdGlvbiAq LworICAgIGV2LT5yeF9idWZbZXYtPmJ1Zl91c2VkXSA9ICdcMCc7CisKKyAgICAvKgorICAgICAq IFNlYXJjaCBmb3IgdGhlIGVuZCBvZiBhIFFNUCBtZXNzYWdlOiAiXHJcbiIgaW4gdGhlIG5ld2x5 IHJlY2VpdmVkCisgICAgICogYnl0ZXMgKyB0aGUgbGFzdCBieXRlIG9uIHRoZSBwcmV2aW91cyBy ZWFkKCkgaWYgYW55CisgICAgICoKKyAgICAgKiBlbmQ6IFRoaXMgd2lsbCBwb2ludCB0byB0aGUg Ynl0ZSByaWdodCBhZnRlciBcclxuCisgICAgICovCisgICAgZW5kID0gc3Ryc3RyKGV2LT5yeF9i dWYgKyBldi0+YnVmX3VzZWQgLSByCisgICAgICAgICAgICAgICAgICsgKGV2LT5idWZfdXNlZCAt IHIgPT0gMCA/IDAgOiAtMSksCisgICAgICAgICAgICAgICAgICJcclxuIik7CisgICAgaWYgKGVu ZCkKKyAgICAgICAgZW5kICs9IDI7CisKKyAgICB3aGlsZSAoZW5kKSB7CisgICAgICAgIGxpYnhs X19qc29uX29iamVjdCAqbzsKKyAgICAgICAgc2l6ZV90IGxlbjsKKyAgICAgICAgY2hhciAqczsK KworICAgICAgICAvKiBTdGFydCBwYXJzaW5nIGZyb20gcyAqLworICAgICAgICBzID0gZXYtPnJ4 X2J1ZiArIGV2LT5idWZfY29uc3VtZWQ7CisgICAgICAgIC8qIEZpbmRvdXQgaG93IG11Y2ggY2Fu IGJlIHBhcnNlZCAqLworICAgICAgICBsZW4gPSBlbmQgLSBzOworCisgICAgICAgIExPR19RTVAo InBhcnNpbmcgJWx1QjogJyUuKnMnIiwgbGVuLCAoaW50KWxlbiwgcyk7CisKKyAgICAgICAgLyog UmVwbGFjZSBcbiBieSBcMCBzbyB0aGF0IGxpYnhsX19qc29uX3BhcnNlIGNhbiB1c2Ugc3RybGVu ICovCisgICAgICAgIHNbbGVuIC0gMV0gPSAnXDAnOworICAgICAgICBvID0gbGlieGxfX2pzb25f cGFyc2UoZ2MsIHMpOyAvLywgbGVuKTsKKworICAgICAgICBpZiAoIW8pIHsKKyAgICAgICAgICAg IExPR0QoRVJST1IsIGV2LT5kb21pZCwgIlBhcnNlIGVycm9yIik7CisgICAgICAgICAgICByZXR1 cm4gRVJST1JfRkFJTDsKKyAgICAgICAgfQorCisgICAgICAgIGV2LT5idWZfY29uc3VtZWQgKz0g bGVuOworCisgICAgICAgIGlmIChldi0+YnVmX2NvbnN1bWVkID49IGV2LT5idWZfdXNlZCkgewor ICAgICAgICAgICAgZnJlZShldi0+cnhfYnVmKTsKKyAgICAgICAgICAgIGV2LT5yeF9idWYgPSBO VUxMOworICAgICAgICB9CisKKyAgICAgICAgLyogY2hlY2sgaWYgdGhlcmUgaXMgYW5vdGhlciBt ZXNzYWdlIHJlY2VpdmVkIGF0IHRoZSBzYW1lIHRpbWUgKi8KKyAgICAgICAgaWYgKGV2LT5yeF9i dWYpIHsKKyAgICAgICAgICAgIGVuZCA9IHN0cnN0cihldi0+cnhfYnVmICsgZXYtPmJ1Zl9jb25z dW1lZCwgIlxyXG4iKTsKKyAgICAgICAgICAgIGlmIChlbmQpCisgICAgICAgICAgICAgICAgZW5k ICs9IDI7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZW5kID0gTlVMTDsKKworICAgICAg ICBMT0dfUU1QKCJKU09OIG9iamVjdCByZWNlaXZlZDogJXMiLCBsaWJ4bF9fanNvbl9vYmplY3Rf dG9fanNvbihnYywgbykpOworICAgIH0KICAgICByZXR1cm4gMDsKIH0KIAotLSAKQW50aG9ueSBQ RVJBUkQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs