]>
Commit | Line | Data |
---|---|---|
9db221ae | 1 | /* |
364031f1 | 2 | * 9p |
9db221ae AK |
3 | * |
4 | * Copyright IBM, Corp. 2011 | |
5 | * | |
6 | * Authors: | |
7 | * Aneesh Kumar K.V <[email protected]> | |
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 | ||
121d0712 MA |
14 | #ifndef QEMU_9P_SYNTH_H |
15 | #define QEMU_9P_SYNTH_H | |
9db221ae AK |
16 | |
17 | typedef struct V9fsSynthNode V9fsSynthNode; | |
18 | typedef ssize_t (*v9fs_synth_read)(void *buf, int len, off_t offset, | |
19 | void *arg); | |
20 | typedef ssize_t (*v9fs_synth_write)(void *buf, int len, off_t offset, | |
21 | void *arg); | |
22 | typedef struct V9fsSynthNodeAttr { | |
23 | int mode; | |
24 | int inode; | |
25 | int nlink; | |
26 | v9fs_synth_read read; | |
27 | v9fs_synth_write write; | |
28 | } V9fsSynthNodeAttr; | |
29 | ||
30 | struct V9fsSynthNode { | |
31 | QLIST_HEAD(, V9fsSynthNode) child; | |
32 | QLIST_ENTRY(V9fsSynthNode) sibling; | |
33 | char name[NAME_MAX]; | |
34 | V9fsSynthNodeAttr *attr; | |
35 | V9fsSynthNodeAttr actual_attr; | |
36 | void *private; | |
37 | int open_count; | |
38 | }; | |
39 | ||
40 | typedef struct V9fsSynthOpenState { | |
41 | off_t offset; | |
42 | V9fsSynthNode *node; | |
635324e8 | 43 | struct dirent dent; |
9db221ae AK |
44 | } V9fsSynthOpenState; |
45 | ||
bc70a592 GK |
46 | int qemu_v9fs_synth_mkdir(V9fsSynthNode *parent, int mode, |
47 | const char *name, V9fsSynthNode **result); | |
48 | int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, int mode, | |
49 | const char *name, v9fs_synth_read read, | |
50 | v9fs_synth_write write, void *arg); | |
cb9c377f PB |
51 | |
52 | #endif |