diff options
author | Andreas Färber <afaerber@suse.de> | 2013-05-27 01:33:50 +0200 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2013-06-28 13:25:12 +0200 |
commit | 878096eeb278a8ac1ccd6667af73e026f29b4cf5 (patch) | |
tree | 1f2ad77025073e5d4b13de7a1df63772d7915ced /linux-user/main.c | |
parent | 13618e058cf2d76bccc41251fa0095aae88a8249 (diff) |
cpu: Turn cpu_dump_{state,statistics}() into CPUState hooks
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 <afaerber@suse.de>
Diffstat (limited to 'linux-user/main.c')
-rw-r--r-- | linux-user/main.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/linux-user/main.c b/linux-user/main.c index f67a62b188..af82db87b8 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -901,7 +901,7 @@ void cpu_loop(CPUARMState *env) error: fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); abort(); } process_pending_signals(env); @@ -985,7 +985,7 @@ void cpu_loop(CPUUniCore32State *env) error: fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); abort(); } #endif @@ -1115,6 +1115,7 @@ static void flush_windows(CPUSPARCState *env) void cpu_loop (CPUSPARCState *env) { + CPUState *cs = CPU(sparc_env_get_cpu(env)); int trapnr; abi_long ret; target_siginfo_t info; @@ -1246,7 +1247,7 @@ void cpu_loop (CPUSPARCState *env) break; default: printf ("Unhandled trap: 0x%x\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); exit (1); } process_pending_signals (env); @@ -1304,7 +1305,7 @@ int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, uint32_t val) #define EXCP_DUMP(env, fmt, ...) \ do { \ fprintf(stderr, fmt , ## __VA_ARGS__); \ - cpu_dump_state(env, stderr, fprintf, 0); \ + cpu_dump_state(ENV_GET_CPU(env), stderr, fprintf, 0); \ qemu_log(fmt, ## __VA_ARGS__); \ if (qemu_log_enabled()) { \ log_cpu_state(env, 0); \ @@ -2391,7 +2392,7 @@ done_syscall: error: fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); abort(); } process_pending_signals(env); @@ -2403,6 +2404,7 @@ error: void cpu_loop(CPUOpenRISCState *env) { + CPUState *cs = CPU(openrisc_env_get_cpu(env)); int trapnr, gdbsig; for (;;) { @@ -2420,7 +2422,7 @@ void cpu_loop(CPUOpenRISCState *env) break; case EXCP_DPF: case EXCP_IPF: - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); gdbsig = TARGET_SIGSEGV; break; case EXCP_TICK: @@ -2469,7 +2471,7 @@ void cpu_loop(CPUOpenRISCState *env) default: qemu_log("\nqemu: unhandled CPU exception %#x - aborting\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); gdbsig = TARGET_SIGILL; break; } @@ -2489,6 +2491,7 @@ void cpu_loop(CPUOpenRISCState *env) #ifdef TARGET_SH4 void cpu_loop(CPUSH4State *env) { + CPUState *cs = CPU(sh_env_get_cpu(env)); int trapnr, ret; target_siginfo_t info; @@ -2537,7 +2540,7 @@ void cpu_loop(CPUSH4State *env) default: printf ("Unhandled trap: 0x%x\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); exit (1); } process_pending_signals (env); @@ -2548,6 +2551,7 @@ void cpu_loop(CPUSH4State *env) #ifdef TARGET_CRIS void cpu_loop(CPUCRISState *env) { + CPUState *cs = CPU(cris_env_get_cpu(env)); int trapnr, ret; target_siginfo_t info; @@ -2595,7 +2599,7 @@ void cpu_loop(CPUCRISState *env) break; default: printf ("Unhandled trap: 0x%x\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); exit (1); } process_pending_signals (env); @@ -2606,6 +2610,7 @@ void cpu_loop(CPUCRISState *env) #ifdef TARGET_MICROBLAZE void cpu_loop(CPUMBState *env) { + CPUState *cs = CPU(mb_env_get_cpu(env)); int trapnr, ret; target_siginfo_t info; @@ -2673,7 +2678,7 @@ void cpu_loop(CPUMBState *env) default: printf ("Unhandled hw-exception: 0x%x\n", env->sregs[SR_ESR] & ESR_EC_MASK); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); exit (1); break; } @@ -2694,7 +2699,7 @@ void cpu_loop(CPUMBState *env) break; default: printf ("Unhandled trap: 0x%x\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); exit (1); } process_pending_signals (env); @@ -2706,6 +2711,7 @@ void cpu_loop(CPUMBState *env) void cpu_loop(CPUM68KState *env) { + CPUState *cs = CPU(m68k_env_get_cpu(env)); int trapnr; unsigned int n; target_siginfo_t info; @@ -2787,7 +2793,7 @@ void cpu_loop(CPUM68KState *env) default: fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); abort(); } process_pending_signals(env); @@ -2843,6 +2849,7 @@ static void do_store_exclusive(CPUAlphaState *env, int reg, int quad) void cpu_loop(CPUAlphaState *env) { + CPUState *cs = CPU(alpha_env_get_cpu(env)); int trapnr; target_siginfo_t info; abi_long sysret; @@ -3017,7 +3024,7 @@ void cpu_loop(CPUAlphaState *env) break; default: printf ("Unhandled trap: 0x%x\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); exit (1); } process_pending_signals (env); @@ -3028,6 +3035,7 @@ void cpu_loop(CPUAlphaState *env) #ifdef TARGET_S390X void cpu_loop(CPUS390XState *env) { + CPUState *cs = CPU(s390_env_get_cpu(env)); int trapnr, n, sig; target_siginfo_t info; target_ulong addr; @@ -3118,7 +3126,7 @@ void cpu_loop(CPUS390XState *env) default: fprintf(stderr, "Unhandled program exception: %#x\n", n); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); exit(1); } break; @@ -3135,7 +3143,7 @@ void cpu_loop(CPUS390XState *env) default: fprintf(stderr, "Unhandled trap: 0x%x\n", trapnr); - cpu_dump_state(env, stderr, fprintf, 0); + cpu_dump_state(cs, stderr, fprintf, 0); exit(1); } process_pending_signals (env); |