virtio-9p: Rearrange fileop structures
This patch rearranges the fileop structures by moving the structure definitions from virtio-9p.c to virtio-9p.h file. No functional changes. Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
0db09dd2ab
commit
fac4f11147
185
hw/virtio-9p.c
185
hw/virtio-9p.c
@ -21,6 +21,52 @@
|
||||
int dotu = 1;
|
||||
int debug_9p_pdu;
|
||||
|
||||
enum {
|
||||
Oread = 0x00,
|
||||
Owrite = 0x01,
|
||||
Ordwr = 0x02,
|
||||
Oexec = 0x03,
|
||||
Oexcl = 0x04,
|
||||
Otrunc = 0x10,
|
||||
Orexec = 0x20,
|
||||
Orclose = 0x40,
|
||||
Oappend = 0x80,
|
||||
};
|
||||
|
||||
static int omode_to_uflags(int8_t mode)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
switch (mode & 3) {
|
||||
case Oread:
|
||||
ret = O_RDONLY;
|
||||
break;
|
||||
case Ordwr:
|
||||
ret = O_RDWR;
|
||||
break;
|
||||
case Owrite:
|
||||
ret = O_WRONLY;
|
||||
break;
|
||||
case Oexec:
|
||||
ret = O_RDONLY;
|
||||
break;
|
||||
}
|
||||
|
||||
if (mode & Otrunc) {
|
||||
ret |= O_TRUNC;
|
||||
}
|
||||
|
||||
if (mode & Oappend) {
|
||||
ret |= O_APPEND;
|
||||
}
|
||||
|
||||
if (mode & Oexcl) {
|
||||
ret |= O_EXCL;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int v9fs_do_lstat(V9fsState *s, V9fsString *path, struct stat *stbuf)
|
||||
{
|
||||
return s->ops->lstat(&s->ctx, path->data, stbuf);
|
||||
@ -995,14 +1041,6 @@ out:
|
||||
v9fs_string_free(&aname);
|
||||
}
|
||||
|
||||
typedef struct V9fsStatState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
V9fsStat v9stat;
|
||||
V9fsFidState *fidp;
|
||||
struct stat stbuf;
|
||||
} V9fsStatState;
|
||||
|
||||
static void v9fs_stat_post_lstat(V9fsState *s, V9fsStatState *vs, int err)
|
||||
{
|
||||
if (err == -1) {
|
||||
@ -1053,19 +1091,6 @@ out:
|
||||
qemu_free(vs);
|
||||
}
|
||||
|
||||
typedef struct V9fsWalkState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int16_t nwnames;
|
||||
int name_idx;
|
||||
V9fsQID *qids;
|
||||
V9fsFidState *fidp;
|
||||
V9fsFidState *newfidp;
|
||||
V9fsString path;
|
||||
V9fsString *wnames;
|
||||
struct stat stbuf;
|
||||
} V9fsWalkState;
|
||||
|
||||
static void v9fs_walk_complete(V9fsState *s, V9fsWalkState *vs, int err)
|
||||
{
|
||||
complete_pdu(s, vs->pdu, err);
|
||||
@ -1229,62 +1254,6 @@ out:
|
||||
v9fs_walk_complete(s, vs, err);
|
||||
}
|
||||
|
||||
typedef struct V9fsOpenState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int8_t mode;
|
||||
V9fsFidState *fidp;
|
||||
V9fsQID qid;
|
||||
struct stat stbuf;
|
||||
|
||||
} V9fsOpenState;
|
||||
|
||||
enum {
|
||||
Oread = 0x00,
|
||||
Owrite = 0x01,
|
||||
Ordwr = 0x02,
|
||||
Oexec = 0x03,
|
||||
Oexcl = 0x04,
|
||||
Otrunc = 0x10,
|
||||
Orexec = 0x20,
|
||||
Orclose = 0x40,
|
||||
Oappend = 0x80,
|
||||
};
|
||||
|
||||
static int omode_to_uflags(int8_t mode)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
switch (mode & 3) {
|
||||
case Oread:
|
||||
ret = O_RDONLY;
|
||||
break;
|
||||
case Ordwr:
|
||||
ret = O_RDWR;
|
||||
break;
|
||||
case Owrite:
|
||||
ret = O_WRONLY;
|
||||
break;
|
||||
case Oexec:
|
||||
ret = O_RDONLY;
|
||||
break;
|
||||
}
|
||||
|
||||
if (mode & Otrunc) {
|
||||
ret |= O_TRUNC;
|
||||
}
|
||||
|
||||
if (mode & Oappend) {
|
||||
ret |= O_APPEND;
|
||||
}
|
||||
|
||||
if (mode & Oexcl) {
|
||||
ret |= O_EXCL;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void v9fs_open_post_opendir(V9fsState *s, V9fsOpenState *vs, int err)
|
||||
{
|
||||
if (vs->fidp->dir == NULL) {
|
||||
@ -1387,25 +1356,6 @@ out:
|
||||
complete_pdu(s, pdu, err);
|
||||
}
|
||||
|
||||
typedef struct V9fsReadState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int32_t count;
|
||||
int32_t total;
|
||||
int64_t off;
|
||||
V9fsFidState *fidp;
|
||||
struct iovec iov[128]; /* FIXME: bad, bad, bad */
|
||||
struct iovec *sg;
|
||||
off_t dir_pos;
|
||||
struct dirent *dent;
|
||||
struct stat stbuf;
|
||||
V9fsString name;
|
||||
V9fsStat v9stat;
|
||||
int32_t len;
|
||||
int32_t cnt;
|
||||
int32_t max_count;
|
||||
} V9fsReadState;
|
||||
|
||||
static void v9fs_read_post_readdir(V9fsState *, V9fsReadState *, ssize_t);
|
||||
|
||||
static void v9fs_read_post_seekdir(V9fsState *s, V9fsReadState *vs, ssize_t err)
|
||||
@ -1593,19 +1543,6 @@ out:
|
||||
qemu_free(vs);
|
||||
}
|
||||
|
||||
typedef struct V9fsWriteState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int32_t len;
|
||||
int32_t count;
|
||||
int32_t total;
|
||||
int64_t off;
|
||||
V9fsFidState *fidp;
|
||||
struct iovec iov[128]; /* FIXME: bad, bad, bad */
|
||||
struct iovec *sg;
|
||||
int cnt;
|
||||
} V9fsWriteState;
|
||||
|
||||
static void v9fs_write_post_writev(V9fsState *s, V9fsWriteState *vs,
|
||||
ssize_t err)
|
||||
{
|
||||
@ -1702,19 +1639,6 @@ out:
|
||||
qemu_free(vs);
|
||||
}
|
||||
|
||||
typedef struct V9fsCreateState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
V9fsFidState *fidp;
|
||||
V9fsQID qid;
|
||||
int32_t perm;
|
||||
int8_t mode;
|
||||
struct stat stbuf;
|
||||
V9fsString name;
|
||||
V9fsString extension;
|
||||
V9fsString fullname;
|
||||
} V9fsCreateState;
|
||||
|
||||
static void v9fs_post_create(V9fsState *s, V9fsCreateState *vs, int err)
|
||||
{
|
||||
if (err == 0) {
|
||||
@ -1934,12 +1858,6 @@ static void v9fs_flush(V9fsState *s, V9fsPDU *pdu)
|
||||
complete_pdu(s, pdu, 7);
|
||||
}
|
||||
|
||||
typedef struct V9fsRemoveState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
V9fsFidState *fidp;
|
||||
} V9fsRemoveState;
|
||||
|
||||
static void v9fs_remove_post_remove(V9fsState *s, V9fsRemoveState *vs,
|
||||
int err)
|
||||
{
|
||||
@ -1982,17 +1900,6 @@ out:
|
||||
qemu_free(vs);
|
||||
}
|
||||
|
||||
typedef struct V9fsWstatState
|
||||
{
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int16_t unused;
|
||||
V9fsStat v9stat;
|
||||
V9fsFidState *fidp;
|
||||
struct stat stbuf;
|
||||
V9fsString nname;
|
||||
} V9fsWstatState;
|
||||
|
||||
static void v9fs_wstat_post_truncate(V9fsState *s, V9fsWstatState *vs, int err)
|
||||
{
|
||||
if (err < 0) {
|
||||
|
@ -146,6 +146,98 @@ typedef struct V9fsState
|
||||
size_t config_size;
|
||||
} V9fsState;
|
||||
|
||||
typedef struct V9fsCreateState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
V9fsFidState *fidp;
|
||||
V9fsQID qid;
|
||||
int32_t perm;
|
||||
int8_t mode;
|
||||
struct stat stbuf;
|
||||
V9fsString name;
|
||||
V9fsString extension;
|
||||
V9fsString fullname;
|
||||
} V9fsCreateState;
|
||||
|
||||
typedef struct V9fsStatState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
V9fsStat v9stat;
|
||||
V9fsFidState *fidp;
|
||||
struct stat stbuf;
|
||||
} V9fsStatState;
|
||||
|
||||
typedef struct V9fsWalkState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int16_t nwnames;
|
||||
int name_idx;
|
||||
V9fsQID *qids;
|
||||
V9fsFidState *fidp;
|
||||
V9fsFidState *newfidp;
|
||||
V9fsString path;
|
||||
V9fsString *wnames;
|
||||
struct stat stbuf;
|
||||
} V9fsWalkState;
|
||||
|
||||
typedef struct V9fsOpenState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int8_t mode;
|
||||
V9fsFidState *fidp;
|
||||
V9fsQID qid;
|
||||
struct stat stbuf;
|
||||
} V9fsOpenState;
|
||||
|
||||
typedef struct V9fsReadState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int32_t count;
|
||||
int32_t total;
|
||||
int64_t off;
|
||||
V9fsFidState *fidp;
|
||||
struct iovec iov[128]; /* FIXME: bad, bad, bad */
|
||||
struct iovec *sg;
|
||||
off_t dir_pos;
|
||||
struct dirent *dent;
|
||||
struct stat stbuf;
|
||||
V9fsString name;
|
||||
V9fsStat v9stat;
|
||||
int32_t len;
|
||||
int32_t cnt;
|
||||
int32_t max_count;
|
||||
} V9fsReadState;
|
||||
|
||||
typedef struct V9fsWriteState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int32_t len;
|
||||
int32_t count;
|
||||
int32_t total;
|
||||
int64_t off;
|
||||
V9fsFidState *fidp;
|
||||
struct iovec iov[128]; /* FIXME: bad, bad, bad */
|
||||
struct iovec *sg;
|
||||
int cnt;
|
||||
} V9fsWriteState;
|
||||
|
||||
typedef struct V9fsRemoveState {
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
V9fsFidState *fidp;
|
||||
} V9fsRemoveState;
|
||||
|
||||
typedef struct V9fsWstatState
|
||||
{
|
||||
V9fsPDU *pdu;
|
||||
size_t offset;
|
||||
int16_t unused;
|
||||
V9fsStat v9stat;
|
||||
V9fsFidState *fidp;
|
||||
struct stat stbuf;
|
||||
V9fsString nname;
|
||||
} V9fsWstatState;
|
||||
|
||||
struct virtio_9p_config
|
||||
{
|
||||
/* number of characters in tag */
|
||||
|
Loading…
Reference in New Issue
Block a user