Lines Matching refs:rb
1848 fw_rcv_copy(struct fw_rcv_buf *rb) in fw_rcv_copy() argument
1855 rb->xfer->recv.spd = rb->spd; in fw_rcv_copy()
1857 pkt = (struct fw_pkt *)rb->vec->iov_base; in fw_rcv_copy()
1858 tinfo = &rb->fc->tcode[pkt->mode.hdr.tcode]; in fw_rcv_copy()
1861 p = (u_char *)&rb->xfer->recv.hdr; in fw_rcv_copy()
1862 bcopy(rb->vec->iov_base, p, tinfo->hdr_len); in fw_rcv_copy()
1863 rb->vec->iov_base = (u_char *)rb->vec->iov_base + tinfo->hdr_len; in fw_rcv_copy()
1864 rb->vec->iov_len -= tinfo->hdr_len; in fw_rcv_copy()
1867 p = (u_char *)rb->xfer->recv.payload; in fw_rcv_copy()
1868 res = rb->xfer->recv.pay_len; in fw_rcv_copy()
1874 rb->xfer->recv.pay_len = sizeof(uint32_t); in fw_rcv_copy()
1883 for (i = 0; i < rb->nvec; i++, rb->vec++) { in fw_rcv_copy()
1884 len = MIN(rb->vec->iov_len, plen); in fw_rcv_copy()
1886 device_printf(rb->fc->bdev, "%s:" in fw_rcv_copy()
1888 __func__, rb->xfer->recv.pay_len, len - res); in fw_rcv_copy()
1891 bcopy(rb->vec->iov_base, p, len); in fw_rcv_copy()
1898 rb->xfer->recv.pay_len -= res; in fw_rcv_copy()
1905 fw_rcv(struct fw_rcv_buf *rb) in fw_rcv() argument
1924 fp = (struct fw_pkt *)rb->vec[0].iov_base; in fw_rcv()
1931 rb->xfer = fw_tl2xfer(rb->fc, fp->mode.hdr.src, in fw_rcv()
1933 if (rb->xfer == NULL) { in fw_rcv()
1934 device_printf(rb->fc->bdev, "%s: unknown response " in fw_rcv()
1944 rb->xfer = fw_tl2xfer(rb->fc, fp->mode.hdr.src, in fw_rcv()
1946 if (rb->xfer == NULL) { in fw_rcv()
1954 fw_rcv_copy(rb); in fw_rcv()
1955 if (rb->xfer->recv.hdr.mode.wres.rtcode != RESP_CMP) in fw_rcv()
1956 rb->xfer->resp = EIO; in fw_rcv()
1958 rb->xfer->resp = 0; in fw_rcv()
1960 oldstate = rb->xfer->flag; in fw_rcv()
1961 rb->xfer->flag = FWXF_RCVD; in fw_rcv()
1964 fw_xfer_done(rb->xfer); in fw_rcv()
1969 printf("not sent yet tl=%x\n", rb->xfer->tl); in fw_rcv()
1973 device_printf(rb->fc->bdev, "%s: " in fw_rcv()
1975 rb->xfer->flag); in fw_rcv()
1983 bind = fw_bindlookup(rb->fc, fp->mode.rreqq.dest_hi, in fw_rcv()
1986 device_printf(rb->fc->bdev, "%s: " in fw_rcv()
1996 if (rb->fc->status == FWBUSINIT) { in fw_rcv()
1997 device_printf(rb->fc->bdev, in fw_rcv()
2002 rb->xfer = fw_xfer_alloc(M_FWXFER); in fw_rcv()
2003 if (rb->xfer == NULL) { in fw_rcv()
2006 rb->xfer->send.spd = rb->spd; in fw_rcv()
2007 rb->xfer->send.pay_len = 0; in fw_rcv()
2008 resfp = &rb->xfer->send.hdr; in fw_rcv()
2033 rb->xfer->hand = fw_xfer_free; in fw_rcv()
2034 if (fw_asyreq(rb->fc, -1, rb->xfer)) in fw_rcv()
2035 fw_xfer_free(rb->xfer); in fw_rcv()
2039 for (i = 0; i < rb->nvec; i++) in fw_rcv()
2040 len += rb->vec[i].iov_len; in fw_rcv()
2041 rb->xfer = STAILQ_FIRST(&bind->xferlist); in fw_rcv()
2042 if (rb->xfer == NULL) { in fw_rcv()
2043 device_printf(rb->fc->bdev, "%s: " in fw_rcv()
2048 fw_rcv_copy(rb); in fw_rcv()
2049 rb->xfer->hand(rb->xfer); in fw_rcv()
2056 xferq = rb->fc->ir[sub]; in fw_rcv()
2067 rb->xfer = fw_xfer_alloc_buf(M_FWXFER, 0, /* XXX */ in fw_rcv()
2069 if (rb->xfer == NULL) in fw_rcv()
2071 fw_rcv_copy(rb) in fw_rcv()
2074 STAILQ_INSERT_TAIL(&xferq->q, rb->xfer, link); in fw_rcv()
2076 sc = device_get_softc(rb->fc->bdev); in fw_rcv()
2091 device_printf(rb->fc->bdev,"%s: unknown tcode %d\n", in fw_rcv()