예제 #1
0
void rpipe_service()
{
	if(run_wave_bottom_half) {
		cpustats_enter();
		rpipe_wave_bottom_half();
		run_wave_bottom_half = 0;
		cpustats_leave();
	}

	if(run_swap_bottom_half) {
		cpustats_enter();
		rpipe_swap_bottom_half();
		run_swap_bottom_half = 0;
		cpustats_leave();
	}
}
예제 #2
0
파일: isr.c 프로젝트: carlobar/milkymist
void isr()
{
	unsigned int irqs;

	cpustats_enter();

	irqs = irq_pending() & irq_getmask();

	if(irqs & IRQ_UARTRX)
		uart_isr_rx();
	if(irqs & IRQ_UARTTX)
		uart_isr_tx();

	if(irqs & IRQ_TIMER0)
		time_isr();

	if(irqs & IRQ_AC97CRREQUEST)
		snd_isr_crrequest();
	if(irqs & IRQ_AC97CRREPLY)
		snd_isr_crreply();
	if(irqs & IRQ_AC97DMAR)
		snd_isr_dmar();
	if(irqs & IRQ_AC97DMAW)
		snd_isr_dmaw();

	if(irqs & IRQ_PFPU)
		pfpu_isr();

	if(irqs & IRQ_TMU)
		tmu_isr();
	
	if(irqs & IRQ_USB)
		usb_isr();

	cpustats_leave();
}