mirror of https://github.com/proxmox/mirror_qemu
QMP: add inject-nmi qmp command
inject-nmi command injects an NMI on all CPUs of guest. It is only supported for x86 guest currently, it will returns "Unsupported" error for non-x86 guest. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>master
parent
4c5a1e4db7
commit
a404666457
17
monitor.c
17
monitor.c
|
@ -2555,6 +2555,23 @@ static void do_inject_nmi(Monitor *mon, const QDict *qdict)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int do_inject_nmi_all(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
||||||
|
{
|
||||||
|
CPUState *env;
|
||||||
|
|
||||||
|
for (env = first_cpu; env != NULL; env = env->next_cpu) {
|
||||||
|
cpu_interrupt(env, CPU_INTERRUPT_NMI);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static int do_inject_nmi_all(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
||||||
|
{
|
||||||
|
qerror_report(QERR_UNSUPPORTED);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void do_info_status_print(Monitor *mon, const QObject *data)
|
static void do_info_status_print(Monitor *mon, const QObject *data)
|
||||||
|
|
|
@ -427,6 +427,33 @@ Example:
|
||||||
"filename": "/tmp/physical-mem-dump" } }
|
"filename": "/tmp/physical-mem-dump" } }
|
||||||
<- { "return": {} }
|
<- { "return": {} }
|
||||||
|
|
||||||
|
EQMP
|
||||||
|
|
||||||
|
{
|
||||||
|
.name = "inject-nmi",
|
||||||
|
.args_type = "",
|
||||||
|
.params = "",
|
||||||
|
.help = "",
|
||||||
|
.user_print = monitor_user_noop,
|
||||||
|
.mhandler.cmd_new = do_inject_nmi_all,
|
||||||
|
},
|
||||||
|
|
||||||
|
SQMP
|
||||||
|
inject-nmi
|
||||||
|
----------
|
||||||
|
|
||||||
|
Inject an NMI on guest's CPUs.
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
-> { "execute": "inject-nmi" }
|
||||||
|
<- { "return": {} }
|
||||||
|
|
||||||
|
Note: inject-nmi is only supported for x86 guest currently, it will
|
||||||
|
returns "Unsupported" error for non-x86 guest.
|
||||||
|
|
||||||
EQMP
|
EQMP
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue