qemu/target/s390x
Peter Maydell cf7f61d13f target/s390: Convert CPU to Resettable interface
Convert the s390 CPU to the Resettable interface.  This is slightly
more involved than the other CPU types were (see commits
9130cade5fc22..d66e64dd006df) because S390 has its own set of
different kinds of reset with different behaviours that it needs to
trigger.

We handle this by adding these reset types to the Resettable
ResetType enum.  Now instead of having an underlying implementation
of reset that is s390-specific and which might be called either
directly or via the DeviceClass::reset method, we can implement only
the Resettable hold phase method, and have the places that need to
trigger an s390-specific reset type do so by calling
resettable_reset().

The other option would have been to smuggle in the s390 reset
type via, for instance, a field in the CPU state that we set
in s390_do_cpu_initial_reset() etc and then examined in the
reset method, but doing it this way seems cleaner.

The motivation for this change is that this is the last caller
of the legacy device_class_set_parent_reset() function, and
removing that will let us clean up some glue code that we added
for the transition to three-phase reset.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-id: 20240830145812.1967042-4-peter.maydell@linaro.org
2024-09-13 15:31:43 +01:00
..
kvm gdbstub: move enums into separate header 2024-06-24 10:14:17 +01:00
tcg target/s390x: fix build warning (gcc-12 -fsanitize=thread) 2024-08-15 16:33:56 +02:00
Kconfig target/s390x: Add a CONFIG switch to disable legacy CPUs 2024-06-24 08:22:30 +02:00
arch_dump.c target/s390x/arch_dump: use correct byte order for pid 2024-06-24 08:13:58 +02:00
cpu-dump.c target/s390x: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-02-06 10:27:50 +01:00
cpu-param.h target: Define TCG_GUEST_DEFAULT_MO in 'cpu-param.h' 2024-04-26 15:31:37 +02:00
cpu-qom.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu-sysemu.c s390x/cpu topology: resetting the Topology-Change-Report 2023-10-20 07:16:53 +02:00
cpu.c target/s390: Convert CPU to Resettable interface 2024-09-13 15:31:43 +01:00
cpu.h target/s390: Convert CPU to Resettable interface 2024-09-13 15:31:43 +01:00
cpu_features.c target/s390x: flag te and cte as deprecated 2024-05-10 08:34:29 +02:00
cpu_features.h target/s390x: report deprecated-props in cpu-model-expansion reply 2024-05-10 08:34:20 +02:00
cpu_features_def.h
cpu_features_def.h.inc s390x: correct typos 2024-02-21 08:16:58 +03:00
cpu_models.c target/s390x: Add a CONFIG switch to disable legacy CPUs 2024-06-24 08:22:30 +02:00
cpu_models.h target/s390x/cpu_models: Make kvm_s390_apply_cpu_model() return boolean 2024-04-30 06:21:47 +02:00
cpu_models_sysemu.c target/s390x: move @deprecated-props to CpuModelExpansion Info 2024-07-29 21:47:16 +02:00
cpu_models_user.c target/s390x: split sysemu part of cpu models 2021-07-07 14:01:59 +02:00
diag.c target/s390x: Use env_archcpu() in handle_diag_308() 2023-11-07 12:13:27 +01:00
gdbstub.c gdbstub: Change gdb_get_reg_cb and gdb_set_reg_cb 2024-02-28 09:09:49 +00:00
gen-features.c target/s390x: AP-passthrough for PV guests 2023-09-12 11:35:46 +02:00
helper.c target/s390x: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-02-06 10:27:50 +01:00
helper.h target/s390x: Simplify per_ifetch, per_check_exception 2024-05-29 12:41:15 +02:00
interrupt.c
ioinst.c hw/s390x: Move KVM specific PV from hw/ to target/s390x/kvm/ 2023-07-10 15:34:23 +02:00
machine.c target/s390x: Constify VMState in machine.c 2023-12-29 11:17:30 +11:00
meson.build meson: Rename target_softmmu_arch -> target_system_arch 2023-10-07 19:03:07 +02:00
mmu_helper.c target/s390x: Use s390_skeys_get|set() helper 2024-06-19 12:42:03 +02:00
s390x-internal.h target/s390x: Fix float_comp_to_cc() prototype 2023-03-24 11:46:08 +01:00
sigp.c target/s390: Convert CPU to Resettable interface 2024-09-13 15:31:43 +01:00
trace-events target/s390x: Use s390_skeys_get|set() helper 2024-06-19 12:42:03 +02:00
trace.h