QEMU main repository: Please see https://www.qemu.org/docs/master/devel/submitting-a-patch.html for how to submit changes to QEMU. Pull Requests are ignored. Please only use release tarballs from the QEMU website. http://www.qemu.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
/*
|
|
* Accelerator interface, specializes CPUClass
|
|
* This header is used only by target-specific code.
|
|
*
|
|
* Copyright 2021 SUSE LLC
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
* See the COPYING file in the top-level directory.
|
|
*/
|
|
|
|
#ifndef ACCEL_CPU_H
|
|
#define ACCEL_CPU_H
|
|
|
|
/*
|
|
* This header is used to define new accelerator-specific target-specific
|
|
* accelerator cpu subclasses.
|
|
* It uses CPU_RESOLVING_TYPE, so this is clearly target-specific.
|
|
*
|
|
* Do not try to use for any other purpose than the implementation of new
|
|
* subclasses in target/, or the accel implementation itself in accel/
|
|
*/
|
|
|
|
#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_realizefn)(CPUState *cpu, Error **errp);
|
|
} AccelCPUClass;
|
|
|
|
#endif /* ACCEL_CPU_H */
|
|
|