diff --git a/drivers/scsi/st.h b/drivers/scsi/st.h
new file mode 100644
index 0000000..061da11
--- /dev/null
+++ b/drivers/scsi/st.h
@@ -0,0 +1,212 @@
+
+#ifndef _ST_H
+#define _ST_H
+
+#include <linux/completion.h>
+
+
+/* Descriptor for analyzed sense data */
+struct st_cmdstatus {
+	int midlevel_result;
+	struct scsi_sense_hdr sense_hdr;
+	int have_sense;
+	u64 uremainder64;
+	u8 flags;
+	u8 remainder_valid;
+	u8 fixed_format;
+	u8 deferred;
+};
+
+/* 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;
+	int buffer_blocks;
+	int buffer_bytes;
+	int read_pointer;
+	int writing;
+	int syscall_result;
+	struct scsi_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 */
+	unsigned short sg_segs;		/* number of segments in s/g list */
+	unsigned short orig_frp_segs;	/* number of segments allocated at first try */
+	unsigned short frp_segs;	/* number of buffer segments */
+	unsigned int frp_sg_current;	/* driver buffer length currently in s/g list */
+	struct st_buf_fragment *frp;	/* the allocated buffer fragment list */
+	struct scatterlist sg[1];	/* MUST BE last item */
+};
+
+/* The tape buffer fragment descriptor */
+struct st_buf_fragment {
+	struct page *page;
+	unsigned int length;
+};
+
+/* The tape mode definition */
+struct st_modedef {
+	unsigned char defined;
+	unsigned char sysv;	/* SYS V semantics? */
+	unsigned char do_async_writes;
+	unsigned char do_buffer_writes;
+	unsigned char do_read_ahead;
+	unsigned char defaults_for_writes;
+	unsigned char default_compression;	/* 0 = don't touch, etc */
+	short default_density;	/* Forced density, -1 = no value */
+	int default_blksize;	/* Forced blocksize, -1 = no value */
+	struct cdev *cdevs[2];  /* Auto-rewind and non-rewind devices */
+};
+
+/* Number of modes can be changed by changing ST_NBR_MODE_BITS. The maximum
+   number of modes is 16 (ST_NBR_MODE_BITS 4) */
+#define ST_NBR_MODE_BITS 2
+#define ST_NBR_MODES (1 << ST_NBR_MODE_BITS)
+#define ST_MODE_SHIFT (7 - ST_NBR_MODE_BITS)
+#define ST_MODE_MASK ((ST_NBR_MODES - 1) << ST_MODE_SHIFT)
+
+#define ST_MAX_TAPES 128
+#define ST_MAX_TAPE_ENTRIES  (ST_MAX_TAPES << (ST_NBR_MODE_BITS + 1))
+
+/* The status related to each partition */
+struct st_partstat {
+	unsigned char rw;
+	unsigned char eof;
+	unsigned char at_sm;
+	unsigned char last_block_valid;
+	u32 last_block_visited;
+	int drv_block;		/* The block where the drive head is */
+	int drv_file;
+};
+
+#define ST_NBR_PARTITIONS 4
+
+/* The tape drive descriptor */
+struct scsi_tape {
+	struct scsi_driver *driver;
+	struct scsi_device *device;
+	struct semaphore lock;	/* For serialization */
+	struct completion wait;	/* For SCSI commands */
+	struct st_buffer *buffer;
+
+	/* Drive characteristics */
+	unsigned char omit_blklims;
+	unsigned char do_auto_lock;
+	unsigned char can_bsr;
+	unsigned char can_partitions;
+	unsigned char two_fm;
+	unsigned char fast_mteom;
+	unsigned char immediate;
+	unsigned char restr_dma;
+	unsigned char scsi2_logical;
+	unsigned char default_drvbuffer;	/* 0xff = don't touch, value 3 bits */
+	unsigned char cln_mode;			/* 0 = none, otherwise sense byte nbr */
+	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 c_algo;			/* compression algorithm */
+	unsigned char pos_unknown;			/* after reset position unknown */
+	int tape_type;
+	int long_timeout;	/* timeout for commands known to take long time */
+
+	unsigned long max_pfn;	/* the maximum page number reachable by the HBA */
+
+	/* Mode characteristics */
+	struct st_modedef modes[ST_NBR_MODES];
+	int current_mode;
+
+	/* Status variables */
+	int partition;
+	int new_partition;
+	int nbr_partitions;	/* zero until partition support enabled */
+	struct st_partstat ps[ST_NBR_PARTITIONS];
+	unsigned char dirty;
+	unsigned char ready;
+	unsigned char write_prot;
+	unsigned char drv_write_prot;
+	unsigned char in_use;
+	unsigned char blksize_changed;
+	unsigned char density_changed;
+	unsigned char compression_changed;
+	unsigned char drv_buffer;
+	unsigned char density;
+	unsigned char door_locked;
+	unsigned char autorew_dev;   /* auto-rewind device */
+	unsigned char rew_at_close;  /* rewind necessary at close */
+	unsigned char inited;
+	unsigned char cleaning_req;  /* cleaning requested? */
+	int block_size;
+	int min_block;
+	int max_block;
+	int recover_count;     /* From tape opening */
+	int recover_reg;       /* From last status call */
+
+#if DEBUG
+	unsigned char write_pending;
+	int nbr_finished;
+	int nbr_waits;
+	int nbr_requests;
+	int nbr_dio;
+	int nbr_pages;
+	int nbr_combinable;
+	unsigned char last_cmnd[6];
+	unsigned char last_sense[16];
+#endif
+	struct gendisk *disk;
+};
+
+/* Bit masks for use_pf */
+#define USE_PF      1
+#define PF_TESTED   2
+
+/* Values of eof */
+#define	ST_NOEOF	0
+#define ST_FM_HIT       1
+#define ST_FM           2
+#define ST_EOM_OK       3
+#define ST_EOM_ERROR	4
+#define	ST_EOD_1        5
+#define ST_EOD_2        6
+#define ST_EOD		7
+/* EOD hit while reading => ST_EOD_1 => return zero => ST_EOD_2 =>
+   return zero => ST_EOD, return ENOSPC */
+/* When writing: ST_EOM_OK == early warning found, write OK
+		 ST_EOD_1  == allow trying new write after early warning
+		 ST_EOM_ERROR == early warning found, not able to write all */
+
+/* Values of rw */
+#define	ST_IDLE		0
+#define	ST_READING	1
+#define	ST_WRITING	2
+
+/* Values of ready state */
+#define ST_READY	0
+#define ST_NOT_READY	1
+#define ST_NO_TAPE	2
+
+/* Values for door lock state */
+#define ST_UNLOCKED	0
+#define ST_LOCKED_EXPLICIT 1
+#define ST_LOCKED_AUTO  2
+#define ST_LOCK_FAILS   3
+
+/* Positioning SCSI-commands for Tandberg, etc. drives */
+#define	QFA_REQUEST_BLOCK	0x02
+#define	QFA_SEEK_BLOCK		0x0c
+
+/* Setting the binary options */
+#define ST_DONT_TOUCH  0
+#define ST_NO          1
+#define ST_YES         2
+
+#define EXTENDED_SENSE_START  18
+
+/* Masks for some conditions in the sense data */
+#define SENSE_FMK   0x80
+#define SENSE_EOM   0x40
+#define SENSE_ILI   0x20
+
+#endif
