Statistics
| Branch: | Revision:

root / block / raw-posix-aio.h @ 1e5b9d2f

History | View | Annotate | Download (1.3 kB)

1
/*
2
 * QEMU Posix block I/O backend AIO support
3
 *
4
 * Copyright IBM, Corp. 2008
5
 *
6
 * Authors:
7
 *  Anthony Liguori   <aliguori@us.ibm.com>
8
 *
9
 * This work is licensed under the terms of the GNU GPL, version 2.  See
10
 * the COPYING file in the top-level directory.
11
 *
12
 */
13
#ifndef QEMU_RAW_POSIX_AIO_H
14
#define QEMU_RAW_POSIX_AIO_H
15

    
16
/* AIO request types */
17
#define QEMU_AIO_READ         0x0001
18
#define QEMU_AIO_WRITE        0x0002
19
#define QEMU_AIO_IOCTL        0x0004
20
#define QEMU_AIO_FLUSH        0x0008
21
#define QEMU_AIO_TYPE_MASK \
22
        (QEMU_AIO_READ|QEMU_AIO_WRITE|QEMU_AIO_IOCTL|QEMU_AIO_FLUSH)
23

    
24
/* AIO flags */
25
#define QEMU_AIO_MISALIGNED   0x1000
26

    
27

    
28
/* posix-aio-compat.c - thread pool based implementation */
29
int paio_init(void);
30
BlockDriverAIOCB *paio_submit(BlockDriverState *bs, int fd,
31
        int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
32
        BlockDriverCompletionFunc *cb, void *opaque, int type);
33
BlockDriverAIOCB *paio_ioctl(BlockDriverState *bs, int fd,
34
        unsigned long int req, void *buf,
35
        BlockDriverCompletionFunc *cb, void *opaque);
36

    
37
/* linux-aio.c - Linux native implementation */
38
void *laio_init(void);
39
BlockDriverAIOCB *laio_submit(BlockDriverState *bs, void *aio_ctx, int fd,
40
        int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
41
        BlockDriverCompletionFunc *cb, void *opaque, int type);
42

    
43
#endif /* QEMU_RAW_POSIX_AIO_H */