|
@@ -22,21 +22,19 @@
|
|
|
#define SM_LOCAL_MODE_BITS 0600
|
|
|
#define SM_LOCAL_DIR_MODE_BITS 0700
|
|
|
|
|
|
-typedef struct FsCred
|
|
|
-{
|
|
|
+typedef struct FsCred {
|
|
|
uid_t fc_uid;
|
|
|
gid_t fc_gid;
|
|
|
mode_t fc_mode;
|
|
|
dev_t fc_rdev;
|
|
|
} FsCred;
|
|
|
|
|
|
-struct FsContext;
|
|
|
-struct V9fsPath;
|
|
|
+typedef struct FsContext FsContext;
|
|
|
+typedef struct V9fsPath V9fsPath;
|
|
|
|
|
|
-typedef struct extended_ops {
|
|
|
- int (*get_st_gen)(struct FsContext *, struct V9fsPath *,
|
|
|
- mode_t, uint64_t *);
|
|
|
-} extended_ops;
|
|
|
+typedef struct ExtendedOps {
|
|
|
+ int (*get_st_gen)(FsContext *, V9fsPath *, mode_t, uint64_t *);
|
|
|
+} ExtendedOps;
|
|
|
|
|
|
/* export flags */
|
|
|
#define V9FS_IMMEDIATE_WRITEOUT 0x00000001
|
|
@@ -81,24 +79,23 @@ typedef struct FsDriverEntry {
|
|
|
mode_t dmode;
|
|
|
} FsDriverEntry;
|
|
|
|
|
|
-typedef struct FsContext
|
|
|
-{
|
|
|
+struct FsContext {
|
|
|
uid_t uid;
|
|
|
char *fs_root;
|
|
|
int export_flags;
|
|
|
XattrOperations **xops;
|
|
|
- struct extended_ops exops;
|
|
|
+ ExtendedOps exops;
|
|
|
FsThrottle *fst;
|
|
|
/* fs driver specific data */
|
|
|
void *private;
|
|
|
mode_t fmode;
|
|
|
mode_t dmode;
|
|
|
-} FsContext;
|
|
|
+};
|
|
|
|
|
|
-typedef struct V9fsPath {
|
|
|
+struct V9fsPath {
|
|
|
uint16_t size;
|
|
|
char *data;
|
|
|
-} V9fsPath;
|
|
|
+};
|
|
|
|
|
|
typedef union V9fsFidOpenState V9fsFidOpenState;
|
|
|
|
|
@@ -106,9 +103,9 @@ void cred_init(FsCred *);
|
|
|
|
|
|
struct FileOperations
|
|
|
{
|
|
|
- int (*parse_opts)(QemuOpts *, struct FsDriverEntry *);
|
|
|
- int (*init)(struct FsContext *);
|
|
|
- void (*cleanup)(struct FsContext *);
|
|
|
+ int (*parse_opts)(QemuOpts *, FsDriverEntry *);
|
|
|
+ int (*init)(FsContext *);
|
|
|
+ void (*cleanup)(FsContext *);
|
|
|
int (*lstat)(FsContext *, V9fsPath *, struct stat *);
|
|
|
ssize_t (*readlink)(FsContext *, V9fsPath *, char *, size_t);
|
|
|
int (*chmod)(FsContext *, V9fsPath *, FsCred *);
|