diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2016-09-05 10:52:16 +0200 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2016-09-06 17:06:49 +0200 |
commit | 41868f846d2ca5865c1706dc6529964bfa3dac6c (patch) | |
tree | e22c316df6524e8636da6202829adcafdacd62b4 /target-s390x/cpu.h | |
parent | fc4b84b1c68a0dc2905d379f0f6a5305e4ebe0b3 (diff) | |
download | qemu-41868f846d2ca5865c1706dc6529964bfa3dac6c.tar.gz qemu-41868f846d2ca5865c1706dc6529964bfa3dac6c.tar.bz2 qemu-41868f846d2ca5865c1706dc6529964bfa3dac6c.zip |
s390x/cpumodel: "host" and "qemu" as CPU subclasses
This patch introduces two CPU models, "host" and "qemu".
"qemu" is used as default when running under TCG. "host" is used
as default when running under KVM. "host" cannot be used without KVM.
"host" is not migration-safe. They both inherit from the base s390x CPU,
which is turned into an abstract class.
This patch also changes CPU creation to take care of the passed CPU string
and reuses common code parse_features() function for that purpose. Unknown
CPU definitions are now reported. The "-cpu ?" and "query-cpu-definition"
commands are changed to list all CPU subclasses automatically, including
migration-safety and whether static.
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Message-Id: <20160905085244.99980-3-dahi@linux.vnet.ibm.com>
[CH: fix up self-assignments in s390_cpu_list, as spotted by clang]
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'target-s390x/cpu.h')
-rw-r--r-- | target-s390x/cpu.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h index eeff1b0081..0ea93216dd 100644 --- a/target-s390x/cpu.h +++ b/target-s390x/cpu.h @@ -633,6 +633,8 @@ extern void subsystem_reset(void); void s390_cpu_list(FILE *f, fprintf_function cpu_fprintf); #define cpu_list s390_cpu_list +void s390_realize_cpu_model(CPUState *cs, Error **errp); +ObjectClass *s390_cpu_class_by_name(const char *name); #define EXCP_EXT 1 /* external interrupt */ #define EXCP_SVC 2 /* supervisor call (syscall) */ |