Commit e9b4b432 authored by Luiz Capitulino's avatar Luiz Capitulino
Browse files

HMP: Use QMP inject nmi implementation



This **CHANGES** the human monitor "nmi" command behavior.

Currently it accepts an CPU argument which, when provided, will send
the NMI to the specified CPU. This feature is of discussable value
though and HMP shouldn't have more features than QMP, so let's use
QMP's instead (it's also simpler).

Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
parent a4046664
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -740,10 +740,11 @@ ETEXI
#if defined(TARGET_I386)
    {
        .name       = "nmi",
        .args_type  = "cpu_index:i",
        .params     = "cpu",
        .help       = "inject an NMI on the given CPU",
        .mhandler.cmd = do_inject_nmi,
        .args_type  = "",
        .params     = "",
        .help       = "inject an NMI on all guest's CPUs",
        .user_print = monitor_user_noop,
        .mhandler.cmd_new = do_inject_nmi,
    },
#endif
STEXI
+2 −14
Original line number Diff line number Diff line
@@ -2544,19 +2544,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)
{
    CPUState *env;
    int cpu_index = qdict_get_int(qdict, "cpu_index");

    for (env = first_cpu; env != NULL; env = env->next_cpu)
        if (env->cpu_index == cpu_index) {
            cpu_interrupt(env, CPU_INTERRUPT_NMI);
            break;
        }
}

static int do_inject_nmi_all(Monitor *mon, const QDict *qdict, QObject **ret_data)
static int do_inject_nmi(Monitor *mon, const QDict *qdict, QObject **ret_data)
{
    CPUState *env;

@@ -2567,7 +2555,7 @@ static int do_inject_nmi_all(Monitor *mon, const QDict *qdict, QObject **ret_dat
    return 0;
}
#else
static int do_inject_nmi_all(Monitor *mon, const QDict *qdict, QObject **ret_data)
static int do_inject_nmi(Monitor *mon, const QDict *qdict, QObject **ret_data)
{
    qerror_report(QERR_UNSUPPORTED);
    return -1;
+1 −1
Original line number Diff line number Diff line
@@ -435,7 +435,7 @@ EQMP
        .params     = "",
        .help       = "",
        .user_print = monitor_user_noop,
        .mhandler.cmd_new = do_inject_nmi_all,
        .mhandler.cmd_new = do_inject_nmi,
    },

SQMP