FreeBSD/sys/dev/mrsas/mrsas.c
/*
 * mrsas_isr:	ISR entry point
 * input:		argument pointer
 *
 * This function is the interrupt service routine entry point.  There are two
 * types of interrupts, state change interrupt and response interrupt.  If an
 * interrupt is not ours, we just return.
 */
ISR entry point
input:               argument pointer

This function is the interrupt service routine entry point.  There are two
types of interrupts, state change interrupt and response interrupt.  If an
interrupt is not ours, we just return.
ISR entry point input : argument pointer This function is the interrupt service routine entry point . There are two types of interrupts state change interrupt and response interrupt . If an interrupt is not ours we just return .
void
mrsas_isr(void *arg)
{
	struct mrsas_irq_context *irq_context = (struct mrsas_irq_context *)arg;
	struct mrsas_softc *sc = irq_context->sc;
	int status = 0;
	if (sc->mask_interrupts)
		return;
	if (!sc->msix_vectors) {
		status = mrsas_clear_intr(sc);
		if (!status)
			return;
	}
	if (mrsas_test_bit(MRSAS_FUSION_IN_RESET, &sc->reset_flags)) {
		printf(" Entered into ISR when OCR is going active. \n");
		mrsas_clear_intr(sc);
		return;
	}
	if (mrsas_complete_cmd(sc, irq_context->MSIxIndex) != SUCCESS)
		mrsas_clear_intr(sc);
	return;
}
void mrsas_isr ( void * arg ) { struct mrsas_irq_context * irq_context = ( struct mrsas_irq_context * ) arg ; struct mrsas_softc * sc = irq_context -> sc ; int status = 0 ; if ( sc -> mask_interrupts ) return ; if ( ! sc -> msix_vectors ) { status = mrsas_clear_intr ( sc ) ; if ( ! status ) return ; } if ( mrsas_test_bit ( MRSAS_FUSION_IN_RESET , & sc -> reset_flags ) ) { printf ( " \n " ) ; mrsas_clear_intr ( sc ) ; return ; } if ( mrsas_complete_cmd ( sc , irq_context -> MSIxIndex ) != SUCCESS ) mrsas_clear_intr ( sc ) ; return ; }
mrsas_isr:   ISR entry point
 input:               argument pointer
mrsas_isr : ISR entry point input : argument pointer
/* If we are resetting, bail */ /* Process for reply request and clear response interrupt */