accel-cpu.h (1143B)
1/* 2 * Accelerator interface, specializes CPUClass 3 * This header is used only by target-specific code. 4 * 5 * Copyright 2021 SUSE LLC 6 * 7 * This work is licensed under the terms of the GNU GPL, version 2 or later. 8 * See the COPYING file in the top-level directory. 9 */ 10 11#ifndef ACCEL_CPU_H 12#define ACCEL_CPU_H 13 14/* 15 * This header is used to define new accelerator-specific target-specific 16 * accelerator cpu subclasses. 17 * It uses CPU_RESOLVING_TYPE, so this is clearly target-specific. 18 * 19 * Do not try to use for any other purpose than the implementation of new 20 * subclasses in target/, or the accel implementation itself in accel/ 21 */ 22 23#define TYPE_ACCEL_CPU "accel-" CPU_RESOLVING_TYPE 24#define ACCEL_CPU_NAME(name) (name "-" TYPE_ACCEL_CPU) 25typedef struct AccelCPUClass AccelCPUClass; 26DECLARE_CLASS_CHECKERS(AccelCPUClass, ACCEL_CPU, TYPE_ACCEL_CPU) 27 28typedef struct AccelCPUClass { 29 /*< private >*/ 30 ObjectClass parent_class; 31 /*< public >*/ 32 33 void (*cpu_class_init)(CPUClass *cc); 34 void (*cpu_instance_init)(CPUState *cpu); 35 bool (*cpu_realizefn)(CPUState *cpu, Error **errp); 36} AccelCPUClass; 37 38#endif /* ACCEL_CPU_H */