Lines Matching refs:ir
102 struct fw_xferq *ir; member
182 if (d->ir != NULL) { in fw_close()
183 struct fw_xferq *ir = d->ir; in fw_close() local
185 if ((ir->flag & FWXFERQ_OPEN) == 0) in fw_close()
187 if (ir->flag & FWXFERQ_RUNNING) { in fw_close()
188 ir->flag &= ~FWXFERQ_RUNNING; in fw_close()
189 fc->irx_disable(fc, ir->dmach); in fw_close()
192 fwdev_freebuf(ir); in fw_close()
194 for (xfer = STAILQ_FIRST(&ir->q); xfer != NULL; in fw_close()
195 xfer = STAILQ_FIRST(&ir->q)) { in fw_close()
196 ir->queued--; in fw_close()
197 STAILQ_REMOVE_HEAD(&ir->q, link); in fw_close()
202 ir->flag &= in fw_close()
204 d->ir = NULL; in fw_close()
235 struct fw_xferq *ir; in fw_read() local
248 ir = d->ir; in fw_read()
250 if (ir == NULL) in fw_read()
253 if (ir->buf == NULL) in fw_read()
258 if (ir->stproc == NULL) { in fw_read()
260 ir->stproc = STAILQ_FIRST(&ir->stvalid); in fw_read()
261 if (ir->stproc != NULL) { in fw_read()
262 STAILQ_REMOVE_HEAD(&ir->stvalid, link); in fw_read()
263 ir->queued = 0; in fw_read()
266 if (ir->stproc == NULL) { in fw_read()
270 ir->flag |= FWXFERQ_WAKEUP; in fw_read()
271 err = cv_timedwait_sig(&ir->cv, &fc->fc_mtx, hz); in fw_read()
272 ir->flag &= ~FWXFERQ_WAKEUP; in fw_read()
279 } else if (ir->stproc != NULL) { in fw_read()
282 fp = (struct fw_pkt *)fwdma_v_addr(ir->buf, in fw_read()
283 ir->stproc->poffset + ir->queued); in fw_read()
290 ir->queued++; in fw_read()
291 if (ir->queued >= ir->bnpacket) { in fw_read()
292 STAILQ_INSERT_TAIL(&ir->stfree, ir->stproc, link); in fw_read()
293 fc->irx_enable(fc, ir->dmach); in fw_read()
294 ir->stproc = NULL; in fw_read()
296 if (uio->uio_resid >= ir->psize) { in fw_read()
390 struct fw_xferq *ir, *it; in fw_ioctl() local
415 ir = d->ir; in fw_ioctl()
448 if (ir == NULL) { in fw_ioctl()
454 ir = fc->ir[i]; in fw_ioctl()
455 err = fwdev_allocbuf(fc, ir, &d->bufreq.rx); in fw_ioctl()
457 ir->flag &= ~FWXFERQ_OPEN; in fw_ioctl()
461 ir->flag &= ~0xff; in fw_ioctl()
462 ir->flag |= (0x3f & ichreq->ch); in fw_ioctl()
463 ir->flag |= ((0x3 & ichreq->tag) << 6); in fw_ioctl()
464 d->ir = ir; in fw_ioctl()
465 err = fc->irx_enable(fc, ir->dmach); in fw_ioctl()
469 if (d->ir != NULL) { in fw_ioctl()
470 ichreq->ch = ir->flag & 0x3f; in fw_ioctl()
471 ichreq->tag = ir->flag >> 2 & 0x3; in fw_ioctl()
482 if (ir != NULL) { in fw_ioctl()
483 ibufreq->rx.nchunk = ir->bnchunk; in fw_ioctl()
484 ibufreq->rx.npacket = ir->bnpacket; in fw_ioctl()
485 ibufreq->rx.psize = ir->psize; in fw_ioctl()
693 struct fw_xferq *ir; in fw_poll() local
700 ir = ((struct fw_drv1 *)sc->si_drv1)->ir; in fw_poll()
704 if (STAILQ_FIRST(&ir->q) != NULL) in fw_poll()
707 selrecord(td, &ir->rsel); in fw_poll()