ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / drivers / scsi / atp870u.h
1 #ifndef _ATP870U_H
2 #define _ATP870U_H
3
4 /* $Id: atp870u.h,v 1.0 1997/05/07 15:09:00 root Exp root $
5
6  * Header file for the ACARD 870U/W driver for Linux
7  *
8  * $Log: atp870u.h,v $
9  * Revision 1.0  1997/05/07  15:09:00  root
10  * Initial revision
11  *
12  */
13
14 #include <linux/types.h>
15
16 /* I/O Port */
17
18 #define MAX_CDB         12
19 #define MAX_SENSE       14
20 #define qcnt            32
21 #define ATP870U_SCATTER 128
22 #define ATP870U_CMDLUN  1
23
24 struct atp_unit {
25         unsigned long ioport;
26         unsigned long pciport;
27         unsigned char last_cmd;
28         unsigned char in_snd;
29         unsigned char in_int;
30         unsigned char quhdu;
31         unsigned char quendu;
32         unsigned char scam_on;
33         unsigned char global_map;
34         unsigned char chip_veru;
35         unsigned char host_idu;
36         volatile int working;
37         unsigned short wide_idu;
38         unsigned short active_idu;
39         unsigned short ultra_map;
40         unsigned short async;
41         unsigned short deviceid;
42         unsigned char ata_cdbu[16];
43         unsigned char sp[16];
44         Scsi_Cmnd *querequ[qcnt];
45         struct atp_id {
46                 unsigned char dirctu;
47                 unsigned char devspu;
48                 unsigned char devtypeu;
49                 unsigned long prdaddru;
50                 unsigned long tran_lenu;
51                 unsigned long last_lenu;
52                 unsigned char *prd_posu;
53                 unsigned char *prd_tableu;
54                 dma_addr_t prd_phys;
55                 Scsi_Cmnd *curr_req;
56         } id[16];
57         struct Scsi_Host *host;
58         struct pci_dev *pdev;
59         unsigned int unit;
60 };
61
62 static int atp870u_queuecommand(Scsi_Cmnd *, void (*done) (Scsi_Cmnd *));
63 static int atp870u_abort(Scsi_Cmnd *);
64 static int atp870u_biosparam(struct scsi_device *, struct block_device *,
65                 sector_t, int *);
66 static void send_s870(struct Scsi_Host *);
67
68 extern const char *atp870u_info(struct Scsi_Host *);
69 static Scsi_Host_Template atp870u_template;
70
71 #endif