atp870u.h 1.5 KB

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