From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 7/9] xen/9pfs: implement in/out_iov_from_pdu and vmarshal/vunmarshal Date: Thu, 16 Mar 2017 13:01:56 -0700 Message-ID: <1489694518-16978-7-git-send-email-sstabellini@kernel.org> References: <1489694518-16978-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cobbM-000694-JT for xen-devel@lists.xenproject.org; Thu, 16 Mar 2017 20:02:24 +0000 In-Reply-To: <1489694518-16978-1-git-send-email-sstabellini@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: jgross@suse.com, sstabellini@kernel.org, groug@kaod.org, Stefano Stabellini , "Aneesh Kumar K.V" , anthony.perard@citrix.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SW1wbGVtZW50IHhlbl85cGZzX2luaXRfaW4vb3V0X2lvdl9mcm9tX3BkdSBhbmQKeGVuXzlwZnNf cGR1X3ZtYXJzaGFsL3Z1bm1hcnNoYWxsIGJ5IGNyZWF0aW5nIG5ldyBzZyBwb2ludGluZyB0byB0 aGUKZGF0YSBvbiB0aGUgcmluZy4KClRoaXMgaXMgc2FmZSBhcyB3ZSBvbmx5IGhhbmRsZSBvbmUg cmVxdWVzdCBwZXIgcmluZyBhdCBhbnkgZ2l2ZW4gdGltZS4KClNpZ25lZC1vZmYtYnk6IFN0ZWZh bm8gU3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KQ0M6IGFudGhvbnkucGVyYXJkQGNp dHJpeC5jb20KQ0M6IGpncm9zc0BzdXNlLmNvbQpDQzogQW5lZXNoIEt1bWFyIEsuViA8YW5lZXNo Lmt1bWFyQGxpbnV4LnZuZXQuaWJtLmNvbT4KQ0M6IEdyZWcgS3VyeiA8Z3JvdWdAa2FvZC5vcmc+ Ci0tLQogaHcvOXBmcy94ZW4tOXAtYmFja2VuZC5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOTAgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ody85cGZzL3hlbi05cC1iYWNrZW5k LmMgYi9ody85cGZzL3hlbi05cC1iYWNrZW5kLmMKaW5kZXggZjc1NzU5MS4uMGExZWIzNCAxMDA2 NDQKLS0tIGEvaHcvOXBmcy94ZW4tOXAtYmFja2VuZC5jCisrKyBiL2h3LzlwZnMveGVuLTlwLWJh Y2tlbmQuYwpAQCAtNTgsMTIgKzU4LDc4IEBAIHR5cGVkZWYgc3RydWN0IFhlbjlwZnNEZXYgewog ICAgIFhlbjlwZnNSaW5nICpyaW5nczsKIH0gWGVuOXBmc0RldjsKIAorc3RhdGljIHZvaWQgeGVu XzlwZnNfaW5fc2coWGVuOXBmc1JpbmcgKnJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgaW92ZWMgKmluX3NnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpu dW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZHgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCBzaXplKQoreworICAgIFJJTkdfSURYIGNvbnMsIHBy b2QsIG1hc2tlZF9wcm9kLCBtYXNrZWRfY29uczsKKworICAgIGNvbnMgPSByaW5nLT5pbnRmLT5p bl9jb25zOworICAgIHByb2QgPSByaW5nLT5pbnRmLT5pbl9wcm9kOworICAgIHhlbl9ybWIoKTsK KyAgICBtYXNrZWRfcHJvZCA9IHhlbl85cGZzX21hc2socHJvZCwgWEVOXzlQRlNfUklOR19TSVpF KTsKKyAgICBtYXNrZWRfY29ucyA9IHhlbl85cGZzX21hc2soY29ucywgWEVOXzlQRlNfUklOR19T SVpFKTsKKworICAgIGlmIChtYXNrZWRfcHJvZCA8IG1hc2tlZF9jb25zKSB7CisgICAgICAgIGlu X3NnWzBdLmlvdl9iYXNlID0gcmluZy0+cmluZy5pbiArIG1hc2tlZF9wcm9kOworICAgICAgICBp bl9zZ1swXS5pb3ZfbGVuID0gbWFza2VkX2NvbnMgLSBtYXNrZWRfcHJvZDsKKyAgICAgICAgKm51 bSA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW5fc2dbMF0uaW92X2Jhc2UgPSByaW5nLT5y aW5nLmluICsgbWFza2VkX3Byb2Q7CisgICAgICAgIGluX3NnWzBdLmlvdl9sZW4gPSBYRU5fOVBG U19SSU5HX1NJWkUgLSBtYXNrZWRfcHJvZDsKKyAgICAgICAgaW5fc2dbMV0uaW92X2Jhc2UgPSBy aW5nLT5yaW5nLmluOworICAgICAgICBpbl9zZ1sxXS5pb3ZfbGVuID0gbWFza2VkX2NvbnM7Cisg ICAgICAgICpudW0gPSAyOworICAgIH0KK30KKworc3RhdGljIHZvaWQgeGVuXzlwZnNfb3V0X3Nn KFhlbjlwZnNSaW5nICpyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBp b3ZlYyAqb3V0X3NnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbnVtLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkeCkKK3sKKyAgICBSSU5HX0lEWCBj b25zLCBwcm9kLCBtYXNrZWRfcHJvZCwgbWFza2VkX2NvbnM7CisKKyAgICBjb25zID0gcmluZy0+ aW50Zi0+b3V0X2NvbnM7CisgICAgcHJvZCA9IHJpbmctPmludGYtPm91dF9wcm9kOworICAgIHhl bl9ybWIoKTsKKyAgICBtYXNrZWRfcHJvZCA9IHhlbl85cGZzX21hc2socHJvZCwgWEVOXzlQRlNf UklOR19TSVpFKTsKKyAgICBtYXNrZWRfY29ucyA9IHhlbl85cGZzX21hc2soY29ucywgWEVOXzlQ RlNfUklOR19TSVpFKTsKKworICAgIGlmIChtYXNrZWRfY29ucyA8IG1hc2tlZF9wcm9kKSB7Cisg ICAgICAgIG91dF9zZ1swXS5pb3ZfYmFzZSA9IHJpbmctPnJpbmcub3V0ICsgbWFza2VkX2NvbnM7 CisgICAgICAgIG91dF9zZ1swXS5pb3ZfbGVuID0gcmluZy0+b3V0X3NpemU7CisgICAgICAgICpu dW0gPSAxOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChyaW5nLT5vdXRfc2l6ZSA+IChYRU5f OVBGU19SSU5HX1NJWkUgLSBtYXNrZWRfY29ucykpIHsKKyAgICAgICAgICAgIG91dF9zZ1swXS5p b3ZfYmFzZSA9IHJpbmctPnJpbmcub3V0ICsgbWFza2VkX2NvbnM7CisgICAgICAgICAgICBvdXRf c2dbMF0uaW92X2xlbiA9IFhFTl85UEZTX1JJTkdfU0laRSAtIG1hc2tlZF9jb25zOworICAgICAg ICAgICAgb3V0X3NnWzFdLmlvdl9iYXNlID0gcmluZy0+cmluZy5vdXQ7CisgICAgICAgICAgICBv dXRfc2dbMV0uaW92X2xlbiA9IHJpbmctPm91dF9zaXplIC0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKFhFTl85UEZTX1JJTkdfU0laRSAtIG1hc2tlZF9jb25zKTsKKyAgICAgICAg ICAgICpudW0gPSAyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb3V0X3NnWzBdLmlv dl9iYXNlID0gcmluZy0+cmluZy5vdXQgKyBtYXNrZWRfY29uczsKKyAgICAgICAgICAgIG91dF9z Z1swXS5pb3ZfbGVuID0gcmluZy0+b3V0X3NpemU7CisgICAgICAgICAgICAqbnVtID0gMTsKKyAg ICAgICAgfQorICAgIH0KK30KKwogc3RhdGljIHNzaXplX3QgeGVuXzlwZnNfcGR1X3ZtYXJzaGFs KFY5ZnNQRFUgKnBkdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl X3Qgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKmZtdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFw KQogewotICAgIHJldHVybiAwOworICAgIFhlbjlwZnNEZXYgKnhlbl85cGZzID0gY29udGFpbmVy X29mKHBkdS0+cywgWGVuOXBmc0Rldiwgc3RhdGUpOworICAgIHN0cnVjdCBpb3ZlYyBpbl9zZ1sy XTsKKyAgICBpbnQgbnVtOworCisgICAgeGVuXzlwZnNfaW5fc2coJnhlbl85cGZzLT5yaW5nc1tw ZHUtPnRhZyAlIHhlbl85cGZzLT5udW1fcmluZ3NdLAorICAgICAgICAgICAgICAgICAgIGluX3Nn LCAmbnVtLCBwZHUtPmlkeCwgUk9VTkRfVVAob2Zmc2V0ICsgMTI4LCA1MTIpKTsKKyAgICByZXR1 cm4gdjlmc19pb3Zfdm1hcnNoYWwoaW5fc2csIG51bSwgb2Zmc2V0LCAwLCBmbXQsIGFwKTsKIH0K IAogc3RhdGljIHNzaXplX3QgeGVuXzlwZnNfcGR1X3Z1bm1hcnNoYWwoVjlmc1BEVSAqcGR1LApA QCAtNzEsMTMgKzEzNywyNyBAQCBzdGF0aWMgc3NpemVfdCB4ZW5fOXBmc19wZHVfdnVubWFyc2hh bChWOWZzUERVICpwZHUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpmbXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YV9saXN0IGFwKQogewotICAgIHJldHVybiAwOworICAgIFhlbjlwZnNEZXYgKnhlbl85cGZzID0g Y29udGFpbmVyX29mKHBkdS0+cywgWGVuOXBmc0Rldiwgc3RhdGUpOworICAgIHN0cnVjdCBpb3Zl YyBvdXRfc2dbMl07CisgICAgaW50IG51bTsKKworICAgIHhlbl85cGZzX291dF9zZygmeGVuXzlw ZnMtPnJpbmdzW3BkdS0+dGFnICUgeGVuXzlwZnMtPm51bV9yaW5nc10sCisgICAgICAgICAgICAg ICAgICAgIG91dF9zZywgJm51bSwgcGR1LT5pZHgpOworICAgIHJldHVybiB2OWZzX2lvdl92dW5t YXJzaGFsKG91dF9zZywgbnVtLCBvZmZzZXQsIDAsIGZtdCwgYXApOwogfQogCiBzdGF0aWMgdm9p ZCB4ZW5fOXBmc19pbml0X291dF9pb3ZfZnJvbV9wZHUoVjlmc1BEVSAqcGR1LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb3ZlYyAqKnBpb3YsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpw bmlvdikKIHsKKyAgICBYZW45cGZzRGV2ICp4ZW5fOXBmcyA9IGNvbnRhaW5lcl9vZihwZHUtPnMs IFhlbjlwZnNEZXYsIHN0YXRlKTsKKyAgICBYZW45cGZzUmluZyAqcmluZyA9ICZ4ZW5fOXBmcy0+ cmluZ3NbcGR1LT50YWcgJSB4ZW5fOXBmcy0+bnVtX3JpbmdzXTsKKyAgICBzdHJ1Y3QgaW92ZWMg KnNnID0gZ19tYWxsb2MwKHNpemVvZigqc2cpICogMik7CisgICAgaW50IG51bTsKKworICAgIHhl bl85cGZzX291dF9zZyhyaW5nLCBzZywgJm51bSwgcGR1LT5pZHgpOworICAgICpwaW92ID0gc2c7 CisgICAgKnBuaW92ID0gbnVtOwogfQogCiBzdGF0aWMgdm9pZCB4ZW5fOXBmc19pbml0X2luX2lv dl9mcm9tX3BkdShWOWZzUERVICpwZHUsCkBAIC04NSw2ICsxNjUsMTQgQEAgc3RhdGljIHZvaWQg eGVuXzlwZnNfaW5pdF9pbl9pb3ZfZnJvbV9wZHUoVjlmc1BEVSAqcGR1LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpwbmlvdiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQogeworICAg IFhlbjlwZnNEZXYgKnhlbl85cGZzID0gY29udGFpbmVyX29mKHBkdS0+cywgWGVuOXBmc0Rldiwg c3RhdGUpOworICAgIFhlbjlwZnNSaW5nICpyaW5nID0gJnhlbl85cGZzLT5yaW5nc1twZHUtPnRh ZyAlIHhlbl85cGZzLT5udW1fcmluZ3NdOworICAgIHN0cnVjdCBpb3ZlYyAqc2cgPSBnX21hbGxv YzAoc2l6ZW9mKCpzZykgKiAyKTsKKyAgICBpbnQgbnVtOworCisgICAgeGVuXzlwZnNfaW5fc2co cmluZywgc2csICZudW0sIHBkdS0+aWR4LCBzaXplKTsKKyAgICAqcGlvdiA9IHNnOworICAgICpw bmlvdiA9IG51bTsKIH0KIAogc3RhdGljIHZvaWQgeGVuXzlwZnNfcHVzaF9hbmRfbm90aWZ5KFY5 ZnNQRFUgKnBkdSkKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==