symbian-qemu-0.9.1-12/qemu-symbian-svp/posix-aio-compat.h
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 /*
       
     2  * QEMU posix-aio emulation
       
     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 
       
    14 #ifndef QEMU_POSIX_AIO_COMPAT_H
       
    15 #define QEMU_POSIX_AIO_COMPAT_H
       
    16 
       
    17 #include <sys/types.h>
       
    18 #include <unistd.h>
       
    19 #include <signal.h>
       
    20 
       
    21 #include "sys-queue.h"
       
    22 
       
    23 #define QEMU_PAIO_CANCELED     0x01
       
    24 #define QEMU_PAIO_NOTCANCELED  0x02
       
    25 #define QEMU_PAIO_ALLDONE      0x03
       
    26 
       
    27 struct qemu_paiocb
       
    28 {
       
    29     int aio_fildes;
       
    30     void *aio_buf;
       
    31     size_t aio_nbytes;
       
    32     struct sigevent aio_sigevent;
       
    33     off_t aio_offset;
       
    34 
       
    35     /* private */
       
    36     TAILQ_ENTRY(qemu_paiocb) node;
       
    37     int is_write;
       
    38     ssize_t ret;
       
    39     int active;
       
    40 };
       
    41 
       
    42 struct qemu_paioinit
       
    43 {
       
    44     unsigned int aio_threads;
       
    45     unsigned int aio_num;
       
    46     unsigned int aio_idle_time;
       
    47 };
       
    48 
       
    49 int qemu_paio_init(struct qemu_paioinit *aioinit);
       
    50 int qemu_paio_read(struct qemu_paiocb *aiocb);
       
    51 int qemu_paio_write(struct qemu_paiocb *aiocb);
       
    52 int qemu_paio_error(struct qemu_paiocb *aiocb);
       
    53 ssize_t qemu_paio_return(struct qemu_paiocb *aiocb);
       
    54 int qemu_paio_cancel(int fd, struct qemu_paiocb *aiocb);
       
    55 
       
    56 #endif