Lines Matching defs:xfer
160 struct fw_xfer *xfer;
194 for (xfer = STAILQ_FIRST(&ir->q); xfer != NULL;
195 xfer = STAILQ_FIRST(&ir->q)) {
199 xfer->resp = 0;
200 fw_xfer_done(xfer);
391 struct fw_xfer *xfer;
506 xfer = fw_xfer_alloc_buf(M_FW, pay_len, PAGE_SIZE/*XXX*/);
507 if (xfer == NULL)
534 memcpy(&xfer->send.hdr, fp, tinfo->hdr_len);
536 memcpy(xfer->send.payload, (char *)fp + tinfo->hdr_len,
538 xfer->send.spd = asyreq->req.sped;
539 xfer->hand = fw_xferwake;
541 if ((err = fw_asyreq(fc, -1, xfer)) != 0)
543 if ((err = fw_xferwait(xfer)) != 0)
545 if (xfer->resp != 0) {
553 tinfo = &fc->tcode[xfer->recv.hdr.mode.hdr.tcode];
554 if (xfer->recv.hdr.mode.hdr.tcode == FWTCODE_RRESB ||
555 xfer->recv.hdr.mode.hdr.tcode == FWTCODE_LRES) {
556 pay_len = xfer->recv.pay_len;
558 xfer->recv.pay_len + tinfo->hdr_len)
560 xfer->recv.pay_len + tinfo->hdr_len;
567 memcpy(fp, &xfer->recv.hdr, tinfo->hdr_len);
568 memcpy((char *)fp + tinfo->hdr_len, xfer->recv.payload,
571 fw_xfer_free_buf(xfer);
817 struct fw_xfer *xfer;
826 xfer = STAILQ_FIRST(&d->rq);
827 if (xfer == NULL && err == 0) {
840 fp = &xfer->recv.hdr;
845 tinfo = &xfer->fc->tcode[fp->mode.hdr.tcode];
849 err = uiomove((void *)xfer->recv.payload, xfer->recv.pay_len, uio);
852 /* recycle this xfer */
853 fwb = (struct fw_bind *)xfer->sc;
854 fw_xfer_unload(xfer);
855 xfer->recv.pay_len = PAGE_SIZE;
857 STAILQ_INSERT_TAIL(&fwb->xferlist, xfer, link);
865 struct fw_xfer *xfer;
878 if ((xfer = fw_xfer_alloc_buf(M_FW, uio->uio_resid,
882 memcpy(&xfer->send.hdr, &pkt, sizeof(struct fw_pkt));
883 xfer->send.pay_len = uio->uio_resid;
886 uiomove((void *)xfer->send.payload, uio->uio_resid, uio)))
890 xfer->fc = d->fc;
891 xfer->sc = NULL;
892 xfer->hand = fw_xferwake;
893 xfer->send.spd = 2 /* XXX */;
895 if ((err = fw_asyreq(xfer->fc, -1, xfer)))
898 if ((err = fw_xferwait(xfer)))
901 if (xfer->resp != 0) {
902 err = xfer->resp;
906 if (xfer->flag == FWXF_RCVD) {
907 mutex_enter(&xfer->fc->fc_mtx);
908 STAILQ_INSERT_TAIL(&d->rq, xfer, link);
909 mutex_exit(&xfer->fc->fc_mtx);
914 fw_xfer_free(xfer);
919 fw_hand(struct fw_xfer *xfer)
924 fwb = (struct fw_bind *)xfer->sc;
926 mutex_enter(&xfer->fc->fc_mtx);
927 STAILQ_INSERT_TAIL(&d->rq, xfer, link);
929 mutex_exit(&xfer->fc->fc_mtx);