From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH 6/8] xen/9pfs: implement in/out_iov_from_pdu and vmarshal/vunmarshal Date: Mon, 6 Mar 2017 18:12:46 -0800 Message-ID: <1488852768-8935-6-git-send-email-sstabellini@kernel.org> References: <1488852768-8935-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cl4ci-000250-LK for xen-devel@lists.xenproject.org; Tue, 07 Mar 2017 02:13:12 +0000 In-Reply-To: <1488852768-8935-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, Greg Kurz , 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+ Ci0tLQogaHcvOXBmcy94ZW4tOXAtYmFja2VuZC5jIHwgOTEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgODkgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ody85cGZzL3hlbi05cC1iYWNrZW5k LmMgYi9ody85cGZzL3hlbi05cC1iYWNrZW5kLmMKaW5kZXggZDRjM2QzNi4uMDU3MGUwNyAxMDA2 NDQKLS0tIGEvaHcvOXBmcy94ZW4tOXAtYmFja2VuZC5jCisrKyBiL2h3LzlwZnMveGVuLTlwLWJh Y2tlbmQuYwpAQCAtNDgsMTIgKzQ4LDc3IEBAIHN0cnVjdCBYZW45cGZzRGV2IHsKICAgICBzdHJ1 Y3QgWGVuOXBmc1JpbmcgKnJpbmdzOwogfTsKIAorc3RhdGljIHZvaWQgeGVuXzlwZnNfaW5fc2co c3RydWN0IFhlbjlwZnNSaW5nICpyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGlvdmVjICppbl9zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbnVtLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaWR4LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDMyX3Qgc2l6ZSkKK3sKKyAgICBSSU5HX0lEWCBjb25zLCBwcm9kLCBt YXNrZWRfcHJvZCwgbWFza2VkX2NvbnM7CisKKyAgICBjb25zID0gcmluZy0+aW50Zi0+aW5fY29u czsKKyAgICBwcm9kID0gcmluZy0+aW50Zi0+aW5fcHJvZDsKKyAgICB4ZW5fcm1iKCk7CisgICAg bWFza2VkX3Byb2QgPSB4ZW5fOXBmc19tYXNrKHByb2QsIFhFTl85UEZTX1JJTkdfU0laRSk7Cisg ICAgbWFza2VkX2NvbnMgPSB4ZW5fOXBmc19tYXNrKGNvbnMsIFhFTl85UEZTX1JJTkdfU0laRSk7 CisKKyAgICBpZiAobWFza2VkX3Byb2QgPCBtYXNrZWRfY29ucykgeworICAgICAgICBpbl9zZ1sw XS5pb3ZfYmFzZSA9IHJpbmctPnJpbmcuaW4gKyBtYXNrZWRfcHJvZDsKKyAgICAgICAgaW5fc2db MF0uaW92X2xlbiA9IG1hc2tlZF9jb25zIC0gbWFza2VkX3Byb2Q7CisgICAgICAgICpudW0gPSAx OworICAgIH0gZWxzZSB7CisgICAgICAgIGluX3NnWzBdLmlvdl9iYXNlID0gcmluZy0+cmluZy5p biArIG1hc2tlZF9wcm9kOworICAgICAgICBpbl9zZ1swXS5pb3ZfbGVuID0gWEVOXzlQRlNfUklO R19TSVpFIC0gbWFza2VkX3Byb2Q7CisgICAgICAgIGluX3NnWzFdLmlvdl9iYXNlID0gcmluZy0+ cmluZy5pbjsKKyAgICAgICAgaW5fc2dbMV0uaW92X2xlbiA9IG1hc2tlZF9jb25zOworICAgICAg ICAqbnVtID0gMjsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHhlbl85cGZzX291dF9zZyhzdHJ1 Y3QgWGVuOXBmc1JpbmcgKnJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGlvdmVjICpvdXRfc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpudW0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaWR4KQoreworICAgIFJJTkdfSURY IGNvbnMsIHByb2QsIG1hc2tlZF9wcm9kLCBtYXNrZWRfY29uczsKKworICAgIGNvbnMgPSByaW5n LT5pbnRmLT5vdXRfY29uczsKKyAgICBwcm9kID0gcmluZy0+aW50Zi0+b3V0X3Byb2Q7CisgICAg eGVuX3JtYigpOworICAgIG1hc2tlZF9wcm9kID0geGVuXzlwZnNfbWFzayhwcm9kLCBYRU5fOVBG U19SSU5HX1NJWkUpOworICAgIG1hc2tlZF9jb25zID0geGVuXzlwZnNfbWFzayhjb25zLCBYRU5f OVBGU19SSU5HX1NJWkUpOworCisgICAgaWYgKG1hc2tlZF9jb25zIDwgbWFza2VkX3Byb2QpIHsK KyAgICAgICAgb3V0X3NnWzBdLmlvdl9iYXNlID0gcmluZy0+cmluZy5vdXQgKyBtYXNrZWRfY29u czsKKyAgICAgICAgb3V0X3NnWzBdLmlvdl9sZW4gPSByaW5nLT5vdXRfc2l6ZTsKKyAgICAgICAg Km51bSA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHJpbmctPm91dF9zaXplID4gKFhF Tl85UEZTX1JJTkdfU0laRSAtIG1hc2tlZF9jb25zKSkgeworICAgICAgICAgICAgb3V0X3NnWzBd Lmlvdl9iYXNlID0gcmluZy0+cmluZy5vdXQgKyBtYXNrZWRfY29uczsKKyAgICAgICAgICAgIG91 dF9zZ1swXS5pb3ZfbGVuID0gWEVOXzlQRlNfUklOR19TSVpFIC0gbWFza2VkX2NvbnM7CisgICAg ICAgICAgICBvdXRfc2dbMV0uaW92X2Jhc2UgPSByaW5nLT5yaW5nLm91dDsKKyAgICAgICAgICAg IG91dF9zZ1sxXS5pb3ZfbGVuID0gcmluZy0+b3V0X3NpemUgLSAoWEVOXzlQRlNfUklOR19TSVpF IC0gbWFza2VkX2NvbnMpOworICAgICAgICAgICAgKm51bSA9IDI7CisgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICBvdXRfc2dbMF0uaW92X2Jhc2UgPSByaW5nLT5yaW5nLm91dCArIG1hc2tl ZF9jb25zOworICAgICAgICAgICAgb3V0X3NnWzBdLmlvdl9sZW4gPSByaW5nLT5vdXRfc2l6ZTsK KyAgICAgICAgICAgICpudW0gPSAxOworICAgICAgICB9CisgICAgfQorfQorCiBzdGF0aWMgc3Np emVfdCB4ZW5fOXBmc19wZHVfdm1hcnNoYWwoVjlmc1BEVSAqcGR1LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm10LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZhX2xpc3QgYXApCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgc3RydWN0 IFhlbjlwZnNEZXYgKnhlbl85cGZzID0gY29udGFpbmVyX29mKHBkdS0+cywgc3RydWN0IFhlbjlw ZnNEZXYsIHN0YXRlKTsKKyAgICBzdHJ1Y3QgaW92ZWMgaW5fc2dbMl07CisgICAgaW50IG51bTsK KworICAgIHhlbl85cGZzX2luX3NnKCZ4ZW5fOXBmcy0+cmluZ3NbcGR1LT50YWcgJSB4ZW5fOXBm cy0+bnVtX3JpbmdzXSwKKyAgICAgICAgICAgICAgICAgICBpbl9zZywgJm51bSwgcGR1LT5pZHgs IFJPVU5EX1VQKG9mZnNldCArIDEyOCwgNTEyKSk7CisgICAgcmV0dXJuIHY5ZnNfaW92X3ZtYXJz aGFsKGluX3NnLCBudW0sIG9mZnNldCwgMCwgZm10LCBhcCk7CiB9CiAKIHN0YXRpYyBzc2l6ZV90 IHhlbl85cGZzX3BkdV92dW5tYXJzaGFsKFY5ZnNQRFUgKnBkdSwKQEAgLTYxLDEzICsxMjYsMjcg QEAgc3RhdGljIHNzaXplX3QgeGVuXzlwZnNfcGR1X3Z1bm1hcnNoYWwoVjlmc1BEVSAqcGR1LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm10LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcCkKIHsKLSAg ICByZXR1cm4gMDsKKyAgICBzdHJ1Y3QgWGVuOXBmc0RldiAqeGVuXzlwZnMgPSBjb250YWluZXJf b2YocGR1LT5zLCBzdHJ1Y3QgWGVuOXBmc0Rldiwgc3RhdGUpOworICAgIHN0cnVjdCBpb3ZlYyBv dXRfc2dbMl07CisgICAgaW50IG51bTsKKworICAgIHhlbl85cGZzX291dF9zZygmeGVuXzlwZnMt PnJpbmdzW3BkdS0+dGFnICUgeGVuXzlwZnMtPm51bV9yaW5nc10sCisgICAgICAgICAgICAgICAg ICAgIG91dF9zZywgJm51bSwgcGR1LT5pZHgpOworICAgIHJldHVybiB2OWZzX2lvdl92dW5tYXJz aGFsKG91dF9zZywgbnVtLCBvZmZzZXQsIDAsIGZtdCwgYXApOwogfQogCiBzdGF0aWMgdm9pZCB4 ZW5fOXBmc19pbml0X291dF9pb3ZfZnJvbV9wZHUoVjlmc1BEVSAqcGR1LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb3ZlYyAqKnBpb3YsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpwbmlv dikKIHsKKyAgICBzdHJ1Y3QgWGVuOXBmc0RldiAqeGVuXzlwZnMgPSBjb250YWluZXJfb2YocGR1 LT5zLCBzdHJ1Y3QgWGVuOXBmc0Rldiwgc3RhdGUpOworICAgIHN0cnVjdCBYZW45cGZzUmluZyAq cmluZyA9ICZ4ZW5fOXBmcy0+cmluZ3NbcGR1LT50YWcgJSB4ZW5fOXBmcy0+bnVtX3JpbmdzXTsK KyAgICBzdHJ1Y3QgaW92ZWMgKnNnID0gZ19tYWxsb2MwKHNpemVvZigqc2cpKjIpOworICAgIGlu dCBudW07CisKKyAgICB4ZW5fOXBmc19vdXRfc2cocmluZywgc2csICZudW0sIHBkdS0+aWR4KTsK KyAgICAqcGlvdiA9IHNnOworICAgICpwbmlvdiA9IG51bTsKIH0KIAogc3RhdGljIHZvaWQgeGVu XzlwZnNfaW5pdF9pbl9pb3ZfZnJvbV9wZHUoVjlmc1BEVSAqcGR1LApAQCAtNzUsNiArMTU0LDE0 IEBAIHN0YXRpYyB2b2lkIHhlbl85cGZzX2luaXRfaW5faW92X2Zyb21fcGR1KFY5ZnNQRFUgKnBk dSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCAqcG5pb3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl X3Qgc2l6ZSkKIHsKKyAgICBzdHJ1Y3QgWGVuOXBmc0RldiAqeGVuXzlwZnMgPSBjb250YWluZXJf b2YocGR1LT5zLCBzdHJ1Y3QgWGVuOXBmc0Rldiwgc3RhdGUpOworICAgIHN0cnVjdCBYZW45cGZz UmluZyAqcmluZyA9ICZ4ZW5fOXBmcy0+cmluZ3NbcGR1LT50YWcgJSB4ZW5fOXBmcy0+bnVtX3Jp bmdzXTsKKyAgICBzdHJ1Y3QgaW92ZWMgKnNnID0gZ19tYWxsb2MwKHNpemVvZigqc2cpKjIpOwor ICAgIGludCBudW07CisKKyAgICB4ZW5fOXBmc19pbl9zZyhyaW5nLCBzZywgJm51bSwgcGR1LT5p ZHgsIHNpemUpOworICAgICpwaW92ID0gc2c7CisgICAgKnBuaW92ID0gbnVtOwogfQogCiBzdGF0 aWMgdm9pZCB4ZW5fOXBmc19wdXNoX2FuZF9ub3RpZnkoVjlmc1BEVSAqcGR1KQotLSAKMS45LjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK