Merge tag 'v9.0.0-rc3'
[qemu/ar7.git] / hw / 9pfs / 9p-proxy.h
blob9be4718d3e2faf04044bfea6f493800ba04447b5
1 /*
2 * 9p Proxy callback
4 * Copyright IBM, Corp. 2011
6 * Authors:
7 * M. Mohan Kumar <mohan@in.ibm.com>
9 * This work is licensed under the terms of the GNU GPL, version 2. See
10 * the COPYING file in the top-level directory.
14 * NOTE: The 9p 'proxy' backend is deprecated (since QEMU 8.1) and will be
15 * removed in a future version of QEMU!
18 #ifndef QEMU_9P_PROXY_H
19 #define QEMU_9P_PROXY_H
21 #define PROXY_MAX_IO_SZ (64 * 1024)
22 #define V9FS_FD_VALID INT_MAX
25 * proxy iovec only support one element and
26 * marsha/unmarshal doesn't do little endian conversion.
28 #define proxy_unmarshal(in_sg, offset, fmt, args...) \
29 v9fs_iov_unmarshal(in_sg, 1, offset, 0, fmt, ##args)
30 #define proxy_marshal(out_sg, offset, fmt, args...) \
31 v9fs_iov_marshal(out_sg, 1, offset, 0, fmt, ##args)
33 union MsgControl {
34 struct cmsghdr cmsg;
35 char control[CMSG_SPACE(sizeof(int))];
38 typedef struct {
39 uint32_t type;
40 uint32_t size;
41 } ProxyHeader;
43 #define PROXY_HDR_SZ (sizeof(ProxyHeader))
45 enum {
46 T_SUCCESS = 0,
47 T_ERROR,
48 T_OPEN,
49 T_CREATE,
50 T_MKNOD,
51 T_MKDIR,
52 T_SYMLINK,
53 T_LINK,
54 T_LSTAT,
55 T_READLINK,
56 T_STATFS,
57 T_CHMOD,
58 T_CHOWN,
59 T_TRUNCATE,
60 T_UTIME,
61 T_RENAME,
62 T_REMOVE,
63 T_LGETXATTR,
64 T_LLISTXATTR,
65 T_LSETXATTR,
66 T_LREMOVEXATTR,
67 T_GETVERSION,
70 typedef struct {
71 uint64_t st_dev;
72 uint64_t st_ino;
73 uint64_t st_nlink;
74 uint32_t st_mode;
75 uint32_t st_uid;
76 uint32_t st_gid;
77 uint64_t st_rdev;
78 uint64_t st_size;
79 uint64_t st_blksize;
80 uint64_t st_blocks;
81 uint64_t st_atim_sec;
82 uint64_t st_atim_nsec;
83 uint64_t st_mtim_sec;
84 uint64_t st_mtim_nsec;
85 uint64_t st_ctim_sec;
86 uint64_t st_ctim_nsec;
87 } ProxyStat;
89 typedef struct {
90 uint64_t f_type;
91 uint64_t f_bsize;
92 uint64_t f_blocks;
93 uint64_t f_bfree;
94 uint64_t f_bavail;
95 uint64_t f_files;
96 uint64_t f_ffree;
97 uint64_t f_fsid[2];
98 uint64_t f_namelen;
99 uint64_t f_frsize;
100 } ProxyStatFS;
101 #endif