17d5983e3SNicolas Saenz Julienne /*
27d5983e3SNicolas Saenz Julienne  * QEMU event-loop backend
37d5983e3SNicolas Saenz Julienne  *
47d5983e3SNicolas Saenz Julienne  * Copyright (C) 2022 Red Hat Inc
57d5983e3SNicolas Saenz Julienne  *
67d5983e3SNicolas Saenz Julienne  * Authors:
77d5983e3SNicolas Saenz Julienne  *  Nicolas Saenz Julienne <nsaenzju@redhat.com>
87d5983e3SNicolas Saenz Julienne  *
97d5983e3SNicolas Saenz Julienne  * This work is licensed under the terms of the GNU GPL, version 2 or later.
107d5983e3SNicolas Saenz Julienne  * See the COPYING file in the top-level directory.
117d5983e3SNicolas Saenz Julienne  */
127d5983e3SNicolas Saenz Julienne #ifndef QEMU_EVENT_LOOP_BASE_H
137d5983e3SNicolas Saenz Julienne #define QEMU_EVENT_LOOP_BASE_H
147d5983e3SNicolas Saenz Julienne 
157d5983e3SNicolas Saenz Julienne #include "qom/object.h"
167d5983e3SNicolas Saenz Julienne #include "block/aio.h"
177d5983e3SNicolas Saenz Julienne 
187d5983e3SNicolas Saenz Julienne #define TYPE_EVENT_LOOP_BASE         "event-loop-base"
197d5983e3SNicolas Saenz Julienne OBJECT_DECLARE_TYPE(EventLoopBase, EventLoopBaseClass,
207d5983e3SNicolas Saenz Julienne                     EVENT_LOOP_BASE)
217d5983e3SNicolas Saenz Julienne 
227d5983e3SNicolas Saenz Julienne struct EventLoopBaseClass {
237d5983e3SNicolas Saenz Julienne     ObjectClass parent_class;
247d5983e3SNicolas Saenz Julienne 
257d5983e3SNicolas Saenz Julienne     void (*init)(EventLoopBase *base, Error **errp);
267d5983e3SNicolas Saenz Julienne     void (*update_params)(EventLoopBase *base, Error **errp);
2770ac26b9SNicolas Saenz Julienne     bool (*can_be_deleted)(EventLoopBase *base);
287d5983e3SNicolas Saenz Julienne };
297d5983e3SNicolas Saenz Julienne 
307d5983e3SNicolas Saenz Julienne struct EventLoopBase {
317d5983e3SNicolas Saenz Julienne     Object parent;
327d5983e3SNicolas Saenz Julienne 
337d5983e3SNicolas Saenz Julienne     /* AioContext AIO engine parameters */
347d5983e3SNicolas Saenz Julienne     int64_t aio_max_batch;
35*71ad4713SNicolas Saenz Julienne 
36*71ad4713SNicolas Saenz Julienne     /* AioContext thread pool parameters */
37*71ad4713SNicolas Saenz Julienne     int64_t thread_pool_min;
38*71ad4713SNicolas Saenz Julienne     int64_t thread_pool_max;
397d5983e3SNicolas Saenz Julienne };
407d5983e3SNicolas Saenz Julienne #endif
41