Merge branch 'master' into for_paulus
[linux-drm-fsl-dcu.git] / drivers / scsi / st.h
index 790acac160bcb33b8bfb2426b2e147f09814563e..50f3deb1f9ed92fcaf06bcc8c62329e966db8750 100644 (file)
@@ -4,6 +4,7 @@
 
 #include <linux/completion.h>
 #include <linux/kref.h>
+#include <scsi/scsi_cmnd.h>
 
 /* Descriptor for analyzed sense data */
 struct st_cmdstatus {
@@ -17,9 +18,19 @@ struct st_cmdstatus {
        u8 deferred;
 };
 
+struct scsi_tape;
+
+/* scsi tape command */
+struct st_request {
+       unsigned char cmd[MAX_COMMAND_SIZE];
+       unsigned char sense[SCSI_SENSE_BUFFERSIZE];
+       int result;
+       struct scsi_tape *stp;
+       struct completion *waiting;
+};
+
 /* The tape buffer descriptor. */
 struct st_buffer {
-       unsigned char in_use;
        unsigned char dma;      /* DMA-able buffer */
        unsigned char do_dio;   /* direct i/o set up? */
        int buffer_size;
@@ -28,7 +39,7 @@ struct st_buffer {
        int read_pointer;
        int writing;
        int syscall_result;
-       struct scsi_request *last_SRpnt;
+       struct st_request *last_SRpnt;
        struct st_cmdstatus cmdstat;
        unsigned char *b_data;
        unsigned short use_sg;  /* zero or max number of s/g segments for this adapter */
@@ -106,7 +117,8 @@ struct scsi_tape {
        unsigned char cln_sense_value;
        unsigned char cln_sense_mask;
        unsigned char use_pf;                   /* Set Page Format bit in all mode selects? */
-       unsigned char try_dio;                  /* try direct i/o? */
+       unsigned char try_dio;                  /* try direct i/o in general? */
+       unsigned char try_dio_now;              /* try direct i/o before next close? */
        unsigned char c_algo;                   /* compression algorithm */
        unsigned char pos_unknown;                      /* after reset position unknown */
        int tape_type;