It also makes the xics_common class usable as a standalone class. This will be useful for the PowerNV machine which only needs a simple container XICS object at the machine level.
It also cleans up a little more the xics_spapr class and we should soon be able to remove it. The 'set_nr_irqs' is still in the way. Signed-off-by: Cédric Le Goater <c...@kaod.org> --- hw/intc/xics.c | 8 ++++++++ hw/intc/xics_spapr.c | 7 ------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/hw/intc/xics.c b/hw/intc/xics.c index dd77e3b77d69..62389e2bbe2d 100644 --- a/hw/intc/xics.c +++ b/hw/intc/xics.c @@ -219,6 +219,12 @@ void xics_set_nr_servers(XICSState *xics, uint32_t nr_servers, } } +static void xics_common_set_nr_servers(XICSState *xics, uint32_t nr_servers, + Error **errp) +{ + xics_set_nr_servers(xics, nr_servers, TYPE_ICP, errp); +} + static void xics_prop_get_nr_servers(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -305,10 +311,12 @@ static void xics_common_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); InterruptStatsProviderClass *ic = INTERRUPT_STATS_PROVIDER_CLASS(oc); + XICSStateClass *xsc = XICS_COMMON_CLASS(oc); dc->realize = xics_common_realize; dc->reset = xics_common_reset; ic->print_info = xics_common_pic_print_info; + xsc->set_nr_servers = xics_common_set_nr_servers; } static const TypeInfo xics_common_info = { diff --git a/hw/intc/xics_spapr.c b/hw/intc/xics_spapr.c index e15180f8304c..c5a2f452d308 100644 --- a/hw/intc/xics_spapr.c +++ b/hw/intc/xics_spapr.c @@ -251,12 +251,6 @@ static void xics_spapr_set_nr_irqs(XICSState *xics, uint32_t nr_irqs, } } -static void xics_spapr_set_nr_servers(XICSState *xics, uint32_t nr_servers, - Error **errp) -{ - xics_set_nr_servers(xics, nr_servers, TYPE_ICP, errp); -} - static void xics_spapr_realize(DeviceState *dev, Error **errp) { /* Registration of global state belongs into realize */ @@ -288,7 +282,6 @@ static void xics_spapr_class_init(ObjectClass *oc, void *data) xsc->realize = xics_spapr_realize; xsc->set_nr_irqs = xics_spapr_set_nr_irqs; - xsc->set_nr_servers = xics_spapr_set_nr_servers; } static const TypeInfo xics_spapr_info = { -- 2.7.4