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 
18 #define TYPE_EVENT_LOOP_BASE         "event-loop-base"
19 OBJECT_DECLARE_TYPE(EventLoopBase, EventLoopBaseClass,
20                     EVENT_LOOP_BASE)
21 
22 struct EventLoopBaseClass {
23     ObjectClass parent_class;
24 
25     void (*init)(EventLoopBase *base, Error **errp);
26     void (*update_params)(EventLoopBase *base, Error **errp);
27     bool (*can_be_deleted)(EventLoopBase *base);
28 };
29 
30 struct EventLoopBase {
31     Object parent;
32 
33     /* AioContext AIO engine parameters */
34     int64_t aio_max_batch;
35 
36     /* AioContext thread pool parameters */
37     int64_t thread_pool_min;
38     int64_t thread_pool_max;
39 };
40 #endif
41