Lines Matching full:scb

88 struct scb;
94 void aic_set_recoveryscb(struct aic_softc *aic, struct scb *scb);
158 static __inline u_int aic_get_timeout(struct scb *);
159 static __inline void aic_scb_timer_reset(struct scb *, u_int);
173 aic_get_timeout(struct scb *scb) in aic_get_timeout() argument
175 return (scb->io_ctx->ccb_h.timeout); in aic_get_timeout()
179 aic_scb_timer_reset(struct scb *scb, u_int msec) in aic_scb_timer_reset() argument
186 callout_reset(&scb->io_timer, time, aic_platform_timeout, scb); in aic_scb_timer_reset()
190 aic_scb_timer_start(struct scb *scb) in aic_scb_timer_start() argument
193 if (AIC_SCB_DATA(scb->aic_softc)->recovery_scbs == 0 in aic_scb_timer_start()
194 && scb->io_ctx->ccb_h.timeout != CAM_TIME_INFINITY) { in aic_scb_timer_start()
195 aic_scb_timer_reset(scb, scb->io_ctx->ccb_h.timeout); in aic_scb_timer_start()
200 static __inline void aic_set_transaction_status(struct scb *, uint32_t);
201 static __inline void aic_set_scsi_status(struct scb *, uint32_t);
202 static __inline uint32_t aic_get_transaction_status(struct scb *);
203 static __inline uint32_t aic_get_scsi_status(struct scb *);
204 static __inline void aic_set_transaction_tag(struct scb *, int, u_int);
205 static __inline u_long aic_get_transfer_length(struct scb *);
206 static __inline int aic_get_transfer_dir(struct scb *);
207 static __inline void aic_set_residual(struct scb *, u_long);
208 static __inline void aic_set_sense_residual(struct scb *, u_long);
209 static __inline u_long aic_get_residual(struct scb *);
210 static __inline int aic_perform_autosense(struct scb *);
211 static __inline uint32_t aic_get_sense_bufsize(struct aic_softc*, struct scb*);
213 static __inline void aic_freeze_scb(struct scb *scb);
214 static __inline void aic_platform_freeze_devq(struct aic_softc *, struct scb *);
220 void aic_set_transaction_status(struct scb *scb, uint32_t status) in aic_set_transaction_status() argument
222 scb->io_ctx->ccb_h.status &= ~CAM_STATUS_MASK; in aic_set_transaction_status()
223 scb->io_ctx->ccb_h.status |= status; in aic_set_transaction_status()
227 void aic_set_scsi_status(struct scb *scb, uint32_t status) in aic_set_scsi_status() argument
229 scb->io_ctx->csio.scsi_status = status; in aic_set_scsi_status()
233 uint32_t aic_get_transaction_status(struct scb *scb) in aic_get_transaction_status() argument
235 return (scb->io_ctx->ccb_h.status & CAM_STATUS_MASK); in aic_get_transaction_status()
239 uint32_t aic_get_scsi_status(struct scb *scb) in aic_get_scsi_status() argument
241 return (scb->io_ctx->csio.scsi_status); in aic_get_scsi_status()
245 void aic_set_transaction_tag(struct scb *scb, int enabled, u_int type) in aic_set_transaction_tag() argument
247 scb->io_ctx->csio.tag_action = type; in aic_set_transaction_tag()
249 scb->io_ctx->ccb_h.flags |= CAM_TAG_ACTION_VALID; in aic_set_transaction_tag()
251 scb->io_ctx->ccb_h.flags &= ~CAM_TAG_ACTION_VALID; in aic_set_transaction_tag()
255 u_long aic_get_transfer_length(struct scb *scb) in aic_get_transfer_length() argument
257 return (scb->io_ctx->csio.dxfer_len); in aic_get_transfer_length()
261 int aic_get_transfer_dir(struct scb *scb) in aic_get_transfer_dir() argument
263 return (scb->io_ctx->ccb_h.flags & CAM_DIR_MASK); in aic_get_transfer_dir()
267 void aic_set_residual(struct scb *scb, u_long resid) in aic_set_residual() argument
269 scb->io_ctx->csio.resid = resid; in aic_set_residual()
273 void aic_set_sense_residual(struct scb *scb, u_long resid) in aic_set_sense_residual() argument
275 scb->io_ctx->csio.sense_resid = resid; in aic_set_sense_residual()
279 u_long aic_get_residual(struct scb *scb) in aic_get_residual() argument
281 return (scb->io_ctx->csio.resid); in aic_get_residual()
285 int aic_perform_autosense(struct scb *scb) in aic_perform_autosense() argument
287 return (!(scb->io_ctx->ccb_h.flags & CAM_DIS_AUTOSENSE)); in aic_perform_autosense()
291 aic_get_sense_bufsize(struct aic_softc *aic, struct scb *scb) in aic_get_sense_bufsize() argument
306 aic_freeze_scb(struct scb *scb) in aic_freeze_scb() argument
308 aic_freeze_ccb(scb->io_ctx); in aic_freeze_scb()
312 aic_platform_freeze_devq(struct aic_softc *aic, struct scb *scb) in aic_platform_freeze_devq() argument
327 aic_platform_scb_free(struct aic_softc *aic, struct scb *scb) in aic_platform_scb_free() argument
331 && scb->io_ctx != NULL in aic_platform_scb_free()
332 && (scb->io_ctx->ccb_h.status & CAM_RELEASE_SIMQ) == 0) { in aic_platform_scb_free()
333 scb->io_ctx->ccb_h.status |= CAM_RELEASE_SIMQ; in aic_platform_scb_free()
336 scb->io_ctx = NULL; in aic_platform_scb_free()