new file mode 100644
@@ -0,0 +1,38 @@
+/*
+ * QEMU "split" accelerator (HW + SW) state
+ *
+ * Copyright (c) 2025 Linaro Ltd.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef SPLIT_ACCEL_H
+#define SPLIT_ACCEL_H
+
+#include "qemu/accel.h"
+#include "qom/object.h"
+
+#define TYPE_SPLIT_ACCEL ACCEL_CLASS_NAME("split")
+
+typedef struct SplitAccelClass SplitAccelClass;
+DECLARE_CLASS_CHECKERS(SplitAccelClass, SPLIT_ACCEL, TYPE_SPLIT_ACCEL)
+
+typedef struct SplitAccelState SplitAccelState;
+DECLARE_INSTANCE_CHECKER(SplitAccelState, SPLIT_ACCEL,
+ TYPE_SPLIT_ACCEL)
+
+struct SplitAccelClass {
+ AccelClass parent_obj;
+
+ AccelClass *hw;
+ AccelClass *sw;
+};
+
+struct SplitAccelState {
+ AccelState parent_obj;
+
+ AccelState *hw;
+ AccelState *sw;
+};
+
+#endif /* SPLIT_ACCEL_H */
@@ -8,6 +8,7 @@
#include "qemu/osdep.h"
#include "qemu/accel.h"
+#include "split-accel.h"
bool split_allowed;
@@ -64,8 +65,10 @@ static void split_accel_class_init(ObjectClass *oc, const void *data)
}
static const TypeInfo split_accel_type = {
- .name = ACCEL_CLASS_NAME("split"),
+ .name = TYPE_SPLIT_ACCEL,
.parent = TYPE_ACCEL,
+ .instance_size = sizeof(SplitAccelState),
+ .class_size = sizeof(SplitAccelClass),
.class_init = split_accel_class_init,
};
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- accel/split/split-accel.h | 38 ++++++++++++++++++++++++++++++++++++++ accel/split/split-all.c | 5 ++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 accel/split/split-accel.h