Lines Matching refs:scb

108 struct scb;
114 void aic_set_recoveryscb(struct aic_softc *aic, struct scb *scb);
203 static __inline u_int aic_get_timeout(struct scb *);
204 static __inline void aic_scb_timer_reset(struct scb *, u_int);
218 aic_get_timeout(struct scb *scb)
220 return (scb->io_ctx->ccb_h.timeout);
224 aic_scb_timer_reset(struct scb *scb, u_int msec)
231 callout_reset(&scb->io_timer, time, aic_platform_timeout, scb);
235 aic_scb_timer_start(struct scb *scb)
238 if (AIC_SCB_DATA(scb->aic_softc)->recovery_scbs == 0
239 && scb->io_ctx->ccb_h.timeout != CAM_TIME_INFINITY) {
240 aic_scb_timer_reset(scb, scb->io_ctx->ccb_h.timeout);
245 static __inline void aic_set_transaction_status(struct scb *, uint32_t);
246 static __inline void aic_set_scsi_status(struct scb *, uint32_t);
247 static __inline uint32_t aic_get_transaction_status(struct scb *);
248 static __inline uint32_t aic_get_scsi_status(struct scb *);
249 static __inline void aic_set_transaction_tag(struct scb *, int, u_int);
250 static __inline u_long aic_get_transfer_length(struct scb *);
251 static __inline int aic_get_transfer_dir(struct scb *);
252 static __inline void aic_set_residual(struct scb *, u_long);
253 static __inline void aic_set_sense_residual(struct scb *, u_long);
254 static __inline u_long aic_get_residual(struct scb *);
255 static __inline int aic_perform_autosense(struct scb *);
256 static __inline uint32_t aic_get_sense_bufsize(struct aic_softc*, struct scb*);
258 static __inline void aic_freeze_scb(struct scb *scb);
259 static __inline void aic_platform_freeze_devq(struct aic_softc *, struct scb *);
265 void aic_set_transaction_status(struct scb *scb, uint32_t status)
267 scb->io_ctx->ccb_h.status &= ~CAM_STATUS_MASK;
268 scb->io_ctx->ccb_h.status |= status;
272 void aic_set_scsi_status(struct scb *scb, uint32_t status)
274 scb->io_ctx->csio.scsi_status = status;
278 uint32_t aic_get_transaction_status(struct scb *scb)
280 return (scb->io_ctx->ccb_h.status & CAM_STATUS_MASK);
284 uint32_t aic_get_scsi_status(struct scb *scb)
286 return (scb->io_ctx->csio.scsi_status);
290 void aic_set_transaction_tag(struct scb *scb, int enabled, u_int type)
292 scb->io_ctx->csio.tag_action = type;
294 scb->io_ctx->ccb_h.flags |= CAM_TAG_ACTION_VALID;
296 scb->io_ctx->ccb_h.flags &= ~CAM_TAG_ACTION_VALID;
300 u_long aic_get_transfer_length(struct scb *scb)
302 return (scb->io_ctx->csio.dxfer_len);
306 int aic_get_transfer_dir(struct scb *scb)
308 return (scb->io_ctx->ccb_h.flags & CAM_DIR_MASK);
312 void aic_set_residual(struct scb *scb, u_long resid)
314 scb->io_ctx->csio.resid = resid;
318 void aic_set_sense_residual(struct scb *scb, u_long resid)
320 scb->io_ctx->csio.sense_resid = resid;
324 u_long aic_get_residual(struct scb *scb)
326 return (scb->io_ctx->csio.resid);
330 int aic_perform_autosense(struct scb *scb)
332 return (!(scb->io_ctx->ccb_h.flags & CAM_DIS_AUTOSENSE));
336 aic_get_sense_bufsize(struct aic_softc *aic, struct scb *scb)
351 aic_freeze_scb(struct scb *scb)
353 aic_freeze_ccb(scb->io_ctx);
357 aic_platform_freeze_devq(struct aic_softc *aic, struct scb *scb)
372 aic_platform_scb_free(struct aic_softc *aic, struct scb *scb)
376 && scb->io_ctx != NULL
377 && (scb->io_ctx->ccb_h.status & CAM_RELEASE_SIMQ) == 0) {
378 scb->io_ctx->ccb_h.status |= CAM_RELEASE_SIMQ;
381 scb->io_ctx = NULL;