accel: Make AccelCPUClass structure target-agnostic

Move the target-agnostic parts of "accel/accel-cpu-target.h"
to "accel/accel-cpu.h".

Doing so we need to include missing "hw/core/cpu.h" header
in "accel/accel-cpu.h" otherwise we get:

  include/accel/accel-cpu-target.h:39:28: error: unknown type name 'CPUClass'
     39 |     void (*cpu_class_init)(CPUClass *cc);
        |                            ^

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20250417165430.58213-7-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2025-03-23 18:18:24 +01:00
parent 559fe89916
commit 44246e7170
4 changed files with 25 additions and 13 deletions

View file

@ -499,7 +499,7 @@ F: include/qemu/accel.h
F: include/qemu/target-info*.h
F: include/system/accel-*.h
F: include/system/cpus.h
F: include/accel/accel-cpu-target.h
F: include/accel/accel-cpu*.h
F: accel/accel-*.?
F: accel/Makefile.objs
F: accel/stubs/Makefile.objs

View file

@ -27,7 +27,6 @@
#include "qemu/accel.h"
#include "qemu/target-info.h"
#include "cpu.h"
#include "accel/accel-cpu-target.h"
#include "accel-internal.h"

View file

@ -21,21 +21,11 @@
*/
#include "qom/object.h"
#include "accel/accel-cpu.h"
#include "cpu.h"
#define TYPE_ACCEL_CPU "accel-" CPU_RESOLVING_TYPE
#define ACCEL_CPU_NAME(name) (name "-" TYPE_ACCEL_CPU)
typedef struct AccelCPUClass AccelCPUClass;
DECLARE_CLASS_CHECKERS(AccelCPUClass, ACCEL_CPU, TYPE_ACCEL_CPU)
typedef struct AccelCPUClass {
/*< private >*/
ObjectClass parent_class;
/*< public >*/
void (*cpu_class_init)(CPUClass *cc);
void (*cpu_instance_init)(CPUState *cpu);
bool (*cpu_target_realize)(CPUState *cpu, Error **errp);
} AccelCPUClass;
#endif /* ACCEL_CPU_H */

23
include/accel/accel-cpu.h Normal file
View file

@ -0,0 +1,23 @@
/*
* Accelerator interface, specializes CPUClass
*
* Copyright 2021 SUSE LLC
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef ACCEL_CPU_H
#define ACCEL_CPU_H
#include "qom/object.h"
#include "hw/core/cpu.h"
typedef struct AccelCPUClass {
ObjectClass parent_class;
void (*cpu_class_init)(CPUClass *cc);
void (*cpu_instance_init)(CPUState *cpu);
bool (*cpu_target_realize)(CPUState *cpu, Error **errp);
} AccelCPUClass;
#endif /* ACCEL_CPU_H */