Lines Matching refs:scmd

4629     scmd_t scmd;
4638 memset (&scmd, 0, sizeof (scmd));
4643 scmd.rw = 1;
4644 scmd.data_buf = dst;
4645 scmd.datalen = *dst_size;
4651 scmd.data_buf = (char *) src;
4652 scmd.datalen = src_size;
4654 scmd.cdb = (char *) cmd;
4655 scmd.cdblen = cmd_size;
4656 scmd.timeval = sane_scsicmd_timeout;
4657 scmd.sense_buf = sense_buf;
4658 scmd.senselen = sizeof (sense_buf);
4659 scmd.statusp = &status;
4660 DBG (1, "sanei_scsi_cmd: scmd.rw = %d, scmd.cdblen = %d, ",
4661 scmd.rw, scmd.cdblen);
4662 DBG (1, "scmd.cdb = {0x%x,0x%x,0x%x,0x%x,0x%x,0x%x, ...}\n",
4663 scmd.cdb[0], scmd.cdb[1], scmd.cdb[2],
4664 scmd.cdb[3], scmd.cdb[4], scmd.cdb[5]);
4665 if (ioctl (fd, GSC_CMD, &scmd) < 0)
4671 if (*scmd.statusp)
4673 *scmd.statusp);
4680 *dst_size = scmd.datalen;
4682 if (scmd.senselen > 0
4683 && (scmd.sense_buf[0] & 0x80) && fd_info[fd].sense_handler)
4684 return (*fd_info[fd].sense_handler) (fd, (u_char *) scmd.sense_buf,
4774 struct scg_cmd scmd;
4782 memset (&scmd, 0, sizeof (scmd));
4783 scmd.flags = DEF_SCG_FLG | (probing ? SCG_SILENT : 0);
4788 scmd.flags |= SCG_RECV_DATA;
4789 scmd.addr = dst;
4790 scmd.size = *dst_size;
4796 scmd.addr = (caddr_t) src;
4797 scmd.size = src_size;
4799 scmd.cdb_len = cmd_size;
4800 scmd.sense_len = CCS_SENSE_LEN;
4801 scmd.target = fd_info[fd].target;
4803 scmd.timeout = probing ? 2 : DEF_TIMEOUT;
4804 memcpy (&scmd.cdb.g0_cdb.cmd, cmd, cmd_size);
4805 scmd.cdb.cmd_cdb[1] |= fd_info[fd].lun << 5;
4806 if (ioctl (fd, SCGIO_CMD, &scmd) < 0)
4809 *dst_size = scmd.size - scmd.resid;
4810 if (scmd.error == 0 && scmd.errno == 0 && *(u_char *) & scmd.scb == 0)
4813 if (scmd.error == SCG_TIMEOUT)
4814 DBG (0, "sanei_scsi_cmd %x: timeout\n", scmd.cdb.g0_cdb.cmd);
4818 (struct scsi_ext_sense *) &scmd.sense;
4820 if (scmd.error < SCG_FATAL
4821 && ((scmd.sense.code < 0x70 && scmd.sense.code != 0x04)
4822 || (scmd.sense.code >= 0x70
4833 scmd.cdb.g0_cdb.cmd, scmd.error, strerror (scmd.errno),
4834 ((dst_size != NULL) ? (*dst_size) : 0), scmd.u_scb.cmd_scb[0],
4835 scmd.u_scb.cmd_scb[1], scmd.u_scb.cmd_scb[2], scmd.sense_count);
4837 for (i = 0; i < scmd.sense_count; i++)
4838 sprintf (errbf + strlen (errbf), "%x,", scmd.u_sense.cmd_sense[i]);
4847 scmd.error abort and dump core when no lifes left
4849 if (scmd.error)
4852 scmd.cdb.g0_cdb.cmd != SC_TEST_UNIT_READY)
4860 if (scmd.u_scb.cmd_scb[0] == SC_BUSY)
4862 if (*(u_char *) & scmd.sense && handler)
4864 rv = (*handler) (fd, scmd.u_sense.cmd_sense,
4967 scmd.cdb.g0_cdb.cmd != SC_TEST_UNIT_READY)
4976 if (scmd.u_scb.cmd_scb[0] == SC_BUSY)