Statistics
| Branch: | Revision:

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