OSDN Git Service

xics: split to xics and xics-common
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Thu, 26 Sep 2013 06:18:42 +0000 (16:18 +1000)
committerAlexander Graf <agraf@suse.de>
Fri, 25 Oct 2013 21:25:47 +0000 (23:25 +0200)
commit5a3d7b23ba41b4884b43b6bc936ea18f999d5c6b
treebccf204c7c8fe622aca1236128a2b7b39d5b070a
parent456df19cf7fd7f6d9ce986a3fb8f7603df5c3b22
xics: split to xics and xics-common

The upcoming XICS-KVM support will use bits of emulated XICS code.
So this introduces new level of hierarchy - "xics-common" class. Both
emulated XICS and XICS-KVM will inherit from it and override class
callbacks when required.

The new "xics-common" class implements:
1. replaces static "nr_irqs" and "nr_servers" properties with
the dynamic ones and adds callbacks to be executed when properties
are set.
2. xics_cpu_setup() callback renamed to xics_common_cpu_setup() as
it is a common part for both XICS'es
3. xics_reset() renamed to xics_common_reset() for the same reason.

The emulated XICS changes:
1. the part of xics_realize() which creates ICPs is moved to
the "nr_servers" property callback as realize() is too late to
create/initialize devices and instance_init() is too early to create
devices as the number of child devices comes via the "nr_servers"
property.
2. added ics_initfn() which does a little part of what xics_realize() did.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/intc/xics.c
hw/ppc/spapr.c
include/hw/ppc/xics.h