vserver 2.0 rc7
[linux-2.6.git] / drivers / scsi / atp870u.h
index ce42a81..89f43af 100644 (file)
@@ -2,50 +2,64 @@
 #define _ATP870U_H
 
 #include <linux/types.h>
+#include <linux/kdev_t.h>
 
 /* I/O Port */
 
-#define MAX_CDB                12
-#define MAX_SENSE      14
-#define qcnt           32
-#define ATP870U_SCATTER 128
-#define ATP870U_CMDLUN         1
-
-struct atp_unit {
-       unsigned long ioport;
-       unsigned long pciport;
-       unsigned char last_cmd;
-       unsigned char in_snd;
-       unsigned char in_int;
-       unsigned char quhdu;
-       unsigned char quendu;
+#define MAX_CDB        12
+#define MAX_SENSE      14
+#define qcnt           32
+#define ATP870U_SCATTER        128
+#define ATP870U_CMDLUN         1
+
+#define MAX_ADAPTER    8
+#define MAX_SCSI_ID    16
+#define ATP870U_MAX_SECTORS 128
+
+#define ATP885_DEVID 0x808A
+#define ATP880_DEVID1 0x8080
+#define ATP880_DEVID2 0x8081
+
+//#define ED_DBGP
+
+struct atp_unit
+{
+       unsigned long baseport;
+       unsigned long ioport[2];
+       unsigned long pciport[2];
+       unsigned long irq;
+       unsigned char last_cmd[2];
+       unsigned char in_snd[2];
+       unsigned char in_int[2];
+       unsigned char quhd[2];
+       unsigned char quend[2];
+       unsigned char global_map[2];
+       unsigned char chip_ver;
        unsigned char scam_on;
-       unsigned char global_map;
-       unsigned char chip_veru;
-       unsigned char host_idu;
-       volatile int working;
-       unsigned short wide_idu;
-       unsigned short active_idu;
-       unsigned short ultra_map;
-       unsigned short async;
-       unsigned short deviceid;
-       unsigned char ata_cdbu[16];
-       unsigned char sp[16];
-       struct scsi_cmnd *querequ[qcnt];
-       struct atp_id {
-               unsigned char dirctu;
-               unsigned char devspu;
-               unsigned char devtypeu;
-               unsigned long prdaddru;
-               unsigned long tran_lenu;
-               unsigned long last_lenu;
-               unsigned char *prd_posu;
-               unsigned char *prd_tableu;
-               dma_addr_t prd_phys;
+       unsigned char host_id[2];
+       unsigned int working[2];
+       unsigned short wide_id[2];
+       unsigned short active_id[2];
+       unsigned short ultra_map[2];
+       unsigned short async[2];
+       unsigned short dev_id;
+       unsigned char sp[2][16];
+       unsigned char r1f[2][16];               
+       struct scsi_cmnd *quereq[2][qcnt];
+       struct atp_id
+       {
+               unsigned char dirct;
+               unsigned char devsp;
+               unsigned char devtype;
+               unsigned long tran_len;
+               unsigned long last_len;
+               unsigned char *prd_pos;
+               unsigned char *prd_table;
+               dma_addr_t prdaddr;
                struct scsi_cmnd *curr_req;
-       } id[16];
-       struct Scsi_Host *host;
-       struct pci_dev *pdev;
+       } id[2][16];
+       struct Scsi_Host *host;
+       struct pci_dev *pdev;
        unsigned int unit;
 };