📄 scsi2.h
字号:
/*******************************************************************/
//scsi data format and construct
extern UWord16 SCSI_INQUIRY[36];
extern UWord16 SCSIDATA_ReadFormatCapacities[];
extern UWord16 SCSIDATA_ReadCapacities[];
extern UWord16 SCSIDATA_Sense[];
UWord32 SCSI_Read10logicalBlockAddress;
UWord32 SCSI_Write10logicalBlockAddress;
UWord16 SCSI_DataLength;
UWord16 SCSI_BulkIn_Data_BufLen;
UWord32 SCSI_WriteAddress;
/*******************************************************************/
//Command Block Wrapper (CBW)
#define K_USBMSDC_CBW_SIZE 0x1f
typedef struct _USBMSDC_CBW
{
UWord16 dCBWSignature[4];
UWord16 dCBWTag[4];
UWord16 dCBWDataTransferLength[4];
UWord16 bmCBWFlags;
UWord16 bCBWLUN;
UWord16 bCBWCBLength;
UWord16 CBWCB[16];
} USBMSDC_CBW,*PUSBMSDC_CBW;
//Command Status Wrapper (CSW)
#define K_USBMSDC_CSW_SIZE 0x0d
typedef struct _USBMSDC_CSW
{
UWord16 dCSWSignature[4];
UWord16 dCSWTag[4];
UWord16 dCSWDataResidue[4];
UWord16 bCSWStatus;
} USBMSDC_CSW;
/*******************************************************************/
// tansfer for main endpoint 2 flag
extern UWord16 G_ucBulkPhase=0 ;
UWord16 G_ucBulkStausPhase;
/*******************************************************************/
extern void USBMSDC_BoCommand(void) ;
extern void USBMSDC_BoBulkInData(void);
extern void SCSICMD_TestUnitReady(void);
extern void SCSICMD_RequestSense(void);
extern void SCSICMD_Inquiry(void);
extern void SCSICMD_PreventAllowMediumRemoval(void);
extern void SCSICMD_ReadCapacity(void);
extern void SCSICMD_Read10(void);
extern void SCSICMD_Write10(void);
extern void SCSICMD_Verify10(void);
extern void SCSICMD_ModeSense10(void);
extern void SCSICMD_ReadFormatCapacities(void);
extern void USBMSDC_pCSW(void);
extern void SCSICMD_ModeSense06(void);
/*******************************************************************/
#define K_SCSICMD_TEST_UNIT_READY 0x00
#define K_SCSICMD_REZERO_UNIT 0x01
#define K_SCSICMD_REQUEST_SENSE 0x03
#define K_SCSICMD_FORMAT_UNIT 0x04
#define K_SCSICMD_INQUIRY 0x12
#define K_SCSICMD_MODE_SENSE_06 0x1a
#define K_SCSICMD_START_STOP_UNIT 0x1b
#define K_SCSICMD_SEND_DIAGNOSTIC 0x1d
#define K_SCSICMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1e
#define K_SCSICMD_READ_FORMAT_CAPACITIES 0x23
#define K_SCSICMD_READ_CAPACITY 0x25
#define K_SCSICMD_READ_10 0x28
#define K_SCSICMD_WRITE_10 0x2a
#define K_SCSICMD_SEEK_10 0x2b
#define K_SCSICMD_WRITE_AND_VERIFY_10 0x2e
#define K_SCSICMD_VERIFY_10 0x2f
#define K_SCSICMD_MODE_SELECT_10 0x55
#define K_SCSICMD_MODE_SENSE_10 0x5a
#define K_SCSICMD_READ_12 0xa8
#define K_SCSICMD_WRITE_12 0xaa
/*******************************************************************/
//Phase of Transfer
#define K_CommandPhase 0x00
#define K_OutDataPhase 0x01
#define K_OutDataPhaseWrite 0x02
#define K_OutResponsePhase 0x03
#define K_InDataPhase 0x81
#define K_InDataPhaseRead 0x82
#define K_InResponsePhase 0x83
#define K_InCompletionPhase 0x84
#define K_XferDirMask 0x80
#define K_InCSWPhase 0x08
/*******************************************************************/
/*******************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -