File: /usr/src/linux/drivers/scsi/ncr53c8xx.h

1     /******************************************************************************
2     **  Device driver for the PCI-SCSI NCR538XX controller family.
3     **
4     **  Copyright (C) 1994  Wolfgang Stanglmeier
5     **
6     **  This program is free software; you can redistribute it and/or modify
7     **  it under the terms of the GNU General Public License as published by
8     **  the Free Software Foundation; either version 2 of the License, or
9     **  (at your option) any later version.
10     **
11     **  This program is distributed in the hope that it will be useful,
12     **  but WITHOUT ANY WARRANTY; without even the implied warranty of
13     **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     **  GNU General Public License for more details.
15     **
16     **  You should have received a copy of the GNU General Public License
17     **  along with this program; if not, write to the Free Software
18     **  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19     **
20     **-----------------------------------------------------------------------------
21     **
22     **  This driver has been ported to Linux from the FreeBSD NCR53C8XX driver
23     **  and is currently maintained by
24     **
25     **          Gerard Roudier              <groudier@club-internet.fr>
26     **
27     **  Being given that this driver originates from the FreeBSD version, and
28     **  in order to keep synergy on both, any suggested enhancements and corrections
29     **  received on Linux are automatically a potential candidate for the FreeBSD 
30     **  version.
31     **
32     **  The original driver has been written for 386bsd and FreeBSD by
33     **          Wolfgang Stanglmeier        <wolf@cologne.de>
34     **          Stefan Esser                <se@mi.Uni-Koeln.de>
35     **
36     **  And has been ported to NetBSD by
37     **          Charles M. Hannum           <mycroft@gnu.ai.mit.edu>
38     **
39     *******************************************************************************
40     */
41     
42     #ifndef NCR53C8XX_H
43     #define NCR53C8XX_H
44     
45     #include "sym53c8xx_defs.h"
46     
47     /*
48     **	Define Scsi_Host_Template parameters
49     **
50     **	Used by hosts.c and ncr53c8xx.c with module configuration.
51     */
52     
53     #if (LINUX_VERSION_CODE >= 0x020400) || defined(HOSTS_C) || defined(MODULE)
54     
55     #include <scsi/scsicam.h>
56     
57     int ncr53c8xx_abort(Scsi_Cmnd *);
58     int ncr53c8xx_detect(Scsi_Host_Template *tpnt);
59     const char *ncr53c8xx_info(struct Scsi_Host *host);
60     int ncr53c8xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
61     int ncr53c8xx_reset(Scsi_Cmnd *, unsigned int);
62     
63     #ifdef MODULE
64     int ncr53c8xx_release(struct Scsi_Host *);
65     #else
66     #define ncr53c8xx_release NULL
67     #endif
68     
69     
70     #if	LINUX_VERSION_CODE >= LinuxVersionCode(2,1,75)
71     
72     #define NCR53C8XX {     name:           "",			\
73     			detect:         ncr53c8xx_detect,	\
74     			release:        ncr53c8xx_release,	\
75     			info:           ncr53c8xx_info, 	\
76     			queuecommand:   ncr53c8xx_queue_command,\
77     			abort:          ncr53c8xx_abort,	\
78     			reset:          ncr53c8xx_reset,	\
79     			bios_param:     scsicam_bios_param,	\
80     			can_queue:      SCSI_NCR_CAN_QUEUE,	\
81     			this_id:        7,			\
82     			sg_tablesize:   SCSI_NCR_SG_TABLESIZE,	\
83     			cmd_per_lun:    SCSI_NCR_CMD_PER_LUN,	\
84     			use_clustering: DISABLE_CLUSTERING} 
85     
86     #else
87     
88     #define NCR53C8XX {	NULL, NULL, NULL, NULL,				\
89     			NULL,			ncr53c8xx_detect,	\
90     			ncr53c8xx_release,	ncr53c8xx_info,	NULL,	\
91     			ncr53c8xx_queue_command,ncr53c8xx_abort,	\
92     			ncr53c8xx_reset, NULL,	scsicam_bios_param,	\
93     			SCSI_NCR_CAN_QUEUE,	7,			\
94     			SCSI_NCR_SG_TABLESIZE,	SCSI_NCR_CMD_PER_LUN,	\
95     			0,	0,	DISABLE_CLUSTERING} 
96      
97     #endif /* LINUX_VERSION_CODE */
98     
99     #endif /* defined(HOSTS_C) || defined(MODULE) */ 
100     
101     #endif /* NCR53C8XX_H */
102