a2091.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef A2091_H
  2. #define A2091_H
  3. /* $Id: a2091.h,v 1.4 1997/01/19 23:07:09 davem Exp $
  4.  *
  5.  * Header file for the Commodore A2091 Zorro II SCSI controller for Linux
  6.  *
  7.  * Written and (C) 1993, Hamish Macdonald, see a2091.c for more info
  8.  *
  9.  */
  10. #include <linux/types.h>
  11. int a2091_detect(Scsi_Host_Template *);
  12. int a2091_release(struct Scsi_Host *);
  13. const char *wd33c93_info(void);
  14. int wd33c93_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
  15. int wd33c93_abort(Scsi_Cmnd *);
  16. int wd33c93_reset(Scsi_Cmnd *, unsigned int);
  17. #ifndef NULL
  18. #define NULL 0
  19. #endif
  20. #ifndef CMD_PER_LUN
  21. #define CMD_PER_LUN 2
  22. #endif
  23. #ifndef CAN_QUEUE
  24. #define CAN_QUEUE 16
  25. #endif
  26. #define A2091_SCSI {  proc_name:    "A2901", 
  27.       name:                "Commodore A2091/A590 SCSI", 
  28.       detect:              a2091_detect,    
  29.       release:             a2091_release,   
  30.       queuecommand:        wd33c93_queuecommand, 
  31.       abort:               wd33c93_abort,   
  32.       reset:               wd33c93_reset,   
  33.       can_queue:           CAN_QUEUE,       
  34.       this_id:             7,               
  35.       sg_tablesize:        SG_ALL,          
  36.       cmd_per_lun:    CMD_PER_LUN,     
  37.       use_clustering:      DISABLE_CLUSTERING }
  38. /*
  39.  * if the transfer address ANDed with this results in a non-zero
  40.  * result, then we can't use DMA.
  41.  */
  42. #define A2091_XFER_MASK  (0xff000001)
  43. typedef struct {
  44.              unsigned char      pad1[64];
  45.     volatile unsigned short     ISTR;
  46.     volatile unsigned short     CNTR;
  47.              unsigned char      pad2[60];
  48.     volatile unsigned int       WTC;
  49.     volatile unsigned long      ACR;
  50.              unsigned char      pad3[6];
  51.     volatile unsigned short     DAWR;
  52.              unsigned char      pad4;
  53.     volatile unsigned char      SASR;
  54.              unsigned char      pad5;
  55.     volatile unsigned char      SCMD;
  56.              unsigned char      pad6[76];
  57.     volatile unsigned short     ST_DMA;
  58.     volatile unsigned short     SP_DMA;
  59.     volatile unsigned short     CINT;
  60.              unsigned char      pad7[2];
  61.     volatile unsigned short     FLUSH;
  62. } a2091_scsiregs;
  63. #define DAWR_A2091 (3)
  64. /* CNTR bits. */
  65. #define CNTR_TCEN (1<<7)
  66. #define CNTR_PREST (1<<6)
  67. #define CNTR_PDMD (1<<5)
  68. #define CNTR_INTEN (1<<4)
  69. #define CNTR_DDIR (1<<3)
  70. /* ISTR bits. */
  71. #define ISTR_INTX (1<<8)
  72. #define ISTR_INT_F (1<<7)
  73. #define ISTR_INTS (1<<6)
  74. #define ISTR_E_INT (1<<5)
  75. #define ISTR_INT_P (1<<4)
  76. #define ISTR_UE_INT (1<<3)
  77. #define ISTR_OE_INT (1<<2)
  78. #define ISTR_FF_FLG (1<<1)
  79. #define ISTR_FE_FLG (1<<0)
  80. #endif /* A2091_H */