📄 seagate.h
字号:
/* * seagate.h Copyright (C) 1992 Drew Eckhardt * low level scsi driver header for ST01/ST02 by * Drew Eckhardt * * <drew@colorado.edu> */#ifndef _SEAGATE_H #define SEAGATE_H/* $Header*/#ifndef ASMint seagate_st0x_detect(Scsi_Host_Template *);int seagate_st0x_command(Scsi_Cmnd *);int seagate_st0x_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));int seagate_st0x_abort(Scsi_Cmnd *);const char *seagate_st0x_info(struct Scsi_Host *);int seagate_st0x_reset(Scsi_Cmnd *, unsigned int); int seagate_st0x_proc_info(char *,char **,off_t,int,int,int);#ifndef NULL #define NULL 0#endif#include <linux/kdev_t.h>int seagate_st0x_biosparam(Disk *, kdev_t, int*);#define SEAGATE_ST0X { NULL, NULL, NULL, seagate_st0x_proc_info, \ NULL, seagate_st0x_detect, \ NULL, \ seagate_st0x_info, seagate_st0x_command, \ seagate_st0x_queue_command, seagate_st0x_abort, \ seagate_st0x_reset, NULL, seagate_st0x_biosparam, \ 1, 7, SG_ALL, 1, 0, 0, DISABLE_CLUSTERING}#endif/* defining PARITY causes parity data to be checked*/#define PARITY/* Thanks to Brian Antoine for the example code in his Messy-Loss ST-01 driver, and Mitsugu Suzuki for information on the ST-01 SCSI host.*//* CONTROL defines*/#define CMD_RST 0x01#define CMD_SEL 0x02#define CMD_BSY 0x04#define CMD_ATTN 0x08#define CMD_START_ARB 0x10#define CMD_EN_PARITY 0x20#define CMD_INTR 0x40#define CMD_DRVR_ENABLE 0x80/* STATUS*/#define STAT_BSY 0x01#define STAT_MSG 0x02#define STAT_IO 0x04#define STAT_CD 0x08#define STAT_REQ 0x10#define STAT_SEL 0x20#define STAT_PARITY 0x40#define STAT_ARB_CMPL 0x80/* REQUESTS*/#define REQ_MASK (STAT_CD | STAT_IO | STAT_MSG)#define REQ_DATAOUT 0#define REQ_DATAIN STAT_IO#define REQ_CMDOUT STAT_CD#define REQ_STATIN (STAT_CD | STAT_IO)#define REQ_MSGOUT (STAT_MSG | STAT_CD)#define REQ_MSGIN (STAT_MSG | STAT_CD | STAT_IO)extern volatile int seagate_st0x_timeout;#ifdef PARITY #define BASE_CMD CMD_EN_PARITY#else #define BASE_CMD 0#endif/* Debugging code*/#define PHASE_BUS_FREE 1#define PHASE_ARBITRATION 2#define PHASE_SELECTION 4#define PHASE_DATAIN 8 #define PHASE_DATAOUT 0x10#define PHASE_CMDOUT 0x20#define PHASE_MSGIN 0x40#define PHASE_MSGOUT 0x80#define PHASE_STATUSIN 0x100#define PHASE_ETC (PHASE_DATAIN | PHASE_DATA_OUT | PHASE_CMDOUT | PHASE_MSGIN | PHASE_MSGOUT | PHASE_STATUSIN)#define PRINT_COMMAND 0x200#define PHASE_EXIT 0x400#define PHASE_RESELECT 0x800#define DEBUG_FAST 0x1000#define DEBUG_SG 0x2000#define DEBUG_LINKED 0x4000#define DEBUG_BORKEN 0x8000/* * Control options - these are timeouts specified in .01 seconds. *//* 30, 20 work */#define ST0X_BUS_FREE_DELAY 25#define ST0X_SELECTION_DELAY 25#define eoi() __asm__("push %%eax\nmovb $0x20, %%al\noutb %%al, $0x20\npop %%eax"::) #define SEAGATE 1 /* these determine the type of the controller */#define FD 2#define ST0X_ID_STR "Seagate ST-01/ST-02"#define FD_ID_STR "TMC-8XX/TMC-950"#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -