[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 07/24] ppc/xics: introduce a XICSFabric QOM inter
From: |
Cédric Le Goater |
Subject: |
[Qemu-devel] [PATCH v3 07/24] ppc/xics: introduce a XICSFabric QOM interface to handle ICSs |
Date: |
Fri, 24 Feb 2017 11:18:06 +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>
---
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 b1294417a0ae..ba800bacc9ac 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -726,6 +726,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
*/
@@ -766,6 +772,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 a36dae79cab5..58d1caa42ad3 100644
--- a/include/hw/ppc/xics.h
+++ b/include/hw/ppc/xics.h
@@ -177,6 +177,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-devel] [PATCH v3 00/24] ppc/xics: simplify ICS and ICP creation, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 01/24] xics: XICS should not be a SysBusDevice, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 02/24] ppc/xics: fix ICP and ICS reset, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 03/24] ppc/xics: remove set_nr_irqs() handler from XICSStateClass, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 04/24] ppc/xics: remove set_nr_servers() handler from XICSStateClass, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 05/24] ppc/xics: store the ICS object under the sPAPR machine, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 06/24] ppc/xics: add an InterruptStatsProvider interface to ICS and ICP objects, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 07/24] ppc/xics: introduce a XICSFabric QOM interface to handle ICSs,
Cédric Le Goater <=
- [Qemu-devel] [PATCH v3 08/24] ppc/xics: use the QOM interface under the sPAPR machine, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 09/24] ppc/xics: use the QOM interface to get irqs, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 10/24] ppc/xics: use the QOM interface to resend irqs, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 11/24] ppc/xics: remove xics_find_source(), Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 12/24] ppc/xics: register the reset handler of ICS objects, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 13/24] ppc/xics: remove the XICS list of ICS, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 14/24] ppc/xics: extend the QOM interface to handle ICPs, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 15/24] ppc/xics: simplify the cpu_setup() handler, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 16/24] ppc/xics: use the QOM interface to grab an ICP, Cédric Le Goater, 2017/02/24
- [Qemu-devel] [PATCH v3 17/24] ppc/xics: simplify spapr_dt_xics() interface, Cédric Le Goater, 2017/02/24