Annotation of Gnu-Mach/linux/src/drivers/scsi/seagate.h, revision 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.