|
|
1.1 root 1: /*
2: * Virtio 9p
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:
14: #include <unistd.h>
15: #include <sys/types.h>
16: #include <limits.h>
17:
18: typedef struct V9fsSynthNode V9fsSynthNode;
19: typedef ssize_t (*v9fs_synth_read)(void *buf, int len, off_t offset,
20: void *arg);
21: typedef ssize_t (*v9fs_synth_write)(void *buf, int len, off_t offset,
22: void *arg);
23: typedef struct V9fsSynthNodeAttr {
24: int mode;
25: int inode;
26: int nlink;
27: v9fs_synth_read read;
28: v9fs_synth_write write;
29: } V9fsSynthNodeAttr;
30:
31: struct V9fsSynthNode {
32: QLIST_HEAD(, V9fsSynthNode) child;
33: QLIST_ENTRY(V9fsSynthNode) sibling;
34: char name[NAME_MAX];
35: V9fsSynthNodeAttr *attr;
36: V9fsSynthNodeAttr actual_attr;
37: void *private;
38: int open_count;
39: };
40:
41: typedef struct V9fsSynthOpenState {
42: off_t offset;
43: V9fsSynthNode *node;
44: } V9fsSynthOpenState;
45:
46: extern int qemu_v9fs_synth_mkdir(V9fsSynthNode *parent, int mode,
47: const char *name, V9fsSynthNode **result);
48: extern 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);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.