diff options
Diffstat (limited to 'target-s390x')
-rw-r--r-- | target-s390x/cpu-qom.h | 2 | ||||
-rw-r--r-- | target-s390x/cpu.c | 2 | ||||
-rw-r--r-- | target-s390x/kvm.c | 9 | ||||
-rw-r--r-- | target-s390x/translate.c | 6 |
4 files changed, 12 insertions, 7 deletions
diff --git a/target-s390x/cpu-qom.h b/target-s390x/cpu-qom.h index 34d45c262b..ec32d21f05 100644 --- a/target-s390x/cpu-qom.h +++ b/target-s390x/cpu-qom.h @@ -72,5 +72,7 @@ static inline S390CPU *s390_env_get_cpu(CPUS390XState *env) #define ENV_OFFSET offsetof(S390CPU, env) void s390_cpu_do_interrupt(CPUState *cpu); +void s390_cpu_dump_state(CPUState *cpu, FILE *f, fprintf_function cpu_fprintf, + int flags); #endif diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c index 23fe51f0f4..c3697cd943 100644 --- a/target-s390x/cpu.c +++ b/target-s390x/cpu.c @@ -102,7 +102,6 @@ static void s390_cpu_realizefn(DeviceState *dev, Error **errp) S390CPU *cpu = S390_CPU(dev); S390CPUClass *scc = S390_CPU_GET_CLASS(dev); - qemu_init_vcpu(&cpu->env); cpu_reset(CPU(cpu)); scc->parent_realize(dev, errp); @@ -170,6 +169,7 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data) cc->reset = s390_cpu_reset; cc->do_interrupt = s390_cpu_do_interrupt; + cc->dump_state = s390_cpu_dump_state; dc->vmsd = &vmstate_s390_cpu; } diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c index 650d3a5da9..b524c35ed2 100644 --- a/target-s390x/kvm.c +++ b/target-s390x/kvm.c @@ -450,7 +450,7 @@ static int kvm_sclp_service_call(S390CPU *cpu, struct kvm_run *run, uint64_t code; int r = 0; - cpu_synchronize_state(env); + cpu_synchronize_state(CPU(cpu)); sccb = env->regs[ipbh0 & 0xf]; code = env->regs[(ipbh0 & 0xf0) >> 4]; @@ -656,16 +656,17 @@ static int s390_store_status(CPUS390XState *env, uint32_t parameter) static int s390_cpu_initial_reset(S390CPU *cpu) { + CPUState *cs = CPU(cpu); CPUS390XState *env = &cpu->env; int i; s390_del_running_cpu(cpu); - if (kvm_vcpu_ioctl(CPU(cpu), KVM_S390_INITIAL_RESET, NULL) < 0) { + if (kvm_vcpu_ioctl(cs, KVM_S390_INITIAL_RESET, NULL) < 0) { perror("cannot init reset vcpu"); } /* Manually zero out all registers */ - cpu_synchronize_state(env); + cpu_synchronize_state(cs); for (i = 0; i < 16; i++) { env->regs[i] = 0; } @@ -685,7 +686,7 @@ static int handle_sigp(S390CPU *cpu, struct kvm_run *run, uint8_t ipa1) S390CPU *target_cpu; CPUS390XState *target_env; - cpu_synchronize_state(env); + cpu_synchronize_state(CPU(cpu)); /* get order code */ order_code = run->s390_sieic.ipb >> 28; diff --git a/target-s390x/translate.c b/target-s390x/translate.c index f97e431977..cd9880ed77 100644 --- a/target-s390x/translate.c +++ b/target-s390x/translate.c @@ -86,9 +86,11 @@ static uint64_t pc_to_link_info(DisasContext *s, uint64_t pc) return pc; } -void cpu_dump_state(CPUS390XState *env, FILE *f, fprintf_function cpu_fprintf, - int flags) +void s390_cpu_dump_state(CPUState *cs, FILE *f, fprintf_function cpu_fprintf, + int flags) { + S390CPU *cpu = S390_CPU(cs); + CPUS390XState *env = &cpu->env; int i; if (env->cc_op > 3) { |