diff options
author | Yi Wang <wang.yi59@zte.com.cn> | 2017-07-26 02:18:37 -0400 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2017-09-01 11:54:24 -0300 |
commit | 1bef228474482e70b2750832e8d67eacf3135c74 (patch) | |
tree | a221070cbcad896f81d966c1a62f55eb8c9ddc66 | |
parent | 5ce46cb34eecec0bc94a4b1394763f9a1bbe20c3 (diff) |
hmp: allow apic-id for "info lapic"
Add [apic-id] support for hmp command "info lapic", which is
useful when debugging ipi and so on. Current behavior is not
changed when the parameter isn't specified.
Signed-off-by: Yi Wang <wang.yi59@zte.com.cn>
Signed-off-by: Yun Liu <liu.yunh@zte.com.cn>
Message-Id: <1501049917-4701-3-git-send-email-wang.yi59@zte.com.cn>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
-rw-r--r-- | hmp-commands-info.hx | 7 | ||||
-rw-r--r-- | target/i386/monitor.c | 10 |
2 files changed, 13 insertions, 4 deletions
diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx index d9df238a5f..4ab7fcee98 100644 --- a/hmp-commands-info.hx +++ b/hmp-commands-info.hx @@ -115,9 +115,10 @@ ETEXI #if defined(TARGET_I386) { .name = "lapic", - .args_type = "", - .params = "", - .help = "show local apic state", + .args_type = "apic-id:i?", + .params = "[apic-id]", + .help = "show local apic state (apic-id: local apic to read, default is which of current CPU)", + .cmd = hmp_info_local_apic, }, #endif diff --git a/target/i386/monitor.c b/target/i386/monitor.c index 77ead60437..fe7d57b6aa 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -632,7 +632,15 @@ const MonitorDef *target_monitor_defs(void) void hmp_info_local_apic(Monitor *mon, const QDict *qdict) { - CPUState *cs = mon_get_cpu(); + CPUState *cs; + + if (qdict_haskey(qdict, "apic-id")) { + int id = qdict_get_try_int(qdict, "apic-id", 0); + cs = cpu_by_arch_id(id); + } else { + cs = mon_get_cpu(); + } + if (!cs) { monitor_printf(mon, "No CPU available\n"); |