1 #ifndef KVM_READ_WRITE_H 2 #define KVM_READ_WRITE_H 3 4 #include <sys/types.h> 5 #include <sys/uio.h> 6 #include <unistd.h> 7 8 #ifdef CONFIG_HAS_AIO 9 #include <libaio.h> 10 #endif 11 12 ssize_t xread(int fd, void *buf, size_t count); 13 ssize_t xwrite(int fd, const void *buf, size_t count); 14 15 ssize_t read_file(int fd, char *buf, size_t max_size); 16 17 ssize_t read_in_full(int fd, void *buf, size_t count); 18 ssize_t write_in_full(int fd, const void *buf, size_t count); 19 20 ssize_t xpread(int fd, void *buf, size_t count, off_t offset); 21 ssize_t xpwrite(int fd, const void *buf, size_t count, off_t offset); 22 23 ssize_t pread_in_full(int fd, void *buf, size_t count, off_t offset); 24 ssize_t pwrite_in_full(int fd, const void *buf, size_t count, off_t offset); 25 26 ssize_t xreadv(int fd, const struct iovec *iov, int iovcnt); 27 ssize_t xwritev(int fd, const struct iovec *iov, int iovcnt); 28 29 ssize_t readv_in_full(int fd, const struct iovec *iov, int iovcnt); 30 ssize_t writev_in_full(int fd, const struct iovec *iov, int iovcnt); 31 32 ssize_t xpreadv(int fd, const struct iovec *iov, int iovcnt, off_t offset); 33 ssize_t xpwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset); 34 35 ssize_t preadv_in_full(int fd, const struct iovec *iov, int iovcnt, off_t offset); 36 ssize_t pwritev_in_full(int fd, const struct iovec *iov, int iovcnt, off_t offset); 37 38 #ifdef CONFIG_HAS_AIO 39 int aio_preadv(io_context_t ctx, struct iocb *iocb, int fd, const struct iovec *iov, int iovcnt, 40 off_t offset, int ev, void *param); 41 int aio_pwritev(io_context_t ctx, struct iocb *iocb, int fd, const struct iovec *iov, int iovcnt, 42 off_t offset, int ev, void *param); 43 #endif 44 45 #endif /* KVM_READ_WRITE_H */ 46