Lines Matching refs:pirq
65 static struct pirq { struct
101 struct pirq *pirq; in pirq_write() local
104 pirq = &pirqs[pin - 1]; in pirq_write()
105 pthread_mutex_lock(&pirq->lock); in pirq_write()
106 if (pirq->reg != (val & (PIRQ_DIS | PIRQ_IRQ))) { in pirq_write()
107 if (pirq->active_count != 0 && pirq_valid_irq(pirq->reg)) in pirq_write()
108 vm_isa_deassert_irq(ctx, pirq->reg & PIRQ_IRQ, -1); in pirq_write()
109 pirq->reg = val & (PIRQ_DIS | PIRQ_IRQ); in pirq_write()
110 if (pirq->active_count != 0 && pirq_valid_irq(pirq->reg)) in pirq_write()
111 vm_isa_assert_irq(ctx, pirq->reg & PIRQ_IRQ, -1); in pirq_write()
113 pthread_mutex_unlock(&pirq->lock); in pirq_write()
158 struct pirq *pirq; in pci_irq_assert() local
164 pirq = &pirqs[pin - 1]; in pci_irq_assert()
165 pthread_mutex_lock(&pirq->lock); in pci_irq_assert()
166 pirq->active_count++; in pci_irq_assert()
167 if (pirq->active_count == 1 && pirq_valid_irq(pirq->reg)) { in pci_irq_assert()
168 vm_isa_assert_irq(pi->pi_vmctx, pirq->reg & PIRQ_IRQ, in pci_irq_assert()
170 pthread_mutex_unlock(&pirq->lock); in pci_irq_assert()
173 pthread_mutex_unlock(&pirq->lock); in pci_irq_assert()
181 struct pirq *pirq; in pci_irq_deassert() local
187 pirq = &pirqs[pin - 1]; in pci_irq_deassert()
188 pthread_mutex_lock(&pirq->lock); in pci_irq_deassert()
189 pirq->active_count--; in pci_irq_deassert()
190 if (pirq->active_count == 0 && pirq_valid_irq(pirq->reg)) { in pci_irq_deassert()
191 vm_isa_deassert_irq(pi->pi_vmctx, pirq->reg & PIRQ_IRQ, in pci_irq_deassert()
193 pthread_mutex_unlock(&pirq->lock); in pci_irq_deassert()
196 pthread_mutex_unlock(&pirq->lock); in pci_irq_deassert()