| /* | |
| * Accelerator handlers | |
| * | |
| * SPDX-License-Identifier: GPL-2.0-or-later | |
| */ | |
| #ifndef ACCEL_OPS_H | |
| #define ACCEL_OPS_H | |
| #include "exec/hwaddr.h" | |
| #include "qemu/accel.h" | |
| #include "qom/object.h" | |
| struct AccelState { | |
| Object parent_obj; | |
| AccelGdbConfig gdbstub; | |
| }; | |
| struct AccelClass { | |
| ObjectClass parent_class; | |
| const char *name; | |
| /* Cached by accel_init_ops_interfaces() when created */ | |
| AccelOpsClass *ops; | |
| int (*init_machine)(AccelState *as, MachineState *ms); | |
| /* used mainly by confidential guests to rebuild guest state upon reset */ | |
| int (*rebuild_guest)(MachineState *ms); | |
| bool (*cpu_common_realize)(CPUState *cpu, Error **errp); | |
| void (*cpu_common_unrealize)(CPUState *cpu); | |
| /* get_stats: Append statistics to @buf */ | |
| void (*get_stats)(AccelState *as, GString *buf); | |
| /* system related hooks */ | |
| void (*setup_post)(AccelState *as); | |
| void (*pre_resume_vm)(AccelState *as, bool step_pending); | |
| bool (*has_memory)(AccelState *accel, AddressSpace *as, | |
| hwaddr start_addr, hwaddr size); | |
| bool *allowed; | |
| /* | |
| * Array of global properties that would be applied when specific | |
| * accelerator is chosen. It works like MachineClass.compat_props | |
| * but it's for accelerators not machines. Accelerator-provided | |
| * global properties may be overridden by machine-type | |
| * compat_props or user-provided global properties. | |
| */ | |
| GPtrArray *compat_props; | |
| }; | |
| #endif /* ACCEL_OPS_H */ |