+static void ccw_machine_2_10_instance_options(MachineState *machine)
+{
+ if (css_migration_enabled()) {
+ css_register_vmstate();
+ }
+}
+
+static void ccw_machine_2_10_class_options(MachineClass *mc)
+{
+}
+DEFINE_CCW_MACHINE(2_10, "2.10", true);
+
+static void ccw_machine_2_9_instance_options(MachineState *machine)
+{
+ ccw_machine_2_10_instance_options(machine);
+ s390_cpudef_featoff_greater(12, 1, S390_FEAT_ESOP);
+ s390_cpudef_featoff_greater(12, 1, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2);
+ s390_cpudef_featoff_greater(12, 1, S390_FEAT_ZPCI);
+ s390_cpudef_featoff_greater(12, 1, S390_FEAT_ADAPTER_INT_SUPPRESSION);
+ s390_cpudef_featoff_greater(12, 1, S390_FEAT_ADAPTER_EVENT_NOTIFICATION);
+}
+
+static void ccw_machine_2_9_class_options(MachineClass *mc)
+{
+ S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc);
+
+ ccw_machine_2_10_class_options(mc);
+ SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_9);
+ s390mc->css_migration_enabled = false;
+}
+DEFINE_CCW_MACHINE(2_9, "2.9", false);
+
+static void ccw_machine_2_8_instance_options(MachineState *machine)
+{
+ ccw_machine_2_9_instance_options(machine);
+}
+
+static void ccw_machine_2_8_class_options(MachineClass *mc)
+{
+ ccw_machine_2_9_class_options(mc);
+ SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_8);
+}
+DEFINE_CCW_MACHINE(2_8, "2.8", false);
+