Statistics
| Branch: | Revision:

root / include / block / thread-pool.h @ f7311ccc

History | View | Annotate | Download (1.1 kB)

1
/*
2
 * QEMU block layer thread pool
3
 *
4
 * Copyright IBM, Corp. 2008
5
 * Copyright Red Hat, Inc. 2012
6
 *
7
 * Authors:
8
 *  Anthony Liguori   <aliguori@us.ibm.com>
9
 *  Paolo Bonzini     <pbonzini@redhat.com>
10
 *
11
 * This work is licensed under the terms of the GNU GPL, version 2.  See
12
 * the COPYING file in the top-level directory.
13
 *
14
 * Contributions after 2012-01-13 are licensed under the terms of the
15
 * GNU GPL, version 2 or (at your option) any later version.
16
 */
17

    
18
#ifndef QEMU_THREAD_POOL_H
19
#define QEMU_THREAD_POOL_H 1
20

    
21
#include "qemu-common.h"
22
#include "qemu/queue.h"
23
#include "qemu/thread.h"
24
#include "block/coroutine.h"
25
#include "block/block_int.h"
26

    
27
typedef int ThreadPoolFunc(void *opaque);
28

    
29
typedef struct ThreadPool ThreadPool;
30

    
31
ThreadPool *thread_pool_new(struct AioContext *ctx);
32
void thread_pool_free(ThreadPool *pool);
33

    
34
BlockDriverAIOCB *thread_pool_submit_aio(ThreadPoolFunc *func, void *arg,
35
     BlockDriverCompletionFunc *cb, void *opaque);
36
int coroutine_fn thread_pool_submit_co(ThreadPoolFunc *func, void *arg);
37
void thread_pool_submit(ThreadPoolFunc *func, void *arg);
38

    
39
#endif