qemu,qmp: convert do_inject_nmi() to QObject
PATCH 2/6 qemu,qmp: convert do_inject_nmi() to QObject
Convert do_inject_nmi() to QObject, we need to use it(via libvirt).
It is trivial, as it never fails, doesn't have output nor return any data.
---
hmp-commands.hx +2 -1
@@ -725,7 +725,8 @@ ETEXI .args_type = "cpu_index:i", .params = "cpu", .help = "inject an NMI on the given CPU", - .mhandler.cmd = do_inject_nmi, + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_inject_nmi, }, #endif STEXI
monitor.c +2 -1
@@ -2120,7 +2120,7 @@ static void do_wav_capture(Monitor *mon, const QDict *qdict)#endif #if defined(TARGET_I386 ) -static void do_inject_nmi (Monitor *mon,const QDict *qdict) +static int do_inject_nmi (Monitor *mon,const QDict *qdict,QObject **ret_data) {CPUState *env;int cpu_index =qdict_get_int (qdict,"cpu_index" );
@@ -2130,6 +2130,7 @@ static void do_inject_nmi(Monitor *mon, const QDict *qdict)cpu_interrupt (env,CPU_INTERRUPT_NMI ); break; } +return 0 ; }#endif
qmp-commands.hx +16 -0
@@ -453,6 +453,22 @@ Example: EQMP +#if defined(TARGET_I386) + { + .name = "nmi", + .args_type = "cpu_index:i", + .params = "cpu", + .help = "inject an NMI on the given CPU", + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_inject_nmi, + }, +#endif +SQMP +@item nmi @var{cpu} +@findex nmi +Inject an NMI on the given CPU (x86 only). +EQMP + { .name = "migrate", .args_type = "detach:-d,blk:-b,inc:-i,uri:s",
Quoted 2 lines · On Thu, 09 Dec 2010 14:59:00 +0800 Lai Jiangshan <[email protected]> wrote:
Convert
do_inject_nmi()to QObject, we need to use it(via libvirt).
Patches 0/6 and 1/6 are missing.
Also, I see that you're converting two unrelated commands in the same series. Please, split into two series.
Quoted 1 line
It is trivial, as it never fails, doesn't have output nor return any data.
It does fail: the cpu index might be invalid. Also, does this depend on the guest ability to respond in some way?
Furthermore, it's missing documentation, please read the 'Development Process' section from QMP's readme file:
http://git.qemu.org/qemu.git/tree/QMP/README
A last comment is that, maybe we should call it inject-nmi or even inject-non-maskable-interrupt.
Quoted 65 lines
Signed-off-by Lai Jiangshan <[email protected]>---
hmp-commands.hx +2
-1@@ -725,7 +725,8 @@ ETEXI .args_type = "cpu_index:i", .params = "cpu", .help = "inject an NMI on the given CPU", - .mhandler.cmd = do_inject_nmi, + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_inject_nmi, }, #endif STEXImonitor.c +2
-1@@ -2120,7 +2120,7 @@ static void do_wav_capture(Monitor *mon, const QDict *qdict)#endif #if defined(TARGET_I386 ) -static void do_inject_nmi (Monitor *mon,const QDict *qdict) +static int do_inject_nmi (Monitor *mon,const QDict *qdict,QObject **ret_data) {CPUState *env;int cpu_index =qdict_get_int (qdict,"cpu_index" );@@ -2130,6 +2130,7 @@ static void do_inject_nmi(Monitor *mon, const QDict *qdict)cpu_interrupt (env,CPU_INTERRUPT_NMI ); break; } +return 0 ; }#endif qmp-commands.hx +16
-0@@ -453,6 +453,22 @@ Example: EQMP +#if defined(TARGET_I386) + { + .name = "nmi", + .args_type = "cpu_index:i", + .params = "cpu", + .help = "inject an NMI on the given CPU", + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_inject_nmi, + }, +#endif +SQMP +@item nmi @var{cpu} +@findex nmi +Inject an NMI on the given CPU (x86 only). +EQMP + { .name = "migrate", .args_type = "detach:-d,blk:-b,inc:-i,uri:s",