]>
Commit | Line | Data |
---|---|---|
74db920c GS |
1 | /* |
2 | * Virtio 9p | |
3 | * | |
4 | * Copyright IBM, Corp. 2010 | |
5 | * | |
6 | * Authors: | |
7 | * Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | |
8 | * | |
9 | * This work is licensed under the terms of the GNU GPL, version 2. See | |
10 | * the COPYING file in the top-level directory. | |
11 | * | |
12 | */ | |
13 | #ifndef _FILEOP_H | |
14 | #define _FILEOP_H | |
15 | #include <sys/types.h> | |
16 | #include <dirent.h> | |
17 | #include <sys/time.h> | |
18 | #include <utime.h> | |
19 | #include <sys/stat.h> | |
20 | #include <sys/uio.h> | |
21 | ||
22 | typedef struct FsContext | |
23 | { | |
24 | char *fs_root; | |
25 | uid_t uid; | |
26 | } FsContext; | |
27 | ||
28 | typedef struct FileOperations | |
29 | { | |
131dcb25 AL |
30 | int (*lstat)(FsContext *, const char *, struct stat *); |
31 | ssize_t (*readlink)(FsContext *, const char *, char *, size_t); | |
c494dd6f | 32 | int (*chmod)(FsContext *, const char *, mode_t); |
8cf89e00 | 33 | int (*chown)(FsContext *, const char *, uid_t, gid_t); |
c494dd6f AL |
34 | int (*mknod)(FsContext *, const char *, mode_t, dev_t); |
35 | int (*mksock)(FsContext *, const char *); | |
8cf89e00 | 36 | int (*utime)(FsContext *, const char *, const struct utimbuf *); |
5bae1900 | 37 | int (*remove)(FsContext *, const char *); |
c494dd6f AL |
38 | int (*symlink)(FsContext *, const char *, const char *); |
39 | int (*link)(FsContext *, const char *, const char *); | |
131dcb25 AL |
40 | int (*setuid)(FsContext *, uid_t); |
41 | int (*close)(FsContext *, int); | |
42 | int (*closedir)(FsContext *, DIR *); | |
a6568fe2 AL |
43 | DIR *(*opendir)(FsContext *, const char *); |
44 | int (*open)(FsContext *, const char *, int); | |
c494dd6f | 45 | int (*open2)(FsContext *, const char *, int, mode_t); |
a9231555 AL |
46 | void (*rewinddir)(FsContext *, DIR *); |
47 | off_t (*telldir)(FsContext *, DIR *); | |
48 | struct dirent *(*readdir)(FsContext *, DIR *); | |
49 | void (*seekdir)(FsContext *, DIR *, off_t); | |
50 | ssize_t (*readv)(FsContext *, int, const struct iovec *, int); | |
8449360c | 51 | ssize_t (*writev)(FsContext *, int, const struct iovec *, int); |
a9231555 | 52 | off_t (*lseek)(FsContext *, int, off_t, int); |
c494dd6f AL |
53 | int (*mkdir)(FsContext *, const char *, mode_t); |
54 | int (*fstat)(FsContext *, int, struct stat *); | |
8cf89e00 AL |
55 | int (*rename)(FsContext *, const char *, const char *); |
56 | int (*truncate)(FsContext *, const char *, off_t); | |
57 | int (*fsync)(FsContext *, int); | |
74db920c GS |
58 | void *opaque; |
59 | } FileOperations; | |
60 | #endif |