xref: /kvmtool/include/kvm/read-write.h (revision 649f9515e623adf982c4e9a9922cfce173fd9de8)
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