X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=posix-aio-compat.h;h=1c5dcbd92046e0c59cde4236f5a0d6395cceff67;hb=3c80c6fefbf67ba5b31a05dedf2c4ca716e35881;hp=5eb17043e6f01c51cbef8f49ed96e10286a05fdb;hpb=c9db92fcc1c512b9e0e9928c0f2ac7a74b9cf384;p=qemu diff --git a/posix-aio-compat.h b/posix-aio-compat.h index 5eb1704..1c5dcbd 100644 --- a/posix-aio-compat.h +++ b/posix-aio-compat.h @@ -27,14 +27,25 @@ struct qemu_paiocb { int aio_fildes; - void *aio_buf; + union { + struct iovec *aio_iov; + void *aio_ioctl_buf; + }; + int aio_niov; size_t aio_nbytes; - int sigev_signo; +#define aio_ioctl_cmd aio_nbytes /* for QEMU_PAIO_IOCTL */ + int ev_signo; off_t aio_offset; + unsigned aio_flags; +/* 512 byte alignment required for buffer, offset and length */ +#define QEMU_AIO_SECTOR_ALIGNED 0x01 /* private */ TAILQ_ENTRY(qemu_paiocb) node; - int is_write; + int aio_type; +#define QEMU_PAIO_READ 0x01 +#define QEMU_PAIO_WRITE 0x02 +#define QEMU_PAIO_IOCTL 0x03 ssize_t ret; int active; }; @@ -49,6 +60,7 @@ struct qemu_paioinit int qemu_paio_init(struct qemu_paioinit *aioinit); int qemu_paio_read(struct qemu_paiocb *aiocb); int qemu_paio_write(struct qemu_paiocb *aiocb); +int qemu_paio_ioctl(struct qemu_paiocb *aiocb); int qemu_paio_error(struct qemu_paiocb *aiocb); ssize_t qemu_paio_return(struct qemu_paiocb *aiocb); int qemu_paio_cancel(int fd, struct qemu_paiocb *aiocb);