root / hw / 9pfs / virtio-9p-synth.h @ a8aec295
History | View | Annotate | Download (1.5 kB)
1 | 9db221ae | Aneesh Kumar K.V | /*
|
---|---|---|---|
2 | 9db221ae | Aneesh Kumar K.V | * Virtio 9p
|
3 | 9db221ae | Aneesh Kumar K.V | *
|
4 | 9db221ae | Aneesh Kumar K.V | * Copyright IBM, Corp. 2011
|
5 | 9db221ae | Aneesh Kumar K.V | *
|
6 | 9db221ae | Aneesh Kumar K.V | * Authors:
|
7 | 9db221ae | Aneesh Kumar K.V | * Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
|
8 | 9db221ae | Aneesh Kumar K.V | *
|
9 | 9db221ae | Aneesh Kumar K.V | * This work is licensed under the terms of the GNU GPL, version 2. See
|
10 | 9db221ae | Aneesh Kumar K.V | * the COPYING file in the top-level directory.
|
11 | 9db221ae | Aneesh Kumar K.V | *
|
12 | 9db221ae | Aneesh Kumar K.V | */
|
13 | cb9c377f | Paolo Bonzini | #ifndef HW_9PFS_VIRTIO9P_SYNTH_H
|
14 | cb9c377f | Paolo Bonzini | #define HW_9PFS_VIRTIO9P_SYNTH_H 1 |
15 | 9db221ae | Aneesh Kumar K.V | |
16 | 9db221ae | Aneesh Kumar K.V | #include <unistd.h> |
17 | 9db221ae | Aneesh Kumar K.V | #include <sys/types.h> |
18 | 9db221ae | Aneesh Kumar K.V | #include <limits.h> |
19 | 9db221ae | Aneesh Kumar K.V | |
20 | 9db221ae | Aneesh Kumar K.V | typedef struct V9fsSynthNode V9fsSynthNode; |
21 | 9db221ae | Aneesh Kumar K.V | typedef ssize_t (*v9fs_synth_read)(void *buf, int len, off_t offset, |
22 | 9db221ae | Aneesh Kumar K.V | void *arg);
|
23 | 9db221ae | Aneesh Kumar K.V | typedef ssize_t (*v9fs_synth_write)(void *buf, int len, off_t offset, |
24 | 9db221ae | Aneesh Kumar K.V | void *arg);
|
25 | 9db221ae | Aneesh Kumar K.V | typedef struct V9fsSynthNodeAttr { |
26 | 9db221ae | Aneesh Kumar K.V | int mode;
|
27 | 9db221ae | Aneesh Kumar K.V | int inode;
|
28 | 9db221ae | Aneesh Kumar K.V | int nlink;
|
29 | 9db221ae | Aneesh Kumar K.V | v9fs_synth_read read; |
30 | 9db221ae | Aneesh Kumar K.V | v9fs_synth_write write; |
31 | 9db221ae | Aneesh Kumar K.V | } V9fsSynthNodeAttr; |
32 | 9db221ae | Aneesh Kumar K.V | |
33 | 9db221ae | Aneesh Kumar K.V | struct V9fsSynthNode {
|
34 | 9db221ae | Aneesh Kumar K.V | QLIST_HEAD(, V9fsSynthNode) child; |
35 | 9db221ae | Aneesh Kumar K.V | QLIST_ENTRY(V9fsSynthNode) sibling; |
36 | 9db221ae | Aneesh Kumar K.V | char name[NAME_MAX];
|
37 | 9db221ae | Aneesh Kumar K.V | V9fsSynthNodeAttr *attr; |
38 | 9db221ae | Aneesh Kumar K.V | V9fsSynthNodeAttr actual_attr; |
39 | 9db221ae | Aneesh Kumar K.V | void *private;
|
40 | 9db221ae | Aneesh Kumar K.V | int open_count;
|
41 | 9db221ae | Aneesh Kumar K.V | }; |
42 | 9db221ae | Aneesh Kumar K.V | |
43 | 9db221ae | Aneesh Kumar K.V | typedef struct V9fsSynthOpenState { |
44 | 9db221ae | Aneesh Kumar K.V | off_t offset; |
45 | 9db221ae | Aneesh Kumar K.V | V9fsSynthNode *node; |
46 | 9db221ae | Aneesh Kumar K.V | } V9fsSynthOpenState; |
47 | 9db221ae | Aneesh Kumar K.V | |
48 | 9db221ae | Aneesh Kumar K.V | extern int qemu_v9fs_synth_mkdir(V9fsSynthNode *parent, int mode, |
49 | 9db221ae | Aneesh Kumar K.V | const char *name, V9fsSynthNode **result); |
50 | 9db221ae | Aneesh Kumar K.V | extern int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, int mode, |
51 | 9db221ae | Aneesh Kumar K.V | const char *name, v9fs_synth_read read, |
52 | 9db221ae | Aneesh Kumar K.V | v9fs_synth_write write, void *arg);
|
53 | cb9c377f | Paolo Bonzini | |
54 | cb9c377f | Paolo Bonzini | #endif |