void isr(void) { unsigned int irqs; irqs = irq_pending() & irq_getmask(); if(irqs & IRQ_UART) uart_isr(); 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_TMU) tmu_isr(); if(irqs & IRQ_PFPU) pfpu_isr(); irq_ack(irqs); }
void isr(void) { unsigned int irqs; irqs = irq_pending() & irq_getmask(); if(irqs & IRQ_UART) uart_isr(); #ifdef FIXME if(irqs & IRQ_TMU) tmu_isr(); if(irqs & IRQ_USB) usb_isr(); #endif }
int tmu_submit_task(struct tmu_td *td) { if(level >= TMU_TASKQ_SIZE) { printf("TMU: taskq overflow\n"); return 0; } queue[produce] = td; produce = (produce + 1) & TMU_TASKQ_MASK; level++; if(cts) { cts = 0; tmu_isr(td); tmu_start(td); } return 1; }
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(); }