[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/5] QMP: add inject-nmi qmp command
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 2/5] QMP: add inject-nmi qmp command |
Date: |
Sat, 4 Jun 2011 11:34:17 +0300 |
On Wed, Jun 1, 2011 at 6:54 PM, Luiz Capitulino <address@hidden> wrote:
> From: Lai Jiangshan <address@hidden>
>
> 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.
Please rename the command to 'x-inject-nmi' to point out that it will
be replaced by a generic method later.
> Signed-off-by: Luiz Capitulino <address@hidden>
> ---
> monitor.c | 17 +++++++++++++++++
> qmp-commands.hx | 27 +++++++++++++++++++++++++++
> 2 files changed, 44 insertions(+), 0 deletions(-)
>
> diff --git a/monitor.c b/monitor.c
> index f63cce0..81d3c9b 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -2555,6 +2555,23 @@ static void do_inject_nmi(Monitor *mon, const QDict
> *qdict)
> 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
>
> static void do_info_status_print(Monitor *mon, const QObject *data)
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index a9f109a..ae08b7a 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -430,6 +430,33 @@ Example:
> 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
> +
> + {
> .name = "migrate",
> .args_type = "detach:-d,blk:-b,inc:-i,uri:s",
> .params = "[-d] [-b] [-i] uri",
> --
> 1.7.4.4
>
>
>