📄 flashpoint.c
字号:
add dx, offset; \ db 66h; \ mov ax,word ptr data;\ db 66h; \ out dx,ax; \ db 66h; \ pop ax}#endif /* DOS */#if defined(NETWARE) || defined(OTHER_32) || defined(OTHER_16) #define RD_HARPOON(ioport) OS_InPortByte((unsigned long)ioport) #define RDW_HARPOON(ioport) OS_InPortWord((unsigned long)ioport) #define RD_HARP32(ioport,offset,data) (data = OS_InPortLong(ioport + offset)) #define WR_HARPOON(ioport,val) OS_OutPortByte((ULONG)ioport,(UCHAR) val) #define WRW_HARPOON(ioport,val) OS_OutPortWord((ULONG)ioport,(USHORT)val) #define WR_HARP32(ioport,offset,data) OS_OutPortLong((ioport + offset), data)#endif /* NETWARE || OTHER_32 || OTHER_16 */#if defined(NT) || defined(WIN95_32) || defined(WIN95_16) #define RD_HARPOON(ioport) OS_InPortByte((ULONG)ioport) #define RDW_HARPOON(ioport) OS_InPortWord((ULONG)ioport) #define RD_HARP32(ioport,offset,data) (data = OS_InPortLong((ULONG)(ioport + offset))) #define WR_HARPOON(ioport,val) OS_OutPortByte((ULONG)ioport,(UCHAR) val) #define WRW_HARPOON(ioport,val) OS_OutPortWord((ULONG)ioport,(USHORT)val) #define WR_HARP32(ioport,offset,data) OS_OutPortLong((ULONG)(ioport + offset), data)#endif /* NT || WIN95_32 || WIN95_16 */#if defined (UNIX) #define RD_HARPOON(ioport) OS_InPortByte((u32bits)ioport) #define RDW_HARPOON(ioport) OS_InPortWord((u32bits)ioport) #define RD_HARP32(ioport,offset,data) (data = OS_InPortLong((u32bits)(ioport + offset))) #define WR_HARPOON(ioport,val) OS_OutPortByte((u32bits)ioport,(u08bits) val) #define WRW_HARPOON(ioport,val) OS_OutPortWord((u32bits)ioport,(u16bits)val) #define WR_HARP32(ioport,offset,data) OS_OutPortLong((u32bits)(ioport + offset), data)#endif /* UNIX */#if defined(OS2) #define RD_HARPOON(ioport) OS_InPortByte((unsigned long)ioport) #define RDW_HARPOON(ioport) OS_InPortWord((unsigned long)ioport) #define RD_HARP32(ioport,offset,data) (data = OS_InPortLong((ULONG)(ioport + offset))) #define WR_HARPOON(ioport,val) OS_OutPortByte((ULONG)ioport,(UCHAR) val) #define WRW_HARPOON(ioport,val) OS_OutPortWord((ULONG)ioport,(USHORT)val) #define WR_HARP32(ioport,offset,data) OS_OutPortLong(((ULONG)(ioport + offset)), data)#endif /* OS2 */#if defined(SOLARIS_REAL_MODE) #define RD_HARPOON(ioport) OS_InPortByte((unsigned long)ioport) #define RDW_HARPOON(ioport) OS_InPortWord((unsigned long)ioport) #define RD_HARP32(ioport,offset,data) (data = OS_InPortLong((ULONG)(ioport + offset))) #define WR_HARPOON(ioport,val) OS_OutPortByte((ULONG)ioport,(UCHAR) val) #define WRW_HARPOON(ioport,val) OS_OutPortWord((ULONG)ioport,(USHORT)val) #define WR_HARP32(ioport,offset,data) OS_OutPortLong((ULONG)(ioport + offset), (ULONG)data)#endif /* SOLARIS_REAL_MODE */#endif /* __BLX30_H__ *//*---------------------------------------------------------------------- * * * Copyright 1995-1996 by Mylex Corporation. All Rights Reserved * * This file is available under both the GNU General Public License * and a BSD-style copyright; see LICENSE.FlashPoint for details. * * $Workfile: target.h $ * * Description: Definitions for Target related structures * * $Date: 1996/12/11 22:06:20 $ * * $Revision: 1.9 $ * *----------------------------------------------------------------------*/#ifndef __TARGET__#define __TARGET__/*#include <globals.h>*//*#include <blx30.h>*/#define TAR_SYNC_MASK (BIT(7)+BIT(6))#define SYNC_UNKNOWN 0x00#define SYNC_TRYING BIT(6)#define SYNC_SUPPORTED (BIT(7)+BIT(6))#define TAR_WIDE_MASK (BIT(5)+BIT(4))#define WIDE_DISABLED 0x00#define WIDE_ENABLED BIT(4)#define WIDE_NEGOCIATED BIT(5)#define TAR_TAG_Q_MASK (BIT(3)+BIT(2))#define TAG_Q_UNKNOWN 0x00#define TAG_Q_TRYING BIT(2)#define TAG_Q_REJECT BIT(3)#define TAG_Q_SUPPORTED (BIT(3)+BIT(2))#define TAR_ALLOW_DISC BIT(0)#define EE_SYNC_MASK (BIT(0)+BIT(1))#define EE_SYNC_ASYNC 0x00#define EE_SYNC_5MB BIT(0)#define EE_SYNC_10MB BIT(1)#define EE_SYNC_20MB (BIT(0)+BIT(1))#define EE_ALLOW_DISC BIT(6)#define EE_WIDE_SCSI BIT(7)#if defined(DOS) typedef struct SCCBMgr_tar_info near *PSCCBMgr_tar_info;#elif defined(OS2) typedef struct SCCBMgr_tar_info far *PSCCBMgr_tar_info;#else typedef struct SCCBMgr_tar_info *PSCCBMgr_tar_info;#endiftypedef struct SCCBMgr_tar_info { PSCCB TarSelQ_Head; PSCCB TarSelQ_Tail; UCHAR TarLUN_CA; /*Contingent Allgiance */ UCHAR TarTagQ_Cnt; UCHAR TarSelQ_Cnt; UCHAR TarStatus; UCHAR TarEEValue; UCHAR TarSyncCtrl; UCHAR TarReserved[2]; /* for alignment */ UCHAR LunDiscQ_Idx[MAX_LUN]; UCHAR TarLUNBusy[MAX_LUN];} SCCBMGR_TAR_INFO;typedef struct NVRAMInfo { UCHAR niModel; /* Model No. of card */ UCHAR niCardNo; /* Card no. */#if defined(DOS) USHORT niBaseAddr; /* Port Address of card */#else ULONG niBaseAddr; /* Port Address of card */#endif UCHAR niSysConf; /* Adapter Configuration byte - Byte 16 of eeprom map */ UCHAR niScsiConf; /* SCSI Configuration byte - Byte 17 of eeprom map */ UCHAR niScamConf; /* SCAM Configuration byte - Byte 20 of eeprom map */ UCHAR niAdapId; /* Host Adapter ID - Byte 24 of eerpom map */ UCHAR niSyncTbl[MAX_SCSI_TAR / 2]; /* Sync/Wide byte of targets */ UCHAR niScamTbl[MAX_SCSI_TAR][4]; /* Compressed Scam name string of Targets */}NVRAMINFO;#if defined(DOS)typedef NVRAMINFO near *PNVRamInfo;#elif defined (OS2)typedef NVRAMINFO far *PNVRamInfo;#elsetypedef NVRAMINFO *PNVRamInfo;#endif#define MODEL_LT 1#define MODEL_DL 2#define MODEL_LW 3#define MODEL_DW 4typedef struct SCCBcard { PSCCB currentSCCB;#if (FW_TYPE==_SCCB_MGR_) PSCCBMGR_INFO cardInfo;#else PADAPTER_INFO cardInfo;#endif#if defined(DOS) USHORT ioPort;#else ULONG ioPort;#endif USHORT cmdCounter; UCHAR discQCount; UCHAR tagQ_Lst; UCHAR cardIndex; UCHAR scanIndex; UCHAR globalFlags; UCHAR ourId; PNVRamInfo pNvRamInfo; PSCCB discQ_Tbl[QUEUE_DEPTH]; }SCCBCARD;#if defined(DOS)typedef struct SCCBcard near *PSCCBcard;#elif defined (OS2)typedef struct SCCBcard far *PSCCBcard;#elsetypedef struct SCCBcard *PSCCBcard;#endif#define F_TAG_STARTED 0x01#define F_CONLUN_IO 0x02#define F_DO_RENEGO 0x04#define F_NO_FILTER 0x08#define F_GREEN_PC 0x10#define F_HOST_XFER_ACT 0x20#define F_NEW_SCCB_CMD 0x40#define F_UPDATE_EEPROM 0x80#define ID_STRING_LENGTH 32#define TYPE_CODE0 0x63 /*Level2 Mstr (bits 7-6), */#define TYPE_CODE1 00 /*No ID yet */#define SLV_TYPE_CODE0 0xA3 /*Priority Bit set (bits 7-6), */#define ASSIGN_ID 0x00#define SET_P_FLAG 0x01#define CFG_CMPLT 0x03#define DOM_MSTR 0x0F#define SYNC_PTRN 0x1F#define ID_0_7 0x18#define ID_8_F 0x11#define ID_10_17 0x12#define ID_18_1F 0x0B#define MISC_CODE 0x14#define CLR_P_FLAG 0x18#define LOCATE_ON 0x12#define LOCATE_OFF 0x0B#define LVL_1_MST 0x00#define LVL_2_MST 0x40#define DOM_LVL_2 0xC0#define INIT_SELTD 0x01#define LEVEL2_TAR 0x02enum scam_id_st { ID0,ID1,ID2,ID3,ID4,ID5,ID6,ID7,ID8,ID9,ID10,ID11,ID12, ID13,ID14,ID15,ID_UNUSED,ID_UNASSIGNED,ID_ASSIGNED,LEGACY, CLR_PRIORITY,NO_ID_AVAIL };typedef struct SCCBscam_info { UCHAR id_string[ID_STRING_LENGTH]; enum scam_id_st state; } SCCBSCAM_INFO, *PSCCBSCAM_INFO;#endif/*---------------------------------------------------------------------- * * * Copyright 1995-1996 by Mylex Corporation. All Rights Reserved * * This file is available under both the GNU General Public License * and a BSD-style copyright; see LICENSE.FlashPoint for details. * * $Workfile: scsi2.h $ * * Description: Register definitions for HARPOON ASIC. * * $Date: 1996/11/13 18:32:57 $ * * $Revision: 1.4 $ * *----------------------------------------------------------------------*/#ifndef __SCSI_H__#define __SCSI_H__#define SCSI_TEST_UNIT_READY 0x00#define SCSI_REZERO_UNIT 0x01#define SCSI_REQUEST_SENSE 0x03#define SCSI_FORMAT_UNIT 0x04#define SCSI_REASSIGN 0x07#define SCSI_READ 0x08#define SCSI_WRITE 0x0A#define SCSI_SEEK 0x0B#define SCSI_INQUIRY 0x12#define SCSI_MODE_SELECT 0x15#define SCSI_RESERVE_UNIT 0x16#define SCSI_RELEASE_UNIT 0x17#define SCSI_MODE_SENSE 0x1A#define SCSI_START_STOP_UNIT 0x1B#define SCSI_SEND_DIAGNOSTIC 0x1D#define SCSI_READ_CAPACITY 0x25#define SCSI_READ_EXTENDED 0x28#define SCSI_WRITE_EXTENDED 0x2A#define SCSI_SEEK_EXTENDED 0x2B#define SCSI_WRITE_AND_VERIFY 0x2E#define SCSI_VERIFY 0x2F#define SCSI_READ_DEFECT_DATA 0x37#define SCSI_WRITE_BUFFER 0x3B#define SCSI_READ_BUFFER 0x3C#define SCSI_RECV_DIAGNOSTIC 0x1C#define SCSI_READ_LONG 0x3E#define SCSI_WRITE_LONG 0x3F#define SCSI_LAST_SCSI_CMND SCSI_WRITE_LONG#define SCSI_INVALID_CMND 0xFF#define SSGOOD 0x00#define SSCHECK 0x02#define SSCOND_MET 0x04#define SSBUSY 0x08#define SSRESERVATION_CONFLICT 0x18#define SSCMD_TERM 0x22#define SSQ_FULL 0x28#define SKNO_SEN 0x00#define SKRECOV_ERR 0x01#define SKNOT_RDY 0x02#define SKMED_ERR 0x03#define SKHW_ERR 0x04#define SKILL_REQ 0x05#define SKUNIT_ATTN 0x06#define SKDATA_PROTECT 0x07#define SKBLNK_CHK 0x08#define SKCPY_ABORT 0x0A#define SKABORT_CMD 0x0B#define SKEQUAL 0x0C#define SKVOL_OVF 0x0D#define SKMIS_CMP 0x0E#define SMCMD_COMP 0x00#define SMEXT 0x01#define SMSAVE_DATA_PTR 0x02#define SMREST_DATA_PTR 0x03#define SMDISC 0x04#define SMINIT_DETEC_ERR 0x05#define SMABORT 0x06#define SMREJECT 0x07#define SMNO_OP 0x08#define SMPARITY 0x09#define SMDEV_RESET 0x0C#define SMABORT_TAG 0x0D#define SMINIT_RECOVERY 0x0F#define SMREL_RECOVERY 0x10#define SMIDENT 0x80#define DISC_PRIV 0x40#define SMSYNC 0x01#define SM10MBS 0x19 /* 100ns */#define SM5MBS 0x32 /* 200ns */#define SMOFFSET 0x0F /* Maxoffset value */#define SMWDTR 0x03#define SM8BIT 0x00#define SM16BIT 0x01#define SM32BIT 0x02#define SMIGNORWR 0x23 /* Ignore Wide Residue */#define ARBITRATION_DELAY 0x01 /* 2.4us using a 40Mhz clock */#define BUS_SETTLE_DELAY 0x01 /* 400ns */#define BUS_CLEAR_DELAY 0x01 /* 800ns */#define SPHASE_TO 0x0A /* 10 second timeout waiting for */#define SCMD_TO 0x0F /* Overall command timeout */#define SIX_BYTE_CMD 0x06#define TEN_BYTE_CMD 0x0A#define TWELVE_BYTE_CMD 0x0C#define ASYNC 0x00#define PERI25NS 0x06 /* 25/4ns to next clock for xbow. */#define SYNC10MBS 0x19#define SYNC5MBS 0x32#define MAX_OFFSET 0x0F /* Maxbyteoffset for Sync Xfers */#endif/*---------------------------------------------------------------------- * * * Copyright 1995-1996 by Mylex Corporation. All Rights Reserved * * This file is available under both the GNU General Public License * and a BSD-style copyright; see LICENSE.FlashPoint for details. * * $Workfile: eeprom.h $ * * Description: Definitions for EEPROM related structures * * $Date: 1996/11/13 18:28:39 $ *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -