Lines Matching refs:isa_irq
51 static void deassert_irq(struct domain *d, unsigned isa_irq) in deassert_irq() argument
54 pirq_info(d, domain_emuirq_to_pirq(d, isa_irq)); in deassert_irq()
57 vpic_irq_negative_edge(d, isa_irq); in deassert_irq()
64 unsigned int gsi, link, isa_irq; in __hvm_pci_intx_assert() local
81 isa_irq = hvm_irq->pci_link.route[link]; in __hvm_pci_intx_assert()
82 if ( (hvm_irq->pci_link_assert_count[link]++ == 0) && isa_irq && in __hvm_pci_intx_assert()
83 (hvm_irq->gsi_assert_count[isa_irq]++ == 0) ) in __hvm_pci_intx_assert()
84 assert_irq(d, isa_irq, isa_irq); in __hvm_pci_intx_assert()
99 unsigned int gsi, link, isa_irq; in __hvm_pci_intx_deassert() local
115 isa_irq = hvm_irq->pci_link.route[link]; in __hvm_pci_intx_deassert()
116 if ( (--hvm_irq->pci_link_assert_count[link] == 0) && isa_irq && in __hvm_pci_intx_deassert()
117 (--hvm_irq->gsi_assert_count[isa_irq] == 0) ) in __hvm_pci_intx_deassert()
118 deassert_irq(d, isa_irq); in __hvm_pci_intx_deassert()
171 int hvm_isa_irq_assert(struct domain *d, unsigned int isa_irq, in hvm_isa_irq_assert() argument
176 unsigned int gsi = hvm_isa_irq_to_gsi(isa_irq); in hvm_isa_irq_assert()
179 ASSERT(isa_irq <= 15); in hvm_isa_irq_assert()
183 if ( !__test_and_set_bit(isa_irq, &hvm_irq->isa_irq.i) && in hvm_isa_irq_assert()
185 assert_irq(d, gsi, isa_irq); in hvm_isa_irq_assert()
196 struct domain *d, unsigned int isa_irq) in hvm_isa_irq_deassert() argument
199 unsigned int gsi = hvm_isa_irq_to_gsi(isa_irq); in hvm_isa_irq_deassert()
201 ASSERT(isa_irq <= 15); in hvm_isa_irq_deassert()
205 if ( __test_and_clear_bit(isa_irq, &hvm_irq->isa_irq.i) && in hvm_isa_irq_deassert()
207 deassert_irq(d, isa_irq); in hvm_isa_irq_deassert()
290 int hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq) in hvm_set_pci_link_route() argument
296 if ( (link > 3) || (isa_irq > 15) ) in hvm_set_pci_link_route()
302 if ( old_isa_irq == isa_irq ) in hvm_set_pci_link_route()
304 hvm_irq->pci_link.route[link] = isa_irq; in hvm_set_pci_link_route()
324 if ( isa_irq && (hvm_irq->gsi_assert_count[isa_irq]++ == 0) ) in hvm_set_pci_link_route()
326 vioapic_irq_positive_edge(d, isa_irq); in hvm_set_pci_link_route()
327 vpic_irq_positive_edge(d, isa_irq); in hvm_set_pci_link_route()
334 d->domain_id, link, old_isa_irq, isa_irq); in hvm_set_pci_link_route()
559 (uint32_t) hvm_irq->isa_irq.pad[0], in irq_dump()
650 return ( hvm_save_entry(ISA_IRQ, 0, h, &hvm_irq->isa_irq) ); in irq_save_isa()
700 if ( hvm_load_entry(ISA_IRQ, h, &hvm_irq->isa_irq) != 0 ) in irq_load_isa()
706 if ( test_bit(irq, &hvm_irq->isa_irq.i) ) in irq_load_isa()