cdparanoia/interface/drive_exceptions.h

71 lines
3.2 KiB
C

extern int scsi_enable_cdda(cdrom_drive *,int);
extern long scsi_read_mmc(cdrom_drive *,void *,long,long);
extern long scsi_read_mmc2(cdrom_drive *,void *,long,long);
extern long scsi_read_D4_10(cdrom_drive *,void *,long,long);
extern long scsi_read_D4_12(cdrom_drive *,void *,long,long);
extern long scsi_read_D8(cdrom_drive *,void *,long,long);
extern long scsi_read_28(cdrom_drive *,void *,long,long);
extern long scsi_read_A8(cdrom_drive *,void *,long,long);
typedef struct exception {
char *model;
int atapi; /* If the ioctl doesn't work */
unsigned char density;
int (*enable)(struct cdrom_drive *,int);
long (*read)(struct cdrom_drive *,void *,long,long);
int bigendianp;
} exception;
/* specific to general */
/* list of drives that affect autosensing in ATAPI specific portions of code
(force drives to detect as ATAPI or SCSI, force ATAPI read command */
static exception atapi_list[]={
{"SAMSUNG SCR-830 REV 2.09 2.09 ", 1, 0, Dummy,scsi_read_mmc2,0},
{"Memorex CR-622", 1, 0, Dummy, NULL,0},
{"SONY CD-ROM CDU-561", 0, 0, Dummy, NULL,0},
{"Chinon CD-ROM CDS-525", 0, 0, Dummy, NULL,0},
{NULL,0,0,NULL,NULL,0}};
/* list of drives that affect MMC default settings */
static exception mmc_list[]={
{"SAMSUNG SCR-830 REV 2.09 2.09 ", 1, 0, Dummy,scsi_read_mmc2,0},
{"Memorex CR-622", 1, 0, Dummy, NULL,0},
{"SONY CD-ROM CDU-561", 0, 0, Dummy, NULL,0},
{"Chinon CD-ROM CDS-525", 0, 0, Dummy, NULL,0},
{"KENWOOD CD-ROM UCR", -1, 0, NULL,scsi_read_D8, 0},
{NULL,0,0,NULL,NULL,0}};
/* list of drives that affect SCSI default settings */
static exception scsi_list[]={
{"TOSHIBA", -1,0x82,scsi_enable_cdda,scsi_read_28, 0},
{"IBM", -1,0x82,scsi_enable_cdda,scsi_read_28, 0},
{"DEC", -1,0x82,scsi_enable_cdda,scsi_read_28, 0},
{"IMS", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
{"KODAK", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
{"RICOH", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
{"HP", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
{"PHILIPS", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
{"PLASMON", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
{"GRUNDIG CDR100IPW", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
{"MITSUMI CD-R ", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
{"KENWOOD CD-ROM UCR", -1, 0, NULL,scsi_read_D8, 0},
{"YAMAHA", -1, 0,scsi_enable_cdda, NULL, 0},
{"PLEXTOR", -1, 0, NULL, NULL, 0},
{"SONY", -1, 0, NULL, NULL, 0},
{"NEC", -1, 0, NULL,scsi_read_D4_10,0},
/* the 7501 locks up if hit with the 10 byte version from the
autoprobe first */
{"MATSHITA CD-R CW-7501", -1, 0, NULL,scsi_read_D4_12,-1},
{NULL,0,0,NULL,NULL,0}};