1 #ifndef GVP11_H
2
3
4
5
6
7
8
9
10
11
12 #include <linux/types.h>
13
14 int gvp11_detect(Scsi_Host_Template *);
15 const char *wd33c93_info(void);
16 int wd33c93_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
17 int wd33c93_abort(Scsi_Cmnd *);
18 int wd33c93_reset(Scsi_Cmnd *, unsigned int);
19
20 #ifndef NULL
21 #define NULL 0
22 #endif
23
24 #ifndef CMD_PER_LUN
25 #define CMD_PER_LUN 2
26 #endif
27
28 #ifndef CAN_QUEUE
29 #define CAN_QUEUE 16
30 #endif
31
32 #ifdef HOSTS_C
33
34 extern struct proc_dir_entry proc_scsi_gvp11;
35
36 #define GVP11_SCSI { NULL, \
37 NULL, \
38 &proc_scsi_gvp11, \
39 NULL, \
40 "GVP Series II SCSI", \
41 gvp11_detect, \
42 NULL, \
43 NULL, \
44 NULL, \
45 wd33c93_queuecommand, \
46 wd33c93_abort, \
47 wd33c93_reset, \
48 NULL, \
49 NULL, \
50 CAN_QUEUE, \
51 7, \
52 SG_ALL, \
53 CMD_PER_LUN, \
54 0, \
55 0, \
56 DISABLE_CLUSTERING }
57 #else
58
59
60
61
62
63 #define GVP11_XFER_MASK (0xff000001)
64
65 typedef struct {
66 unsigned char pad1[64];
67 volatile unsigned short CNTR;
68 unsigned char pad2[31];
69 volatile unsigned char SASR;
70 unsigned char pad3;
71 volatile unsigned char SCMD;
72 unsigned char pad4[4];
73 volatile unsigned short BANK;
74 unsigned char pad5[6];
75 volatile unsigned long ACR;
76 volatile unsigned short secret1;
77 volatile unsigned short ST_DMA;
78 volatile unsigned short SP_DMA;
79 volatile unsigned short secret2;
80 volatile unsigned short secret3;
81 } gvp11_scsiregs;
82
83
84 #define GVP11_DMAC_BUSY (1<<0)
85 #define GVP11_DMAC_INT_PENDING (1<<1)
86 #define GVP11_DMAC_INT_ENABLE (1<<3)
87 #define GVP11_DMAC_DIR_WRITE (1<<4)
88
89 #endif
90
91 #endif