clean
[linux-2.4.21-pre4.git] / drivers / acorn / scsi / arxescsi.h
1 /*
2  * ARXE SCSI card driver
3  *
4  * Copyright (C) 1997-2000 Russell King
5  *
6  * Changes to support ARXE 16-bit SCSI card by Stefan Hanske
7  */
8 #ifndef ARXE_SCSI_H
9 #define ARXE_SCSI_H
10
11 #define MANU_ARXE       0x0041
12 #define PROD_ARXE_SCSI  0x00be
13
14 extern int arxescsi_detect (Scsi_Host_Template *);
15 extern int arxescsi_release (struct Scsi_Host *);
16 extern const char *arxescsi_info (struct Scsi_Host *);
17 extern int arxescsi_proc_info (char *buffer, char **start, off_t offset,
18                                 int length, int hostno, int inout);
19
20 #ifndef NULL
21 #define NULL ((void *)0)
22 #endif
23
24 #ifndef CAN_QUEUE
25 /*
26  * Default queue size
27  */
28 #define CAN_QUEUE       1
29 #endif
30
31 #ifndef CMD_PER_LUN
32 #define CMD_PER_LUN     1
33 #endif
34
35 #ifndef SCSI_ID
36 /*
37  * Default SCSI host ID
38  */
39 #define SCSI_ID         7
40 #endif
41
42 #include <scsi/scsicam.h>
43
44 #include "fas216.h"
45
46 #define ARXEScsi {                                      \
47 proc_info:                      arxescsi_proc_info,     \
48 name:                           "ARXE SCSI card",       \
49 detect:                         arxescsi_detect,        \
50 release:                        arxescsi_release,       \
51 info:                           arxescsi_info,          \
52 bios_param:                     scsicam_bios_param,     \
53 can_queue:                      CAN_QUEUE,              \
54 this_id:                        SCSI_ID,                \
55 sg_tablesize:                   SG_ALL,                 \
56 cmd_per_lun:                    CMD_PER_LUN,            \
57 use_clustering:                 DISABLE_CLUSTERING,     \
58 command:                        fas216_command,         \
59 queuecommand:                   fas216_queue_command,   \
60 eh_host_reset_handler:          fas216_eh_host_reset,   \
61 eh_bus_reset_handler:           fas216_eh_bus_reset,    \
62 eh_device_reset_handler:        fas216_eh_device_reset, \
63 eh_abort_handler:               fas216_eh_abort,        \
64 use_new_eh_code:                1                       \
65         }
66
67 #ifndef HOSTS_C
68
69 typedef struct {
70     FAS216_Info info;
71
72     /* other info... */
73     unsigned int        cstatus;        /* card status register */
74     unsigned int        dmaarea;        /* Pseudo DMA area      */
75 } ARXEScsi_Info;
76
77 #define CSTATUS_IRQ     (1 << 0)
78 #define CSTATUS_DRQ     (1 << 0)
79
80 #endif /* HOSTS_C */
81
82 #endif /* ARXE_SCSI_H */