|
|
1.1 ! root 1: /* ! 2: * Virtio 9p Proxy callback ! 3: * ! 4: * Copyright IBM, Corp. 2011 ! 5: * ! 6: * Authors: ! 7: * M. Mohan Kumar <[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: #ifndef _QEMU_VIRTIO_9P_PROXY_H ! 13: #define _QEMU_VIRTIO_9P_PROXY_H ! 14: ! 15: #define PROXY_MAX_IO_SZ (64 * 1024) ! 16: #define V9FS_FD_VALID INT_MAX ! 17: ! 18: /* ! 19: * proxy iovec only support one element and ! 20: * marsha/unmarshal doesn't do little endian conversion. ! 21: */ ! 22: #define proxy_unmarshal(in_sg, offset, fmt, args...) \ ! 23: v9fs_unmarshal(in_sg, 1, offset, 0, fmt, ##args) ! 24: #define proxy_marshal(out_sg, offset, fmt, args...) \ ! 25: v9fs_marshal(out_sg, 1, offset, 0, fmt, ##args) ! 26: ! 27: union MsgControl { ! 28: struct cmsghdr cmsg; ! 29: char control[CMSG_SPACE(sizeof(int))]; ! 30: }; ! 31: ! 32: typedef struct { ! 33: uint32_t type; ! 34: uint32_t size; ! 35: } ProxyHeader; ! 36: ! 37: #define PROXY_HDR_SZ (sizeof(ProxyHeader)) ! 38: ! 39: enum { ! 40: T_SUCCESS = 0, ! 41: T_ERROR, ! 42: T_OPEN, ! 43: T_CREATE, ! 44: T_MKNOD, ! 45: T_MKDIR, ! 46: T_SYMLINK, ! 47: T_LINK, ! 48: T_LSTAT, ! 49: T_READLINK, ! 50: T_STATFS, ! 51: T_CHMOD, ! 52: T_CHOWN, ! 53: T_TRUNCATE, ! 54: T_UTIME, ! 55: T_RENAME, ! 56: T_REMOVE, ! 57: T_LGETXATTR, ! 58: T_LLISTXATTR, ! 59: T_LSETXATTR, ! 60: T_LREMOVEXATTR, ! 61: T_GETVERSION, ! 62: }; ! 63: ! 64: typedef struct { ! 65: uint64_t st_dev; ! 66: uint64_t st_ino; ! 67: uint64_t st_nlink; ! 68: uint32_t st_mode; ! 69: uint32_t st_uid; ! 70: uint32_t st_gid; ! 71: uint64_t st_rdev; ! 72: uint64_t st_size; ! 73: uint64_t st_blksize; ! 74: uint64_t st_blocks; ! 75: uint64_t st_atim_sec; ! 76: uint64_t st_atim_nsec; ! 77: uint64_t st_mtim_sec; ! 78: uint64_t st_mtim_nsec; ! 79: uint64_t st_ctim_sec; ! 80: uint64_t st_ctim_nsec; ! 81: } ProxyStat; ! 82: ! 83: typedef struct { ! 84: uint64_t f_type; ! 85: uint64_t f_bsize; ! 86: uint64_t f_blocks; ! 87: uint64_t f_bfree; ! 88: uint64_t f_bavail; ! 89: uint64_t f_files; ! 90: uint64_t f_ffree; ! 91: uint64_t f_fsid[2]; ! 92: uint64_t f_namelen; ! 93: uint64_t f_frsize; ! 94: } ProxyStatFS; ! 95: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.