|
@@ -595,6 +595,53 @@ int set_io_32bit(ide_drive_t *, int);
|
|
int set_pio_mode(ide_drive_t *, int);
|
|
int set_pio_mode(ide_drive_t *, int);
|
|
int set_using_dma(ide_drive_t *, int);
|
|
int set_using_dma(ide_drive_t *, int);
|
|
|
|
|
|
|
|
+struct ide_atapi_pc {
|
|
|
|
+ /* actual packet bytes */
|
|
|
|
+ u8 c[12];
|
|
|
|
+ /* incremented on each retry */
|
|
|
|
+ int retries;
|
|
|
|
+ int error;
|
|
|
|
+
|
|
|
|
+ /* bytes to transfer */
|
|
|
|
+ int req_xfer;
|
|
|
|
+ /* bytes actually transferred */
|
|
|
|
+ int xferred;
|
|
|
|
+
|
|
|
|
+ /* data buffer */
|
|
|
|
+ u8 *buf;
|
|
|
|
+ /* current buffer position */
|
|
|
|
+ u8 *cur_pos;
|
|
|
|
+ int buf_size;
|
|
|
|
+ /* missing/available data on the current buffer */
|
|
|
|
+ int b_count;
|
|
|
|
+
|
|
|
|
+ /* the corresponding request */
|
|
|
|
+ struct request *rq;
|
|
|
|
+
|
|
|
|
+ unsigned long flags;
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * those are more or less driver-specific and some of them are subject
|
|
|
|
+ * to change/removal later.
|
|
|
|
+ */
|
|
|
|
+ u8 pc_buf[256];
|
|
|
|
+ void (*idefloppy_callback) (ide_drive_t *);
|
|
|
|
+ ide_startstop_t (*idetape_callback) (ide_drive_t *);
|
|
|
|
+
|
|
|
|
+ /* idetape only */
|
|
|
|
+ struct idetape_bh *bh;
|
|
|
|
+ char *b_data;
|
|
|
|
+
|
|
|
|
+ /* idescsi only for now */
|
|
|
|
+ struct scatterlist *sg;
|
|
|
|
+ unsigned int sg_cnt;
|
|
|
|
+
|
|
|
|
+ struct scsi_cmnd *scsi_cmd;
|
|
|
|
+ void (*done) (struct scsi_cmnd *);
|
|
|
|
+
|
|
|
|
+ unsigned long timeout;
|
|
|
|
+};
|
|
|
|
+
|
|
#ifdef CONFIG_IDE_PROC_FS
|
|
#ifdef CONFIG_IDE_PROC_FS
|
|
/*
|
|
/*
|
|
* configurable drive settings
|
|
* configurable drive settings
|