[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v4 07/26] ppc/xics: introduce a XICSFabric QOM interfa
From: |
Cédric Le Goater |
Subject: |
[Qemu-ppc] [PATCH v4 07/26] ppc/xics: introduce a XICSFabric QOM interface to handle ICSs |
Date: |
Mon, 27 Feb 2017 15:29:14 +0100 |
This interface provides two simple handlers. One is to get an ICS
(Interrupt Source Controller) object from an irq number and a second
to resend the irqs when needed.
Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
---
Changes since v2:
- renamed QOM Interface to XICSFabric
hw/intc/xics.c | 7 +++++++
include/hw/ppc/xics.h | 18 ++++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index c7c9bd600790..433869a696c4 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -745,6 +745,12 @@ static const TypeInfo ics_base_info = {
.class_size = sizeof(ICSStateClass),
};
+static const TypeInfo xics_fabric_info = {
+ .name = TYPE_XICS_FABRIC,
+ .parent = TYPE_INTERFACE,
+ .class_size = sizeof(XICSFabricClass),
+};
+
/*
* Exported functions
*/
@@ -785,6 +791,7 @@ static void xics_register_types(void)
type_register_static(&ics_simple_info);
type_register_static(&ics_base_info);
type_register_static(&icp_info);
+ type_register_static(&xics_fabric_info);
}
type_init(xics_register_types)
diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
index 37d4d9ce3f81..1c43305a0456 100644
--- a/include/hw/ppc/xics.h
+++ b/include/hw/ppc/xics.h
@@ -178,6 +178,24 @@ struct ICSIRQState {
uint8_t flags;
};
+typedef struct XICSFabric {
+ Object parent;
+} XICSFabric;
+
+#define TYPE_XICS_FABRIC "xics-fabric"
+#define XICS_FABRIC(obj) \
+ OBJECT_CHECK(XICSFabric, (obj), TYPE_XICS_FABRIC)
+#define XICS_FABRIC_CLASS(klass) \
+ OBJECT_CLASS_CHECK(XICSFabricClass, (klass), TYPE_XICS_FABRIC)
+#define XICS_FABRIC_GET_CLASS(obj) \
+ OBJECT_GET_CLASS(XICSFabricClass, (obj), TYPE_XICS_FABRIC)
+
+typedef struct XICSFabricClass {
+ InterfaceClass parent;
+ ICSState *(*ics_get)(XICSFabric *xi, int irq);
+ void (*ics_resend)(XICSFabric *xi);
+} XICSFabricClass;
+
#define XICS_IRQS_SPAPR 1024
qemu_irq xics_get_qirq(XICSState *icp, int irq);
--
2.7.4
- [Qemu-ppc] [PATCH v4 00/26] ppc/xics: simplify ICS and ICP creation, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 01/26] xics: XICS should not be a SysBusDevice, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 02/26] ppc/xics: fix ICP and ICS reset, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 04/26] ppc/xics: remove set_nr_servers() handler from XICSStateClass, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 03/26] ppc/xics: remove set_nr_irqs() handler from XICSStateClass, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 06/26] ppc/xics: add an InterruptStatsProvider interface to ICS and ICP objects, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 05/26] ppc/xics: store the ICS object under the sPAPR machine, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 07/26] ppc/xics: introduce a XICSFabric QOM interface to handle ICSs,
Cédric Le Goater <=
- [Qemu-ppc] [PATCH v4 09/26] ppc/xics: use the QOM interface to get irqs, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 10/26] ppc/xics: use the QOM interface to resend irqs, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 08/26] ppc/xics: use the QOM interface under the sPAPR machine, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 11/26] ppc/xics: remove xics_find_source(), Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 12/26] ppc/xics: register the reset handler of ICS objects, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 13/26] ppc/xics: remove the XICS list of ICS, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 14/26] ppc/xics: extend the QOM interface to handle ICPs, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 15/26] ppc/xics: move kernel_xics_fd out of KVMXICSState, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 16/26] ppc/xics: simplify the cpu_setup() handler, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 17/26] ppc/xics: move the cpu_setup() handler under the ICPState class, Cédric Le Goater, 2017/02/27