summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Butsykin <pbutsykin@virtuozzo.com>2015-09-22 16:18:21 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2015-09-25 12:04:42 +0200
commit6bde8fd69f874a107f04cea2695ebece849213c5 (patch)
treefa20b0af749a7373ff57eddf7dd3489dba3c52e2
parentd665d696c53f776ec2cb91505658969b9eb9906b (diff)
downloadqemu-6bde8fd69f874a107f04cea2695ebece849213c5.tar.gz
qemu-6bde8fd69f874a107f04cea2695ebece849213c5.tar.bz2
qemu-6bde8fd69f874a107f04cea2695ebece849213c5.zip
hmp: implemented io apic dump state for TCG
Added support emulator for the hmp command "info ioapic" Signed-off-by: Pavel Butsykin <pbutsykin@virtuozzo.com> Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Andreas Färber <afaerber@suse.de> Message-Id: <1442927901-1084-10-git-send-email-den@openvz.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--hw/intc/ioapic.c12
-rw-r--r--include/hw/i386/pc.h1
-rw-r--r--target-i386/monitor.c2
3 files changed, 15 insertions, 0 deletions
diff --git a/hw/intc/ioapic.c b/hw/intc/ioapic.c
index bde52e8953..de2dd4ba8e 100644
--- a/hw/intc/ioapic.c
+++ b/hw/intc/ioapic.c
@@ -20,6 +20,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+#include "monitor/monitor.h"
#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/i386/ioapic.h"
@@ -139,6 +140,17 @@ void ioapic_eoi_broadcast(int vector)
}
}
+void ioapic_dump_state(Monitor *mon, const QDict *qdict)
+{
+ int i;
+
+ for (i = 0; i < MAX_IOAPICS; i++) {
+ if (ioapics[i] != 0) {
+ ioapic_print_redtbl(mon, ioapics[i]);
+ }
+ }
+}
+
static uint64_t
ioapic_mem_read(void *opaque, hwaddr addr, unsigned int size)
{
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 539cf64ed6..7c9f3a598e 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -126,6 +126,7 @@ void hmp_info_irq(Monitor *mon, const QDict *qdict);
/* ioapic.c */
void kvm_ioapic_dump_state(Monitor *mon, const QDict *qdict);
+void ioapic_dump_state(Monitor *mon, const QDict *qdict);
/* Global System Interrupts */
diff --git a/target-i386/monitor.c b/target-i386/monitor.c
index 829fff9e03..aac6b1ba8e 100644
--- a/target-i386/monitor.c
+++ b/target-i386/monitor.c
@@ -505,5 +505,7 @@ void hmp_info_io_apic(Monitor *mon, const QDict *qdict)
{
if (kvm_irqchip_in_kernel()) {
kvm_ioapic_dump_state(mon, qdict);
+ } else {
+ ioapic_dump_state(mon, qdict);
}
}