Annotation of Gnu-Mach/i386/i386at/gpl/linux/scsi/in2000.h, revision 1.1.1.1

1.1       root        1: #ifndef _IN2000_H
                      2: 
                      3: /* $Id: in2000.h,v 1.1.1.1 1997/02/25 21:27:50 thomas Exp $
                      4:  *
                      5:  * Header file for the Always IN 2000 driver for Linux
                      6:  *
                      7:  */
                      8: 
                      9: #include <linux/types.h>
                     10: #include <linux/ioport.h>
                     11: 
                     12: /* The IN-2000 is based on a WD33C93 */
                     13: 
                     14: #define        INSTAT  (base + 0x0)    /* R: Auxiliary Status; W: register select */
                     15: #define        INDATA  (base + 0x1)    /* R/W: Data port */
                     16: #define        INFIFO  (base + 0x2)    /* R/W FIFO, Word access only */
                     17: #define        INREST  (base + 0x3)    /* W: Reset everything */
                     18: #define        INFCNT  (base + 0x4)    /* R: FIFO byte count */
                     19: #define        INFRST  (base + 0x5)    /* W: Reset Fifo count and to write */
                     20: #define        INFWRT  (base + 0x7)    /* W: Set FIFO to read */
                     21: #define        INFLED  (base + 0x8)    /* W: Set LED; R: Dip Switch settings */
                     22: #define        INNLED  (base + 0x9)    /* W: reset LED */
                     23: #define        INVERS  (base + 0xa)    /* R: Read hw version, end-reset */
                     24: #define        ININTR  (base + 0xc)    /* W: Interrupt Mask Port */
                     25: #define G2CNTRL_HRDY   0x20            /* Sets HOST ready */
                     26: 
                     27: /* WD33C93 defines */
                     28: #define        OWNID   0
                     29: #undef CONTROL
                     30: #define        CONTROL 1
                     31: #define        TIMEOUT 2
                     32: #define        TOTSECT 3
                     33: #define        TOTHEAD 4
                     34: #define        TOTCYLH 5
                     35: #define        TOTCYLL 6
                     36: #define        LADRSHH 7
                     37: #define        LADRSHL 8
                     38: #define        LADRSLH 9
                     39: #define        LADRSLL 10
                     40: #define        SECTNUM 11
                     41: #define        HEADNUM 12
                     42: #define        CYLNUMH 13
                     43: #define        CYLNUML 14
                     44: #define        TARGETU 15
                     45: #define        CMDPHAS 16
                     46: #define        SYNCTXR 17
                     47: #define        TXCNTH  18
                     48: #define        TXCNTM  19
                     49: #define TXCNTL 20
                     50: #define DESTID 21
                     51: #define        SRCID   22
                     52: #define        SCSIST  23
                     53: #define        COMMAND 24
                     54: #define        WDDATA  25
                     55: #define        AUXSTAT 31
                     56: 
                     57: /* OWNID Register Bits */
                     58: #define        OWN_EAF 0x08
                     59: #define        OWN_EHP 0x10
                     60: #define        OWN_FS0 0x40
                     61: #define        OWN_FS1 0x80
                     62: /* AUX Register Bits */
                     63: #define        AUX_DBR 0
                     64: #define        AUX_PE  1
                     65: #define        AUX_CIP 0x10
                     66: #define        AUX_BSY 0x20
                     67: #define        AUX_LCI 0x40
                     68: #define        AUX_INT 0x80
                     69: 
                     70: /* Select timeout const, 1 count = 8ms */
                     71: #define IN2000_TMOUT 0x1f
                     72: 
                     73: /* These belong in scsi.h also */
                     74: #undef any2scsi
                     75: #define any2scsi(up, p)                                \
                     76: (up)[0] = (((unsigned long)(p)) >> 16);                \
                     77: (up)[1] = (((unsigned long)(p)) >> 8);         \
                     78: (up)[2] = ((unsigned long)(p));
                     79: 
                     80: #undef scsi2int
                     81: #define scsi2int(up) ( ((((long)*(up))&0x1f) << 16) + (((long)(up)[1]) << 8) + ((long)(up)[2]) )
                     82: 
                     83: #undef xany2scsi
                     84: #define xany2scsi(up, p)       \
                     85: (up)[0] = ((long)(p)) >> 24;   \
                     86: (up)[1] = ((long)(p)) >> 16;   \
                     87: (up)[2] = ((long)(p)) >> 8;    \
                     88: (up)[3] = ((long)(p));
                     89: 
                     90: #define xscsi2int(up) ( (((long)(up)[0]) << 24) + (((long)(up)[1]) << 16) \
                     91:                      + (((long)(up)[2]) <<  8) +  ((long)(up)[3]) )
                     92: 
                     93: #define MAX_CDB 12
                     94: #define MAX_SENSE 14
                     95: #define MAX_STATUS 32
                     96: 
                     97: int in2000_detect(Scsi_Host_Template *);
                     98: int in2000_command(Scsi_Cmnd *);
                     99: int in2000_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
                    100: int in2000_abort(Scsi_Cmnd *);
                    101: int in2000_reset(Scsi_Cmnd *);
                    102: int in2000_biosparam(Disk *, kdev_t, int*);
                    103: 
                    104: #ifndef NULL
                    105:        #define NULL 0
                    106: #endif
                    107: 
                    108: 
                    109: /* next may be "SG_NONE" or "SG_ALL" or nr. of (1k) blocks per R/W Cmd. */
                    110: #define IN2000_SG SG_ALL
                    111: #define IN2000 {NULL, NULL,  \
                    112:                 NULL, NULL, \
                    113:                "Always IN2000", in2000_detect, NULL,   \
                    114:                NULL, in2000_command,           \
                    115:                in2000_queuecommand,            \
                    116:                in2000_abort,                   \
                    117:                in2000_reset,                   \
                    118:                NULL,                           \
                    119:                in2000_biosparam,               \
                    120:                1, 7, IN2000_SG, 1, 0, 0}
                    121: 
                    122: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.