/* Called by the mid layer to queue a command. Process the command block, build the host specific scb structures and if there is room queue the command down to the controller  */
static int inia100_queue(struct scsi_cmnd *cmd, void(*done)(struct scsi_cmnd *))
/* Called by the mid layer to queue a command. Process the command block, build the host specific scb structures and if there is room queue the command down to the controller  */
static int inia100_queue(struct scsi_cmnd *cmd, void(*done)(struct scsi_cmnd *))
{
	struct orc_scb *scb;
	struct orc_host *host;
	host = (struct orc_host *) cmd->device->host->hostdata;
	cmd->scsi_done = done;
	if ((scb = orc_alloc_scb(host)) == NULL)
		return SCSI_MLQUEUE_HOST_BUSY;
	if (inia100_build_scb(host, scb, cmd)) {
		orc_release_scb(host, scb);
		return SCSI_MLQUEUE_HOST_BUSY;
	}
	orc_exec_scb(host, scb);
	return 0;
}