qemu/fsdev/9p-marshal.h
<<
>>
Prefs
   1#ifndef _QEMU_9P_MARSHAL_H
   2#define _QEMU_9P_MARSHAL_H
   3
   4typedef struct V9fsString
   5{
   6    uint16_t size;
   7    char *data;
   8} V9fsString;
   9
  10typedef struct V9fsQID
  11{
  12    int8_t type;
  13    int32_t version;
  14    int64_t path;
  15} V9fsQID;
  16
  17typedef 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
  38typedef 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
  51typedef 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
  74static inline void v9fs_string_init(V9fsString *str)
  75{
  76    str->data = NULL;
  77    str->size = 0;
  78}
  79extern void v9fs_string_free(V9fsString *str);
  80extern void v9fs_string_null(V9fsString *str);
  81extern void v9fs_string_sprintf(V9fsString *str, const char *fmt, ...);
  82extern void v9fs_string_copy(V9fsString *lhs, V9fsString *rhs);
  83
  84#endif
  85