Revision a4046664

b/monitor.c
2555 2555
            break;
2556 2556
        }
2557 2557
}
2558

  
2559
static int do_inject_nmi_all(Monitor *mon, const QDict *qdict, QObject **ret_data)
2560
{
2561
    CPUState *env;
2562

  
2563
    for (env = first_cpu; env != NULL; env = env->next_cpu) {
2564
        cpu_interrupt(env, CPU_INTERRUPT_NMI);
2565
    }
2566

  
2567
    return 0;
2568
}
2569
#else
2570
static int do_inject_nmi_all(Monitor *mon, const QDict *qdict, QObject **ret_data)
2571
{
2572
    qerror_report(QERR_UNSUPPORTED);
2573
    return -1;
2574
}
2558 2575
#endif
2559 2576

  
2560 2577
static void do_info_status_print(Monitor *mon, const QObject *data)
b/qmp-commands.hx
430 430
EQMP
431 431

  
432 432
    {
433
        .name       = "inject-nmi",
434
        .args_type  = "",
435
        .params     = "",
436
        .help       = "",
437
        .user_print = monitor_user_noop,
438
        .mhandler.cmd_new = do_inject_nmi_all,
439
    },
440

  
441
SQMP
442
inject-nmi
443
----------
444

  
445
Inject an NMI on guest's CPUs.
446

  
447
Arguments: None.
448

  
449
Example:
450

  
451
-> { "execute": "inject-nmi" }
452
<- { "return": {} }
453

  
454
Note: inject-nmi is only supported for x86 guest currently, it will
455
      returns "Unsupported" error for non-x86 guest.
456

  
457
EQMP
458

  
459
    {
433 460
        .name       = "migrate",
434 461
        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
435 462
        .params     = "[-d] [-b] [-i] uri",

Also available in: Unified diff