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