Diff for /qemu/qemu-aio.h between versions 1.1.1.3 and 1.1.1.4

version 1.1.1.3, 2018/04/24 17:34:04 version 1.1.1.4, 2018/04/24 19:34:04
Line 17 Line 17
 #include "qemu-common.h"  #include "qemu-common.h"
 #include "qemu-char.h"  #include "qemu-char.h"
   
   typedef struct BlockDriverAIOCB BlockDriverAIOCB;
   typedef void BlockDriverCompletionFunc(void *opaque, int ret);
   
   typedef struct AIOPool {
       void (*cancel)(BlockDriverAIOCB *acb);
       int aiocb_size;
       BlockDriverAIOCB *free_aiocb;
   } AIOPool;
   
   struct BlockDriverAIOCB {
       AIOPool *pool;
       BlockDriverState *bs;
       BlockDriverCompletionFunc *cb;
       void *opaque;
       BlockDriverAIOCB *next;
   };
   
   void *qemu_aio_get(AIOPool *pool, BlockDriverState *bs,
                      BlockDriverCompletionFunc *cb, void *opaque);
   void qemu_aio_release(void *p);
   
 /* Returns 1 if there are still outstanding AIO requests; 0 otherwise */  /* Returns 1 if there are still outstanding AIO requests; 0 otherwise */
 typedef int (AioFlushHandler)(void *opaque);  typedef int (AioFlushHandler)(void *opaque);
   
 /* Runs all currently allowed AIO callbacks of completed requests in the  
  * respective AIO backend. Returns 0 if no requests was handled, non-zero  
  * if at least one queued request was handled. */  
 typedef int (AioProcessQueue)(void *opaque);  
   
 /* Flush any pending AIO operation. This function will block until all  /* Flush any pending AIO operation. This function will block until all
  * outstanding AIO operations have been completed or cancelled. */   * outstanding AIO operations have been completed or cancelled. */
 void qemu_aio_flush(void);  void qemu_aio_flush(void);
Line 32  void qemu_aio_flush(void); Line 48  void qemu_aio_flush(void);
 /* Wait for a single AIO completion to occur.  This function will wait  /* Wait for a single AIO completion to occur.  This function will wait
  * until a single AIO event has completed and it will ensure something   * until a single AIO event has completed and it will ensure something
  * has moved before returning. This can issue new pending aio as   * has moved before returning. This can issue new pending aio as
  * result of executing I/O completion or bh callbacks. */   * result of executing I/O completion or bh callbacks.
 void qemu_aio_wait(void);   *
    * Return whether there is still any pending AIO operation.  */
 /*  bool qemu_aio_wait(void);
  * Runs all currently allowed AIO callbacks of completed requests. Returns 0  
  * if no requests were handled, non-zero if at least one request was  
  * processed.  
  */  
 int qemu_aio_process_queue(void);  
   
 /* Register a file descriptor and associated callbacks.  Behaves very similarly  /* Register a file descriptor and associated callbacks.  Behaves very similarly
  * to qemu_set_fd_handler2.  Unlike qemu_set_fd_handler2, these callbacks will   * to qemu_set_fd_handler2.  Unlike qemu_set_fd_handler2, these callbacks will
Line 53  int qemu_aio_set_fd_handler(int fd, Line 64  int qemu_aio_set_fd_handler(int fd,
                             IOHandler *io_read,                              IOHandler *io_read,
                             IOHandler *io_write,                              IOHandler *io_write,
                             AioFlushHandler *io_flush,                              AioFlushHandler *io_flush,
                             AioProcessQueue *io_process_queue,  
                             void *opaque);                              void *opaque);
   
 #endif  #endif

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.4


unix.superglobalmegacorp.com