diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2011-12-14 13:48:59 +0530 |
---|---|---|
committer | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2012-01-04 19:51:28 +0530 |
commit | 99519f0a776797db8fbdbf828240333e5181a612 (patch) | |
tree | 60dea3adf91a2f3317ab05be685bcaee7b5c46fd /fsdev/file-op-9p.h | |
parent | f3c6a169a39d188e98c17a0a0ebfa7f85e5aafdd (diff) |
hw/9pfs: Move opt validation to FsDriver callback
This remove all conditional code from common code path and
make opt validation a FSDriver callback.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Diffstat (limited to 'fsdev/file-op-9p.h')
-rw-r--r-- | fsdev/file-op-9p.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/fsdev/file-op-9p.h b/fsdev/file-op-9p.h index c823fe0aee..7ef14afea3 100644 --- a/fsdev/file-op-9p.h +++ b/fsdev/file-op-9p.h @@ -61,6 +61,16 @@ typedef struct extended_ops { #define V9FS_SEC_MASK 0x0000001C +typedef struct FileOperations FileOperations; +/* + * Structure to store the various fsdev's passed through command line. + */ +typedef struct FsDriverEntry { + char *fsdev_id; + char *path; + int export_flags; + FileOperations *ops; +} FsDriverEntry; typedef struct FsContext { @@ -82,8 +92,9 @@ typedef union V9fsFidOpenState V9fsFidOpenState; void cred_init(FsCred *); -typedef struct FileOperations +struct FileOperations { + int (*parse_opts)(QemuOpts *, struct FsDriverEntry *); int (*init)(struct FsContext *); int (*lstat)(FsContext *, V9fsPath *, struct stat *); ssize_t (*readlink)(FsContext *, V9fsPath *, char *, size_t); @@ -128,6 +139,6 @@ typedef struct FileOperations V9fsPath *newdir, const char *new_name); int (*unlinkat)(FsContext *ctx, V9fsPath *dir, const char *name, int flags); void *opaque; -} FileOperations; +}; #endif |