Lines Matching refs:xreq

237 xdb_get_buf(xdb_t *vdp, blkif_request_t *req, xdb_request_t *xreq)  in xdb_get_buf()  argument
247 bp = XDB_XREQ2BP(xreq); in xdb_get_buf()
248 curseg = xreq->xr_curseg; in xdb_get_buf()
255 xreq->xr_vdp = vdp; in xdb_get_buf()
256 xreq->xr_op = op; in xdb_get_buf()
257 xreq->xr_id = ddi_get64(acchdl, &req->id); in xdb_get_buf()
258 segs = xreq->xr_buf_pages = ddi_get8(acchdl, &req->nr_segments); in xdb_get_buf()
281 segs = xreq->xr_buf_pages = in xdb_get_buf()
289 vdp->xs_iopage_va, xreq->xr_idx, i); in xdb_get_buf()
312 xreq->xr_segs[i].fs = fs; in xdb_get_buf()
313 xreq->xr_segs[i].ls = ls; in xdb_get_buf()
334 xreq->xr_plist[j].p_pagenum); in xdb_get_buf()
340 xreq->xr_page_hdls[i] = mapops[i].handle; in xdb_get_buf()
357 xreq->xr_pplist[i] = &xreq->xr_plist[i]; in xdb_get_buf()
358 xreq->xr_plist[i].p_pagenum = in xdb_get_buf()
374 vdp->xs_iopage_va, xreq->xr_idx, i); in xdb_get_buf()
400 xreq->xr_idx)); in xdb_get_buf()
404 bp->b_un.b_addr = XDB_IOPAGE_VA(vdp->xs_iopage_va, xreq->xr_idx, in xdb_get_buf()
405 curseg) + xreq->xr_segs[curseg].fs * DEV_BSIZE; in xdb_get_buf()
406 bp->b_shadow = &xreq->xr_pplist[curseg]; in xdb_get_buf()
424 for (i = curseg; i < xreq->xr_buf_pages; i++) { in xdb_get_buf()
425 if ((xreq->xr_segs[i].fs != 0) && (i != curseg)) { in xdb_get_buf()
428 sectors += (xreq->xr_segs[i].ls - xreq->xr_segs[i].fs + 1); in xdb_get_buf()
429 if ((xreq->xr_segs[i].ls != XB_LAST_SECTOR_IN_SEG) && in xdb_get_buf()
430 (i != (xreq->xr_buf_pages - 1))) { in xdb_get_buf()
435 xreq->xr_curseg = i; in xdb_get_buf()
538 xdb_request_t *xreq; in xdb_intr() local
575 xreq = xdb_get_req(vdp); in xdb_intr()
576 ASSERT(xreq); in xdb_intr()
592 xreq->xr_curseg = 0; /* start from first segment */ in xdb_intr()
593 bp = xdb_get_buf(vdp, reqp, xreq); in xdb_intr()
596 xdb_free_req(xreq); in xdb_intr()
636 xdb_request_t *xreq = XDB_BP2XREQ(bp); in xdb_biodone() local
637 xdb_t *vdp = xreq->xr_vdp; in xdb_biodone()
646 if ((bioerr == 0) && (xreq->xr_curseg < xreq->xr_buf_pages)) { in xdb_biodone()
647 nbp = xdb_get_buf(vdp, NULL, xreq); in xdb_biodone()
665 segs = xreq->xr_buf_pages; in xdb_biodone()
673 vdp->xs_iopage_va, xreq->xr_idx, i); in xdb_biodone()
680 unmapops[i].handle = xreq->xr_page_hdls[i]; in xdb_biodone()
690 if (xreq->xr_op == BLKIF_OP_WRITE_BARRIER || in xdb_biodone()
691 xreq->xr_op == BLKIF_OP_FLUSH_DISKCACHE) { in xdb_biodone()
708 if (xdb_push_response(vdp, xreq->xr_id, xreq->xr_op, bioerr)) in xdb_biodone()
712 (unsigned long long)xreq->xr_id)); in xdb_biodone()
716 xdb_free_req(xreq); in xdb_biodone()