| 1 |
|
| 2 | |
| 3 | * sr.h by David Giller
|
| 4 | * CD-ROM disk driver header file
|
| 5 | *
|
| 6 | * adapted from:
|
| 7 | * sd.h Copyright (C) 1992 Drew Eckhardt
|
| 8 | * SCSI disk driver header file by
|
| 9 | * Drew Eckhardt
|
| 10 | *
|
| 11 | * <[email protected]>
|
| 12 | *
|
| 13 | * Modified by Eric Youngdale [email protected] to
|
| 14 | * add scatter-gather, multiple outstanding request, and other
|
| 15 | * enhancements.
|
| 16 |
|
| 17 |
|
| 18 | #ifndef _SR_H
|
| 19 | #define _SR_H
|
| 20 |
|
| 21 | #include <linux/mutex.h>
|
| 22 |
|
| 23 | #define MAX_RETRIES 3
|
| 24 | #define SR_TIMEOUT (30 * HZ)
|
| 25 |
|
| 26 | struct scsi_device;
|
| 27 |
|
| 28 |
|
| 29 |
|
| 30 | #define IOCTL_TIMEOUT 30*HZ
|
| 31 |
|
| 32 |
|
| 33 | typedef struct scsi_cd {
|
| 34 | unsigned capacity;
|
| 35 | struct scsi_device *device;
|
| 36 | unsigned int vendor;
|
| 37 | unsigned long ms_offset;
|
| 38 | unsigned use:1;
|
| 39 | unsigned xa_flag:1;
|
| 40 | unsigned readcd_known:1;
|
| 41 | unsigned readcd_cdda:1;
|
| 42 | unsigned media_present:1;
|
| 43 |
|
| 44 |
|
| 45 | int tur_mismatch;
|
| 46 | bool tur_changed:1;
|
| 47 | bool get_event_changed:1;
|
| 48 | bool ignore_get_event:1;
|
| 49 |
|
| 50 | struct cdrom_device_info cdi;
|
| 51 | struct mutex lock;
|
| 52 | struct gendisk *disk;
|
| 53 | } Scsi_CD;
|
| 54 |
|
| 55 | #define sr_printk(prefix, cd, fmt, a...) \
|
| 56 | sdev_prefix_printk(prefix, (cd)->device, (cd)->cdi.name, fmt, ##a)
|
| 57 |
|
| 58 | int sr_do_ioctl(Scsi_CD *, struct packet_command *);
|
| 59 |
|
| 60 | int sr_lock_door(struct cdrom_device_info *, int);
|
| 61 | int sr_tray_move(struct cdrom_device_info *, int);
|
| 62 | int sr_drive_status(struct cdrom_device_info *, int);
|
| 63 | int sr_disk_status(struct cdrom_device_info *);
|
| 64 | int sr_get_last_session(struct cdrom_device_info *, struct cdrom_multisession *);
|
| 65 | int sr_get_mcn(struct cdrom_device_info *, struct cdrom_mcn *);
|
| 66 | int sr_reset(struct cdrom_device_info *);
|
| 67 | int sr_select_speed(struct cdrom_device_info *cdi, unsigned long speed);
|
| 68 | int sr_audio_ioctl(struct cdrom_device_info *, unsigned int, void *);
|
| 69 |
|
| 70 | int sr_is_xa(Scsi_CD *);
|
| 71 |
|
| 72 |
|
| 73 | void sr_vendor_init(Scsi_CD *);
|
| 74 | int sr_cd_check(struct cdrom_device_info *);
|
| 75 | int sr_set_blocklength(Scsi_CD *, int blocklength);
|
| 76 |
|
| 77 | #endif
|