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 14 #define MAX_ADAPTER 8 15 #define MAX_SCSI_ID 16 16 #define ATP870U_MAX_SECTORS 128 17 18 #define ATP885_DEVID 0x808A 19 #define ATP880_DEVID1 0x8080 20 #define ATP880_DEVID2 0x8081 21 22 //#define ED_DBGP 23 24 struct atp_unit 25 { 26 unsigned long baseport; 27 unsigned long ioport[2]; 28 unsigned long pciport[2]; 29 unsigned char last_cmd[2]; 30 unsigned char in_snd[2]; 31 unsigned char in_int[2]; 32 unsigned char quhd[2]; 33 unsigned char quend[2]; 34 unsigned char global_map[2]; 35 unsigned char host_id[2]; 36 unsigned int working[2]; 37 unsigned short wide_id[2]; 38 unsigned short active_id[2]; 39 unsigned short ultra_map[2]; 40 unsigned short async[2]; 41 unsigned char sp[2][16]; 42 unsigned char r1f[2][16]; 43 struct scsi_cmnd *quereq[2][qcnt]; 44 struct atp_id 45 { 46 unsigned char dirct; 47 unsigned char devsp; 48 unsigned char devtype; 49 unsigned long tran_len; 50 unsigned long last_len; 51 unsigned char *prd_pos; 52 unsigned char *prd_table; /* Kernel address of PRD table */ 53 dma_addr_t prd_bus; /* Bus address of PRD */ 54 dma_addr_t prdaddr; /* Dynamically updated in driver */ 55 struct scsi_cmnd *curr_req; 56 } id[2][16]; 57 struct Scsi_Host *host; 58 struct pci_dev *pdev; 59 unsigned int unit; 60 }; 61 62 #endif 63