|
|
1.1 ! root 1: #ifndef _QEMU_VIRTIO_9P_MARSHAL_H ! 2: #define _QEMU_VIRTIO_9P_MARSHAL_H ! 3: ! 4: typedef struct V9fsString ! 5: { ! 6: uint16_t size; ! 7: char *data; ! 8: } V9fsString; ! 9: ! 10: typedef struct V9fsQID ! 11: { ! 12: int8_t type; ! 13: int32_t version; ! 14: int64_t path; ! 15: } V9fsQID; ! 16: ! 17: typedef struct V9fsStat ! 18: { ! 19: int16_t size; ! 20: int16_t type; ! 21: int32_t dev; ! 22: V9fsQID qid; ! 23: int32_t mode; ! 24: int32_t atime; ! 25: int32_t mtime; ! 26: int64_t length; ! 27: V9fsString name; ! 28: V9fsString uid; ! 29: V9fsString gid; ! 30: V9fsString muid; ! 31: /* 9p2000.u */ ! 32: V9fsString extension; ! 33: int32_t n_uid; ! 34: int32_t n_gid; ! 35: int32_t n_muid; ! 36: } V9fsStat; ! 37: ! 38: typedef struct V9fsIattr ! 39: { ! 40: int32_t valid; ! 41: int32_t mode; ! 42: int32_t uid; ! 43: int32_t gid; ! 44: int64_t size; ! 45: int64_t atime_sec; ! 46: int64_t atime_nsec; ! 47: int64_t mtime_sec; ! 48: int64_t mtime_nsec; ! 49: } V9fsIattr; ! 50: ! 51: typedef struct V9fsStatDotl { ! 52: uint64_t st_result_mask; ! 53: V9fsQID qid; ! 54: uint32_t st_mode; ! 55: uint32_t st_uid; ! 56: uint32_t st_gid; ! 57: uint64_t st_nlink; ! 58: uint64_t st_rdev; ! 59: uint64_t st_size; ! 60: uint64_t st_blksize; ! 61: uint64_t st_blocks; ! 62: uint64_t st_atime_sec; ! 63: uint64_t st_atime_nsec; ! 64: uint64_t st_mtime_sec; ! 65: uint64_t st_mtime_nsec; ! 66: uint64_t st_ctime_sec; ! 67: uint64_t st_ctime_nsec; ! 68: uint64_t st_btime_sec; ! 69: uint64_t st_btime_nsec; ! 70: uint64_t st_gen; ! 71: uint64_t st_data_version; ! 72: } V9fsStatDotl; ! 73: ! 74: static inline void v9fs_string_init(V9fsString *str) ! 75: { ! 76: str->data = NULL; ! 77: str->size = 0; ! 78: } ! 79: extern void v9fs_string_free(V9fsString *str); ! 80: extern void v9fs_string_null(V9fsString *str); ! 81: extern void v9fs_string_sprintf(V9fsString *str, const char *fmt, ...); ! 82: extern void v9fs_string_copy(V9fsString *lhs, V9fsString *rhs); ! 83: ! 84: ssize_t v9fs_pack(struct iovec *in_sg, int in_num, size_t offset, ! 85: const void *src, size_t size); ! 86: ssize_t v9fs_unmarshal(struct iovec *out_sg, int out_num, size_t offset, ! 87: int bswap, const char *fmt, ...); ! 88: ssize_t v9fs_marshal(struct iovec *in_sg, int in_num, size_t offset, ! 89: int bswap, const char *fmt, ...); ! 90: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.