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 */ 60 struct scsi_cmnd *curr_req; 61 } id[2][16]; 62 struct Scsi_Host *host; 63 struct pci_dev *pdev; 64 unsigned int unit; 65 }; 66 67 #endif 68