From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38812) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpAKw-0007su-Oa for qemu-devel@nongnu.org; Wed, 28 Sep 2016 04:35:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bpAKt-000898-O7 for qemu-devel@nongnu.org; Wed, 28 Sep 2016 04:35:29 -0400 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]:33365) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpAKt-00088w-Bc for qemu-devel@nongnu.org; Wed, 28 Sep 2016 04:35:27 -0400 Received: by mail-lf0-x243.google.com with SMTP id l131so2935671lfl.0 for ; Wed, 28 Sep 2016 01:35:27 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1474921408-24710-1-git-send-email-hpoussin@reactos.org> <1474921408-24710-4-git-send-email-hpoussin@reactos.org> From: Artyom Tarasenko Date: Wed, 28 Sep 2016 10:35:06 +0200 Message-ID: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v2 3/6] intc/slavio_intctl: implement InterruptStatsProvider interface List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?Q?Herv=C3=A9_Poussineau?= Cc: qemu-devel , Paolo Bonzini , Luiz Capitulino , Mark Cave-Ayland On Tue, Sep 27, 2016 at 8:39 PM, Herv=C3=A9 Poussineau wrote: > Le 27/09/2016 =C3=A0 16:53, Artyom Tarasenko a =C3=A9crit : >> >> Are slavio_pic_info and slavio_irq_info still used after this patch? > > > After this patch, yes. > However, slavio_pic_info/slavio_irq_info (and > sun4m_hmp_info_pic/sun4m_hmp_info_irq) will be removed in patch 5/6. > Oh. The 5/6 somehow didn't make it to my inbox, so I missed it. Acked-by: Artyom Tarasenko > > >> >> On Mon, Sep 26, 2016 at 10:23 PM, Herv=C3=A9 Poussineau >> wrote: >>> >>> Signed-off-by: Herv=C3=A9 Poussineau >>> --- >>> hw/intc/slavio_intctl.c | 35 +++++++++++++++++++++++++++++++++++ >>> 1 file changed, 35 insertions(+) >>> >>> diff --git a/hw/intc/slavio_intctl.c b/hw/intc/slavio_intctl.c >>> index e82e893..a9acb64 100644 >>> --- a/hw/intc/slavio_intctl.c >>> +++ b/hw/intc/slavio_intctl.c >>> @@ -26,6 +26,7 @@ >>> #include "hw/sparc/sun4m.h" >>> #include "monitor/monitor.h" >>> #include "hw/sysbus.h" >>> +#include "hw/intc/intc.h" >>> #include "trace.h" >>> >>> //#define DEBUG_IRQ_COUNT >>> @@ -418,6 +419,31 @@ static void slavio_intctl_reset(DeviceState *d) >>> slavio_check_interrupts(s, 0); >>> } >>> >>> +#ifdef DEBUG_IRQ_COUNT >>> +static bool slavio_intctl_get_statistics(InterruptStatsProvider *obj, >>> + uint64_t **irq_counts, >>> + unsigned int *nb_irqs) >>> +{ >>> + SLAVIO_INTCTLState *s =3D SLAVIO_INTCTL(obj); >>> + *irq_counts =3D s->irq_count; >>> + *nb_irqs =3D ARRAY_SIZE(s->irq_count); >>> + return true; >>> +} >>> +#endif >>> + >>> +static void slavio_intctl_print_info(InterruptStatsProvider *obj, >>> Monitor *mon) >>> +{ >>> + SLAVIO_INTCTLState *s =3D SLAVIO_INTCTL(obj); >>> + int i; >>> + >>> + for (i =3D 0; i < MAX_CPUS; i++) { >>> + monitor_printf(mon, "per-cpu %d: pending 0x%08x\n", i, >>> + s->slaves[i].intreg_pending); >>> + } >>> + monitor_printf(mon, "master: pending 0x%08x, disabled 0x%08x\n", >>> + s->intregm_pending, s->intregm_disabled); >>> +} >>> + >>> static void slavio_intctl_init(Object *obj) >>> { >>> DeviceState *dev =3D DEVICE(obj); >>> @@ -449,9 +475,14 @@ static void slavio_intctl_init(Object *obj) >>> static void slavio_intctl_class_init(ObjectClass *klass, void *data) >>> { >>> DeviceClass *dc =3D DEVICE_CLASS(klass); >>> + InterruptStatsProviderClass *ic =3D >>> INTERRUPT_STATS_PROVIDER_CLASS(klass); >>> >>> dc->reset =3D slavio_intctl_reset; >>> dc->vmsd =3D &vmstate_intctl; >>> +#ifdef DEBUG_IRQ_COUNT >>> + ic->get_statistics =3D slavio_intctl_get_statistics; >>> +#endif >>> + ic->print_info =3D slavio_intctl_print_info; >>> } >>> >>> static const TypeInfo slavio_intctl_info =3D { >>> @@ -460,6 +491,10 @@ static const TypeInfo slavio_intctl_info =3D { >>> .instance_size =3D sizeof(SLAVIO_INTCTLState), >>> .instance_init =3D slavio_intctl_init, >>> .class_init =3D slavio_intctl_class_init, >>> + .interfaces =3D (InterfaceInfo[]) { >>> + { TYPE_INTERRUPT_STATS_PROVIDER }, >>> + { } >>> + }, >>> }; >>> >>> static void slavio_intctl_register_types(void) >>> -- >>> 2.1.4 >>> >>> >> >> >> > --=20 Regards, Artyom Tarasenko SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/q= emu