Lines Matching defs:irq_ptr
70 static inline int references_shared_dsci(struct qdio_irq *irq_ptr)
72 return irq_ptr->dsci == &q_indicators[TIQDIO_SHARED_IND].ind;
75 int test_nonshared_ind(struct qdio_irq *irq_ptr)
77 if (!is_thinint_irq(irq_ptr))
79 if (references_shared_dsci(irq_ptr))
81 if (*irq_ptr->dsci)
137 static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset)
139 struct chsc_scssc_area *scssc = (void *)irq_ptr->chsc_page;
148 subchannel_indicator_addr = virt_to_phys(irq_ptr->dsci);
151 rc = chsc_sadc(irq_ptr->schid, scssc, summary_indicator_addr,
154 DBF_ERROR("%4x SSI r:%4x", irq_ptr->schid.sch_no,
166 int qdio_establish_thinint(struct qdio_irq *irq_ptr)
170 if (!is_thinint_irq(irq_ptr))
173 irq_ptr->dsci = get_indicator();
174 DBF_HEX(&irq_ptr->dsci, sizeof(void *));
176 rc = set_subchannel_ind(irq_ptr, 0);
178 put_indicator(irq_ptr->dsci);
183 list_add_rcu(&irq_ptr->entry, &tiq_list);
188 void qdio_shutdown_thinint(struct qdio_irq *irq_ptr)
190 if (!is_thinint_irq(irq_ptr))
194 list_del_rcu(&irq_ptr->entry);
199 set_subchannel_ind(irq_ptr, 1);
200 put_indicator(irq_ptr->dsci);