freebsd3/sys/cam/scsi/scsi_sa.c
/*
 * Read tape block limits command.
 */
Read tape block limits command.
Read tape block limits command .
void
scsi_read_block_limits(struct ccb_scsiio *csio, u_int32_t retries,
		   void (*cbfcnp)(struct cam_periph *, union ccb *),
		   u_int8_t tag_action,
		   struct scsi_read_block_limits_data *rlimit_buf,
		   u_int8_t sense_len, u_int32_t timeout)
{
	struct scsi_read_block_limits *scsi_cmd;
	cam_fill_csio(csio, retries, cbfcnp, CAM_DIR_IN, tag_action,
	     (u_int8_t *)rlimit_buf, sizeof(*rlimit_buf), sense_len,
	     sizeof(*scsi_cmd), timeout);
	scsi_cmd = (struct scsi_read_block_limits *)&csio->cdb_io.cdb_bytes;
	bzero(scsi_cmd, sizeof(*scsi_cmd));
	scsi_cmd->opcode = READ_BLOCK_LIMITS;
}
void scsi_read_block_limits ( struct ccb_scsiio * csio , u_int32_t retries , void ( * cbfcnp ) ( struct cam_periph * , union ccb * ) , u_int8_t tag_action , struct scsi_read_block_limits_data * rlimit_buf , u_int8_t sense_len , u_int32_t timeout ) { struct scsi_read_block_limits * scsi_cmd ; cam_fill_csio ( csio , retries , cbfcnp , CAM_DIR_IN , tag_action , ( u_int8_t * ) rlimit_buf , sizeof ( * rlimit_buf ) , sense_len , sizeof ( * scsi_cmd ) , timeout ) ; scsi_cmd = ( struct scsi_read_block_limits * ) & csio -> cdb_io . cdb_bytes ; bzero ( scsi_cmd , sizeof ( * scsi_cmd ) ) ; scsi_cmd -> opcode = READ_BLOCK_LIMITS ; }
Read tape block limits command.
Read tape block limits command .