Lines Matching refs:pirq

66 static struct pirq {  struct
102 struct pirq *pirq; in pirq_write() local
105 pirq = &pirqs[pin - 1]; in pirq_write()
106 pthread_mutex_lock(&pirq->lock); in pirq_write()
107 if (pirq->reg != (val & (PIRQ_DIS | PIRQ_IRQ))) { in pirq_write()
108 if (pirq->active_count != 0 && pirq_valid_irq(pirq->reg)) in pirq_write()
109 vm_isa_deassert_irq(ctx, pirq->reg & PIRQ_IRQ, -1); in pirq_write()
110 pirq->reg = val & (PIRQ_DIS | PIRQ_IRQ); in pirq_write()
111 if (pirq->active_count != 0 && pirq_valid_irq(pirq->reg)) in pirq_write()
112 vm_isa_assert_irq(ctx, pirq->reg & PIRQ_IRQ, -1); in pirq_write()
114 pthread_mutex_unlock(&pirq->lock); in pirq_write()
159 struct pirq *pirq; in pci_irq_assert() local
165 pirq = &pirqs[pin - 1]; in pci_irq_assert()
166 pthread_mutex_lock(&pirq->lock); in pci_irq_assert()
167 pirq->active_count++; in pci_irq_assert()
168 if (pirq->active_count == 1 && pirq_valid_irq(pirq->reg)) { in pci_irq_assert()
169 vm_isa_assert_irq(pi->pi_vmctx, pirq->reg & PIRQ_IRQ, in pci_irq_assert()
171 pthread_mutex_unlock(&pirq->lock); in pci_irq_assert()
174 pthread_mutex_unlock(&pirq->lock); in pci_irq_assert()
182 struct pirq *pirq; in pci_irq_deassert() local
188 pirq = &pirqs[pin - 1]; in pci_irq_deassert()
189 pthread_mutex_lock(&pirq->lock); in pci_irq_deassert()
190 pirq->active_count--; in pci_irq_deassert()
191 if (pirq->active_count == 0 && pirq_valid_irq(pirq->reg)) { in pci_irq_deassert()
192 vm_isa_deassert_irq(pi->pi_vmctx, pirq->reg & PIRQ_IRQ, in pci_irq_deassert()
194 pthread_mutex_unlock(&pirq->lock); in pci_irq_deassert()
197 pthread_mutex_unlock(&pirq->lock); in pci_irq_deassert()