]> git.proxmox.com Git - mirror_qemu.git/commitdiff
target/hppa: Implement hppa_cpu_class_by_name
authorRichard Henderson <richard.henderson@linaro.org>
Mon, 18 Sep 2023 01:42:27 +0000 (18:42 -0700)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 7 Nov 2023 02:49:33 +0000 (18:49 -0800)
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
linux-user/hppa/target_elf.h
target/hppa/cpu.c

index 82b4e9535e11bc34e68b8542c6eccff6261ce1dd..19cae8bd65ddc6326b55c0df277c6ff1c82bcc51 100644 (file)
@@ -9,6 +9,6 @@
 #define HPPA_TARGET_ELF_H
 static inline const char *cpu_get_model(uint32_t eflags)
 {
-    return "any";
+    return "hppa";
 }
 #endif
index 27c74f0d27df8f9670664ceebe7460d0f4557e29..70ce0c3b991e56cc8ca6e2bff9674f0af58d06c7 100644 (file)
@@ -158,7 +158,15 @@ static void hppa_cpu_initfn(Object *obj)
 
 static ObjectClass *hppa_cpu_class_by_name(const char *cpu_model)
 {
-    return object_class_by_name(TYPE_HPPA_CPU);
+    g_autofree char *typename = g_strconcat(cpu_model, "-cpu", NULL);
+    ObjectClass *oc = object_class_by_name(typename);
+
+    if (oc &&
+        !object_class_is_abstract(oc) &&
+        object_class_dynamic_cast(oc, TYPE_HPPA_CPU)) {
+        return oc;
+    }
+    return NULL;
 }
 
 static void hppa_cpu_list_entry(gpointer data, gpointer user_data)