Revision 79c4f6b0 monitor.c
b/monitor.c | ||
---|---|---|
1677 | 1677 |
} |
1678 | 1678 |
} |
1679 | 1679 |
|
1680 |
#if defined(TARGET_I386) |
|
1681 |
static void do_inject_mce(Monitor *mon, |
|
1682 |
int cpu_index, int bank, |
|
1683 |
unsigned status_hi, unsigned status_lo, |
|
1684 |
unsigned mcg_status_hi, unsigned mcg_status_lo, |
|
1685 |
unsigned addr_hi, unsigned addr_lo, |
|
1686 |
unsigned misc_hi, unsigned misc_lo) |
|
1687 |
{ |
|
1688 |
CPUState *cenv; |
|
1689 |
uint64_t status = ((uint64_t)status_hi << 32) | status_lo; |
|
1690 |
uint64_t mcg_status = ((uint64_t)mcg_status_hi << 32) | mcg_status_lo; |
|
1691 |
uint64_t addr = ((uint64_t)addr_hi << 32) | addr_lo; |
|
1692 |
uint64_t misc = ((uint64_t)misc_hi << 32) | misc_lo; |
|
1693 |
|
|
1694 |
for (cenv = first_cpu; cenv != NULL; cenv = cenv->next_cpu) |
|
1695 |
if (cenv->cpu_index == cpu_index && cenv->mcg_cap) { |
|
1696 |
cpu_inject_x86_mce(cenv, bank, status, mcg_status, addr, misc); |
|
1697 |
break; |
|
1698 |
} |
|
1699 |
} |
|
1700 |
#endif |
|
1701 |
|
|
1680 | 1702 |
static const mon_cmd_t mon_cmds[] = { |
1681 | 1703 |
#include "qemu-monitor.h" |
1682 | 1704 |
{ NULL, NULL, }, |
... | ... | |
2451 | 2473 |
void *arg3, void *arg4, void *arg5); |
2452 | 2474 |
void (*handler_7)(Monitor *mon, void *arg0, void *arg1, void *arg2, |
2453 | 2475 |
void *arg3, void *arg4, void *arg5, void *arg6); |
2476 |
void (*handler_8)(Monitor *mon, void *arg0, void *arg1, void *arg2, |
|
2477 |
void *arg3, void *arg4, void *arg5, void *arg6, |
|
2478 |
void *arg7); |
|
2479 |
void (*handler_9)(Monitor *mon, void *arg0, void *arg1, void *arg2, |
|
2480 |
void *arg3, void *arg4, void *arg5, void *arg6, |
|
2481 |
void *arg7, void *arg8); |
|
2482 |
void (*handler_10)(Monitor *mon, void *arg0, void *arg1, void *arg2, |
|
2483 |
void *arg3, void *arg4, void *arg5, void *arg6, |
|
2484 |
void *arg7, void *arg8, void *arg9); |
|
2454 | 2485 |
|
2455 | 2486 |
#ifdef DEBUG |
2456 | 2487 |
monitor_printf(mon, "command='%s'\n", cmdline); |
... | ... | |
2739 | 2770 |
handler_7(mon, args[0], args[1], args[2], args[3], args[4], args[5], |
2740 | 2771 |
args[6]); |
2741 | 2772 |
break; |
2773 |
case 8: |
|
2774 |
handler_8 = cmd->handler; |
|
2775 |
handler_8(mon, args[0], args[1], args[2], args[3], args[4], args[5], |
|
2776 |
args[6], args[7]); |
|
2777 |
break; |
|
2778 |
case 9: |
|
2779 |
handler_9 = cmd->handler; |
|
2780 |
handler_9(mon, args[0], args[1], args[2], args[3], args[4], args[5], |
|
2781 |
args[6], args[7], args[8]); |
|
2782 |
break; |
|
2783 |
case 10: |
|
2784 |
handler_10 = cmd->handler; |
|
2785 |
handler_10(mon, args[0], args[1], args[2], args[3], args[4], args[5], |
|
2786 |
args[6], args[7], args[8], args[9]); |
|
2787 |
break; |
|
2742 | 2788 |
default: |
2743 | 2789 |
monitor_printf(mon, "unsupported number of arguments: %d\n", nb_args); |
2744 | 2790 |
goto fail; |
Also available in: Unified diff