summaryrefslogtreecommitdiff
path: root/linux/src/drivers/scsi/dc390w.h
diff options
context:
space:
mode:
Diffstat (limited to 'linux/src/drivers/scsi/dc390w.h')
-rw-r--r--linux/src/drivers/scsi/dc390w.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/linux/src/drivers/scsi/dc390w.h b/linux/src/drivers/scsi/dc390w.h
new file mode 100644
index 0000000..7e4030a
--- /dev/null
+++ b/linux/src/drivers/scsi/dc390w.h
@@ -0,0 +1,145 @@
+/***********************************************************************
+ * FILE NAME : DC390W.H *
+ * BY : C.L. Huang *
+ * Description: Device Driver for Tekram DC-390W/U/F (T) PCI SCSI *
+ * Bus Master Host Adapter *
+ ***********************************************************************/
+
+/* Kernel version autodetection */
+
+#include <linux/version.h>
+/* Convert Linux Version, Patch-level, Sub-level to LINUX_VERSION_CODE. */
+#define ASC_LINUX_VERSION(V, P, S) (((V) * 65536) + ((P) * 256) + (S))
+
+#if LINUX_VERSION_CODE < ASC_LINUX_VERSION(1,3,50)
+#define VERSION_ELF_1_2_13
+#elseif LINUX_VERSION_CODE < ASC_LINUX_VERSION(1,3,95)
+#define VERSION_1_3_85
+#else
+#define VERSION_2_0_0
+#endif
+
+/*
+ * NCR 53c825A,875 driver, header file
+ */
+
+#ifndef DC390W_H
+#define DC390W_H
+
+#if defined(HOSTS_C) || defined(MODULE)
+
+#ifdef VERSION_2_0_0
+#include <scsi/scsicam.h>
+#else
+#include <linux/scsicam.h>
+#endif
+
+extern int DC390W_detect(Scsi_Host_Template *psht);
+extern int DC390W_queue_command(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *));
+extern int DC390W_abort(Scsi_Cmnd *cmd);
+
+#ifdef VERSION_2_0_0
+extern int DC390W_reset(Scsi_Cmnd *cmd, unsigned int resetFlags);
+#else
+extern int DC390W_reset(Scsi_Cmnd *cmd);
+#endif
+
+#ifdef VERSION_ELF_1_2_13
+extern int DC390W_bios_param(Disk *disk, int devno, int geom[]);
+#else
+extern int DC390W_bios_param(Disk *disk, kdev_t devno, int geom[]);
+#endif
+
+#ifdef MODULE
+static int DC390W_release(struct Scsi_Host *);
+#else
+#define DC390W_release NULL
+#endif
+
+#ifndef VERSION_ELF_1_2_13
+extern struct proc_dir_entry proc_scsi_tmscsiw;
+extern int tmscsiw_proc_info(char*, char**, off_t, int, int, int);
+#endif
+
+#ifdef VERSION_2_0_0
+
+#define DC390WUF { \
+ NULL, /* *next */ \
+ NULL, /* *usage_count */ \
+ &proc_scsi_tmscsiw, /* *proc_dir */ \
+ tmscsiw_proc_info, /* (*proc_info)() */ \
+ "Tekram DC390WUF(T) V1.12 Feb-17-1997", /* *name */ \
+ DC390W_detect, \
+ DC390W_release, /* (*release)() */ \
+ NULL, /* *(*info)() */ \
+ NULL, /* (*command)() */ \
+ DC390W_queue_command, \
+ DC390W_abort, \
+ DC390W_reset, \
+ NULL, /* slave attach */\
+ DC390W_bios_param, \
+ 10,/* can queue(-1) */ \
+ 7, /* id(-1) */ \
+ 32,/* old (SG_ALL) */ \
+ 2, /* cmd per lun(2) */ \
+ 0, /* present */ \
+ 0, /* unchecked isa dma */ \
+ ENABLE_CLUSTERING \
+ }
+#endif
+
+#ifdef VERSION_1_3_85
+
+#define DC390WUF { \
+ NULL, /* *next */ \
+ NULL, /* *usage_count */ \
+ &proc_scsi_tmscsiw, /* *proc_dir */ \
+ tmscsiw_proc_info, /* (*proc_info)() */ \
+ "Tekram DC390WUF(T) V1.12 Feb-17-1997", /* *name */ \
+ DC390W_detect, \
+ DC390W_release, /* (*release)() */ \
+ NULL, /* *(*info)() */ \
+ NULL, /* (*command)() */ \
+ DC390W_queue_command, \
+ DC390W_abort, \
+ DC390W_reset, \
+ NULL, /* slave attach */\
+ DC390W_bios_param, \
+ 10,/* can queue(-1) */ \
+ 7, /* id(-1) */ \
+ 16,/* old (SG_ALL) */ \
+ 2, /* cmd per lun(2) */ \
+ 0, /* present */ \
+ 0, /* unchecked isa dma */ \
+ ENABLE_CLUSTERING \
+ }
+#endif
+
+#ifdef VERSION_ELF_1_2_13
+
+#define DC390WUF { \
+ NULL, \
+ NULL, \
+ "Tekram DC390WUF(T) V1.12 Feb-17-1997",\
+ DC390W_detect, \
+ DC390W_release, \
+ NULL, /* info */ \
+ NULL, /* command, deprecated */ \
+ DC390W_queue_command, \
+ DC390W_abort, \
+ DC390W_reset, \
+ NULL, /* slave attach */\
+ DC390W_bios_param, \
+ 10,/* can queue(-1) */ \
+ 7, /* id(-1) */ \
+ 16,/* old (SG_ALL) */ \
+ 2, /* cmd per lun(2) */ \
+ 0, /* present */ \
+ 0, /* unchecked isa dma */ \
+ ENABLE_CLUSTERING \
+ }
+#endif
+
+#endif /* defined(HOSTS_C) || defined(MODULE) */
+
+#endif /* DC390W_H */