| #ifndef QEMU_9P_MARSHAL_H | 
 | #define QEMU_9P_MARSHAL_H | 
 |  | 
 | #include "p9array.h" | 
 |  | 
 | typedef struct V9fsString { | 
 |     uint16_t size; | 
 |     char *data; | 
 | } V9fsString; | 
 | P9ARRAY_DECLARE_TYPE(V9fsString); | 
 |  | 
 | typedef struct V9fsQID { | 
 |     uint8_t type; | 
 |     uint32_t version; | 
 |     uint64_t path; | 
 | } V9fsQID; | 
 |  | 
 | typedef struct V9fsStat { | 
 |     int16_t size; | 
 |     int16_t type; | 
 |     int32_t dev; | 
 |     V9fsQID qid; | 
 |     int32_t mode; | 
 |     int32_t atime; | 
 |     int32_t mtime; | 
 |     int64_t length; | 
 |     V9fsString name; | 
 |     V9fsString uid; | 
 |     V9fsString gid; | 
 |     V9fsString muid; | 
 |     /* 9p2000.u */ | 
 |     V9fsString extension; | 
 |     int32_t n_uid; | 
 |     int32_t n_gid; | 
 |     int32_t n_muid; | 
 | } V9fsStat; | 
 |  | 
 | typedef struct V9fsIattr { | 
 |     int32_t valid; | 
 |     int32_t mode; | 
 |     int32_t uid; | 
 |     int32_t gid; | 
 |     int64_t size; | 
 |     int64_t atime_sec; | 
 |     int64_t atime_nsec; | 
 |     int64_t mtime_sec; | 
 |     int64_t mtime_nsec; | 
 | } V9fsIattr; | 
 |  | 
 | typedef struct V9fsStatDotl { | 
 |     uint64_t st_result_mask; | 
 |     V9fsQID qid; | 
 |     uint32_t st_mode; | 
 |     uint32_t st_uid; | 
 |     uint32_t st_gid; | 
 |     uint64_t st_nlink; | 
 |     uint64_t st_rdev; | 
 |     uint64_t st_size; | 
 |     uint64_t st_blksize; | 
 |     uint64_t st_blocks; | 
 |     uint64_t st_atime_sec; | 
 |     uint64_t st_atime_nsec; | 
 |     uint64_t st_mtime_sec; | 
 |     uint64_t st_mtime_nsec; | 
 |     uint64_t st_ctime_sec; | 
 |     uint64_t st_ctime_nsec; | 
 |     uint64_t st_btime_sec; | 
 |     uint64_t st_btime_nsec; | 
 |     uint64_t st_gen; | 
 |     uint64_t st_data_version; | 
 | } V9fsStatDotl; | 
 |  | 
 | static inline void v9fs_string_init(V9fsString *str) | 
 | { | 
 |     str->data = NULL; | 
 |     str->size = 0; | 
 | } | 
 | void v9fs_string_free(V9fsString *str); | 
 | void v9fs_string_sprintf(V9fsString *str, const char *fmt, ...); | 
 | void v9fs_string_copy(V9fsString *lhs, V9fsString *rhs); | 
 |  | 
 | #endif |