From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v3 23/31] libxl_qmp_ev: Handle messages from QEMU Date: Fri, 1 Jun 2018 15:37:12 +0100 Message-ID: <20180601143720.24637-24-anthony.perard@citrix.com> References: <20180601143720.24637-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fOlW4-0002Wk-6n for xen-devel@lists.xenproject.org; Fri, 01 Jun 2018 14:58:56 +0000 In-Reply-To: <20180601143720.24637-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 , Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhpcyB3aWxsIGhhbmRsZSBtZXNzYWdlcyByZWNlaXZlZCwgYW5kIGNhbGwgY2FsbGJhY2tzIHJl Z2lzdGVyZWQgdmlhCmxpYnhsX19ldl9xbXBfcmVnaXN0ZXIoKS4KClRoaXMgYWxzbyBwcmludCBl cnJvciBtZXNzYWdlcyBmcm9tIFFNUCBvbiBiZWhhbGYgb2YgdGhlIGNhbGxiYWNrLgoKU2lnbmVk LW9mZi1ieTogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+CgotLS0K U2hvdWxkIHdlIGxldCBjYWxsYmFja3MgcHJpbnQgZXJyb3IgbWVzc2FnZXMgdGhlbXNlbGY/IFRo ZXkgYWxyZWFkeSBoYXZlCnRoZSBlcnJvciBjbGFzcywgd2hpY2ggaXMgb2Z0ZW4gR2VuZXJpY0Vy cm9yLCBhIGh1bWFuIHJlYWRhYmxlCmVycm9yIG1lc3NhZ2UuCi0tLQogdG9vbHMvbGlieGwvbGli eGxfcW1wLmMgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGwvbGlieGxfcW1wLmMgYi90b29scy9saWJ4bC9saWJ4bF9xbXAuYwppbmRleCAwZTdlYzU0Yjlm Li5kYjA3YzE4MjJhIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9xbXAuYworKysgYi90 b29scy9saWJ4bC9saWJ4bF9xbXAuYwpAQCAtMTQyMCw2ICsxNDIwLDEwMSBAQCBzdGF0aWMgaW50 IGV2X3FtcF9xdWV1ZV9jb21tYW5kKGxpYnhsX19nYyAqZ2MsCiAgICAgcmV0dXJuIDA7CiB9CiAK Ky8qCisgKiBIYW5kbGUgbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBRTVAgc2VydmVyCisgKi8KKwor c3RhdGljIHZvaWQgZXZfcW1wX2hhbmRsZV9yZXR1cm4obGlieGxfX2VnYyAqZWdjLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2V2X3FtcF9zdGF0ZSAqcW1wLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfX2pzb25fb2JqZWN0ICpy ZXNwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3FtcF9tZXNzYWdl X3R5cGUgdHlwZSkKK3sKKyAgICBFR0NfR0M7CisgICAgY29uc3QgbGlieGxfX2pzb25fb2JqZWN0 ICpvOworICAgIGludCBpZDsKKyAgICBsaWJ4bF9fZXZfcW1wICpldjsKKyAgICBjb25zdCBsaWJ4 bF9fanNvbl9vYmplY3QgKnJldDsKKyAgICBsaWJ4bF9fcW1wX2Vycm9yX2NsYXNzIGVycm9yX2Ns YXNzID0gMDsKKworICAgIG8gPSBsaWJ4bF9fanNvbl9tYXBfZ2V0KCJpZCIsIHJlc3AsIEpTT05f SU5URUdFUik7CisgICAgaWYgKCFvKSB7CisgICAgICAgIGNvbnN0IGNoYXIgKmVycm9yX2Rlc2M7 CisKKyAgICAgICAgLyogdW5leHBlY3RlZCBtZXNzYWdlLCBhdHRlbXB0IHRvIGZpbmQgYW4gZXJy b3IgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgbyA9IGxpYnhsX19qc29uX21hcF9nZXQoImVycm9y IiwgcmVzcCwgSlNPTl9NQVApOworICAgICAgICBvID0gbGlieGxfX2pzb25fbWFwX2dldCgiZGVz YyIsIG8sIEpTT05fU1RSSU5HKTsKKyAgICAgICAgZXJyb3JfZGVzYyA9IGxpYnhsX19qc29uX29i amVjdF9nZXRfc3RyaW5nKG8pOworICAgICAgICBpZiAoZXJyb3JfZGVzYykKKyAgICAgICAgICAg IExPR0QoRVJST1IsIHFtcC0+ZG9taWQsICIlcyIsIGVycm9yX2Rlc2MpOworICAgICAgICBlbHNl CisgICAgICAgICAgICBMT0dEKEVSUk9SLCBxbXAtPmRvbWlkLCAiUmVjZWl2ZWQgdW5leHBlY3Rl ZCBtZXNzYWdlOiAlcyIsCisgICAgICAgICAgICAgICAgIGxpYnhsX19qc29uX29iamVjdF90b19q c29uKGdjLCByZXNwKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZCA9IGxpYnhs X19qc29uX29iamVjdF9nZXRfaW50ZWdlcihvKTsKKyAgICBMSUJYTF9UQUlMUV9GT1JFQUNIKGV2 LCAmcW1wLT5xbXBfZXZlbnRzLCBlbnRyeSkgeworICAgICAgICBpZiAoZXYtPmlkID09IGlkKQor ICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICghZXYpCisgICAgICAgIC8qIGNhbGxi YWNrIG5vdCBmb3VuZCAqLworICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2ggKHR5cGUpIHsK KyAgICBjYXNlIExJQlhMX19RTVBfTUVTU0FHRV9UWVBFX1JFVFVSTjogeworICAgICAgICByZXQg PSBsaWJ4bF9fanNvbl9tYXBfZ2V0KCJyZXR1cm4iLCByZXNwLCBKU09OX0FOWSk7CisgICAgICAg IGJyZWFrOworICAgIH0KKyAgICBjYXNlIExJQlhMX19RTVBfTUVTU0FHRV9UWVBFX0VSUk9SOiB7 CisgICAgICAgIGNvbnN0IGNoYXIgKnM7CisgICAgICAgIGNvbnN0IGxpYnhsX19qc29uX29iamVj dCAqZXJyOworCisgICAgICAgIGVycm9yX2NsYXNzID0gTElCWExfX1FNUF9FUlJPUl9DTEFTU19V TktOT1dOOworICAgICAgICBlcnIgPSBsaWJ4bF9fanNvbl9tYXBfZ2V0KCJlcnJvciIsIHJlc3As IEpTT05fTUFQKTsKKyAgICAgICAgbyA9IGxpYnhsX19qc29uX21hcF9nZXQoImNsYXNzIiwgZXJy LCBKU09OX1NUUklORyk7CisgICAgICAgIHMgPSBsaWJ4bF9fanNvbl9vYmplY3RfZ2V0X3N0cmlu ZyhvKTsKKyAgICAgICAgaWYgKHMpCisgICAgICAgICAgICBsaWJ4bF9fcW1wX2Vycm9yX2NsYXNz X2Zyb21fc3RyaW5nKHMsICZlcnJvcl9jbGFzcyk7CisKKyAgICAgICAgbyA9IGxpYnhsX19qc29u X21hcF9nZXQoImRlc2MiLCBlcnIsIEpTT05fU1RSSU5HKTsKKyAgICAgICAgcyA9IGxpYnhsX19q c29uX29iamVjdF9nZXRfc3RyaW5nKG8pOworICAgICAgICBpZiAocykKKyAgICAgICAgICAgIExP R0QoRVJST1IsIHFtcC0+ZG9taWQsICIlcyIsIHMpOworCisgICAgICAgIHJldCA9IE5VTEw7Cisg ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBhYm9ydCgpOworICAg IH0KKyAgICBldi0+aWQgPSAtMTsKKyAgICBldi0+Y2FsbGJhY2soZWdjLCBldiwgcmV0LCBlcnJv cl9jbGFzcyk7Cit9CisKK3N0YXRpYyB2b2lkIGV2X3FtcF9oYW5kbGVfbWVzc2FnZShsaWJ4bF9f ZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2V2X3Ft cF9zdGF0ZSAqcW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxp YnhsX19qc29uX29iamVjdCAqcmVzcCkKK3sKKyAgICBFR0NfR0M7CisgICAgbGlieGxfX3FtcF9t ZXNzYWdlX3R5cGUgdHlwZSA9IHFtcF9yZXNwb25zZV90eXBlKHJlc3ApOworCisgICAgc3dpdGNo ICh0eXBlKSB7CisgICAgY2FzZSBMSUJYTF9fUU1QX01FU1NBR0VfVFlQRV9RTVA6CisgICAgICAg IC8qIGdyZWV0aW5nIG1lc3NhZ2UgKi8KKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgTElCWExf X1FNUF9NRVNTQUdFX1RZUEVfUkVUVVJOOgorICAgIGNhc2UgTElCWExfX1FNUF9NRVNTQUdFX1RZ UEVfRVJST1I6CisgICAgICAgIGV2X3FtcF9oYW5kbGVfcmV0dXJuKGVnYywgcW1wLCByZXNwLCB0 eXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgTElCWExfX1FNUF9NRVNTQUdFX1RZUEVf RVZFTlQ6CisgICAgICAgIC8qIEV2ZW50IGFyZSBpZ25vcmVkICovCisgICAgICAgIHJldHVybjsK KyAgICBjYXNlIExJQlhMX19RTVBfTUVTU0FHRV9UWVBFX0lOVkFMSUQ6CisgICAgICAgIHJldHVy bjsKKyAgICB9Cit9CisKIHN0YXRpYyBpbnQgZXZfcW1wX2NhbGxiYWNrX3JlYWRhYmxlKGxpYnhs X19lZ2MgKmVnYywgbGlieGxfX2V2X3FtcF9zdGF0ZSAqcW1wLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGZkKQogewpAQCAtMTU1Nyw2ICsxNjUyLDggQEAgc3RhdGlj IGludCBldl9xbXBfY2FsbGJhY2tfcmVhZGFibGUobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZf cW1wX3N0YXRlICpxbXAsCiAKICAgICAgICAgTE9HX1FNUCgiSlNPTiBvYmplY3QgcmVjZWl2ZWQ6 ICVzIiwgbGlieGxfX2pzb25fb2JqZWN0X3RvX2pzb24oZ2MsIG8pKTsKIAorICAgICAgICBldl9x bXBfaGFuZGxlX21lc3NhZ2UoZWdjLCBxbXAsIG8pOworCiAgICAgICAgIC8qIGNoZWNrIGlmIHRo ZXJlIGlzIGFub3RoZXIgbWVzc2FnZSByZWNlaXZlZCBhdCB0aGUgc2FtZSB0aW1lICovCiAgICAg ICAgIGlmIChidWYpIHsKICAgICAgICAgICAgIGVuZCA9IHN0cnN0cihidWYtPmJ1ZiArIGJ1Zi0+ Y29uc3VtZWQsICJcclxuIik7CkBAIC0xNzYyLDYgKzE4NTksOSBAQCB2b2lkIGxpYnhsX19ldl9x bXBfc3RvcChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZXZfcW1wX3N0YXRlICpxbXApCiAKICAgICBM T0dEKERFQlVHLCBxbXAtPmRvbWlkLCAiU3RvcHBpbmcgUU1QIGhhbmRsZXIiKTsKIAorICAgIC8q IFRoZXJlIHNob3VsZCBiZSBubyBtb3JlIGV2ZW50cyByZXF1ZXN0ZWQgKi8KKyAgICBhc3NlcnQo TElCWExfVEFJTFFfRU1QVFkoJnFtcC0+cW1wX2V2ZW50cykpOworCiAgICAgTElCWExfVEFJTFFf Rk9SRUFDSF9TQUZFKGJ1ZiwgJnFtcC0+YnVmcywgZW50cnksIHRidWYpCiAgICAgICAgIGZyZWUo YnVmKTsKICAgICBMSUJYTF9UQUlMUV9JTklUKCZxbXAtPmJ1ZnMpOwotLSAKQW50aG9ueSBQRVJB UkQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs