📄 i91uscsi.h
字号:
#define TSS_SEQ_ACTIVE 0x40 /* Sequencer active */#define TSS_XFER_CNT 0x20 /* Transfer counter zero */#define TSS_FIFO_EMPTY 0x10 /* FIFO empty */#define TSS_PAR_ERROR 0x08 /* SCSI parity error */#define TSS_PH_MASK 0x07 /* SCSI phase mask *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Status 1 Register *//*----------------------------------------------------------------------*/#define TSS_STATUS_RCV 0x08 /* Status received */#define TSS_MSG_SEND 0x40 /* Message sent */#define TSS_CMD_PH_CMP 0x20 /* command phase done */#define TSS_DATA_PH_CMP 0x10 /* Data phase done */#define TSS_STATUS_SEND 0x08 /* Status sent */#define TSS_XFER_CMP 0x04 /* Transfer completed */#define TSS_SEL_CMP 0x02 /* Selection completed */#define TSS_ARB_CMP 0x01 /* Arbitration completed *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Status 2 Register *//*----------------------------------------------------------------------*/#define TSS_CMD_ABTED 0x80 /* Command aborted */#define TSS_OFFSET_0 0x40 /* Offset counter zero */#define TSS_FIFO_FULL 0x20 /* FIFO full */#define TSS_TIMEOUT_0 0x10 /* Timeout counter zero */#define TSS_BUSY_RLS 0x08 /* Busy release */#define TSS_PH_MISMATCH 0x04 /* Phase mismatch */#define TSS_SCSI_BUS_EN 0x02 /* SCSI data bus enable */#define TSS_SCSIRST 0x01 /* SCSI bus reset in progress *//*----------------------------------------------------------------------*//* bit definition for Tulip SCSI Interrupt Register *//*----------------------------------------------------------------------*/#define TSS_RESEL_INT 0x80 /* Reselected interrupt */#define TSS_SEL_TIMEOUT 0x40 /* Selected/reselected timeout */#define TSS_BUS_SERV 0x20#define TSS_SCSIRST_INT 0x10 /* SCSI bus reset detected */#define TSS_DISC_INT 0x08 /* Disconnected interrupt */#define TSS_SEL_INT 0x04 /* Select interrupt */#define TSS_SCAM_SEL 0x02 /* SCAM selected */#define TSS_FUNC_COMP 0x01/*----------------------------------------------------------------------*//* SCSI Phase Codes. *//*----------------------------------------------------------------------*/#define DATA_OUT 0#define DATA_IN 1 /* 4 */#define CMD_OUT 2#define STATUS_IN 3 /* 6 */#define MSG_OUT 6 /* 3 */#define MSG_IN 7/*----------------------------------------------------------------------*//* Command Codes of Tulip xfer Command register *//*----------------------------------------------------------------------*/#define TAX_X_FORC 0x02#define TAX_X_ABT 0x04#define TAX_X_CLR_FIFO 0x08#define TAX_X_IN 0x21#define TAX_X_OUT 0x01#define TAX_SG_IN 0xA1#define TAX_SG_OUT 0x81/*----------------------------------------------------------------------*//* Tulip Interrupt Register *//*----------------------------------------------------------------------*/#define XCMP 0x01#define FCMP 0x02#define XABT 0x04#define XERR 0x08#define SCMP 0x10#define IPEND 0x80/*----------------------------------------------------------------------*//* Tulip DMA Status Register *//*----------------------------------------------------------------------*/#define XPEND 0x01 /* Transfer pending */#define FEMPTY 0x02 /* FIFO empty *//*----------------------------------------------------------------------*//* bit definition for TUL_GCTRL *//*----------------------------------------------------------------------*/#define EXTSG 0x80#define EXTAD 0x60#define SEG4K 0x08#define EEPRG 0x04#define MRMUL 0x02/*----------------------------------------------------------------------*//* bit definition for TUL_NVRAM *//*----------------------------------------------------------------------*/#define SE2CS 0x08#define SE2CLK 0x04#define SE2DO 0x02#define SE2DI 0x01/************************************************************************//* Scatter-Gather Element Structure *//************************************************************************/typedef struct SG_Struc { U32 SG_Ptr; /* Data Pointer */ U32 SG_Len; /* Data Length */} SG;/*********************************************************************** SCSI Control Block************************************************************************/typedef struct Scsi_Ctrl_Blk { struct Scsi_Ctrl_Blk *SCB_NxtScb; UBYTE SCB_Status; /*4 */ UBYTE SCB_NxtStat; /*5 */ UBYTE SCB_Mode; /*6 */ UBYTE SCB_Msgin; /*7 SCB_Res0 */ UWORD SCB_SGIdx; /*8 */ UWORD SCB_SGMax; /*A */#ifdef ALPHA U32 SCB_Reserved[2]; /*C */#else U32 SCB_Reserved[3]; /*C */#endif U32 SCB_XferLen; /*18 Current xfer len */ U32 SCB_TotXLen; /*1C Total xfer len */ U32 SCB_PAddr; /*20 SCB phy. Addr. */ UBYTE SCB_Opcode; /*24 SCB command code */ UBYTE SCB_Flags; /*25 SCB Flags */ UBYTE SCB_Target; /*26 Target Id */ UBYTE SCB_Lun; /*27 Lun */ U32 SCB_BufPtr; /*28 Data Buffer Pointer */ U32 SCB_BufLen; /*2C Data Allocation Length */ UBYTE SCB_SGLen; /*30 SG list # */ UBYTE SCB_SenseLen; /*31 Sense Allocation Length */ UBYTE SCB_HaStat; /*32 */ UBYTE SCB_TaStat; /*33 */ UBYTE SCB_CDBLen; /*34 CDB Length */ UBYTE SCB_Ident; /*35 Identify */ UBYTE SCB_TagMsg; /*36 Tag Message */ UBYTE SCB_TagId; /*37 Queue Tag */ UBYTE SCB_CDB[12]; /*38 */ U32 SCB_SGPAddr; /*44 SG List/Sense Buf phy. Addr. */ U32 SCB_SensePtr; /*48 Sense data pointer */ void (*SCB_Post) (BYTE *, BYTE *); /*4C POST routine */ unsigned char *SCB_Srb; /*50 SRB Pointer */ SG SCB_SGList[TOTAL_SG_ENTRY]; /*54 Start of SG list */} SCB;/* Bit Definition for SCB_Status */#define SCB_RENT 0x01#define SCB_PEND 0x02#define SCB_CONTIG 0x04 /* Contigent Allegiance */#define SCB_SELECT 0x08#define SCB_BUSY 0x10#define SCB_DONE 0x20/* Opcodes of SCB_Opcode */#define ExecSCSI 0x1#define BusDevRst 0x2#define AbortCmd 0x3/* Bit Definition for SCB_Mode */#define SCM_RSENS 0x01 /* request sense mode *//* Bit Definition for SCB_Flags */#define SCF_DONE 0x01#define SCF_POST 0x02#define SCF_SENSE 0x04#define SCF_DIR 0x18#define SCF_NO_DCHK 0x00#define SCF_DIN 0x08#define SCF_DOUT 0x10#define SCF_NO_XF 0x18#define SCF_WR_VF 0x20 /* Write verify turn on */#define SCF_POLL 0x40#define SCF_SG 0x80/* Error Codes for SCB_HaStat */#define HOST_SEL_TOUT 0x11#define HOST_DO_DU 0x12#define HOST_BUS_FREE 0x13#define HOST_BAD_PHAS 0x14#define HOST_INV_CMD 0x16#define HOST_ABORTED 0x1A /* 07/21/98 */#define HOST_SCSI_RST 0x1B#define HOST_DEV_RST 0x1C/* Error Codes for SCB_TaStat */#define TARGET_CHKCOND 0x02#define TARGET_BUSY 0x08#define QUEUE_FULL 0x28/* SCSI MESSAGE */#define MSG_COMP 0x00#define MSG_EXTEND 0x01#define MSG_SDP 0x02#define MSG_RESTORE 0x03#define MSG_DISC 0x04#define MSG_IDE 0x05#define MSG_ABORT 0x06#define MSG_REJ 0x07#define MSG_NOP 0x08#define MSG_PARITY 0x09#define MSG_LINK_COMP 0x0A#define MSG_LINK_FLAG 0x0B#define MSG_DEVRST 0x0C#define MSG_ABORT_TAG 0x0D/* Queue tag msg: Simple_quque_tag, Head_of_queue_tag, Ordered_queue_tag */#define MSG_STAG 0x20#define MSG_HTAG 0x21#define MSG_OTAG 0x22#define MSG_IGNOREWIDE 0x23#define MSG_IDENT 0x80/*********************************************************************** Target Device Control Structure**********************************************************************/typedef struct Tar_Ctrl_Struc { UWORD TCS_Flags; /* 0 */ UBYTE TCS_JS_Period; /* 2 */ UBYTE TCS_SConfig0; /* 3 */ UWORD TCS_DrvFlags; /* 4 */ UBYTE TCS_DrvHead; /* 6 */ UBYTE TCS_DrvSector; /* 7 */} TCS;/*********************************************************************** Target Device Control Structure**********************************************************************//* Bit Definition for TCF_Flags */#define TCF_SCSI_RATE 0x0007#define TCF_EN_DISC 0x0008#define TCF_NO_SYNC_NEGO 0x0010#define TCF_NO_WDTR 0x0020#define TCF_EN_255 0x0040#define TCF_EN_START 0x0080#define TCF_WDTR_DONE 0x0100#define TCF_SYNC_DONE 0x0200#define TCF_BUSY 0x0400/* Bit Definition for TCF_DrvFlags */#define TCF_DRV_BUSY 0x01 /* Indicate target busy(driver) */#define TCF_DRV_EN_TAG 0x0800#define TCF_DRV_255_63 0x0400typedef struct I91u_Adpt_Struc { UWORD ADPT_BIOS; /* 0 */ UWORD ADPT_BASE; /* 1 */ UBYTE ADPT_Bus; /* 2 */ UBYTE ADPT_Device; /* 3 */ UBYTE ADPT_INTR; /* 4 */} INI_ADPT_STRUCT;/*********************************************************************** Host Adapter Control Structure************************************************************************/typedef struct Ha_Ctrl_Struc { UWORD HCS_Base; /* 00 */ UWORD HCS_BIOS; /* 02 */ UBYTE HCS_Intr; /* 04 */ UBYTE HCS_SCSI_ID; /* 05 */ UBYTE HCS_MaxTar; /* 06 */ UBYTE HCS_NumScbs; /* 07 */ UBYTE HCS_Flags; /* 08 */ UBYTE HCS_Index; /* 09 */ UBYTE HCS_HaId; /* 0A */ UBYTE HCS_Config; /* 0B */ UWORD HCS_IdMask; /* 0C */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -