mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
spapr: add a 'reset' method to the sPAPR IRQ backend
For the time being, the XIVE reset handler updates the OS CAM line of the vCPU as it is done under a real hypervisor when a vCPU is scheduled to run on a HW thread. This will let the XIVE presenter engine find a match among the NVTs dispatched on the HW threads. This handler will become even more useful when we introduce the machine supporting both interrupt modes, XIVE and XICS. In this machine, the interrupt mode is chosen by the CAS negotiation process and activated after a reset. Signed-off-by: Cédric Le Goater <clg@kaod.org> [dwg: Fix style nits] Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
1c53b06c03
commit
b2e2247716
5 changed files with 56 additions and 1 deletions
|
@ -44,6 +44,7 @@ typedef struct sPAPRIrq {
|
|||
Object *(*cpu_intc_create)(sPAPRMachineState *spapr, Object *cpu,
|
||||
Error **errp);
|
||||
int (*post_load)(sPAPRMachineState *spapr, int version_id);
|
||||
void (*reset)(sPAPRMachineState *spapr, Error **errp);
|
||||
} sPAPRIrq;
|
||||
|
||||
extern sPAPRIrq spapr_irq_xics;
|
||||
|
@ -55,6 +56,7 @@ int spapr_irq_claim(sPAPRMachineState *spapr, int irq, bool lsi, Error **errp);
|
|||
void spapr_irq_free(sPAPRMachineState *spapr, int irq, int num);
|
||||
qemu_irq spapr_qirq(sPAPRMachineState *spapr, int irq);
|
||||
int spapr_irq_post_load(sPAPRMachineState *spapr, int version_id);
|
||||
void spapr_irq_reset(sPAPRMachineState *spapr, Error **errp);
|
||||
|
||||
/*
|
||||
* XICS legacy routines
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue