This allows to share initialization between CPU models.
Signed-off-by: Andreas Färber <[email protected]>
---
target-arm/cpu-core.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/target-arm/cpu-core.c b/target-arm/cpu-core.c
index 1caf9aa..8284418 100644
--- a/target-arm/cpu-core.c
+++ b/target-arm/cpu-core.c
@@ -21,6 +21,7 @@ typedef struct ARMCPUInfo {
const char *name;
const char *alias;
uint32_t id;
+ void (*class_init)(ARMCPUClass *klass, const struct ARMCPUInfo *info);
} ARMCPUInfo;
static const ARMCPUInfo arm_cpus[] = {
@@ -156,6 +157,10 @@ static void arm_cpu_class_init(ObjectClass *klass, void
*data)
cpu_class->reset = arm_cpu_reset;
k->id = info->id;
+
+ if (info->class_init != NULL) {
+ (*info->class_init)(k, info);
+ }
}
static void cpu_register(const ARMCPUInfo *info)
--
1.7.7