|
|
1.1 root 1: /***********************************************************************
2: * FILE NAME : DC390W.H *
3: * BY : C.L. Huang *
4: * Description: Device Driver for Tekram DC-390W/U/F (T) PCI SCSI *
5: * Bus Master Host Adapter *
6: ***********************************************************************/
7:
8: /* Kernel version autodetection */
9:
10: #include <linux/version.h>
11: /* Convert Linux Version, Patch-level, Sub-level to LINUX_VERSION_CODE. */
12: #define ASC_LINUX_VERSION(V, P, S) (((V) * 65536) + ((P) * 256) + (S))
13:
14: #if LINUX_VERSION_CODE < ASC_LINUX_VERSION(1,3,50)
15: #define VERSION_ELF_1_2_13
16: #elseif LINUX_VERSION_CODE < ASC_LINUX_VERSION(1,3,95)
17: #define VERSION_1_3_85
18: #else
19: #define VERSION_2_0_0
20: #endif
21:
22: /*
23: * NCR 53c825A,875 driver, header file
24: */
25:
26: #ifndef DC390W_H
27: #define DC390W_H
28:
29: #if defined(HOSTS_C) || defined(MODULE)
30:
31: #ifdef VERSION_2_0_0
32: #include <scsi/scsicam.h>
33: #else
34: #include <linux/scsicam.h>
35: #endif
36:
37: extern int DC390W_detect(Scsi_Host_Template *psht);
38: extern int DC390W_queue_command(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *));
39: extern int DC390W_abort(Scsi_Cmnd *cmd);
40:
41: #ifdef VERSION_2_0_0
42: extern int DC390W_reset(Scsi_Cmnd *cmd, unsigned int resetFlags);
43: #else
44: extern int DC390W_reset(Scsi_Cmnd *cmd);
45: #endif
46:
47: #ifdef VERSION_ELF_1_2_13
48: extern int DC390W_bios_param(Disk *disk, int devno, int geom[]);
49: #else
50: extern int DC390W_bios_param(Disk *disk, kdev_t devno, int geom[]);
51: #endif
52:
53: #ifdef MODULE
54: static int DC390W_release(struct Scsi_Host *);
55: #else
56: #define DC390W_release NULL
57: #endif
58:
59: #ifndef VERSION_ELF_1_2_13
60: extern struct proc_dir_entry proc_scsi_tmscsiw;
61: extern int tmscsiw_proc_info(char*, char**, off_t, int, int, int);
62: #endif
63:
64: #ifdef VERSION_2_0_0
65:
66: #define DC390WUF { \
67: NULL, /* *next */ \
68: NULL, /* *usage_count */ \
69: &proc_scsi_tmscsiw, /* *proc_dir */ \
70: tmscsiw_proc_info, /* (*proc_info)() */ \
71: "Tekram DC390WUF(T) V1.12 Feb-17-1997", /* *name */ \
72: DC390W_detect, \
73: DC390W_release, /* (*release)() */ \
74: NULL, /* *(*info)() */ \
75: NULL, /* (*command)() */ \
76: DC390W_queue_command, \
77: DC390W_abort, \
78: DC390W_reset, \
79: NULL, /* slave attach */\
80: DC390W_bios_param, \
81: 10,/* can queue(-1) */ \
82: 7, /* id(-1) */ \
83: 32,/* old (SG_ALL) */ \
84: 2, /* cmd per lun(2) */ \
85: 0, /* present */ \
86: 0, /* unchecked isa dma */ \
87: ENABLE_CLUSTERING \
88: }
89: #endif
90:
91: #ifdef VERSION_1_3_85
92:
93: #define DC390WUF { \
94: NULL, /* *next */ \
95: NULL, /* *usage_count */ \
96: &proc_scsi_tmscsiw, /* *proc_dir */ \
97: tmscsiw_proc_info, /* (*proc_info)() */ \
98: "Tekram DC390WUF(T) V1.12 Feb-17-1997", /* *name */ \
99: DC390W_detect, \
100: DC390W_release, /* (*release)() */ \
101: NULL, /* *(*info)() */ \
102: NULL, /* (*command)() */ \
103: DC390W_queue_command, \
104: DC390W_abort, \
105: DC390W_reset, \
106: NULL, /* slave attach */\
107: DC390W_bios_param, \
108: 10,/* can queue(-1) */ \
109: 7, /* id(-1) */ \
110: 16,/* old (SG_ALL) */ \
111: 2, /* cmd per lun(2) */ \
112: 0, /* present */ \
113: 0, /* unchecked isa dma */ \
114: ENABLE_CLUSTERING \
115: }
116: #endif
117:
118: #ifdef VERSION_ELF_1_2_13
119:
120: #define DC390WUF { \
121: NULL, \
122: NULL, \
123: "Tekram DC390WUF(T) V1.12 Feb-17-1997",\
124: DC390W_detect, \
125: DC390W_release, \
126: NULL, /* info */ \
127: NULL, /* command, deprecated */ \
128: DC390W_queue_command, \
129: DC390W_abort, \
130: DC390W_reset, \
131: NULL, /* slave attach */\
132: DC390W_bios_param, \
133: 10,/* can queue(-1) */ \
134: 7, /* id(-1) */ \
135: 16,/* old (SG_ALL) */ \
136: 2, /* cmd per lun(2) */ \
137: 0, /* present */ \
138: 0, /* unchecked isa dma */ \
139: ENABLE_CLUSTERING \
140: }
141: #endif
142:
143: #endif /* defined(HOSTS_C) || defined(MODULE) */
144:
145: #endif /* DC390W_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.