taglinefilesource code
sr_cmd40kernel/blk_drv/scsi/sr_ioctl.cstatic int do_ioctl(int target, unsigned char * sr_cmd, void * buffer, unsigned buflength)
sr_cmd47kernel/blk_drv/scsi/sr_ioctl.c(void *) sr_cmd, buffer, buflength, sr_ioctl_done, 
sr_cmd94kernel/blk_drv/scsi/sr_ioctl.cu_char   sr_cmd[10];
sr_cmd107kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = SCMD_PAUSE_RESUME;
sr_cmd108kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = scsi_CDs[target].device->lun << 5;
sr_cmd109kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = sr_cmd[3] = sr_cmd[4] = 0;
sr_cmd110kernel/blk_drv/scsi/sr_ioctl.csr_cmd[5] = sr_cmd[6] = sr_cmd[7] = 0;
sr_cmd111kernel/blk_drv/scsi/sr_ioctl.csr_cmd[8] = 0;
sr_cmd112kernel/blk_drv/scsi/sr_ioctl.csr_cmd[9] = 0;
sr_cmd114kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl(target, sr_cmd, NULL, 255);
sr_cmd119kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = SCMD_PAUSE_RESUME;
sr_cmd120kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = scsi_CDs[target].device->lun << 5;
sr_cmd121kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = sr_cmd[3] = sr_cmd[4] = 0;
sr_cmd122kernel/blk_drv/scsi/sr_ioctl.csr_cmd[5] = sr_cmd[6] = sr_cmd[7] = 0;
sr_cmd123kernel/blk_drv/scsi/sr_ioctl.csr_cmd[8] = 1;
sr_cmd124kernel/blk_drv/scsi/sr_ioctl.csr_cmd[9] = 0;
sr_cmd126kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl(target, sr_cmd, NULL, 255);
sr_cmd135kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = SCMD_PLAYAUDIO_MSF;
sr_cmd136kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = scsi_CDs[target].device->lun << 5;
sr_cmd137kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = 0;
sr_cmd138kernel/blk_drv/scsi/sr_ioctl.csr_cmd[3] = msf.cdmsf_min0;
sr_cmd139kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = msf.cdmsf_sec0;
sr_cmd140kernel/blk_drv/scsi/sr_ioctl.csr_cmd[5] = msf.cdmsf_frame0;
sr_cmd141kernel/blk_drv/scsi/sr_ioctl.csr_cmd[6] = msf.cdmsf_min1;
sr_cmd142kernel/blk_drv/scsi/sr_ioctl.csr_cmd[7] = msf.cdmsf_sec1;
sr_cmd143kernel/blk_drv/scsi/sr_ioctl.csr_cmd[8] = msf.cdmsf_frame1;
sr_cmd144kernel/blk_drv/scsi/sr_ioctl.csr_cmd[9] = 0;
sr_cmd146kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl(target, sr_cmd, NULL, 255);
sr_cmd155kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = SCMD_PLAYAUDIO_TI;
sr_cmd156kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = scsi_CDs[target].device->lun << 5;
sr_cmd157kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = 0;
sr_cmd158kernel/blk_drv/scsi/sr_ioctl.csr_cmd[3] = 0;
sr_cmd159kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = ti.cdti_trk0;
sr_cmd160kernel/blk_drv/scsi/sr_ioctl.csr_cmd[5] = ti.cdti_ind0;
sr_cmd161kernel/blk_drv/scsi/sr_ioctl.csr_cmd[6] = 0;
sr_cmd162kernel/blk_drv/scsi/sr_ioctl.csr_cmd[7] = ti.cdti_trk1;
sr_cmd163kernel/blk_drv/scsi/sr_ioctl.csr_cmd[8] = ti.cdti_ind1;
sr_cmd164kernel/blk_drv/scsi/sr_ioctl.csr_cmd[9] = 0;
sr_cmd166kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl(target, sr_cmd, NULL, 255);
sr_cmd176kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = SCMD_READ_TOC;
sr_cmd177kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = ((scsi_CDs[target].device->lun) << 5) | 0x02;    /* MSF format */
sr_cmd178kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = sr_cmd[3] = sr_cmd[4] = sr_cmd[5] = 0;
sr_cmd179kernel/blk_drv/scsi/sr_ioctl.csr_cmd[6] = 0;
sr_cmd180kernel/blk_drv/scsi/sr_ioctl.csr_cmd[7] = 0;              /* MSB of length (12) */
sr_cmd181kernel/blk_drv/scsi/sr_ioctl.csr_cmd[8] = 12;             /* LSB of length */
sr_cmd182kernel/blk_drv/scsi/sr_ioctl.csr_cmd[9] = 0;
sr_cmd184kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl(target, sr_cmd, buffer, sizeof (buffer));
sr_cmd203kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = SCMD_READ_TOC;
sr_cmd204kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = ((scsi_CDs[target].device->lun) << 5) | 0x02;    /* MSF format */
sr_cmd205kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = sr_cmd[3] = sr_cmd[4] = sr_cmd[5] = 0;
sr_cmd206kernel/blk_drv/scsi/sr_ioctl.csr_cmd[6] = tocentry.cdte_track;
sr_cmd207kernel/blk_drv/scsi/sr_ioctl.csr_cmd[7] = 0;             /* MSB of length (12)  */
sr_cmd208kernel/blk_drv/scsi/sr_ioctl.csr_cmd[8] = 12;            /* LSB of length */
sr_cmd209kernel/blk_drv/scsi/sr_ioctl.csr_cmd[9] = 0;
sr_cmd211kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl (target, sr_cmd, buffer, sizeof (buffer));
sr_cmd229kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = START_STOP;
sr_cmd230kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = ((scsi_CDs[target].device->lun) << 5) | 1;
sr_cmd231kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = sr_cmd[3] = sr_cmd[5] = 0;
sr_cmd232kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = 0;
sr_cmd234kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl(target, sr_cmd, NULL, 255);
sr_cmd238kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = START_STOP;
sr_cmd239kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = ((scsi_CDs[target].device->lun) << 5) | 1;
sr_cmd240kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = sr_cmd[3] = sr_cmd[5] = 0;
sr_cmd241kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = 1;
sr_cmd243kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl(target, sr_cmd, NULL, 255);
sr_cmd250kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = START_STOP;
sr_cmd251kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = ((scsi_CDs[target].device -> lun) << 5) | 1;
sr_cmd252kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = sr_cmd[3] = sr_cmd[5] = 0;
sr_cmd253kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = 0x02;
sr_cmd255kernel/blk_drv/scsi/sr_ioctl.cif (!(result = do_ioctl(target, sr_cmd, NULL, 255)))
sr_cmd270kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = MODE_SENSE;
sr_cmd271kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = (scsi_CDs[target].device -> lun) << 5;
sr_cmd272kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = 0xe;    /* Want mode page 0xe, CDROM audio params */
sr_cmd273kernel/blk_drv/scsi/sr_ioctl.csr_cmd[3] = 0;
sr_cmd274kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = 28;
sr_cmd275kernel/blk_drv/scsi/sr_ioctl.csr_cmd[5] = 0;
sr_cmd277kernel/blk_drv/scsi/sr_ioctl.cif ((result = do_ioctl (target, sr_cmd, buffer, sizeof (buffer)))) {
sr_cmd282kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = MODE_SENSE;
sr_cmd283kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = (scsi_CDs[target].device -> lun) << 5;
sr_cmd284kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = 0x4e;   /* Want the mask for mode page 0xe */
sr_cmd285kernel/blk_drv/scsi/sr_ioctl.csr_cmd[3] = 0;
sr_cmd286kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = 28;
sr_cmd287kernel/blk_drv/scsi/sr_ioctl.csr_cmd[5] = 0;
sr_cmd289kernel/blk_drv/scsi/sr_ioctl.cif ((result = do_ioctl (target, sr_cmd, mask, sizeof (mask)))) {
sr_cmd301kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = MODE_SELECT;
sr_cmd302kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = ((scsi_CDs[target].device -> lun) << 5) | 0x10;    /* Params are SCSI-2 */
sr_cmd303kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = sr_cmd[3] = 0;
sr_cmd304kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = 28;
sr_cmd305kernel/blk_drv/scsi/sr_ioctl.csr_cmd[5] = 0;
sr_cmd307kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl (target, sr_cmd, buffer, sizeof (buffer));
sr_cmd316kernel/blk_drv/scsi/sr_ioctl.csr_cmd[0] = SCMD_READ_SUBCHANNEL;
sr_cmd317kernel/blk_drv/scsi/sr_ioctl.csr_cmd[1] = ((scsi_CDs[target].device->lun) << 5) | 0x02;    /* MSF format */
sr_cmd318kernel/blk_drv/scsi/sr_ioctl.csr_cmd[2] = 0x40;    /* I do want the subchannel info */
sr_cmd319kernel/blk_drv/scsi/sr_ioctl.csr_cmd[3] = 0x01;    /* Give me current position info */
sr_cmd320kernel/blk_drv/scsi/sr_ioctl.csr_cmd[4] = sr_cmd[5] = 0;
sr_cmd321kernel/blk_drv/scsi/sr_ioctl.csr_cmd[6] = 0;
sr_cmd322kernel/blk_drv/scsi/sr_ioctl.csr_cmd[7] = 0;
sr_cmd323kernel/blk_drv/scsi/sr_ioctl.csr_cmd[8] = 16;
sr_cmd324kernel/blk_drv/scsi/sr_ioctl.csr_cmd[9] = 0;
sr_cmd326kernel/blk_drv/scsi/sr_ioctl.cresult = do_ioctl(target, sr_cmd, buffer, sizeof (buffer));