aboutsummaryrefslogtreecommitdiff
path: root/monitor.c
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-27 23:52:12 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-27 23:52:12 +0000
commitdc1c0b749fac857b8abb864577cc3f6d7a5279a1 (patch)
tree5340d79223e3196bb82a4eb5469adbe1393f092e /monitor.c
parente6e514c529446824c638d47286338db8da7edf0e (diff)
downloadqemu-dc1c0b749fac857b8abb864577cc3f6d7a5279a1.zip
qemu-dc1c0b749fac857b8abb864577cc3f6d7a5279a1.tar.gz
qemu-dc1c0b749fac857b8abb864577cc3f6d7a5279a1.tar.bz2
Add a monitor command to raise NMI
(Jan Kiszka) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4271 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'monitor.c')
-rw-r--r--monitor.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/monitor.c b/monitor.c
index 574973d..fab3f71 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1283,6 +1283,19 @@ static void do_wav_capture (const char *path,
}
#endif
+#if defined(TARGET_I386)
+static void do_inject_nmi(int cpu_index)
+{
+ CPUState *env;
+
+ for (env = first_cpu; env != NULL; env = env->next_cpu)
+ if (env->cpu_index == cpu_index) {
+ cpu_interrupt(env, CPU_INTERRUPT_NMI);
+ break;
+ }
+}
+#endif
+
static term_cmd_t term_cmds[] = {
{ "help|?", "s?", do_help,
"[cmd]", "show the help" },
@@ -1356,6 +1369,10 @@ static term_cmd_t term_cmds[] = {
"addr size file", "save to disk virtual memory dump starting at 'addr' of size 'size'", },
{ "pmemsave", "lis", do_physical_memory_save,
"addr size file", "save to disk physical memory dump starting at 'addr' of size 'size'", },
+#if defined(TARGET_I386)
+ { "nmi", "i", do_inject_nmi,
+ "cpu", "inject an NMI on the given CPU", },
+#endif
{ NULL, NULL, },
};