sys/pmax/dev/asc.c
/*
 * Called by asic_intr() for scsi dma pointer update interrupts.
 */
Called by asic_intr() for scsi dma pointer update interrupts.
Called by asic_intr () for scsi dma pointer update interrupts .
void
asc_dma_intr()
{
	asc_softc_t asc = &asc_softc[0];
	u_int next_phys;
	asc->dma_xfer -= NBPG;
	if (asc->dma_xfer <= -NBPG) {
		volatile u_int *ssr = (volatile u_int *)
			ASIC_REG_CSR(asic_base);
		*ssr &= ~ASIC_CSR_DMAEN_SCSI;
	} else {
		asc->dma_next += NBPG;
		next_phys = MACH_CACHED_TO_PHYS(asc->dma_next);
	}
	*(volatile int *)ASIC_REG_SCSI_DMANPTR(asic_base) =
		ASIC_DMA_ADDR(next_phys);
	MachEmptyWriteBuffer();
}
void asc_dma_intr ( ) { asc_softc_t asc = & asc_softc [ 0 ] ; u_int next_phys ; asc -> dma_xfer -= NBPG ; if ( asc -> dma_xfer <= - NBPG ) { volatile u_int * ssr = ( volatile u_int * ) ASIC_REG_CSR ( asic_base ) ; * ssr &= ~ ASIC_CSR_DMAEN_SCSI ; } else { asc -> dma_next += NBPG ; next_phys = MACH_CACHED_TO_PHYS ( asc -> dma_next ) ; } * ( volatile int * ) ASIC_REG_SCSI_DMANPTR ( asic_base ) = ASIC_DMA_ADDR ( next_phys ) ; MachEmptyWriteBuffer ( ) ; }
Called by asic_intr() for scsi dma pointer update interrupts.
Called by asic_intr () for scsi dma pointer update interrupts .