Lines Matching refs:rb
1845 fw_rcv_copy(struct fw_rcv_buf *rb) in fw_rcv_copy() argument
1852 rb->xfer->recv.spd = rb->spd; in fw_rcv_copy()
1854 pkt = (struct fw_pkt *)rb->vec->iov_base; in fw_rcv_copy()
1855 tinfo = &rb->fc->tcode[pkt->mode.hdr.tcode]; in fw_rcv_copy()
1858 p = (u_char *)&rb->xfer->recv.hdr; in fw_rcv_copy()
1859 bcopy(rb->vec->iov_base, p, tinfo->hdr_len); in fw_rcv_copy()
1860 rb->vec->iov_base = (u_char *)rb->vec->iov_base + tinfo->hdr_len; in fw_rcv_copy()
1861 rb->vec->iov_len -= tinfo->hdr_len; in fw_rcv_copy()
1864 p = (u_char *)rb->xfer->recv.payload; in fw_rcv_copy()
1865 res = rb->xfer->recv.pay_len; in fw_rcv_copy()
1871 rb->xfer->recv.pay_len = sizeof(uint32_t); in fw_rcv_copy()
1880 for (i = 0; i < rb->nvec; i++, rb->vec++) { in fw_rcv_copy()
1881 len = MIN(rb->vec->iov_len, plen); in fw_rcv_copy()
1883 device_printf(rb->fc->bdev, "%s:" in fw_rcv_copy()
1885 __func__, rb->xfer->recv.pay_len, len - res); in fw_rcv_copy()
1888 bcopy(rb->vec->iov_base, p, len); in fw_rcv_copy()
1895 rb->xfer->recv.pay_len -= res; in fw_rcv_copy()
1902 fw_rcv(struct fw_rcv_buf *rb) in fw_rcv() argument
1922 fp = (struct fw_pkt *)rb->vec[0].iov_base; in fw_rcv()
1929 rb->xfer = fw_tl2xfer(rb->fc, fp->mode.hdr.src, in fw_rcv()
1931 if (rb->xfer == NULL) { in fw_rcv()
1932 device_printf(rb->fc->bdev, "%s: unknown response " in fw_rcv()
1942 rb->xfer = fw_tl2xfer(rb->fc, fp->mode.hdr.src, in fw_rcv()
1944 if (rb->xfer == NULL) { in fw_rcv()
1952 fw_rcv_copy(rb); in fw_rcv()
1953 if (rb->xfer->recv.hdr.mode.wres.rtcode != RESP_CMP) in fw_rcv()
1954 rb->xfer->resp = EIO; in fw_rcv()
1956 rb->xfer->resp = 0; in fw_rcv()
1958 oldstate = rb->xfer->flag; in fw_rcv()
1959 rb->xfer->flag = FWXF_RCVD; in fw_rcv()
1962 fw_xfer_done(rb->xfer); in fw_rcv()
1967 printf("not sent yet tl=%x\n", rb->xfer->tl); in fw_rcv()
1971 device_printf(rb->fc->bdev, "%s: " in fw_rcv()
1973 rb->xfer->flag); in fw_rcv()
1981 bind = fw_bindlookup(rb->fc, fp->mode.rreqq.dest_hi, in fw_rcv()
1984 device_printf(rb->fc->bdev, "%s: " in fw_rcv()
1994 if (rb->fc->status == FWBUSINIT) { in fw_rcv()
1995 device_printf(rb->fc->bdev, in fw_rcv()
2000 rb->xfer = fw_xfer_alloc(M_FWXFER); in fw_rcv()
2001 if (rb->xfer == NULL) { in fw_rcv()
2004 rb->xfer->send.spd = rb->spd; in fw_rcv()
2005 rb->xfer->send.pay_len = 0; in fw_rcv()
2006 resfp = &rb->xfer->send.hdr; in fw_rcv()
2031 rb->xfer->hand = fw_xfer_free; in fw_rcv()
2032 if (fw_asyreq(rb->fc, -1, rb->xfer)) in fw_rcv()
2033 fw_xfer_free(rb->xfer); in fw_rcv()
2038 for (i = 0; i < rb->nvec; i++) in fw_rcv()
2039 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()