update atp870u driver to 0.78 from D-Link source
[linux-2.4.git] / drivers / scsi / mac_scsi.h
1 /*
2  * Cumana Generic NCR5380 driver defines
3  *
4  * Copyright 1993, Drew Eckhardt
5  *      Visionary Computing
6  *      (Unix and Linux consulting and custom programming)
7  *      drew@colorado.edu
8  *      +1 (303) 440-4894
9  *
10  * ALPHA RELEASE 1.
11  *
12  * For more information, please consult
13  *
14  * NCR 5380 Family
15  * SCSI Protocol Controller
16  * Databook
17  *
18  * NCR Microelectronics
19  * 1635 Aeroplaza Drive
20  * Colorado Springs, CO 80916
21  * 1+ (719) 578-3400
22  * 1+ (800) 334-5454
23  */
24
25 /*
26  * $Log: cumana_NCR5380.h,v $
27  */
28
29 #ifndef MAC_NCR5380_H
30 #define MAC_NCR5380_H
31
32 #define MACSCSI_PUBLIC_RELEASE 2
33
34 #ifndef ASM
35 int macscsi_abort (Scsi_Cmnd *);
36 int macscsi_detect (Scsi_Host_Template *);
37 int macscsi_release (struct Scsi_Host *);
38 const char *macscsi_info (struct Scsi_Host *);
39 int macscsi_reset(Scsi_Cmnd *, unsigned int);
40 int macscsi_queue_command (Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
41 int macscsi_proc_info (char *buffer, char **start, off_t offset,
42                         int length, int hostno, int inout);
43
44 #ifndef NULL
45 #define NULL 0
46 #endif
47
48 #ifndef CMD_PER_LUN
49 #define CMD_PER_LUN 2
50 #endif
51
52 #ifndef CAN_QUEUE
53 #define CAN_QUEUE 16
54 #endif
55
56 #ifndef SG_TABLESIZE
57 #define SG_TABLESIZE SG_NONE
58 #endif
59
60 #ifndef USE_TAGGED_QUEUING
61 #define USE_TAGGED_QUEUING 0
62 #endif
63
64 #include <scsi/scsicam.h>
65
66 #define MAC_NCR5380 {                                           \
67 proc_name:              "Mac5380",                                      \
68 proc_info:              macscsi_proc_info,                              \
69 name:                   "Macintosh NCR5380 SCSI",                       \
70 detect:                 macscsi_detect,                                 \
71 release:                macscsi_release,        /* Release */           \
72 info:                   macscsi_info,                                   \
73 queuecommand:           macscsi_queue_command,                          \
74 abort:                  macscsi_abort,                                  \
75 reset:                  macscsi_reset,                                  \
76 bios_param:             scsicam_bios_param,     /* biosparam */         \
77 can_queue:              CAN_QUEUE,              /* can queue */         \
78 this_id:                7,                      /* id */                \
79 sg_tablesize:           SG_ALL,                 /* sg_tablesize */      \
80 cmd_per_lun:            CMD_PER_LUN,            /* cmd per lun */       \
81 unchecked_isa_dma:      0,                      /* unchecked_isa_dma */ \
82 use_clustering:         DISABLE_CLUSTERING                              \
83         }
84
85 #ifndef HOSTS_C
86
87 #define NCR5380_implementation_fields \
88     int port, ctrl
89
90 #define NCR5380_local_declare() \
91         struct Scsi_Host *_instance
92
93 #define NCR5380_setup(instance) \
94         _instance = instance
95
96 #define NCR5380_read(reg) macscsi_read(_instance, reg)
97 #define NCR5380_write(reg, value) macscsi_write(_instance, reg, value)
98
99 #define NCR5380_pread   macscsi_pread
100 #define NCR5380_pwrite  macscsi_pwrite
101         
102 #define NCR5380_intr macscsi_intr
103 #define NCR5380_queue_command macscsi_queue_command
104 #define NCR5380_abort macscsi_abort
105 #define NCR5380_reset macscsi_reset
106 #define NCR5380_proc_info macscsi_proc_info
107
108 #define BOARD_NORMAL    0
109 #define BOARD_NCR53C400 1
110
111 #endif /* ndef HOSTS_C */
112 #endif /* ndef ASM */
113 #endif /* MAC_NCR5380_H */
114