From d453c2c32ed2bf6cfccb6c2463416c4a613eb708 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sun, 23 Aug 2009 12:23:30 +0000 Subject: [PATCH] Sparc32: fix monitor commands 'info pic' and 'info irq' Signed-off-by: Blue Swirl --- hw/slavio_intctl.c | 14 ++++++++++---- hw/sun4m.c | 15 +++++++-------- hw/sun4m.h | 4 ++-- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/hw/slavio_intctl.c b/hw/slavio_intctl.c index dbea1f9..c9bad26 100644 --- a/hw/slavio_intctl.c +++ b/hw/slavio_intctl.c @@ -220,11 +220,14 @@ static CPUWriteMemoryFunc *slavio_intctlm_mem_write[3] = { slavio_intctlm_mem_writel, }; -void slavio_pic_info(Monitor *mon, void *opaque) +void slavio_pic_info(Monitor *mon, DeviceState *dev) { - SLAVIO_INTCTLState *s = opaque; + SysBusDevice *sd; + SLAVIO_INTCTLState *s; int i; + sd = sysbus_from_qdev(dev); + s = FROM_SYSBUS(SLAVIO_INTCTLState, sd); for (i = 0; i < MAX_CPUS; i++) { monitor_printf(mon, "per-cpu %d: pending 0x%08x\n", i, s->slaves[i].intreg_pending); @@ -233,15 +236,18 @@ void slavio_pic_info(Monitor *mon, void *opaque) s->intregm_pending, s->intregm_disabled); } -void slavio_irq_info(Monitor *mon, void *opaque) +void slavio_irq_info(Monitor *mon, DeviceState *dev) { #ifndef DEBUG_IRQ_COUNT monitor_printf(mon, "irq statistic code not compiled.\n"); #else - SLAVIO_INTCTLState *s = opaque; + SysBusDevice *sd; + SLAVIO_INTCTLState *s; int i; int64_t count; + sd = sysbus_from_qdev(dev); + s = FROM_SYSBUS(SLAVIO_INTCTLState, sd); monitor_printf(mon, "IRQ statistics:\n"); for (i = 0; i < 32; i++) { count = s->irq_count[i]; diff --git a/hw/sun4m.c b/hw/sun4m.c index ddc295a..88a0b25 100644 --- a/hw/sun4m.c +++ b/hw/sun4m.c @@ -209,7 +209,7 @@ static void nvram_init(m48t59_t *nvram, uint8_t *macaddr, const char *cmdline, m48t59_write(nvram, i, image[i]); } -static void *slavio_intctl; +static DeviceState *slavio_intctl; void pic_info(Monitor *mon) { @@ -748,7 +748,6 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size, unsigned long kernel_size; BlockDriverState *fd[MAX_FD]; void *fw_cfg; - DeviceState *dev; DriveInfo *dinfo; /* init CPUs */ @@ -768,16 +767,16 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size, prom_init(hwdef->slavio_base, bios_name); - dev = slavio_intctl_init(hwdef->intctl_base, - hwdef->intctl_base + 0x10000ULL, - cpu_irqs, - 7); + slavio_intctl = slavio_intctl_init(hwdef->intctl_base, + hwdef->intctl_base + 0x10000ULL, + cpu_irqs, + 7); for (i = 0; i < 32; i++) { - slavio_irq[i] = qdev_get_gpio_in(dev, i); + slavio_irq[i] = qdev_get_gpio_in(slavio_intctl, i); } for (i = 0; i < MAX_CPUS; i++) { - slavio_cpu_irq[i] = qdev_get_gpio_in(dev, 32 + i); + slavio_cpu_irq[i] = qdev_get_gpio_in(slavio_intctl, 32 + i); } if (hwdef->idreg_base) { diff --git a/hw/sun4m.h b/hw/sun4m.h index 9f54092..ce97ee5 100644 --- a/hw/sun4m.h +++ b/hw/sun4m.h @@ -23,8 +23,8 @@ static inline void sparc_iommu_memory_write(void *opaque, } /* slavio_intctl.c */ -void slavio_pic_info(Monitor *mon, void *opaque); -void slavio_irq_info(Monitor *mon, void *opaque); +void slavio_pic_info(Monitor *mon, DeviceState *dev); +void slavio_irq_info(Monitor *mon, DeviceState *dev); /* sun4c_intctl.c */ void sun4c_pic_info(Monitor *mon, void *opaque); -- 2.7.4