X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fscsi%2Fst.h;h=50f3deb1f9ed92fcaf06bcc8c62329e966db8750;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=061da111398e98cbe097c3845c6686d3be7f9cad;hpb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;p=linux-2.6.git diff --git a/drivers/scsi/st.h b/drivers/scsi/st.h index 061da1113..50f3deb1f 100644 --- a/drivers/scsi/st.h +++ b/drivers/scsi/st.h @@ -3,7 +3,8 @@ #define _ST_H #include - +#include +#include /* 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; @@ -156,6 +168,7 @@ struct scsi_tape { unsigned char last_sense[16]; #endif struct gendisk *disk; + struct kref kref; }; /* Bit masks for use_pf */