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>
This commit is contained in:
Yi Wang 2017-07-26 02:18:37 -04:00 committed by Eduardo Habkost
parent 5ce46cb34e
commit 1bef228474
2 changed files with 13 additions and 4 deletions

View file

@ -115,9 +115,10 @@ ETEXI
#if defined(TARGET_I386) #if defined(TARGET_I386)
{ {
.name = "lapic", .name = "lapic",
.args_type = "", .args_type = "apic-id:i?",
.params = "", .params = "[apic-id]",
.help = "show local apic state", .help = "show local apic state (apic-id: local apic to read, default is which of current CPU)",
.cmd = hmp_info_local_apic, .cmd = hmp_info_local_apic,
}, },
#endif #endif

View file

@ -632,7 +632,15 @@ const MonitorDef *target_monitor_defs(void)
void hmp_info_local_apic(Monitor *mon, const QDict *qdict) 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) { if (!cs) {
monitor_printf(mon, "No CPU available\n"); monitor_printf(mon, "No CPU available\n");