Annotation of Gnu-Mach/linux/src/drivers/scsi/seagate.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     seagate.h Copyright (C) 1992 Drew Eckhardt 
                      3:  *     low level scsi driver header for ST01/ST02 by
                      4:  *             Drew Eckhardt 
                      5:  *
                      6:  *     <[email protected]>
                      7:  */
                      8: 
                      9: #ifndef _SEAGATE_H
                     10:        #define SEAGATE_H
                     11: /*
                     12:        $Header
                     13: */
                     14: #ifndef ASM
                     15: int seagate_st0x_detect(Scsi_Host_Template *);
                     16: int seagate_st0x_command(Scsi_Cmnd *);
                     17: int seagate_st0x_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
                     18: 
                     19: int seagate_st0x_abort(Scsi_Cmnd *);
                     20: const char *seagate_st0x_info(struct Scsi_Host *);
                     21: int seagate_st0x_reset(Scsi_Cmnd *, unsigned int); 
                     22: int seagate_st0x_proc_info(char *,char **,off_t,int,int,int);
                     23: 
                     24: #ifndef NULL
                     25:        #define NULL 0
                     26: #endif
                     27: 
                     28: #include <linux/kdev_t.h>
                     29: int seagate_st0x_biosparam(Disk *, kdev_t, int*);
                     30: 
                     31: #define SEAGATE_ST0X  {  NULL, NULL, NULL, seagate_st0x_proc_info, \
                     32:                         NULL, seagate_st0x_detect,     \
                     33:                         NULL,                                          \
                     34:                         seagate_st0x_info, seagate_st0x_command,       \
                     35:                         seagate_st0x_queue_command, seagate_st0x_abort, \
                     36:                         seagate_st0x_reset, NULL, seagate_st0x_biosparam, \
                     37:                         1, 7, SG_ALL, 1, 0, 0, DISABLE_CLUSTERING}
                     38: #endif
                     39: 
                     40: 
                     41: /*
                     42:        defining PARITY causes parity data to be checked
                     43: */
                     44: 
                     45: #define PARITY
                     46: 
                     47: 
                     48: /*
                     49:        Thanks to Brian Antoine for the example code in his Messy-Loss ST-01
                     50:                driver, and Mitsugu Suzuki for information on the ST-01
                     51:                SCSI host.
                     52: */
                     53: 
                     54: /*
                     55:        CONTROL defines
                     56: */
                     57: 
                     58: #define CMD_RST                0x01
                     59: #define CMD_SEL                0x02
                     60: #define CMD_BSY                0x04
                     61: #define CMD_ATTN               0x08
                     62: #define CMD_START_ARB          0x10
                     63: #define CMD_EN_PARITY          0x20
                     64: #define CMD_INTR               0x40
                     65: #define CMD_DRVR_ENABLE                0x80
                     66: 
                     67: /*
                     68:        STATUS
                     69: */
                     70: 
                     71: #define STAT_BSY               0x01
                     72: #define STAT_MSG               0x02
                     73: #define STAT_IO                        0x04
                     74: #define STAT_CD                        0x08
                     75: #define STAT_REQ               0x10
                     76: #define STAT_SEL               0x20
                     77: #define STAT_PARITY            0x40
                     78: #define STAT_ARB_CMPL          0x80
                     79: 
                     80: /* 
                     81:        REQUESTS
                     82: */
                     83: 
                     84: #define REQ_MASK (STAT_CD |  STAT_IO | STAT_MSG)
                     85: #define REQ_DATAOUT 0
                     86: #define REQ_DATAIN STAT_IO
                     87: #define REQ_CMDOUT STAT_CD
                     88: #define REQ_STATIN (STAT_CD | STAT_IO)
                     89: #define REQ_MSGOUT (STAT_MSG | STAT_CD)
                     90: #define REQ_MSGIN (STAT_MSG | STAT_CD | STAT_IO)
                     91: 
                     92: extern volatile int seagate_st0x_timeout;
                     93: 
                     94: #ifdef PARITY
                     95:        #define BASE_CMD CMD_EN_PARITY
                     96: #else
                     97:        #define BASE_CMD  0
                     98: #endif
                     99: 
                    100: /*
                    101:        Debugging code
                    102: */
                    103: 
                    104: #define PHASE_BUS_FREE 1
                    105: #define PHASE_ARBITRATION 2
                    106: #define PHASE_SELECTION 4
                    107: #define PHASE_DATAIN 8 
                    108: #define PHASE_DATAOUT 0x10
                    109: #define PHASE_CMDOUT 0x20
                    110: #define PHASE_MSGIN 0x40
                    111: #define PHASE_MSGOUT 0x80
                    112: #define PHASE_STATUSIN 0x100
                    113: #define PHASE_ETC (PHASE_DATAIN | PHASE_DATA_OUT | PHASE_CMDOUT | PHASE_MSGIN | PHASE_MSGOUT | PHASE_STATUSIN)
                    114: #define PRINT_COMMAND 0x200
                    115: #define PHASE_EXIT 0x400
                    116: #define PHASE_RESELECT 0x800
                    117: #define DEBUG_FAST 0x1000
                    118: #define DEBUG_SG   0x2000
                    119: #define DEBUG_LINKED   0x4000
                    120: #define DEBUG_BORKEN   0x8000
                    121: 
                    122: /* 
                    123:  *     Control options - these are timeouts specified in .01 seconds.
                    124:  */
                    125: 
                    126: /* 30, 20 work */
                    127: #define ST0X_BUS_FREE_DELAY 25
                    128: #define ST0X_SELECTION_DELAY 25
                    129: 
                    130: #define eoi() __asm__("push %%eax\nmovb $0x20, %%al\noutb %%al, $0x20\npop %%eax"::)
                    131:        
                    132: #define SEAGATE 1      /* these determine the type of the controller */
                    133: #define FD     2
                    134: 
                    135: #define ST0X_ID_STR    "Seagate ST-01/ST-02"
                    136: #define FD_ID_STR      "TMC-8XX/TMC-950"
                    137: 
                    138: #endif
                    139: 

unix.superglobalmegacorp.com

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