root / posix-aio-compat.h @ f3e3aa8c
History | View | Annotate | Download (1.4 kB)
1 | 3c529d93 | aliguori | /*
|
---|---|---|---|
2 | 3c529d93 | aliguori | * QEMU posix-aio emulation
|
3 | 3c529d93 | aliguori | *
|
4 | 3c529d93 | aliguori | * Copyright IBM, Corp. 2008
|
5 | 3c529d93 | aliguori | *
|
6 | 3c529d93 | aliguori | * Authors:
|
7 | 3c529d93 | aliguori | * Anthony Liguori <aliguori@us.ibm.com>
|
8 | 3c529d93 | aliguori | *
|
9 | 3c529d93 | aliguori | * This work is licensed under the terms of the GNU GPL, version 2. See
|
10 | 3c529d93 | aliguori | * the COPYING file in the top-level directory.
|
11 | 3c529d93 | aliguori | *
|
12 | 3c529d93 | aliguori | */
|
13 | 3c529d93 | aliguori | |
14 | 3c529d93 | aliguori | #ifndef QEMU_POSIX_AIO_COMPAT_H
|
15 | 3c529d93 | aliguori | #define QEMU_POSIX_AIO_COMPAT_H
|
16 | 3c529d93 | aliguori | |
17 | 3c529d93 | aliguori | #include <sys/types.h> |
18 | 3c529d93 | aliguori | #include <unistd.h> |
19 | 3c529d93 | aliguori | #include <signal.h> |
20 | 3c529d93 | aliguori | |
21 | 3c529d93 | aliguori | #include "sys-queue.h" |
22 | 3c529d93 | aliguori | |
23 | 3c529d93 | aliguori | #define QEMU_PAIO_CANCELED 0x01 |
24 | 3c529d93 | aliguori | #define QEMU_PAIO_NOTCANCELED 0x02 |
25 | 3c529d93 | aliguori | #define QEMU_PAIO_ALLDONE 0x03 |
26 | 3c529d93 | aliguori | |
27 | 3c529d93 | aliguori | struct qemu_paiocb
|
28 | 3c529d93 | aliguori | { |
29 | 3c529d93 | aliguori | int aio_fildes;
|
30 | 3c529d93 | aliguori | void *aio_buf;
|
31 | 3c529d93 | aliguori | size_t aio_nbytes; |
32 | 221f715d | aliguori | #define aio_ioctl_cmd aio_nbytes /* for QEMU_PAIO_IOCTL */ |
33 | 55f11ca3 | blueswir1 | int ev_signo;
|
34 | 3c529d93 | aliguori | off_t aio_offset; |
35 | 3c529d93 | aliguori | |
36 | 3c529d93 | aliguori | /* private */
|
37 | 3c529d93 | aliguori | TAILQ_ENTRY(qemu_paiocb) node; |
38 | 221f715d | aliguori | int aio_type;
|
39 | 221f715d | aliguori | #define QEMU_PAIO_READ 0x01 |
40 | 221f715d | aliguori | #define QEMU_PAIO_WRITE 0x02 |
41 | 221f715d | aliguori | #define QEMU_PAIO_IOCTL 0x03 |
42 | 3c529d93 | aliguori | ssize_t ret; |
43 | 3c529d93 | aliguori | int active;
|
44 | 3c529d93 | aliguori | }; |
45 | 3c529d93 | aliguori | |
46 | 3c529d93 | aliguori | struct qemu_paioinit
|
47 | 3c529d93 | aliguori | { |
48 | 3c529d93 | aliguori | unsigned int aio_threads; |
49 | 3c529d93 | aliguori | unsigned int aio_num; |
50 | 3c529d93 | aliguori | unsigned int aio_idle_time; |
51 | 3c529d93 | aliguori | }; |
52 | 3c529d93 | aliguori | |
53 | 3c529d93 | aliguori | int qemu_paio_init(struct qemu_paioinit *aioinit); |
54 | 3c529d93 | aliguori | int qemu_paio_read(struct qemu_paiocb *aiocb); |
55 | 3c529d93 | aliguori | int qemu_paio_write(struct qemu_paiocb *aiocb); |
56 | 221f715d | aliguori | int qemu_paio_ioctl(struct qemu_paiocb *aiocb); |
57 | 3c529d93 | aliguori | int qemu_paio_error(struct qemu_paiocb *aiocb); |
58 | 3c529d93 | aliguori | ssize_t qemu_paio_return(struct qemu_paiocb *aiocb);
|
59 | 3c529d93 | aliguori | int qemu_paio_cancel(int fd, struct qemu_paiocb *aiocb); |
60 | 3c529d93 | aliguori | |
61 | 3c529d93 | aliguori | #endif |