Lines Matching refs:irq

6  * Derived (i.e. mostly copied) from arch/i386/kernel/irq.c:
33 int irq;
60 static void irq_io_loop(struct irq_reg *irq, struct uml_pt_regs *regs)
63 * irq->active guards against reentry
64 * irq->pending accumulates pending requests
68 if (irq->active) {
69 irq->active = false;
72 irq->pending = false;
73 do_IRQ(irq->irq, regs);
74 } while (irq->pending);
76 irq->active = true;
78 irq->pending = true;
91 generic_handle_irq(reg->irq);
108 reg->timetravel_handler(reg->irq, entry->fd, reg->id, &reg->event);
167 * which have trigger it so there is no need to walk the irq
250 static int activate_fd(int irq, int fd, enum um_irq_type type, void *dev_id,
285 irq_entry->reg[type].irq = irq;
323 static void free_irq_by_irq_and_dev(unsigned int irq, void *dev)
337 if (reg->irq != irq)
368 if (entry->reg[i].irq == irqnum)
408 unsigned int do_IRQ(int irq, struct uml_pt_regs *regs)
412 generic_handle_irq(irq);
418 void um_free_irq(int irq, void *dev)
420 if (WARN(irq < 0 || irq > UM_LAST_SIGNAL_IRQ,
421 "freeing invalid irq %d", irq))
424 free_irq_by_irq_and_dev(irq, dev);
425 free_irq(irq, dev);
426 clear_bit(irq, irqs_allocated);
431 _um_request_irq(int irq, int fd, enum um_irq_type type,
439 if (irq == UM_IRQ_ALLOC) {
444 irq = i;
450 if (irq < 0)
454 err = activate_fd(irq, fd, type, dev_id, timetravel_handler);
459 err = request_irq(irq, handler, irqflags, devname, dev_id);
463 return irq;
465 clear_bit(irq, irqs_allocated);
469 int um_request_irq(int irq, int fd, enum um_irq_type type,
473 return _um_request_irq(irq, fd, type, handler, irqflags,
479 int um_request_irq_tt(int irq, int fd, enum um_irq_type type,
485 return _um_request_irq(irq, fd, type, handler, irqflags,
520 entry->reg[t].irq == SIGIO_WRITE_IRQ
561 generic_handle_irq(reg->irq);
602 if (entry->reg[t].irq != d->irq)