~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/drivers/scsi/a3000.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.