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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user