blob: a6c24f13513d888cd526c8d5d0848ae85a456d4b [file] [log] [blame]
Nicolas Saenz Julienne7d5983e2022-04-25 09:57:21 +02001/*
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"
Nicolas Saenz Julienne7d5983e2022-04-25 09:57:21 +020017
18#define TYPE_EVENT_LOOP_BASE "event-loop-base"
19OBJECT_DECLARE_TYPE(EventLoopBase, EventLoopBaseClass,
20 EVENT_LOOP_BASE)
21
22struct EventLoopBaseClass {
23 ObjectClass parent_class;
24
25 void (*init)(EventLoopBase *base, Error **errp);
26 void (*update_params)(EventLoopBase *base, Error **errp);
Nicolas Saenz Julienne70ac26b2022-04-25 09:57:22 +020027 bool (*can_be_deleted)(EventLoopBase *base);
Nicolas Saenz Julienne7d5983e2022-04-25 09:57:21 +020028};
29
30struct EventLoopBase {
31 Object parent;
32
33 /* AioContext AIO engine parameters */
34 int64_t aio_max_batch;
Nicolas Saenz Julienne71ad4712022-04-25 09:57:23 +020035
36 /* AioContext thread pool parameters */
37 int64_t thread_pool_min;
38 int64_t thread_pool_max;
Nicolas Saenz Julienne7d5983e2022-04-25 09:57:21 +020039};
40#endif