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