root / hw / 9pfs / virtio-9p-proxy.h @ 1f51470d
History | View | Annotate | Download (1.9 kB)
1 | 4c793dda | M. Mohan Kumar | /*
|
---|---|---|---|
2 | 4c793dda | M. Mohan Kumar | * Virtio 9p Proxy callback
|
3 | 4c793dda | M. Mohan Kumar | *
|
4 | 4c793dda | M. Mohan Kumar | * Copyright IBM, Corp. 2011
|
5 | 4c793dda | M. Mohan Kumar | *
|
6 | 4c793dda | M. Mohan Kumar | * Authors:
|
7 | 4c793dda | M. Mohan Kumar | * M. Mohan Kumar <mohan@in.ibm.com>
|
8 | 4c793dda | M. Mohan Kumar | *
|
9 | 4c793dda | M. Mohan Kumar | * This work is licensed under the terms of the GNU GPL, version 2. See
|
10 | 4c793dda | M. Mohan Kumar | * the COPYING file in the top-level directory.
|
11 | 4c793dda | M. Mohan Kumar | */
|
12 | 4c793dda | M. Mohan Kumar | #ifndef _QEMU_VIRTIO_9P_PROXY_H
|
13 | 4c793dda | M. Mohan Kumar | #define _QEMU_VIRTIO_9P_PROXY_H
|
14 | 4c793dda | M. Mohan Kumar | |
15 | 4c793dda | M. Mohan Kumar | #define PROXY_MAX_IO_SZ (64 * 1024) |
16 | daf0b9ac | M. Mohan Kumar | #define V9FS_FD_VALID INT_MAX
|
17 | 4c793dda | M. Mohan Kumar | |
18 | 17bff52b | M. Mohan Kumar | /*
|
19 | 17bff52b | M. Mohan Kumar | * proxy iovec only support one element and
|
20 | 17bff52b | M. Mohan Kumar | * marsha/unmarshal doesn't do little endian conversion.
|
21 | 17bff52b | M. Mohan Kumar | */
|
22 | 17bff52b | M. Mohan Kumar | #define proxy_unmarshal(in_sg, offset, fmt, args...) \
|
23 | 17bff52b | M. Mohan Kumar | v9fs_unmarshal(in_sg, 1, offset, 0, fmt, ##args) |
24 | 17bff52b | M. Mohan Kumar | #define proxy_marshal(out_sg, offset, fmt, args...) \
|
25 | 17bff52b | M. Mohan Kumar | v9fs_marshal(out_sg, 1, offset, 0, fmt, ##args) |
26 | 17bff52b | M. Mohan Kumar | |
27 | daf0b9ac | M. Mohan Kumar | union MsgControl {
|
28 | daf0b9ac | M. Mohan Kumar | struct cmsghdr cmsg;
|
29 | daf0b9ac | M. Mohan Kumar | char control[CMSG_SPACE(sizeof(int))]; |
30 | daf0b9ac | M. Mohan Kumar | }; |
31 | daf0b9ac | M. Mohan Kumar | |
32 | 4c793dda | M. Mohan Kumar | typedef struct { |
33 | 4c793dda | M. Mohan Kumar | uint32_t type; |
34 | 4c793dda | M. Mohan Kumar | uint32_t size; |
35 | 4c793dda | M. Mohan Kumar | } ProxyHeader; |
36 | 4c793dda | M. Mohan Kumar | |
37 | 4c793dda | M. Mohan Kumar | #define PROXY_HDR_SZ (sizeof(ProxyHeader)) |
38 | 4c793dda | M. Mohan Kumar | |
39 | daf0b9ac | M. Mohan Kumar | enum {
|
40 | 39f8c32c | M. Mohan Kumar | T_SUCCESS = 0,
|
41 | 39f8c32c | M. Mohan Kumar | T_ERROR, |
42 | 39f8c32c | M. Mohan Kumar | T_OPEN, |
43 | daf0b9ac | M. Mohan Kumar | T_CREATE, |
44 | 39f8c32c | M. Mohan Kumar | T_MKNOD, |
45 | 39f8c32c | M. Mohan Kumar | T_MKDIR, |
46 | 39f8c32c | M. Mohan Kumar | T_SYMLINK, |
47 | 39f8c32c | M. Mohan Kumar | T_LINK, |
48 | b178adc3 | M. Mohan Kumar | T_LSTAT, |
49 | b178adc3 | M. Mohan Kumar | T_READLINK, |
50 | b178adc3 | M. Mohan Kumar | T_STATFS, |
51 | ea75fc4e | M. Mohan Kumar | T_CHMOD, |
52 | ea75fc4e | M. Mohan Kumar | T_CHOWN, |
53 | ea75fc4e | M. Mohan Kumar | T_TRUNCATE, |
54 | ea75fc4e | M. Mohan Kumar | T_UTIME, |
55 | ea75fc4e | M. Mohan Kumar | T_RENAME, |
56 | ea75fc4e | M. Mohan Kumar | T_REMOVE, |
57 | d52b09e4 | M. Mohan Kumar | T_LGETXATTR, |
58 | d52b09e4 | M. Mohan Kumar | T_LLISTXATTR, |
59 | d52b09e4 | M. Mohan Kumar | T_LSETXATTR, |
60 | d52b09e4 | M. Mohan Kumar | T_LREMOVEXATTR, |
61 | d090e452 | M. Mohan Kumar | T_GETVERSION, |
62 | daf0b9ac | M. Mohan Kumar | }; |
63 | daf0b9ac | M. Mohan Kumar | |
64 | b178adc3 | M. Mohan Kumar | typedef struct { |
65 | b178adc3 | M. Mohan Kumar | uint64_t st_dev; |
66 | b178adc3 | M. Mohan Kumar | uint64_t st_ino; |
67 | b178adc3 | M. Mohan Kumar | uint64_t st_nlink; |
68 | b178adc3 | M. Mohan Kumar | uint32_t st_mode; |
69 | b178adc3 | M. Mohan Kumar | uint32_t st_uid; |
70 | b178adc3 | M. Mohan Kumar | uint32_t st_gid; |
71 | b178adc3 | M. Mohan Kumar | uint64_t st_rdev; |
72 | b178adc3 | M. Mohan Kumar | uint64_t st_size; |
73 | b178adc3 | M. Mohan Kumar | uint64_t st_blksize; |
74 | b178adc3 | M. Mohan Kumar | uint64_t st_blocks; |
75 | b178adc3 | M. Mohan Kumar | uint64_t st_atim_sec; |
76 | b178adc3 | M. Mohan Kumar | uint64_t st_atim_nsec; |
77 | b178adc3 | M. Mohan Kumar | uint64_t st_mtim_sec; |
78 | b178adc3 | M. Mohan Kumar | uint64_t st_mtim_nsec; |
79 | b178adc3 | M. Mohan Kumar | uint64_t st_ctim_sec; |
80 | b178adc3 | M. Mohan Kumar | uint64_t st_ctim_nsec; |
81 | b178adc3 | M. Mohan Kumar | } ProxyStat; |
82 | b178adc3 | M. Mohan Kumar | |
83 | b178adc3 | M. Mohan Kumar | typedef struct { |
84 | b178adc3 | M. Mohan Kumar | uint64_t f_type; |
85 | b178adc3 | M. Mohan Kumar | uint64_t f_bsize; |
86 | b178adc3 | M. Mohan Kumar | uint64_t f_blocks; |
87 | b178adc3 | M. Mohan Kumar | uint64_t f_bfree; |
88 | b178adc3 | M. Mohan Kumar | uint64_t f_bavail; |
89 | b178adc3 | M. Mohan Kumar | uint64_t f_files; |
90 | b178adc3 | M. Mohan Kumar | uint64_t f_ffree; |
91 | b178adc3 | M. Mohan Kumar | uint64_t f_fsid[2];
|
92 | b178adc3 | M. Mohan Kumar | uint64_t f_namelen; |
93 | b178adc3 | M. Mohan Kumar | uint64_t f_frsize; |
94 | b178adc3 | M. Mohan Kumar | } ProxyStatFS; |
95 | 4c793dda | M. Mohan Kumar | #endif |