mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-03 18:53:12 +00:00
ppc/xics: introduce a XICSFabric QOM interface to handle ICSs
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 <clg@kaod.org> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
b9038e7806
commit
51b180051e
@ -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)
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user