~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/drivers/scsi/g_NCR5380.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Generic 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  * NCR53C400 extensions (c) 1994,1995,1996, Kevin Lentin
 11  *    K.Lentin@cs.monash.edu.au
 12  *
 13  * ALPHA RELEASE 1. 
 14  *
 15  * For more information, please consult 
 16  *
 17  * NCR 5380 Family
 18  * SCSI Protocol Controller
 19  * Databook
 20  *
 21  * NCR Microelectronics
 22  * 1635 Aeroplaza Drive
 23  * Colorado Springs, CO 80916
 24  * 1+ (719) 578-3400
 25  * 1+ (800) 334-5454
 26  */
 27 
 28 /*
 29  * $Log: generic_NCR5380.h,v $
 30  */
 31 
 32 #ifndef GENERIC_NCR5380_H
 33 #define GENERIC_NCR5380_H
 34 
 35 #include <linux/config.h>
 36 
 37 #define GENERIC_NCR5380_PUBLIC_RELEASE 1
 38 
 39 #ifdef NCR53C400
 40 #define BIOSPARAM
 41 #define NCR5380_BIOSPARAM generic_NCR5380_biosparam
 42 #else
 43 #define NCR5380_BIOSPARAM NULL
 44 #endif
 45 
 46 #ifndef ASM
 47 int generic_NCR5380_abort(Scsi_Cmnd *);
 48 int generic_NCR5380_detect(Scsi_Host_Template *);
 49 int generic_NCR5380_release_resources(struct Scsi_Host *);
 50 int generic_NCR5380_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
 51 int generic_NCR5380_reset(Scsi_Cmnd *, unsigned int);
 52 int notyet_generic_proc_info (char *buffer ,char **start, off_t offset,
 53                      int length, int hostno, int inout);
 54 const char* generic_NCR5380_info(struct Scsi_Host *);
 55 #ifdef BIOSPARAM
 56 int generic_NCR5380_biosparam(Disk *, kdev_t, int *);
 57 #endif
 58 
 59 int generic_NCR5380_proc_info(char* buffer, char** start, off_t offset, int length, int hostno, int inout);
 60 
 61 #ifndef NULL
 62 #define NULL 0
 63 #endif
 64 
 65 #ifndef CMD_PER_LUN
 66 #define CMD_PER_LUN 2
 67 #endif
 68 
 69 #ifndef CAN_QUEUE
 70 #define CAN_QUEUE 16
 71 #endif
 72 
 73 #define GENERIC_NCR5380 {                                               \
 74         proc_info:      generic_NCR5380_proc_info,                      \
 75         name:           "Generic NCR5380/NCR53C400 Scsi Driver",        \
 76         detect:         generic_NCR5380_detect,                         \
 77         release:        generic_NCR5380_release_resources,              \
 78         info:           (void *)generic_NCR5380_info,                   \
 79         queuecommand:   generic_NCR5380_queue_command,                  \
 80         abort:          generic_NCR5380_abort,                          \
 81         reset:          generic_NCR5380_reset,                          \
 82         bios_param:     NCR5380_BIOSPARAM,                              \
 83         can_queue:      CAN_QUEUE,                                      \
 84         this_id:        7,                                              \
 85         sg_tablesize:   SG_ALL,                                         \
 86         cmd_per_lun:    CMD_PER_LUN ,                                   \
 87         use_clustering: DISABLE_CLUSTERING}
 88 
 89 #ifndef HOSTS_C
 90 
 91 #define __STRVAL(x) #x
 92 #define STRVAL(x) __STRVAL(x)
 93 
 94 #ifdef CONFIG_SCSI_G_NCR5380_PORT
 95 
 96 #define NCR5380_map_config port
 97 
 98 #define NCR5380_map_type int
 99 
100 #define NCR5380_map_name port
101 
102 #define NCR5380_instance_name io_port
103 
104 #define NCR53C400_register_offset 0
105 
106 #define NCR53C400_address_adjust 8
107 
108 #ifdef NCR53C400
109 #define NCR5380_region_size 16
110 #else
111 #define NCR5380_region_size 8
112 #endif
113 
114 #define NCR5380_read(reg) (inb(NCR5380_map_name + (reg)))
115 #define NCR5380_write(reg, value) (outb((value), (NCR5380_map_name + (reg))))
116 
117 #else 
118 /* therefore CONFIG_SCSI_G_NCR5380_MEM */
119 
120 #define NCR5380_map_config memory
121 
122 #define NCR5380_map_type unsigned long
123 
124 #define NCR5380_map_name base
125 
126 #define NCR5380_instance_name base
127 
128 #define NCR53C400_register_offset 0x108
129 
130 #define NCR53C400_address_adjust 0
131 
132 #define NCR53C400_mem_base 0x3880
133 
134 #define NCR53C400_host_buffer 0x3900
135 
136 #define NCR5380_region_size 0x3a00
137 
138 
139 #define NCR5380_read(reg) isa_readb(NCR5380_map_name + NCR53C400_mem_base + (reg))
140 #define NCR5380_write(reg, value) isa_writeb(NCR5380_map_name + NCR53C400_mem_base + (reg), value)
141 
142 #endif
143 
144 #define NCR5380_implementation_fields \
145     NCR5380_map_type NCR5380_map_name
146 
147 #define NCR5380_local_declare() \
148     register NCR5380_implementation_fields
149 
150 #define NCR5380_setup(instance) \
151     NCR5380_map_name = (NCR5380_map_type)((instance)->NCR5380_instance_name)
152 
153 #define NCR5380_intr generic_NCR5380_intr
154 #define do_NCR5380_intr do_generic_NCR5380_intr
155 #define NCR5380_queue_command generic_NCR5380_queue_command
156 #define NCR5380_abort generic_NCR5380_abort
157 #define NCR5380_reset generic_NCR5380_reset
158 #define NCR5380_pread generic_NCR5380_pread
159 #define NCR5380_pwrite generic_NCR5380_pwrite
160 #define NCR5380_proc_info notyet_generic_proc_info
161 
162 #define BOARD_NCR5380   0
163 #define BOARD_NCR53C400 1
164 #define BOARD_NCR53C400A 2
165 #define BOARD_DTC3181E  3
166 
167 #endif /* else def HOSTS_C */
168 #endif /* ndef ASM */
169 #endif /* GENERIC_NCR5380_H */
170 
171 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.