[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 3/6] intc/slavio_intctl: implement InterruptS
From: |
Artyom Tarasenko |
Subject: |
Re: [Qemu-devel] [PATCH v2 3/6] intc/slavio_intctl: implement InterruptStatsProvider interface |
Date: |
Tue, 27 Sep 2016 16:53:32 +0200 |
Are slavio_pic_info and slavio_irq_info still used after this patch?
On Mon, Sep 26, 2016 at 10:23 PM, Hervé Poussineau <address@hidden> wrote:
> Signed-off-by: Hervé Poussineau <address@hidden>
> ---
> 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 = SLAVIO_INTCTL(obj);
> + *irq_counts = s->irq_count;
> + *nb_irqs = ARRAY_SIZE(s->irq_count);
> + return true;
> +}
> +#endif
> +
> +static void slavio_intctl_print_info(InterruptStatsProvider *obj, Monitor
> *mon)
> +{
> + SLAVIO_INTCTLState *s = SLAVIO_INTCTL(obj);
> + int i;
> +
> + for (i = 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 = 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 = DEVICE_CLASS(klass);
> + InterruptStatsProviderClass *ic = INTERRUPT_STATS_PROVIDER_CLASS(klass);
>
> dc->reset = slavio_intctl_reset;
> dc->vmsd = &vmstate_intctl;
> +#ifdef DEBUG_IRQ_COUNT
> + ic->get_statistics = slavio_intctl_get_statistics;
> +#endif
> + ic->print_info = slavio_intctl_print_info;
> }
>
> static const TypeInfo slavio_intctl_info = {
> @@ -460,6 +491,10 @@ static const TypeInfo slavio_intctl_info = {
> .instance_size = sizeof(SLAVIO_INTCTLState),
> .instance_init = slavio_intctl_init,
> .class_init = slavio_intctl_class_init,
> + .interfaces = (InterfaceInfo[]) {
> + { TYPE_INTERRUPT_STATS_PROVIDER },
> + { }
> + },
> };
>
> static void slavio_intctl_register_types(void)
> --
> 2.1.4
>
>
--
Regards,
Artyom Tarasenko
SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/qemu
- [Qemu-devel] [PATCH v2 2/6] intc/i8259: implement InterruptStatsProvider interface, (continued)
[Qemu-devel] [PATCH v2 5/6] intc: make HMP 'info irq' and 'info pic' commands use InterruptStatsProvider interface, Hervé Poussineau, 2016/09/26
[Qemu-devel] [PATCH v2 1/6] intc: add an interface to gather statistics/informations on interrupt controllers, Hervé Poussineau, 2016/09/26
[Qemu-devel] [PATCH v2 6/6] intc: make HMP 'info irq' and 'info pic' commands available on all targets, Hervé Poussineau, 2016/09/26
[Qemu-devel] [PATCH v2 3/6] intc/slavio_intctl: implement InterruptStatsProvider interface, Hervé Poussineau, 2016/09/26
- Re: [Qemu-devel] [PATCH v2 3/6] intc/slavio_intctl: implement InterruptStatsProvider interface,
Artyom Tarasenko <=
Re: [Qemu-devel] [PATCH v2 0/6] intc: change 'info irq' and 'info pic' to be target-agnostic, David Gibson, 2016/09/27