irq 66 bsp/drv/arm/gba/keypad.c irq_t irq; irq 140 bsp/drv/arm/gba/keypad.c sc->irq = irq_attach(KEYPAD_IRQ, IPL_INPUT, 0, keypad_isr, irq 84 bsp/drv/arm/gba/swkbd.c irq_t irq; /* irq handle */ irq 107 bsp/drv/dev/block/fdd.c irq_t irq; /* interrupt handle */ irq 705 bsp/drv/dev/block/fdd.c sc->irq = irq_attach(FDC_IRQ, IPL_BLOCK, 0, fdc_isr, fdc_ist, sc); irq 46 bsp/drv/dev/input/pckbd.c irq_t irq; /* irq handle */ irq 283 bsp/drv/dev/input/pckbd.c sc->irq = irq_attach(KBD_IRQ, IPL_INPUT, 0, pckbd_isr, IST_NONE, sc); irq 60 bsp/drv/dev/input/psaux.c irq_t irq; /* handle for mouse irq */ irq 216 bsp/drv/dev/input/psaux.c sc->irq = irq_attach(MOUSE_IRQ, IPL_INPUT, 0, psaux_isr, irq 185 bsp/drv/dev/serial/ns16550.c sp->irq = irq_attach(COM_IRQ, IPL_COMM, 0, ns16550_isr, irq 214 bsp/drv/dev/serial/pl011.c sp->irq = irq_attach(UART_IRQ, IPL_COMM, 0, pl011_isr, IST_NONE, sp); irq 37 bsp/drv/include/serial.h irq_t irq; irq 154 bsp/hal/ppc/prep/interrupt.c int irq; irq 157 bsp/hal/ppc/prep/interrupt.c irq = inb(PIC_M) & 7; irq 158 bsp/hal/ppc/prep/interrupt.c if (irq == 2) { irq 160 bsp/hal/ppc/prep/interrupt.c irq = (inb(PIC_M) & 7) + 8; irq 162 bsp/hal/ppc/prep/interrupt.c return irq; irq 39 sys/include/irq.h struct irq { irq 46 sys/include/types.h typedef struct irq *irq_t; irq 72 sys/kern/irq.c static struct irq *irq_table[MAXIRQS]; /* IRQ descriptor table */ irq 85 sys/kern/irq.c struct irq *irq; irq 91 sys/kern/irq.c if ((irq = kmem_alloc(sizeof(*irq))) == NULL) irq 94 sys/kern/irq.c memset(irq, 0, sizeof(*irq)); irq 95 sys/kern/irq.c irq->vector = vector; irq 96 sys/kern/irq.c irq->priority = pri; irq 97 sys/kern/irq.c irq->isr = isr; irq 98 sys/kern/irq.c irq->ist = ist; irq 99 sys/kern/irq.c irq->data = data; irq 105 sys/kern/irq.c irq->thread = kthread_create(&irq_thread, irq, ISTPRI(pri)); irq 106 sys/kern/irq.c if (irq->thread == NULL) irq 109 sys/kern/irq.c event_init(&irq->istevt, "interrupt"); irq 111 sys/kern/irq.c irq_table[vector] = irq; irq 118 sys/kern/irq.c return irq; irq 127 sys/kern/irq.c irq_detach(irq_t irq) irq 129 sys/kern/irq.c ASSERT(irq != NULL); irq 130 sys/kern/irq.c ASSERT(irq->vector < MAXIRQS); irq 132 sys/kern/irq.c interrupt_mask(irq->vector); irq 133 sys/kern/irq.c irq_table[irq->vector] = NULL; irq 134 sys/kern/irq.c if (irq->thread != NULL) irq 135 sys/kern/irq.c kthread_terminate(irq->thread); irq 137 sys/kern/irq.c kmem_free(irq); irq 149 sys/kern/irq.c struct irq *irq; irq 153 sys/kern/irq.c irq = (struct irq *)arg; irq 154 sys/kern/irq.c fn = irq->ist; irq 155 sys/kern/irq.c data = irq->data; irq 158 sys/kern/irq.c if (irq->istreq <= 0) { irq 167 sys/kern/irq.c sched_sleep(&irq->istevt); irq 169 sys/kern/irq.c irq->istreq--; irq 170 sys/kern/irq.c ASSERT(irq->istreq >= 0); irq 192 sys/kern/irq.c struct irq *irq; irq 195 sys/kern/irq.c irq = irq_table[vector]; irq 196 sys/kern/irq.c if (irq == NULL) { irq 200 sys/kern/irq.c ASSERT(irq->isr != NULL); irq 203 sys/kern/irq.c irq->count++; irq 208 sys/kern/irq.c rc = (*irq->isr)(irq->data); irq 214 sys/kern/irq.c ASSERT(irq->ist != IST_NONE); irq 215 sys/kern/irq.c irq->istreq++; irq 216 sys/kern/irq.c sched_wakeup(&irq->istevt); irq 217 sys/kern/irq.c ASSERT(irq->istreq != 0); irq 229 sys/kern/irq.c struct irq *irq; irq 241 sys/kern/irq.c irq = irq_table[vec]; irq 242 sys/kern/irq.c info->vector = irq->vector; irq 243 sys/kern/irq.c info->count = irq->count; irq 244 sys/kern/irq.c info->priority = irq->priority; irq 245 sys/kern/irq.c info->istreq = irq->istreq; irq 246 sys/kern/irq.c info->thread = irq->thread;