qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

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)
     25 typedef struct AccelCPUClass AccelCPUClass;
     26 DECLARE_CLASS_CHECKERS(AccelCPUClass, ACCEL_CPU, TYPE_ACCEL_CPU)
     27 
     28 typedef 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 */