summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/st.h
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2005-11-08 11:06:44 +0100
committerJames Bottomley <jejb@mulgrave.(none)>2005-12-15 04:16:31 +0100
commit8b05b773b6030de5b1bab1cbb0bf1ff8c34cdbe0 (patch)
tree0d364c50de0ef767846b366307ba69c3c95779b0 /drivers/scsi/st.h
parent[SCSI] convert sg to scsi_execute_async (diff)
downloadlinux-8b05b773b6030de5b1bab1cbb0bf1ff8c34cdbe0.tar.xz
linux-8b05b773b6030de5b1bab1cbb0bf1ff8c34cdbe0.zip
[SCSI] convert st to use scsi_execute_async
convert st to always send scatterlists and kill scsi_request usage. This is the same as last time as it was posted, but with Kai's patches merged and we now pass the bytes value to scsi_execute_async. TODO: - move DIO code to common place or make block layers usable for ULDs. - move buffer allocation code to common place for all ULDs to use. And make buffer allocation code handle all queue limits so we can find out about problems before calling scsi_execute_async. - move indirect (copy_to/from_user) paths commone place or make block layers usable for ULDs. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/st.h')
-rw-r--r--drivers/scsi/st.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/scsi/st.h b/drivers/scsi/st.h
index 790acac160bc..411209048d74 100644
--- a/drivers/scsi/st.h
+++ b/drivers/scsi/st.h
@@ -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,6 +18,17 @@ 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;
@@ -28,7 +40,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 */