ppc: export the XICS and XIVE set_irq handlers
To support the 'dual' interrupt mode, XICS and XIVE, we plan to move the qemu_irq array of each interrupt controller under the machine and do the allocation under the sPAPR IRQ init method. 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
e502202c9b
commit
734d9c8905
@ -461,7 +461,7 @@ static void ics_simple_set_irq_lsi(ICSState *ics, int srcno, int val)
|
|||||||
ics_simple_resend_lsi(ics, srcno);
|
ics_simple_resend_lsi(ics, srcno);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ics_simple_set_irq(void *opaque, int srcno, int val)
|
void ics_simple_set_irq(void *opaque, int srcno, int val)
|
||||||
{
|
{
|
||||||
ICSState *ics = (ICSState *)opaque;
|
ICSState *ics = (ICSState *)opaque;
|
||||||
|
|
||||||
|
@ -298,7 +298,7 @@ static int ics_set_kvm_state(ICSState *ics, int version_id)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ics_kvm_set_irq(void *opaque, int srcno, int val)
|
void ics_kvm_set_irq(void *opaque, int srcno, int val)
|
||||||
{
|
{
|
||||||
ICSState *ics = opaque;
|
ICSState *ics = opaque;
|
||||||
struct kvm_irq_level args;
|
struct kvm_irq_level args;
|
||||||
|
@ -845,7 +845,7 @@ static const MemoryRegionOps xive_source_esb_ops = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static void xive_source_set_irq(void *opaque, int srcno, int val)
|
void xive_source_set_irq(void *opaque, int srcno, int val)
|
||||||
{
|
{
|
||||||
XiveSource *xsrc = XIVE_SOURCE(opaque);
|
XiveSource *xsrc = XIVE_SOURCE(opaque);
|
||||||
bool notify = false;
|
bool notify = false;
|
||||||
|
@ -192,6 +192,8 @@ void icp_eoi(ICPState *icp, uint32_t xirr);
|
|||||||
|
|
||||||
void ics_simple_write_xive(ICSState *ics, int nr, int server,
|
void ics_simple_write_xive(ICSState *ics, int nr, int server,
|
||||||
uint8_t priority, uint8_t saved_priority);
|
uint8_t priority, uint8_t saved_priority);
|
||||||
|
void ics_simple_set_irq(void *opaque, int srcno, int val);
|
||||||
|
void ics_kvm_set_irq(void *opaque, int srcno, int val);
|
||||||
|
|
||||||
void ics_set_irq_type(ICSState *ics, int srcno, bool lsi);
|
void ics_set_irq_type(ICSState *ics, int srcno, bool lsi);
|
||||||
void icp_pic_print_info(ICPState *icp, Monitor *mon);
|
void icp_pic_print_info(ICPState *icp, Monitor *mon);
|
||||||
|
@ -293,6 +293,8 @@ static inline void xive_source_irq_set(XiveSource *xsrc, uint32_t srcno,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void xive_source_set_irq(void *opaque, int srcno, int val);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XIVE Router
|
* XIVE Router
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user