File: /usr/src/linux/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 1
33
34
35 #ifndef ASM
36 int macscsi_abort (Scsi_Cmnd *);
37 int macscsi_detect (Scsi_Host_Template *);
38 int macscsi_release (struct Scsi_Host *);
39 const char *macscsi_info (struct Scsi_Host *);
40 int macscsi_reset(Scsi_Cmnd *, unsigned int);
41 int macscsi_queue_command (Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
42 int macscsi_proc_info (char *buffer, char **start, off_t offset,
43 int length, int hostno, int inout);
44
45 #ifndef NULL
46 #define NULL 0
47 #endif
48
49 #ifndef CMD_PER_LUN
50 #define CMD_PER_LUN 2
51 #endif
52
53 #ifndef CAN_QUEUE
54 #define CAN_QUEUE 16
55 #endif
56
57 #ifndef SG_TABLESIZE
58 #define SG_TABLESIZE SG_NONE
59 #endif
60
61 #ifndef USE_TAGGED_QUEUING
62 #define USE_TAGGED_QUEUING 0
63 #endif
64
65 #include <scsi/scsicam.h>
66
67 #define MAC_NCR5380 { \
68 name: "Macintosh NCR5380 SCSI", \
69 detect: macscsi_detect, \
70 release: macscsi_release, /* Release */ \
71 info: macscsi_info, \
72 queuecommand: macscsi_queue_command, \
73 abort: macscsi_abort, \
74 reset: macscsi_reset, \
75 bios_param: scsicam_bios_param, /* biosparam */ \
76 can_queue: CAN_QUEUE, /* can queue */ \
77 this_id: 7, /* id */ \
78 sg_tablesize: SG_ALL, /* sg_tablesize */ \
79 cmd_per_lun: CMD_PER_LUN, /* cmd per lun */ \
80 unchecked_isa_dma: 0, /* unchecked_isa_dma */ \
81 use_clustering: DISABLE_CLUSTERING \
82 }
83
84 #ifndef HOSTS_C
85
86 #define NCR5380_implementation_fields \
87 int port, ctrl
88
89 #define NCR5380_local_declare() \
90 struct Scsi_Host *_instance
91
92 #define NCR5380_setup(instance) \
93 _instance = instance
94
95 #define NCR5380_read(reg) macscsi_read(_instance, reg)
96 #define NCR5380_write(reg, value) macscsi_write(_instance, reg, value)
97
98 #define NCR5380_intr macscsi_intr
99 #define NCR5380_queue_command macscsi_queue_command
100 #define NCR5380_abort macscsi_abort
101 #define NCR5380_reset macscsi_reset
102 #define NCR5380_proc_info macscsi_proc_info
103
104 #define BOARD_NORMAL 0
105 #define BOARD_NCR53C400 1
106
107 #endif /* ndef HOSTS_C */
108 #endif /* ndef ASM */
109 #endif /* MAC_NCR5380_H */
110
111