From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v4 14/32] libxl_qmp: Implement fd callback and read data Date: Fri, 27 Jul 2018 15:05:56 +0100 Message-ID: <20180727140614.13256-15-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 us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fj3jh-0008Ub-P7 for xen-devel@lists.xenproject.org; Fri, 27 Jul 2018 14:28:53 +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 Rmlyc3Qgc3RlcCBpbnRvIHRha2luZyBjYXJlIG9mIHRoZSBpbnB1dCBmcm9tIFFFTVUncyBRTVAg c29ja2V0LiBGb3IKbm93LCB3ZSByZWFkIGRhdGEgYW5kIHN0b3JlIHRoZW0gaW4gYSBidWZmZXIu CgpQYXJzaW5nIG9mIHRoZSBkYXRhIHdpbGwgYmUgZG9uZSBpbiB0aGUgZm9sbG93aW5nIHBhdGNo ZXMuCgpTaWduZWQtb2ZmLWJ5OiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4 LmNvbT4KLS0tCgpOb3RlczoKICAgIHY0OgogICAgICAgIHJlbW92ZSB1c2Ugb2YgYSBsaW5rZWQg bGlzdCBvZiByZWNlaXZlIGJ1ZmZlciwgYW5kIHVzZSByZWFsbG9jIGluc3RlYWQuCgogdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaCB8ICAgOSArKysrCiB0b29scy9saWJ4bC9saWJ4bF9xbXAu YyAgICAgIHwgMTAxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVz IGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGli eGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggOTBhYzQ4 YTY1OS4uOGMzNjI1YTI0MyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwu aAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC00MzgsNiArNDM4LDE1IEBA IHN0cnVjdCBsaWJ4bF9fZXZfcW1wIHsKICAgICBsaWJ4bF9fY2FyZWZkICpxbXBfY2ZkOwogICAg IGxpYnhsX19ldl9mZCBxbXBfZWZkOwogICAgIGxpYnhsX19xbXBfc3RhdGUgcW1wX3N0YXRlOwor CisgICAgLyogcmVjZWl2ZSBidWZmZXIsIHdpdGg6CisgICAgICogYnVmX3NpemU6IGN1cnJlbnQg YWxsb2NhdGVkIHNpemUsCisgICAgICogYnVmX3VzZWQ6IGFjdHVhbCBkYXRhIGluIHRoZSBidWZm ZXIsCisgICAgICogYnVmX2NvbnN1bWVkOiBkYXRhIGFscmVhZHkgcGFyc2VkLiAgKi8KKyAgICBj aGFyICpyeF9idWY7CisgICAgc2l6ZV90IGJ1Zl9zaXplOworICAgIHNpemVfdCBidWZfdXNlZDsK KyAgICBzaXplX3QgYnVmX2NvbnN1bWVkOwogfTsKIAogCmRpZmYgLS1naXQgYS90b29scy9saWJ4 bC9saWJ4bF9xbXAuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3FtcC5jCmluZGV4IDk2YTM0N2RkM2Iu LmIwNTU0ZGY4NDMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3FtcC5jCisrKyBiL3Rv b2xzL2xpYnhsL2xpYnhsX3FtcC5jCkBAIC03NSw2ICs3NSwxMiBAQAogIyAgZGVmaW5lIERFQlVH X1JFUE9SVF9SRUNFSVZFRChkb20sIGJ1ZiwgbGVuKSAoKHZvaWQpMCkKICNlbmRpZgogCisjaWZk ZWYgREVCVUdfUU1QX0NMSUVOVAorIyAgZGVmaW5lIExPR19RTVAoZiwgLi4uKSBMT0dEKERFQlVH LCBldi0+ZG9taWQsIGYsICMjX19WQV9BUkdTX18pCisjZWxzZQorIyAgZGVmaW5lIExPR19RTVAo ZiwgLi4uKQorI2VuZGlmCisKIC8qCiAgKiBRTVAgdHlwZXMgJiBjb25zdGFudAogICovCkBAIC0x Mjc4LDkgKzEyODQsOTkgQEAgaW50IGxpYnhsX19xbXBfaW5pdGlhbGl6YXRpb25zKGxpYnhsX19n YyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogCiAvKiAtLS0tLS0tLS0tLS0gSW1wbGVtZW50YXRpb24g b2YgbGlieGxfX2V2X3FtcCAtLS0tLS0tLS0tLS0tLS0tICovCiAKKy8qCisgKiBRTVAgRkQgY2Fs bGJhY2tzCisgKi8KKworc3RhdGljIGludCBxbXBfZXZfY2FsbGJhY2tfcmVhZGFibGUobGlieGxf X2VnYyAqZWdjLCBsaWJ4bF9fZXZfcW1wICpldiwgaW50IGZkKQoreworICAgIEVHQ19HQzsKKyAg ICBzc2l6ZV90IHI7CisKKyAgICBpZiAoIWV2LT5yeF9idWYpIHsKKyAgICAgICAgZXYtPnJ4X2J1 ZiA9IGxpYnhsX19tYWxsb2MoTk9HQywgUU1QX1JFQ0VJVkVfQlVGRkVSX1NJWkUpOworICAgICAg ICBldi0+YnVmX3NpemUgPSBRTVBfUkVDRUlWRV9CVUZGRVJfU0laRTsKKyAgICAgICAgZXYtPmJ1 Zl91c2VkID0gMDsKKyAgICAgICAgZXYtPmJ1Zl9jb25zdW1lZCA9IDA7CisgICAgfQorCisgICAg LyogQ2hlY2sgaWYgbGFzdCBidWZmZXIgc3RpbGwgaGF2ZSBzcGFjZSwgb3IgaW5jcmVhc2Ugc2l6 ZSAqLworICAgIC8qIFRoZSAtMSBpcyBiZWNhdXNlIHRoZXJlIGlzIGFsd2F5cyBzcGFjZSBmb3Ig YSBOVUwgY2hhcmFjdGVyICovCisgICAgaWYgKGV2LT5idWZfdXNlZCA9PSBldi0+YnVmX3NpemUg LSAxKSB7CisgICAgICAgIGV2LT5idWZfc2l6ZSArPSBRTVBfUkVDRUlWRV9CVUZGRVJfU0laRTsK KyAgICAgICAgZXYtPnJ4X2J1ZiA9IGxpYnhsX19yZWFsbG9jKE5PR0MsIGV2LT5yeF9idWYsIGV2 LT5idWZfc2l6ZSk7CisgICAgfQorCisgICAgZm9yICg7OykgeworICAgICAgICAvKiBUaGUgLTEg aXMgYmVjYXVzZSB0aGVyZSBpcyBhbHdheXMgc3BhY2UgZm9yIGEgTlVMIGNoYXJhY3RlciAqLwor ICAgICAgICByID0gcmVhZChmZCwgZXYtPnJ4X2J1ZiArIGV2LT5idWZfdXNlZCwKKyAgICAgICAg ICAgICAgICAgZXYtPmJ1Zl9zaXplIC0gZXYtPmJ1Zl91c2VkIC0gMSk7CisgICAgICAgIGlmIChy IDwgMCkgeworICAgICAgICAgICAgaWYgKGVycm5vID09IEVJTlRSKSBjb250aW51ZTsKKyAgICAg ICAgICAgIGFzc2VydChlcnJubyk7CisgICAgICAgICAgICBpZiAoZXJybm8gPT0gRVdPVUxEQkxP Q0spIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIExPR0VEKEVSUk9SLCBldi0+ZG9taWQsICJlcnJvciByZWFkaW5nIFFNUCBzb2NrZXQiKTsK KyAgICAgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOworICAgICAgICB9CisgICAgICAgIGJyZWFr OworICAgIH0KKworICAgIGlmIChyID09IDApIHsKKyAgICAgICAgTE9HRChFUlJPUiwgZXYtPmRv bWlkLCAiTm8gZGF0YSByZWFkIG9uIFFNUCBzb2NrZXQiKTsKKyAgICAgICAgcmV0dXJuIDA7Cisg ICAgfQorCisgICAgTE9HX1FNUCgicmVjZWl2ZWQgJWxkQjogJyUuKnMnIiwgciwgKGludClyLCBl di0+cnhfYnVmICsgZXYtPmJ1Zl91c2VkKTsKKworICAgIGV2LT5idWZfdXNlZCArPSByOworICAg IGFzc2VydChldi0+YnVmX3VzZWQgPCBldi0+YnVmX3NpemUpOworCisgICAgcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyB2b2lkIHFtcF9ldl9jYWxsYmFja19lcnJvcihsaWJ4bF9fZWdjICplZ2MsIGxp YnhsX19ldl9xbXAgKmV2KQoreworICAgIEVHQ19HQzsKKworICAgIExPR0QoRVJST1IsIGV2LT5k b21pZCwgIkVycm9yIGhhcHBlbmQgd2l0aCB0aGUgUU1QIGNvbm5lY3Rpb24gdG8gUUVNVSIpOwor CisgICAgLyogT24gZXJyb3IsIGRlYWxsb2NhdGUgYWxsIHByaXZhdGUgcmVzc291cmNlcyAqLwor ICAgIGxpYnhsX19ldl9xbXBfZGlzcG9zZShnYywgZXYpOworfQorCiBzdGF0aWMgdm9pZCBxbXBf ZXZfZmRfY2FsbGJhY2sobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZfZmQgKmV2X2ZkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmZCwgc2hvcnQgZXZlbnRzLCBzaG9ydCBy ZXZlbnRzKQogeworICAgIEVHQ19HQzsKKyAgICBpbnQgcmM7CisKKyAgICBsaWJ4bF9fZXZfcW1w ICpldiA9IENPTlRBSU5FUl9PRihldl9mZCwgKmV2LCBxbXBfZWZkKTsKKworICAgIGlmIChyZXZl bnRzICYgKFBPTExIVVApKSB7CisgICAgICAgIExPR0QoREVCVUcsIGV2LT5kb21pZCwgInJlY2Vp dmVkIFBPTExIVVAgZnJvbSBRTVAgc29ja2V0Iik7CisgICAgICAgIHFtcF9ldl9jYWxsYmFja19l cnJvcihlZ2MsIGV2KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocmV2ZW50cyAm IH4oUE9MTElOfFBPTExPVVQpKSB7CisgICAgICAgIExPR0QoRVJST1IsIGV2LT5kb21pZCwKKyAg ICAgICAgICAgICAidW5leHBlY3RlZCBwb2xsIGV2ZW50IDB4JXggb24gUU1QIHNvY2tldCAoZXhw ZWN0ZWQgUE9MTElOICIKKyAgICAgICAgICAgICAiYW5kL29yIFBPTExPVVQpIiwKKyAgICAgICAg ICAgIHJldmVudHMpOworICAgICAgICBxbXBfZXZfY2FsbGJhY2tfZXJyb3IoZWdjLCBldik7Cisg ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAocmV2ZW50cyAmIFBPTExJTikgeworICAg ICAgICByYyA9IHFtcF9ldl9jYWxsYmFja19yZWFkYWJsZShlZ2MsIGV2LCBmZCk7CisgICAgICAg IGlmIChyYykKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgIH0KK291dDoKKyAgICBpZiAocmMp IHsKKyAgICAgICAgcW1wX2V2X2NhbGxiYWNrX2Vycm9yKGVnYywgZXYpOworICAgIH0KIH0KIAog c3RhdGljIGludCBxbXBfZXZfY29ubmVjdChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZXZfcW1wICpl dikKQEAgLTEzNDYsNiArMTQ0Miw4IEBAIHZvaWQgbGlieGxfX2V2X3FtcF9pbml0KGxpYnhsX19l dl9xbXAgKmV2KQogICAgIGV2LT5xbXBfY2ZkID0gTlVMTDsKICAgICBsaWJ4bF9fZXZfZmRfaW5p dCgmZXYtPnFtcF9lZmQpOwogICAgIGV2LT5xbXBfc3RhdGUgPSBxbXBfc3RhdGVfZGlzY29ubmVj dGVkOworCisgICAgZXYtPnJ4X2J1ZiA9IE5VTEw7CiB9CiAKIGludCBsaWJ4bF9fZXZfcW1wX3Nl bmQobGlieGxfX2djICpnYywgbGlieGxfX2V2X3FtcCAqZXYsCkBAIC0xMzY1LDYgKzE0NjMsOSBA QCB2b2lkIGxpYnhsX19ldl9xbXBfZGlzcG9zZShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZXZfcW1w ICpldikKIHsKICAgICBMT0dEKERFQlVHLCBldi0+ZG9taWQsICIgZXYgJXAiLCBldik7CiAKKyAg ICBmcmVlKGV2LT5yeF9idWYpOworICAgIGV2LT5yeF9idWYgPSBOVUxMOworCiAgICAgbGlieGxf X2V2X2ZkX2RlcmVnaXN0ZXIoZ2MsICZldi0+cW1wX2VmZCk7CiAgICAgbGlieGxfX2NhcmVmZF9j bG9zZShldi0+cW1wX2NmZCk7CiAgICAgZXYtPnFtcF9jZmQgPSBOVUxMOwotLSAKQW50aG9ueSBQ RVJBUkQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs