diff mbox

[v2,3/8] ppc/xics: add a realize() handler to ICPStateClass

Message ID 1489674912-21942-4-git-send-email-clg@kaod.org
State New
Headers show

Commit Message

Cédric Le Goater March 16, 2017, 2:35 p.m. UTC
It will be used by derived classes in PowerNV for customization.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/intc/xics.c        | 5 +++++
 include/hw/ppc/xics.h | 1 +
 2 files changed, 6 insertions(+)

Comments

David Gibson March 23, 2017, 4:10 a.m. UTC | #1
On Thu, Mar 16, 2017 at 03:35:07PM +0100, Cédric Le Goater wrote:
> It will be used by derived classes in PowerNV for customization.
> 
> Signed-off-by: Cédric Le Goater <clg@kaod.org>

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  hw/intc/xics.c        | 5 +++++
>  include/hw/ppc/xics.h | 1 +
>  2 files changed, 6 insertions(+)
> 
> diff --git a/hw/intc/xics.c b/hw/intc/xics.c
> index 5cde86ceb3bc..7cd842102265 100644
> --- a/hw/intc/xics.c
> +++ b/hw/intc/xics.c
> @@ -348,6 +348,7 @@ static void icp_reset(void *dev)
>  static void icp_realize(DeviceState *dev, Error **errp)
>  {
>      ICPState *icp = ICP(dev);
> +    ICPStateClass *icpc = ICP_GET_CLASS(dev);
>      Object *obj;
>      Error *err = NULL;
>  
> @@ -360,6 +361,10 @@ static void icp_realize(DeviceState *dev, Error **errp)
>  
>      icp->xics = XICS_FABRIC(obj);
>  
> +    if (icpc->realize) {
> +        icpc->realize(dev, errp);
> +    }
> +
>      qemu_register_reset(icp_reset, dev);
>  }
>  
> diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
> index 9a5e715fe553..0863e3a079f5 100644
> --- a/include/hw/ppc/xics.h
> +++ b/include/hw/ppc/xics.h
> @@ -60,6 +60,7 @@ typedef struct XICSFabric XICSFabric;
>  struct ICPStateClass {
>      DeviceClass parent_class;
>  
> +    void (*realize)(DeviceState *dev, Error **errp);
>      void (*pre_save)(ICPState *s);
>      int (*post_load)(ICPState *s, int version_id);
>      void (*cpu_setup)(ICPState *icp, PowerPCCPU *cpu);
diff mbox

Patch

diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index 5cde86ceb3bc..7cd842102265 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -348,6 +348,7 @@  static void icp_reset(void *dev)
 static void icp_realize(DeviceState *dev, Error **errp)
 {
     ICPState *icp = ICP(dev);
+    ICPStateClass *icpc = ICP_GET_CLASS(dev);
     Object *obj;
     Error *err = NULL;
 
@@ -360,6 +361,10 @@  static void icp_realize(DeviceState *dev, Error **errp)
 
     icp->xics = XICS_FABRIC(obj);
 
+    if (icpc->realize) {
+        icpc->realize(dev, errp);
+    }
+
     qemu_register_reset(icp_reset, dev);
 }
 
diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
index 9a5e715fe553..0863e3a079f5 100644
--- a/include/hw/ppc/xics.h
+++ b/include/hw/ppc/xics.h
@@ -60,6 +60,7 @@  typedef struct XICSFabric XICSFabric;
 struct ICPStateClass {
     DeviceClass parent_class;
 
+    void (*realize)(DeviceState *dev, Error **errp);
     void (*pre_save)(ICPState *s);
     int (*post_load)(ICPState *s, int version_id);
     void (*cpu_setup)(ICPState *icp, PowerPCCPU *cpu);