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