From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v5 03/15] libxl_qmp: Implement fd callback and read data Date: Fri, 7 Sep 2018 16:10:52 +0100 Message-ID: <20180907151104.32306-4-anthony.perard@citrix.com> References: <20180907151104.32306-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 1fyIPv-0003Xd-N1 for xen-devel@lists.xenproject.org; Fri, 07 Sep 2018 15:11:27 +0000 In-Reply-To: <20180907151104.32306-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 LmNvbT4KLS0tCgpOb3RlczoKICAgIHY1OgogICAgICAgIHNvbWUgY2xlYW51cAogICAgICAgIHJl bW92ZSByZWFkIGxvb3AgdGhhdCBvbmx5IGhhbmRsZWQgRUlOVFIsIHNpbXBseSByZXR1cm4KICAg IAogICAgdjQ6CiAgICAgICAgcmVtb3ZlIHVzZSBvZiBhIGxpbmtlZCBsaXN0IG9mIHJlY2VpdmUg YnVmZmVyLCBhbmQgdXNlIHJlYWxsb2MgaW5zdGVhZC4KCiB0b29scy9saWJ4bC9saWJ4bF9pbnRl cm5hbC5oIHwgIDggKysrCiB0b29scy9saWJ4bC9saWJ4bF9xbXAuYyAgICAgIHwgOTUgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggOWJjYWIzOWYwMC4uMDU5MDgwMWIzMCAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC00MzksNiArNDM5LDE0IEBAIHN0cnVjdCBsaWJ4bF9fZXZf cW1wIHsKICAgICBsaWJ4bF9fY2FyZWZkICpxbXBfY2ZkOwogICAgIGxpYnhsX19ldl9mZCBxbXBf ZWZkOwogICAgIGxpYnhsX19xbXBfc3RhdGUgcW1wX3N0YXRlOworICAgIC8qIHJlY2VpdmUgYnVm ZmVyLCB3aXRoOgorICAgICAqIGJ1Zl9zaXplOiBjdXJyZW50IGFsbG9jYXRlZCBzaXplLAorICAg ICAqIGJ1Zl91c2VkOiBhY3R1YWwgZGF0YSBpbiB0aGUgYnVmZmVyLAorICAgICAqIGJ1Zl9jb25z dW1lZDogZGF0YSBhbHJlYWR5IHBhcnNlZC4gICovCisgICAgY2hhciAqcnhfYnVmOworICAgIHNp emVfdCBidWZfc2l6ZTsKKyAgICBzaXplX3QgYnVmX3VzZWQ7CisgICAgc2l6ZV90IGJ1Zl9jb25z dW1lZDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcW1wLmMgYi90b29s cy9saWJ4bC9saWJ4bF9xbXAuYwppbmRleCAxNjc4MjlhNWVjLi45ZWEzMDNlZGYwIDEwMDY0NAot LS0gYS90b29scy9saWJ4bC9saWJ4bF9xbXAuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9xbXAu YwpAQCAtNzUsNiArNzUsMTIgQEAKICMgIGRlZmluZSBERUJVR19SRVBPUlRfUkVDRUlWRUQoZG9t LCBidWYsIGxlbikgKCh2b2lkKTApCiAjZW5kaWYKIAorI2lmZGVmIERFQlVHX1FNUF9DTElFTlQK KyMgIGRlZmluZSBMT0dfUU1QKGYsIC4uLikgTE9HRChERUJVRywgZXYtPmRvbWlkLCBmLCAjI19f VkFfQVJHU19fKQorI2Vsc2UKKyMgIGRlZmluZSBMT0dfUU1QKGYsIC4uLikKKyNlbmRpZgorCiAv KgogICogUU1QIHR5cGVzICYgY29uc3RhbnQKICAqLwpAQCAtMTI4Miw5ICsxMjg4LDk0IEBAIGlu dCBsaWJ4bF9fcW1wX2luaXRpYWxpemF0aW9ucyhsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCwKIAogLyogLS0tLS0tLS0tLS0tIEltcGxlbWVudGF0aW9uIG9mIGxpYnhsX19ldl9xbXAgLS0t LS0tLS0tLS0tLS0tLSAqLwogCisvKgorICogUU1QIEZEIGNhbGxiYWNrcworICovCisKK3N0YXRp YyBpbnQgcW1wX2V2X2NhbGxiYWNrX3JlYWRhYmxlKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2V2 X3FtcCAqZXYsIGludCBmZCkKK3sKKyAgICBFR0NfR0M7CisgICAgc3NpemVfdCByOworCisgICAg aWYgKCFldi0+cnhfYnVmKSB7CisgICAgICAgIGV2LT5yeF9idWYgPSBsaWJ4bF9fbWFsbG9jKE5P R0MsIFFNUF9SRUNFSVZFX0JVRkZFUl9TSVpFKTsKKyAgICAgICAgZXYtPmJ1Zl9zaXplID0gUU1Q X1JFQ0VJVkVfQlVGRkVSX1NJWkU7CisgICAgICAgIGV2LT5idWZfdXNlZCA9IDA7CisgICAgICAg IGV2LT5idWZfY29uc3VtZWQgPSAwOworICAgIH0KKworICAgIC8qIENoZWNrIGlmIGxhc3QgYnVm ZmVyIHN0aWxsIGhhdmUgc3BhY2UsIG9yIGluY3JlYXNlIHNpemUgKi8KKyAgICAvKiBUaGUgLTEg aXMgYmVjYXVzZSB0aGVyZSBpcyBhbHdheXMgc3BhY2UgZm9yIGEgTlVMIGNoYXJhY3RlciAqLwor ICAgIGlmIChldi0+YnVmX3VzZWQgPT0gZXYtPmJ1Zl9zaXplIC0gMSkgeworICAgICAgICBldi0+ YnVmX3NpemUgKz0gUU1QX1JFQ0VJVkVfQlVGRkVSX1NJWkU7CisgICAgICAgIGV2LT5yeF9idWYg PSBsaWJ4bF9fcmVhbGxvYyhOT0dDLCBldi0+cnhfYnVmLCBldi0+YnVmX3NpemUpOworICAgIH0K KworICAgIC8qIFRoZSAtMSBpcyBiZWNhdXNlIHRoZXJlIGlzIGFsd2F5cyBzcGFjZSBmb3IgYSBO VUwgY2hhcmFjdGVyICovCisgICAgciA9IHJlYWQoZmQsIGV2LT5yeF9idWYgKyBldi0+YnVmX3Vz ZWQsIGV2LT5idWZfc2l6ZSAtIGV2LT5idWZfdXNlZCAtIDEpOworICAgIGlmIChyIDwgMCkgewor ICAgICAgICBpZiAoZXJybm8gPT0gRUlOVFIpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg ICAgYXNzZXJ0KGVycm5vKTsKKyAgICAgICAgaWYgKGVycm5vID09IEVXT1VMREJMT0NLKQorICAg ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIExPR0VEKEVSUk9SLCBldi0+ZG9taWQsICJlcnJv ciByZWFkaW5nIFFNUCBzb2NrZXQiKTsKKyAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7CisgICAg fQorCisgICAgaWYgKHIgPT0gMCkgeworICAgICAgICBMT0dEKEVSUk9SLCBldi0+ZG9taWQsICJO byBkYXRhIHJlYWQgb24gUU1QIHNvY2tldCIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK KyAgICBMT0dfUU1QKCJyZWNlaXZlZCAlbGRCOiAnJS4qcyciLCByLCAoaW50KXIsIGV2LT5yeF9i dWYgKyBldi0+YnVmX3VzZWQpOworCisgICAgZXYtPmJ1Zl91c2VkICs9IHI7CisgICAgYXNzZXJ0 KGV2LT5idWZfdXNlZCA8IGV2LT5idWZfc2l6ZSk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3Rh dGljIHZvaWQgcW1wX2V2X2NhbGxiYWNrX2Vycm9yKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2V2 X3FtcCAqZXYpCit7CisgICAgRUdDX0dDOworCisgICAgTE9HRChFUlJPUiwgZXYtPmRvbWlkLCAi RXJyb3IgaGFwcGVuZCB3aXRoIHRoZSBRTVAgY29ubmVjdGlvbiB0byBRRU1VIik7CisKKyAgICAv KiBPbiBlcnJvciwgZGVhbGxvY2F0ZSBhbGwgcHJpdmF0ZSByZXNzb3VyY2VzICovCisgICAgbGli eGxfX2V2X3FtcF9kaXNwb3NlKGdjLCBldik7Cit9CisKIHN0YXRpYyB2b2lkIHFtcF9ldl9mZF9j YWxsYmFjayhsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19ldl9mZCAqZXZfZmQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGZkLCBzaG9ydCBldmVudHMsIHNob3J0IHJldmVudHMp CiB7CisgICAgRUdDX0dDOworICAgIGludCByYzsKKworICAgIGxpYnhsX19ldl9xbXAgKmV2ID0g Q09OVEFJTkVSX09GKGV2X2ZkLCAqZXYsIHFtcF9lZmQpOworCisgICAgaWYgKHJldmVudHMgJiAo UE9MTEhVUCkpIHsKKyAgICAgICAgTE9HRChERUJVRywgZXYtPmRvbWlkLCAicmVjZWl2ZWQgUE9M TEhVUCBmcm9tIFFNUCBzb2NrZXQiKTsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAg ICBnb3RvIG91dDsKKyAgICB9CisgICAgaWYgKHJldmVudHMgJiB+KFBPTExJTnxQT0xMT1VUKSkg eworICAgICAgICBMT0dEKEVSUk9SLCBldi0+ZG9taWQsCisgICAgICAgICAgICAgInVuZXhwZWN0 ZWQgcG9sbCBldmVudCAweCV4IG9uIFFNUCBzb2NrZXQgKGV4cGVjdGVkIFBPTExJTiAiCisgICAg ICAgICAgICAgImFuZC9vciBQT0xMT1VUKSIsCisgICAgICAgICAgICByZXZlbnRzKTsKKyAgICAg ICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBpZiAo cmV2ZW50cyAmIFBPTExJTikgeworICAgICAgICByYyA9IHFtcF9ldl9jYWxsYmFja19yZWFkYWJs ZShlZ2MsIGV2LCBmZCk7CisgICAgICAgIGlmIChyYykKKyAgICAgICAgICAgIGdvdG8gb3V0Owor ICAgIH0KK291dDoKKyAgICBpZiAocmMpCisgICAgICAgIHFtcF9ldl9jYWxsYmFja19lcnJvcihl Z2MsIGV2KTsKIH0KIAogc3RhdGljIGludCBxbXBfZXZfY29ubmVjdChsaWJ4bF9fZ2MgKmdjLCBs aWJ4bF9fZXZfcW1wICpldikKQEAgLTEzNTAsNiArMTQ0MSw4IEBAIHZvaWQgbGlieGxfX2V2X3Ft cF9pbml0KGxpYnhsX19ldl9xbXAgKmV2KQogICAgIGV2LT5xbXBfY2ZkID0gTlVMTDsKICAgICBs aWJ4bF9fZXZfZmRfaW5pdCgmZXYtPnFtcF9lZmQpOwogICAgIGV2LT5xbXBfc3RhdGUgPSBxbXBf c3RhdGVfZGlzY29ubmVjdGVkOworCisgICAgZXYtPnJ4X2J1ZiA9IE5VTEw7CiB9CiAKIGludCBs aWJ4bF9fZXZfcW1wX3NlbmQobGlieGxfX2djICpnYywgbGlieGxfX2V2X3FtcCAqZXYsCkBAIC0x MzY1LDYgKzE0NTgsOCBAQCB2b2lkIGxpYnhsX19ldl9xbXBfZGlzcG9zZShsaWJ4bF9fZ2MgKmdj LCBsaWJ4bF9fZXZfcW1wICpldikKIHsKICAgICBMT0dEKERFQlVHLCBldi0+ZG9taWQsICIgZXYg JXAiLCBldik7CiAKKyAgICBmcmVlKGV2LT5yeF9idWYpOworCiAgICAgbGlieGxfX2V2X2ZkX2Rl cmVnaXN0ZXIoZ2MsICZldi0+cW1wX2VmZCk7CiAgICAgbGlieGxfX2NhcmVmZF9jbG9zZShldi0+ cW1wX2NmZCk7CiAKLS0gCkFudGhvbnkgUEVSQVJECgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL3hlbi1kZXZlbA==