mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
spapr: move the qemu_irq array under the machine
The qemu_irq array is now allocated at the machine level using a sPAPR IRQ set_irq handler depending on the chosen interrupt mode. The use of this handler is slightly inefficient today but it will become necessary when the 'dual' interrupt mode is introduced. Signed-off-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
f8df900316
commit
872ff3dea3
8 changed files with 29 additions and 11 deletions
|
@ -182,6 +182,7 @@ struct sPAPRMachineState {
|
|||
unsigned long *irq_map;
|
||||
sPAPRXive *xive;
|
||||
sPAPRIrq *irq;
|
||||
qemu_irq *qirqs;
|
||||
|
||||
bool cmd_line_caps[SPAPR_CAP_NUM];
|
||||
sPAPRCapabilities def, eff, mig;
|
||||
|
|
|
@ -46,6 +46,7 @@ typedef struct sPAPRIrq {
|
|||
Error **errp);
|
||||
int (*post_load)(sPAPRMachineState *spapr, int version_id);
|
||||
void (*reset)(sPAPRMachineState *spapr, Error **errp);
|
||||
void (*set_irq)(void *opaque, int srcno, int val);
|
||||
} sPAPRIrq;
|
||||
|
||||
extern sPAPRIrq spapr_irq_xics;
|
||||
|
|
|
@ -131,7 +131,6 @@ struct ICSState {
|
|||
/*< public >*/
|
||||
uint32_t nr_irqs;
|
||||
uint32_t offset;
|
||||
qemu_irq *qirqs;
|
||||
ICSIRQState *irqs;
|
||||
XICSFabric *xics;
|
||||
};
|
||||
|
|
|
@ -184,7 +184,6 @@ typedef struct XiveSource {
|
|||
|
||||
/* IRQs */
|
||||
uint32_t nr_irqs;
|
||||
qemu_irq *qirqs;
|
||||
unsigned long *lsi_map;
|
||||
|
||||
/* PQ bits and LSI assertion bit */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue