1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
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 */
|