mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
ppc/xive: introduce the XiveNotifier interface
The XiveNotifier offers a simple interface, between the XiveSource object and the main interrupt controller of the machine. It will forward event notifications to the XIVE Interrupt Virtualization Routing Engine (IVRE). Signed-off-by: Cédric Le Goater <clg@kaod.org> [dwg: Adjust type name string for XiveNotifier] Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
5fd9ef18a9
commit
5e79b155a8
2 changed files with 48 additions and 0 deletions
|
@ -142,6 +142,27 @@
|
|||
|
||||
#include "hw/qdev-core.h"
|
||||
|
||||
/*
|
||||
* XIVE Fabric (Interface between Source and Router)
|
||||
*/
|
||||
|
||||
typedef struct XiveNotifier {
|
||||
Object parent;
|
||||
} XiveNotifier;
|
||||
|
||||
#define TYPE_XIVE_NOTIFIER "xive-notifier"
|
||||
#define XIVE_NOTIFIER(obj) \
|
||||
OBJECT_CHECK(XiveNotifier, (obj), TYPE_XIVE_NOTIFIER)
|
||||
#define XIVE_NOTIFIER_CLASS(klass) \
|
||||
OBJECT_CLASS_CHECK(XiveNotifierClass, (klass), TYPE_XIVE_NOTIFIER)
|
||||
#define XIVE_NOTIFIER_GET_CLASS(obj) \
|
||||
OBJECT_GET_CLASS(XiveNotifierClass, (obj), TYPE_XIVE_NOTIFIER)
|
||||
|
||||
typedef struct XiveNotifierClass {
|
||||
InterfaceClass parent;
|
||||
void (*notify)(XiveNotifier *xn, uint32_t lisn);
|
||||
} XiveNotifierClass;
|
||||
|
||||
/*
|
||||
* XIVE Interrupt Source
|
||||
*/
|
||||
|
@ -171,6 +192,8 @@ typedef struct XiveSource {
|
|||
uint64_t esb_flags;
|
||||
uint32_t esb_shift;
|
||||
MemoryRegion esb_mmio;
|
||||
|
||||
XiveNotifier *xive;
|
||||
} XiveSource;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue