#ifndef _ATP870U_H | |
#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 | |
#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 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; /* Kernel address of PRD table */ | |
dma_addr_t prd_bus; /* Bus address of PRD */ | |
dma_addr_t prdaddr; /* Dynamically updated in driver */ | |
struct scsi_cmnd *curr_req; | |
} id[2][16]; | |
struct Scsi_Host *host; | |
struct pci_dev *pdev; | |
unsigned int unit; | |
}; | |
#endif |