0c262f81b94301e0c57c92a52aa097a8fa496d26
[sdk/emulator/qemu.git] / fsdev / 9p-marshal.h
1 #ifndef _QEMU_9P_MARSHAL_H
2 #define _QEMU_9P_MARSHAL_H
3
4 #ifdef CONFIG_MARU
5 #ifdef CONFIG_WIN32
6 #include "tizen/src/resources_win32.h"
7 #endif
8 #endif
9
10 typedef struct V9fsString
11 {
12     uint16_t size;
13     char *data;
14 } V9fsString;
15
16 typedef struct V9fsQID
17 {
18     int8_t type;
19     int32_t version;
20     int64_t path;
21 } V9fsQID;
22
23 typedef struct V9fsStat
24 {
25     int16_t size;
26     int16_t type;
27     int32_t dev;
28     V9fsQID qid;
29     int32_t mode;
30     int32_t atime;
31     int32_t mtime;
32     int64_t length;
33     V9fsString name;
34     V9fsString uid;
35     V9fsString gid;
36     V9fsString muid;
37     /* 9p2000.u */
38     V9fsString extension;
39     int32_t n_uid;
40     int32_t n_gid;
41     int32_t n_muid;
42 } V9fsStat;
43
44 typedef struct V9fsIattr
45 {
46     int32_t valid;
47     int32_t mode;
48     int32_t uid;
49     int32_t gid;
50     int64_t size;
51     int64_t atime_sec;
52     int64_t atime_nsec;
53     int64_t mtime_sec;
54     int64_t mtime_nsec;
55 } V9fsIattr;
56
57 typedef struct V9fsStatDotl {
58     uint64_t st_result_mask;
59     V9fsQID qid;
60     uint32_t st_mode;
61     uint32_t st_uid;
62     uint32_t st_gid;
63     uint64_t st_nlink;
64     uint64_t st_rdev;
65     uint64_t st_size;
66     uint64_t st_blksize;
67     uint64_t st_blocks;
68     uint64_t st_atime_sec;
69     uint64_t st_atime_nsec;
70     uint64_t st_mtime_sec;
71     uint64_t st_mtime_nsec;
72     uint64_t st_ctime_sec;
73     uint64_t st_ctime_nsec;
74     uint64_t st_btime_sec;
75     uint64_t st_btime_nsec;
76     uint64_t st_gen;
77     uint64_t st_data_version;
78 } V9fsStatDotl;
79
80 static inline void v9fs_string_init(V9fsString *str)
81 {
82     str->data = NULL;
83     str->size = 0;
84 }
85 extern void v9fs_string_free(V9fsString *str);
86 extern void v9fs_string_null(V9fsString *str);
87 extern void v9fs_string_sprintf(V9fsString *str, const char *fmt, ...);
88 extern void v9fs_string_copy(V9fsString *lhs, V9fsString *rhs);
89
90 #endif