1 /*
2  * QEMU event-loop backend
3  *
4  * Copyright (C) 2022 Red Hat Inc
5  *
6  * Authors:
7  *  Nicolas Saenz Julienne <nsaenzju@redhat.com>
8  *
9  * This work is licensed under the terms of the GNU GPL, version 2 or later.
10  * See the COPYING file in the top-level directory.
11  */
12 #ifndef QEMU_EVENT_LOOP_BASE_H
13 #define QEMU_EVENT_LOOP_BASE_H
14 
15 #include "qom/object.h"
16 #include "block/aio.h"
17 #include "qemu/typedefs.h"
18 
19 #define TYPE_EVENT_LOOP_BASE         "event-loop-base"
20 OBJECT_DECLARE_TYPE(EventLoopBase, EventLoopBaseClass,
21                     EVENT_LOOP_BASE)
22 
23 struct EventLoopBaseClass {
24     ObjectClass parent_class;
25 
26     void (*init)(EventLoopBase *base, Error **errp);
27     void (*update_params)(EventLoopBase *base, Error **errp);
28     bool (*can_be_deleted)(EventLoopBase *base);
29 };
30 
31 struct EventLoopBase {
32     Object parent;
33 
34     /* AioContext AIO engine parameters */
35     int64_t aio_max_batch;
36 
37     /* AioContext thread pool parameters */
38     int64_t thread_pool_min;
39     int64_t thread_pool_max;
40 };
41 #endif
42