update atp870u driver to 0.78 from D-Link source
[linux-2.4.git] / 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@free.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 */