1c4d7847bSPekka Enberg #ifndef KVM_READ_WRITE_H 2c4d7847bSPekka Enberg #define KVM_READ_WRITE_H 3c4d7847bSPekka Enberg 4c4d7847bSPekka Enberg #include <sys/types.h> 51547507fSSasha Levin #include <sys/uio.h> 6c4d7847bSPekka Enberg #include <unistd.h> 7c4d7847bSPekka Enberg 81664498dSSasha Levin #ifdef CONFIG_HAS_AIO 91664498dSSasha Levin #include <libaio.h> 101664498dSSasha Levin #endif 111664498dSSasha Levin 12c4d7847bSPekka Enberg ssize_t xread(int fd, void *buf, size_t count); 13c4d7847bSPekka Enberg ssize_t xwrite(int fd, const void *buf, size_t count); 14c4d7847bSPekka Enberg 15*649f9515SAndre Przywara ssize_t read_file(int fd, char *buf, size_t max_size); 16*649f9515SAndre Przywara 17c4d7847bSPekka Enberg ssize_t read_in_full(int fd, void *buf, size_t count); 18c4d7847bSPekka Enberg ssize_t write_in_full(int fd, const void *buf, size_t count); 19c4d7847bSPekka Enberg 206b7deb02SPekka Enberg ssize_t xpread(int fd, void *buf, size_t count, off_t offset); 216b7deb02SPekka Enberg ssize_t xpwrite(int fd, const void *buf, size_t count, off_t offset); 226b7deb02SPekka Enberg 236b7deb02SPekka Enberg ssize_t pread_in_full(int fd, void *buf, size_t count, off_t offset); 246b7deb02SPekka Enberg ssize_t pwrite_in_full(int fd, const void *buf, size_t count, off_t offset); 256b7deb02SPekka Enberg 261547507fSSasha Levin ssize_t xreadv(int fd, const struct iovec *iov, int iovcnt); 271547507fSSasha Levin ssize_t xwritev(int fd, const struct iovec *iov, int iovcnt); 281547507fSSasha Levin 291547507fSSasha Levin ssize_t readv_in_full(int fd, const struct iovec *iov, int iovcnt); 301547507fSSasha Levin ssize_t writev_in_full(int fd, const struct iovec *iov, int iovcnt); 311547507fSSasha Levin 321547507fSSasha Levin ssize_t xpreadv(int fd, const struct iovec *iov, int iovcnt, off_t offset); 331547507fSSasha Levin ssize_t xpwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset); 341547507fSSasha Levin 351547507fSSasha Levin ssize_t preadv_in_full(int fd, const struct iovec *iov, int iovcnt, off_t offset); 361547507fSSasha Levin ssize_t pwritev_in_full(int fd, const struct iovec *iov, int iovcnt, off_t offset); 371547507fSSasha Levin 381664498dSSasha Levin #ifdef CONFIG_HAS_AIO 391664498dSSasha Levin int aio_preadv(io_context_t ctx, struct iocb *iocb, int fd, const struct iovec *iov, int iovcnt, 401664498dSSasha Levin off_t offset, int ev, void *param); 411664498dSSasha Levin int aio_pwritev(io_context_t ctx, struct iocb *iocb, int fd, const struct iovec *iov, int iovcnt, 421664498dSSasha Levin off_t offset, int ev, void *param); 431664498dSSasha Levin #endif 441664498dSSasha Levin 45c4d7847bSPekka Enberg #endif /* KVM_READ_WRITE_H */ 46