summaryrefslogtreecommitdiff
path: root/linux/src/drivers/scsi/dc390.h
blob: 18c7e037ed3a1acc0b8236b60cc07ed48029839c (plain)
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
146
147
/***********************************************************************
 *	FILE NAME : DC390.H					       *
 *	     BY   : C.L. Huang					       *
 *	Description: Device Driver for Tekram DC-390(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

/*
 * AMD 53C974 driver, header file
 */

#ifndef DC390_H
#define DC390_H

#if defined(HOSTS_C) || defined(MODULE)

#ifdef	VERSION_2_0_0
#include <scsi/scsicam.h>
#else
#include <linux/scsicam.h>
#endif

extern int DC390_detect(Scsi_Host_Template *psht);
extern int DC390_queue_command(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *));
extern int DC390_abort(Scsi_Cmnd *cmd);

#ifdef	VERSION_2_0_0
extern int DC390_reset(Scsi_Cmnd *cmd, unsigned int resetFlags);
#else
extern int DC390_reset(Scsi_Cmnd *cmd);
#endif

#ifdef	VERSION_ELF_1_2_13
extern int DC390_bios_param(Disk *disk, int devno, int geom[]);
#else
extern int DC390_bios_param(Disk *disk, kdev_t devno, int geom[]);
#endif

#ifdef MODULE
static int DC390_release(struct Scsi_Host *);
#else
#define DC390_release NULL
#endif

#ifndef VERSION_ELF_1_2_13
extern struct proc_dir_entry proc_scsi_tmscsim;
extern int tmscsim_proc_info(char *buffer, char **start, off_t offset, int length, int hostno, int inout);
#endif

#ifdef	VERSION_2_0_0

#define DC390_T    {			\
	NULL,	/* *next */		\
	NULL,	/* *usage_count */	\
	&proc_scsi_tmscsim,	/* *proc_dir */ 	\
	tmscsim_proc_info,	/* (*proc_info)() */	\
	"Tekram DC390(T) V1.11 Feb-05-1997",  /* *name */ \
	DC390_detect,			\
	DC390_release,	/* (*release)() */	\
	NULL,	/* *(*info)() */	\
	NULL,	/* (*command)() */	\
	DC390_queue_command,	\
	DC390_abort,		\
	DC390_reset,		\
	NULL, /* slave attach */\
	DC390_bios_param,	\
	10,/* can queue(-1) */	\
	7, /* id(-1) */ 	\
	SG_ALL, 		\
	2, /* cmd per lun(2) */ \
	0, /* present */	\
	0, /* unchecked isa dma */ \
	DISABLE_CLUSTERING	\
	}
#endif


#ifdef	VERSION_1_3_85

#define DC390_T    {			\
	NULL,	/* *next */		\
	NULL,	/* *usage_count */	\
	&proc_scsi_tmscsim,	/* *proc_dir */ 	\
	tmscsim_proc_info,	/* (*proc_info)() */	\
	"Tekram DC390(T) V1.11 Feb-05-1997",  /* *name */ \
	DC390_detect,			\
	DC390_release,	/* (*release)() */	\
	NULL,	/* *(*info)() */	\
	NULL,	/* (*command)() */	\
	DC390_queue_command,	\
	DC390_abort,		\
	DC390_reset,		\
	NULL, /* slave attach */\
	DC390_bios_param,	\
	10,/* can queue(-1) */	\
	7, /* id(-1) */ 	\
	SG_ALL, 		\
	2, /* cmd per lun(2) */ \
	0, /* present */	\
	0, /* unchecked isa dma */ \
	DISABLE_CLUSTERING	\
	}
#endif


#ifdef	VERSION_ELF_1_2_13

#define DC390_T     {		\
	NULL,			\
	NULL,			\
	"Tekram DC390(T) V1.11 Feb-05-1997",\
	DC390_detect,		\
	DC390_release,			\
	NULL, /* info */	\
	NULL, /* command, deprecated */ \
	DC390_queue_command,	\
	DC390_abort,		\
	DC390_reset,		\
	NULL, /* slave attach */\
	DC390_bios_param,	\
	10,/* can queue(-1) */	\
	7, /* id(-1) */ 	\
	16,/* old (SG_ALL) */	\
	2, /* cmd per lun(2) */ \
	0, /* present */	\
	0, /* unchecked isa dma */ \
	DISABLE_CLUSTERING	\
	}
#endif

#endif /* defined(HOSTS_C) || defined(MODULE) */

#endif /* DC390_H */