Lines Matching defs:xs
133 struct scsipi_xfer *xs;
146 xs = arg;
147 periph = xs->xs_periph;
148 flags = xs->xs_control;
154 xs->error = XS_DRIVER_STUFFUP;
155 scsipi_done(xs);
160 if (xs->cmdlen > sizeof(rc->rc_cdb))
168 xs->error = XS_RESOURCE_SHORTAGE;
169 scsipi_done(xs);
184 memcpy(rc->rc_cdb, xs->cmd, xs->cmdlen);
191 rc->rc_clen = htole32(xs->cmdlen);
196 rc->rc_sense_len = htole32(sizeof(xs->sense.scsi_sense));
201 if (xs->datalen != 0) {
202 rv = icp_ccb_map(icp, ic, xs->data, xs->datalen,
207 xs->error = XS_DRIVER_STUFFUP;
208 scsipi_done(xs);
214 rc->rc_sdlen = htole32(xs->datalen);
225 sizeof(xs->sense.scsi_sense), BUS_DMASYNC_PREREAD);
231 ic->ic_context = xs;
236 rv = icp_ccb_poll(icp, ic, xs->timeout);
238 if (xs->datalen != 0)
241 xs->error = XS_TIMEOUT;
242 scsipi_done(xs);
273 struct scsipi_xfer *xs;
280 xs = ic->ic_context;
285 SC_DEBUG(xs->xs_periph, SCSIPI_DB2, ("icpsp_intr\n"));
288 sizeof(xs->sense.scsi_sense), BUS_DMASYNC_POSTREAD);
291 xs->status = SCSI_OK;
292 xs->resid = 0;
294 xs->error = XS_SELTIMEOUT;
295 xs->resid = xs->datalen;
297 xs->status = icp->icp_info;
299 switch (xs->status) {
305 xs->resid = 0;
308 memcpy(&xs->sense.scsi_sense,
310 sizeof(xs->sense.scsi_sense));
311 xs->error = XS_SENSE;
317 xs->resid = xs->datalen;
322 if (xs->datalen != 0)
325 scsipi_done(xs);