Lines Matching refs:irq
177 #define IRQ_IS_CPUPOKE(irq) (ipi_info[XC_CPUPOKE_PIL].mi_irq == (irq)) argument
366 alloc_irq_evtchn(int irq, int index, int evtchn, int cpu) in alloc_irq_evtchn() argument
368 irq_info_t *irqp = &irq_info[irq]; in alloc_irq_evtchn()
384 evtchn_to_irq[evtchn] = irq; in alloc_irq_evtchn()
400 int irq; in alloc_irq() local
406 for (irq = 0; irq < NR_IRQS; irq++) { in alloc_irq()
407 if (irq_info[irq].ii_type == IRQT_UNBOUND) in alloc_irq()
411 if (irq == NR_IRQS) in alloc_irq()
414 irqp = &irq_info[irq]; in alloc_irq()
422 alloc_irq_evtchn(irq, index, evtchn, cpu); in alloc_irq()
423 return (irq); in alloc_irq()
450 ec_is_edge_pirq(int irq) in ec_is_edge_pirq() argument
452 return (irq_info[irq].ii_type == IRQT_PIRQ && in ec_is_edge_pirq()
453 !TEST_EVTCHN_BIT(irq, &pirq_needs_eoi[0])); in ec_is_edge_pirq()
478 eoi.irq = pirq; in pirq_unmask_notify()
488 irq_status.irq = pirq; in pirq_query_unmask()
496 end_pirq(int irq) in end_pirq() argument
498 int evtchn = irq_evtchn(&irq_info[irq]); in end_pirq()
503 if (TEST_EVTCHN_BIT(irq, &pirq_needs_eoi[0])) { in end_pirq()
505 pirq_unmask_notify(IRQ_TO_PIRQ(irq)); in end_pirq()
524 ec_setup_pirq(int irq, int ipl, cpuset_t *cpusp) in ec_setup_pirq() argument
527 irq_info_t *irqp = &irq_info[irq]; in ec_setup_pirq()
536 evtchn = xen_bind_pirq(irq); in ec_setup_pirq()
538 pirq_query_unmask(IRQ_TO_PIRQ(irq)); in ec_setup_pirq()
543 evtchn_to_irq[evtchn] = irq; in ec_setup_pirq()
545 ec_set_irq_affinity(irq, *cpusp); in ec_setup_pirq()
546 ec_enable_irq(irq); in ec_setup_pirq()
547 pirq_unmask_notify(IRQ_TO_PIRQ(irq)); in ec_setup_pirq()
550 cmn_err(CE_NOTE, "!IRQ%d is shared", irq); in ec_setup_pirq()
558 ec_unbind_irq(int irq) in ec_unbind_irq() argument
560 irq_info_t *irqp = &irq_info[irq]; in ec_unbind_irq()
608 ec_set_irq_affinity(int irq, cpuset_t dest) in ec_set_irq_affinity() argument
611 irq_info_t *irqp = &irq_info[irq]; in ec_set_irq_affinity()
615 ASSERT(irq < NR_IRQS); in ec_set_irq_affinity()
649 ec_set_irq_priority(int irq, int pri) in ec_set_irq_priority() argument
653 if (irq >= NR_IRQS) in ec_set_irq_priority()
656 irqp = &irq_info[irq]; in ec_set_irq_priority()
667 ec_clear_irq_priority(int irq) in ec_clear_irq_priority() argument
669 irq_info_t *irqp = &irq_info[irq]; in ec_clear_irq_priority()
671 ASSERT(irq < NR_IRQS); in ec_clear_irq_priority()
769 ec_irq_rebindable(int irq) in ec_irq_rebindable() argument
771 irq_info_t *irqp = &irq_info[irq]; in ec_irq_rebindable()
784 ec_irq_needs_rebind(int irq, int cpu) in ec_irq_needs_rebind() argument
786 irq_info_t *irqp = &irq_info[irq]; in ec_irq_needs_rebind()
788 return (ec_irq_rebindable(irq) && in ec_irq_needs_rebind()
814 ec_irq_add_evtchn(int irq, int evtchn) in ec_irq_add_evtchn() argument
821 ASSERT(irq == ec_dev_irq); in ec_irq_add_evtchn()
823 alloc_irq_evtchn(irq, 0, evtchn, 0); in ec_irq_add_evtchn()
828 irq_info[irq].ii_u.evtchn = 0; in ec_irq_add_evtchn()
833 ec_irq_rm_evtchn(int irq, int evtchn) in ec_irq_rm_evtchn() argument
838 ASSERT(irq == ec_dev_irq); in ec_irq_rm_evtchn()
871 ec_enable_irq(unsigned int irq) in ec_enable_irq() argument
874 irq_info_t *irqp = &irq_info[irq]; in ec_enable_irq()
885 ec_disable_irq(unsigned int irq) in ec_disable_irq() argument
887 irq_info_t *irqp = &irq_info[irq]; in ec_disable_irq()
912 ec_pending_irq(unsigned int irq) in ec_pending_irq() argument
914 int evtchn = irq_evtchn(&irq_info[irq]); in ec_pending_irq()
920 ec_clear_irq(int irq) in ec_clear_irq() argument
922 irq_info_t *irqp = &irq_info[irq]; in ec_clear_irq()
937 ec_unmask_irq(int irq) in ec_unmask_irq() argument
940 irq_info_t *irqp = &irq_info[irq]; in ec_unmask_irq()
945 end_pirq(irq); in ec_unmask_irq()
957 ec_try_unmask_irq(int irq) in ec_try_unmask_irq() argument
960 irq_info_t *irqp = &irq_info[irq]; in ec_try_unmask_irq()
966 end_pirq(irq); in ec_try_unmask_irq()
1219 int irq; in ec_init_debug_irq() local
1221 irq = ec_bind_virq_to_irq(VIRQ_DEBUG, 0); in ec_init_debug_irq()
1223 "debug", irq, NULL, NULL, NULL, NULL); in ec_init_debug_irq()
1226 share_virq(&virq_info[irq_info[irq].ii_u.index]); in ec_init_debug_irq()
1228 ec_debug_irq = irq; in ec_init_debug_irq()
1256 int i, j, port, pri, curpri, irq, sipri; in xen_callback_handler() local
1297 irq = evtchn_to_irq[port]; in xen_callback_handler()
1306 if (irq == INVALID_IRQ) { in xen_callback_handler()
1315 if (!irq_info[irq].ii_u2.has_handler) { in xen_callback_handler()
1318 if (IRQ_IS_CPUPOKE(irq)) { in xen_callback_handler()
1333 pri = irq_info[irq].ii_u2.ipl; in xen_callback_handler()
1356 if (ec_is_edge_pirq(irq)) { in xen_callback_handler()
1408 irq = evtchn_to_irq[port]; in xen_callback_handler()
1409 if (irq == INVALID_IRQ) { in xen_callback_handler()
1419 if (irq == ec_dev_irq) { in xen_callback_handler()
1428 rp->r_trapno = irq; in xen_callback_handler()
1561 ec_block_irq(int irq) in ec_block_irq() argument
1563 irq_info_t *irqp = &irq_info[irq]; in ec_block_irq()
1577 ec_unpend_irq(int irq) in ec_unpend_irq() argument
1579 irq_info_t *irqp = &irq_info[irq]; in ec_unpend_irq()