FreeBSD/sys/x86/xen/xen_intr.c
/*
 * Disable an interrupt source.
 *
 * \param isrc  The interrupt source to disable.
 */
Disable an interrupt source.
\param isrc  The interrupt source to disable.
Disable an interrupt source . \ param isrc The interrupt source to disable .
static void
xen_intr_pirq_disable_intr(struct intsrc *base_isrc)
{
	struct xenisrc *isrc;
	struct evtchn_close close;
	int error;
	isrc = (struct xenisrc *)base_isrc;
	evtchn_mask_port(isrc->xi_port);
	close.port = isrc->xi_port;
	error = HYPERVISOR_event_channel_op(EVTCHNOP_close, &close);
	if (error)
		panic("unable to close event channel %d IRQ#%d",
		    isrc->xi_port, isrc->xi_pirq);
	mtx_lock(&xen_intr_isrc_lock);
	xen_intr_port_to_isrc[isrc->xi_port] = NULL;
	mtx_unlock(&xen_intr_isrc_lock);
	isrc->xi_port = 0;
}
static void xen_intr_pirq_disable_intr ( struct intsrc * base_isrc ) { struct xenisrc * isrc ; struct evtchn_close close ; int error ; isrc = ( struct xenisrc * ) base_isrc ; evtchn_mask_port ( isrc -> xi_port ) ; close . port = isrc -> xi_port ; error = HYPERVISOR_event_channel_op ( EVTCHNOP_close , & close ) ; if ( error ) panic ( " " , isrc -> xi_port , isrc -> xi_pirq ) ; mtx_lock ( & xen_intr_isrc_lock ) ; xen_intr_port_to_isrc [ isrc -> xi_port ] = NULL ; mtx_unlock ( & xen_intr_isrc_lock ) ; isrc -> xi_port = 0 ; }
Disable an interrupt source.
Disable an interrupt source .