Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
atp870u.h
Go to the documentation of this file.
1 #ifndef _ATP870U_H
2 #define _ATP870U_H
3 
4 #include <linux/types.h>
5 #include <linux/kdev_t.h>
6 
7 /* I/O Port */
8 
9 #define MAX_CDB 12
10 #define MAX_SENSE 14
11 #define qcnt 32
12 #define ATP870U_SCATTER 128
13 #define ATP870U_CMDLUN 1
14 
15 #define MAX_ADAPTER 8
16 #define MAX_SCSI_ID 16
17 #define ATP870U_MAX_SECTORS 128
18 
19 #define ATP885_DEVID 0x808A
20 #define ATP880_DEVID1 0x8080
21 #define ATP880_DEVID2 0x8081
22 
23 //#define ED_DBGP
24 
25 struct atp_unit
26 {
27  unsigned long baseport;
28  unsigned long ioport[2];
29  unsigned long pciport[2];
30  unsigned long irq;
31  unsigned char last_cmd[2];
32  unsigned char in_snd[2];
33  unsigned char in_int[2];
34  unsigned char quhd[2];
35  unsigned char quend[2];
36  unsigned char global_map[2];
37  unsigned char chip_ver;
38  unsigned char scam_on;
39  unsigned char host_id[2];
40  unsigned int working[2];
41  unsigned short wide_id[2];
42  unsigned short active_id[2];
43  unsigned short ultra_map[2];
44  unsigned short async[2];
45  unsigned short dev_id;
46  unsigned char sp[2][16];
47  unsigned char r1f[2][16];
48  struct scsi_cmnd *quereq[2][qcnt];
49  struct atp_id
50  {
51  unsigned char dirct;
52  unsigned char devsp;
53  unsigned char devtype;
54  unsigned long tran_len;
55  unsigned long last_len;
56  unsigned char *prd_pos;
57  unsigned char *prd_table; /* Kernel address of PRD table */
58  dma_addr_t prd_bus; /* Bus address of PRD */
59  dma_addr_t prdaddr; /* Dynamically updated in driver */
61  } id[2][16];
62  struct Scsi_Host *host;
63  struct pci_dev *pdev;
64  unsigned int unit;
65 };
66 
67 #endif