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