提交 2209bd05 编写于 作者: W Wei Liu 提交者: Aneesh Kumar K.V

fsdev: rename virtio-9p-marshal.{c,h} to 9p-iov-marshal.{c,h}

And rename v9fs_marshal to v9fs_iov_marshal, v9fs_unmarshal to
v9fs_iov_unmarshal.

The rationale behind this change is that, this marshalling interface is
used both by virtio and proxy helper. Renaming files and functions to
reflect the true nature of this interface.

Xen transport is going to have its own marshalling interface.
Signed-off-by: NWei Liu <wei.liu2@citrix.com>
Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
上级 829dd286
...@@ -240,7 +240,7 @@ qemu-io$(EXESUF): qemu-io.o $(block-obj-y) $(crypto-obj-y) $(qom-obj-y) libqemuu ...@@ -240,7 +240,7 @@ qemu-io$(EXESUF): qemu-io.o $(block-obj-y) $(crypto-obj-y) $(qom-obj-y) libqemuu
qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/9p-marshal.o fsdev/virtio-9p-marshal.o libqemuutil.a libqemustub.a fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/9p-marshal.o fsdev/9p-iov-marshal.o libqemuutil.a libqemustub.a
fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap
qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx
......
/* /*
* Virtio 9p backend * 9p backend
* *
* Copyright IBM, Corp. 2010 * Copyright IBM, Corp. 2010
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#include <errno.h> #include <errno.h>
#include "qemu/compiler.h" #include "qemu/compiler.h"
#include "virtio-9p-marshal.h" #include "9p-iov-marshal.h"
#include "qemu/bswap.h" #include "qemu/bswap.h"
static ssize_t v9fs_packunpack(void *addr, struct iovec *sg, int sg_count, static ssize_t v9fs_packunpack(void *addr, struct iovec *sg, int sg_count,
...@@ -76,8 +76,8 @@ ssize_t v9fs_pack(struct iovec *in_sg, int in_num, size_t offset, ...@@ -76,8 +76,8 @@ ssize_t v9fs_pack(struct iovec *in_sg, int in_num, size_t offset,
return v9fs_packunpack((void *)src, in_sg, in_num, offset, size, 1); return v9fs_packunpack((void *)src, in_sg, in_num, offset, size, 1);
} }
ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset, ssize_t v9fs_iov_unmarshal(struct iovec *out_sg, int out_num, size_t offset,
int bswap, const char *fmt, ...) int bswap, const char *fmt, ...)
{ {
int i; int i;
va_list ap; va_list ap;
...@@ -127,8 +127,8 @@ ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset, ...@@ -127,8 +127,8 @@ ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset,
} }
case 's': { case 's': {
V9fsString *str = va_arg(ap, V9fsString *); V9fsString *str = va_arg(ap, V9fsString *);
copied = v9fs_unmarshal(out_sg, out_num, offset, bswap, copied = v9fs_iov_unmarshal(out_sg, out_num, offset, bswap,
"w", &str->size); "w", &str->size);
if (copied > 0) { if (copied > 0) {
offset += copied; offset += copied;
str->data = g_malloc(str->size + 1); str->data = g_malloc(str->size + 1);
...@@ -144,31 +144,36 @@ ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset, ...@@ -144,31 +144,36 @@ ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset,
} }
case 'Q': { case 'Q': {
V9fsQID *qidp = va_arg(ap, V9fsQID *); V9fsQID *qidp = va_arg(ap, V9fsQID *);
copied = v9fs_unmarshal(out_sg, out_num, offset, bswap, "bdq", copied = v9fs_iov_unmarshal(out_sg, out_num, offset, bswap,
&qidp->type, &qidp->version, &qidp->path); "bdq", &qidp->type, &qidp->version,
&qidp->path);
break; break;
} }
case 'S': { case 'S': {
V9fsStat *statp = va_arg(ap, V9fsStat *); V9fsStat *statp = va_arg(ap, V9fsStat *);
copied = v9fs_unmarshal(out_sg, out_num, offset, bswap, copied = v9fs_iov_unmarshal(out_sg, out_num, offset, bswap,
"wwdQdddqsssssddd", "wwdQdddqsssssddd",
&statp->size, &statp->type, &statp->dev, &statp->size, &statp->type,
&statp->qid, &statp->mode, &statp->atime, &statp->dev, &statp->qid,
&statp->mtime, &statp->length, &statp->mode, &statp->atime,
&statp->name, &statp->uid, &statp->gid, &statp->mtime, &statp->length,
&statp->muid, &statp->extension, &statp->name, &statp->uid,
&statp->n_uid, &statp->n_gid, &statp->gid, &statp->muid,
&statp->n_muid); &statp->extension,
&statp->n_uid, &statp->n_gid,
&statp->n_muid);
break; break;
} }
case 'I': { case 'I': {
V9fsIattr *iattr = va_arg(ap, V9fsIattr *); V9fsIattr *iattr = va_arg(ap, V9fsIattr *);
copied = v9fs_unmarshal(out_sg, out_num, offset, bswap, copied = v9fs_iov_unmarshal(out_sg, out_num, offset, bswap,
"ddddqqqqq", "ddddqqqqq",
&iattr->valid, &iattr->mode, &iattr->valid, &iattr->mode,
&iattr->uid, &iattr->gid, &iattr->size, &iattr->uid, &iattr->gid,
&iattr->atime_sec, &iattr->atime_nsec, &iattr->size, &iattr->atime_sec,
&iattr->mtime_sec, &iattr->mtime_nsec); &iattr->atime_nsec,
&iattr->mtime_sec,
&iattr->mtime_nsec);
break; break;
} }
default: default:
...@@ -185,8 +190,8 @@ ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset, ...@@ -185,8 +190,8 @@ ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset,
return offset - old_offset; return offset - old_offset;
} }
ssize_t v9fs_marshal(struct iovec *in_sg, int in_num, size_t offset, ssize_t v9fs_iov_marshal(struct iovec *in_sg, int in_num, size_t offset,
int bswap, const char *fmt, ...) int bswap, const char *fmt, ...)
{ {
int i; int i;
va_list ap; va_list ap;
...@@ -233,8 +238,8 @@ ssize_t v9fs_marshal(struct iovec *in_sg, int in_num, size_t offset, ...@@ -233,8 +238,8 @@ ssize_t v9fs_marshal(struct iovec *in_sg, int in_num, size_t offset,
} }
case 's': { case 's': {
V9fsString *str = va_arg(ap, V9fsString *); V9fsString *str = va_arg(ap, V9fsString *);
copied = v9fs_marshal(in_sg, in_num, offset, bswap, copied = v9fs_iov_marshal(in_sg, in_num, offset, bswap,
"w", str->size); "w", str->size);
if (copied > 0) { if (copied > 0) {
offset += copied; offset += copied;
copied = v9fs_pack(in_sg, in_num, offset, str->data, str->size); copied = v9fs_pack(in_sg, in_num, offset, str->data, str->size);
...@@ -243,37 +248,42 @@ ssize_t v9fs_marshal(struct iovec *in_sg, int in_num, size_t offset, ...@@ -243,37 +248,42 @@ ssize_t v9fs_marshal(struct iovec *in_sg, int in_num, size_t offset,
} }
case 'Q': { case 'Q': {
V9fsQID *qidp = va_arg(ap, V9fsQID *); V9fsQID *qidp = va_arg(ap, V9fsQID *);
copied = v9fs_marshal(in_sg, in_num, offset, bswap, "bdq", copied = v9fs_iov_marshal(in_sg, in_num, offset, bswap, "bdq",
qidp->type, qidp->version, qidp->path); qidp->type, qidp->version,
qidp->path);
break; break;
} }
case 'S': { case 'S': {
V9fsStat *statp = va_arg(ap, V9fsStat *); V9fsStat *statp = va_arg(ap, V9fsStat *);
copied = v9fs_marshal(in_sg, in_num, offset, bswap, copied = v9fs_iov_marshal(in_sg, in_num, offset, bswap,
"wwdQdddqsssssddd", "wwdQdddqsssssddd",
statp->size, statp->type, statp->dev, statp->size, statp->type, statp->dev,
&statp->qid, statp->mode, statp->atime, &statp->qid, statp->mode, statp->atime,
statp->mtime, statp->length, &statp->name, statp->mtime, statp->length,
&statp->uid, &statp->gid, &statp->muid, &statp->name,
&statp->extension, statp->n_uid, &statp->uid, &statp->gid, &statp->muid,
statp->n_gid, statp->n_muid); &statp->extension, statp->n_uid,
statp->n_gid, statp->n_muid);
break; break;
} }
case 'A': { case 'A': {
V9fsStatDotl *statp = va_arg(ap, V9fsStatDotl *); V9fsStatDotl *statp = va_arg(ap, V9fsStatDotl *);
copied = v9fs_marshal(in_sg, in_num, offset, bswap, copied = v9fs_iov_marshal(in_sg, in_num, offset, bswap,
"qQdddqqqqqqqqqqqqqqq", "qQdddqqqqqqqqqqqqqqq",
statp->st_result_mask, statp->st_result_mask,
&statp->qid, statp->st_mode, &statp->qid, statp->st_mode,
statp->st_uid, statp->st_gid, statp->st_uid, statp->st_gid,
statp->st_nlink, statp->st_rdev, statp->st_nlink, statp->st_rdev,
statp->st_size, statp->st_blksize, statp->st_size, statp->st_blksize,
statp->st_blocks, statp->st_atime_sec, statp->st_blocks, statp->st_atime_sec,
statp->st_atime_nsec, statp->st_mtime_sec, statp->st_atime_nsec,
statp->st_mtime_nsec, statp->st_ctime_sec, statp->st_mtime_sec,
statp->st_ctime_nsec, statp->st_btime_sec, statp->st_mtime_nsec,
statp->st_btime_nsec, statp->st_gen, statp->st_ctime_sec,
statp->st_data_version); statp->st_ctime_nsec,
statp->st_btime_sec,
statp->st_btime_nsec, statp->st_gen,
statp->st_data_version);
break; break;
} }
default: default:
......
#ifndef _QEMU_VIRTIO_9P_MARSHAL_H #ifndef _QEMU_9P_IOV_MARSHAL_H
#define _QEMU_VIRTIO_9P_MARSHAL_H #define _QEMU_9P_IOV_MARSHAL_H
#include "9p-marshal.h" #include "9p-marshal.h"
ssize_t v9fs_pack(struct iovec *in_sg, int in_num, size_t offset, ssize_t v9fs_pack(struct iovec *in_sg, int in_num, size_t offset,
const void *src, size_t size); const void *src, size_t size);
ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset, ssize_t v9fs_iov_unmarshal(struct iovec *out_sg, int out_num, size_t offset,
int bswap, const char *fmt, ...); int bswap, const char *fmt, ...);
ssize_t v9fs_marshal(struct iovec *in_sg, int in_num, size_t offset, ssize_t v9fs_iov_marshal(struct iovec *in_sg, int in_num, size_t offset,
int bswap, const char *fmt, ...); int bswap, const char *fmt, ...);
#endif #endif
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy) ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
# Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add. # Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add.
# only pull in the actual virtio-9p device if we also enabled virtio. # only pull in the actual virtio-9p device if we also enabled virtio.
common-obj-y = qemu-fsdev.o 9p-marshal.o virtio-9p-marshal.o common-obj-y = qemu-fsdev.o 9p-marshal.o 9p-iov-marshal.o
else else
common-obj-y = qemu-fsdev-dummy.o common-obj-y = qemu-fsdev-dummy.o
endif endif
......
...@@ -23,9 +23,9 @@ ...@@ -23,9 +23,9 @@
#include "qemu-common.h" #include "qemu-common.h"
#include "qemu/sockets.h" #include "qemu/sockets.h"
#include "qemu/xattr.h" #include "qemu/xattr.h"
#include "virtio-9p-marshal.h" #include "9p-iov-marshal.h"
#include "hw/9pfs/9p-proxy.h" #include "hw/9pfs/9p-proxy.h"
#include "fsdev/virtio-9p-marshal.h" #include "fsdev/9p-iov-marshal.h"
#define PROGNAME "virtfs-proxy-helper" #define PROGNAME "virtfs-proxy-helper"
......
...@@ -20,9 +20,9 @@ ...@@ -20,9 +20,9 @@
* marsha/unmarshal doesn't do little endian conversion. * marsha/unmarshal doesn't do little endian conversion.
*/ */
#define proxy_unmarshal(in_sg, offset, fmt, args...) \ #define proxy_unmarshal(in_sg, offset, fmt, args...) \
v9fs_unmarshal(in_sg, 1, offset, 0, fmt, ##args) v9fs_iov_unmarshal(in_sg, 1, offset, 0, fmt, ##args)
#define proxy_marshal(out_sg, offset, fmt, args...) \ #define proxy_marshal(out_sg, offset, fmt, args...) \
v9fs_marshal(out_sg, 1, offset, 0, fmt, ##args) v9fs_iov_marshal(out_sg, 1, offset, 0, fmt, ##args)
union MsgControl { union MsgControl {
struct cmsghdr cmsg; struct cmsghdr cmsg;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "standard-headers/linux/virtio_9p.h" #include "standard-headers/linux/virtio_9p.h"
#include "hw/virtio/virtio.h" #include "hw/virtio/virtio.h"
#include "fsdev/file-op-9p.h" #include "fsdev/file-op-9p.h"
#include "fsdev/virtio-9p-marshal.h" #include "fsdev/9p-iov-marshal.h"
#include "qemu/thread.h" #include "qemu/thread.h"
#include "qemu/coroutine.h" #include "qemu/coroutine.h"
...@@ -321,9 +321,9 @@ extern int v9fs_name_to_path(V9fsState *s, V9fsPath *dirpath, ...@@ -321,9 +321,9 @@ extern int v9fs_name_to_path(V9fsState *s, V9fsPath *dirpath,
const char *name, V9fsPath *path); const char *name, V9fsPath *path);
#define pdu_marshal(pdu, offset, fmt, args...) \ #define pdu_marshal(pdu, offset, fmt, args...) \
v9fs_marshal(pdu->elem.in_sg, pdu->elem.in_num, offset, 1, fmt, ##args) v9fs_iov_marshal(pdu->elem.in_sg, pdu->elem.in_num, offset, 1, fmt, ##args)
#define pdu_unmarshal(pdu, offset, fmt, args...) \ #define pdu_unmarshal(pdu, offset, fmt, args...) \
v9fs_unmarshal(pdu->elem.out_sg, pdu->elem.out_num, offset, 1, fmt, ##args) v9fs_iov_unmarshal(pdu->elem.out_sg, pdu->elem.out_num, offset, 1, fmt, ##args)
#define TYPE_VIRTIO_9P "virtio-9p-device" #define TYPE_VIRTIO_9P "virtio-9p-device"
#define VIRTIO_9P(obj) \ #define VIRTIO_9P(obj) \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册