From 878096eeb278a8ac1ccd6667af73e026f29b4cf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 27 May 2013 01:33:50 +0200 Subject: cpu: Turn cpu_dump_{state,statistics}() into CPUState hooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make cpustats monitor command available unconditionally. Prepares for changing kvm_handle_internal_error() and kvm_cpu_exec() arguments to CPUState. Signed-off-by: Andreas Färber --- target-microblaze/cpu-qom.h | 2 ++ target-microblaze/cpu.c | 1 + target-microblaze/helper.c | 4 +++- target-microblaze/translate.c | 6 ++++-- 4 files changed, 10 insertions(+), 3 deletions(-) (limited to 'target-microblaze') diff --git a/target-microblaze/cpu-qom.h b/target-microblaze/cpu-qom.h index ce92a4e875..3e9c20668f 100644 --- a/target-microblaze/cpu-qom.h +++ b/target-microblaze/cpu-qom.h @@ -72,5 +72,7 @@ static inline MicroBlazeCPU *mb_env_get_cpu(CPUMBState *env) #define ENV_OFFSET offsetof(MicroBlazeCPU, env) void mb_cpu_do_interrupt(CPUState *cs); +void mb_cpu_dump_state(CPUState *cpu, FILE *f, fprintf_function cpu_fprintf, + int flags); #endif diff --git a/target-microblaze/cpu.c b/target-microblaze/cpu.c index 404f82caf8..e8104d17b0 100644 --- a/target-microblaze/cpu.c +++ b/target-microblaze/cpu.c @@ -138,6 +138,7 @@ static void mb_cpu_class_init(ObjectClass *oc, void *data) cc->reset = mb_cpu_reset; cc->do_interrupt = mb_cpu_do_interrupt; + cc->dump_state = mb_cpu_dump_state; dc->vmsd = &vmstate_mb_cpu; dc->props = mb_properties; diff --git a/target-microblaze/helper.c b/target-microblaze/helper.c index 0dd669d113..01d4bbfe92 100644 --- a/target-microblaze/helper.c +++ b/target-microblaze/helper.c @@ -39,8 +39,10 @@ void mb_cpu_do_interrupt(CPUState *cs) int cpu_mb_handle_mmu_fault(CPUMBState * env, target_ulong address, int rw, int mmu_idx) { + MicroBlazeCPU *cpu = mb_env_get_cpu(env); + env->exception_index = 0xaa; - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(CPU(cpu), stderr, fprintf, 0); return 1; } diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c index 06d23460f9..54f439fc20 100644 --- a/target-microblaze/translate.c +++ b/target-microblaze/translate.c @@ -1949,9 +1949,11 @@ void gen_intermediate_code_pc (CPUMBState *env, struct TranslationBlock *tb) gen_intermediate_code_internal(env, tb, 1); } -void cpu_dump_state (CPUMBState *env, FILE *f, fprintf_function cpu_fprintf, - int flags) +void mb_cpu_dump_state(CPUState *cs, FILE *f, fprintf_function cpu_fprintf, + int flags) { + MicroBlazeCPU *cpu = MICROBLAZE_CPU(cs); + CPUMBState *env = &cpu->env; int i; if (!env || !f) -- cgit v1.2.1