📄 mpi_targ.h
字号:
MPI_POINTER PTR_MPI_TARGET_SCSI_SPI_CMD_BUFFER, MpiTargetScsiSpiCmdBuffer, MPI_POINTER pMpiTargetScsiSpiCmdBuffer;/****************************************************************************//* Target Assist Request *//****************************************************************************/typedef struct _MSG_TARGET_ASSIST_REQUEST{ U8 StatusCode; /* 00h */ U8 TargetAssistFlags; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U16 QueueTag; /* 04h */ U8 Reserved; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U32 ReplyWord; /* 0Ch */ U8 LUN[8]; /* 10h */ U32 RelativeOffset; /* 18h */ U32 DataLength; /* 1Ch */ SGE_IO_UNION SGL[1]; /* 20h */} MSG_TARGET_ASSIST_REQUEST, MPI_POINTER PTR_MSG_TARGET_ASSIST_REQUEST, TargetAssistRequest_t, MPI_POINTER pTargetAssistRequest_t;#define TARGET_ASSIST_FLAGS_DATA_DIRECTION (0x01)#define TARGET_ASSIST_FLAGS_AUTO_STATUS (0x02)#define TARGET_ASSIST_FLAGS_HIGH_PRIORITY (0x04)#define TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER (0x80)typedef struct _MSG_TARGET_ERROR_REPLY{ U16 Reserved; /* 00h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U16 Reserved1; /* 04h */ U8 Reserved2; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U16 Reserved3; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */ U32 ReplyWord; /* 14h */ U32 TransferCount; /* 18h */} MSG_TARGET_ERROR_REPLY, MPI_POINTER PTR_MSG_TARGET_ERROR_REPLY, TargetErrorReply_t, MPI_POINTER pTargetErrorReply_t;/****************************************************************************//* Target Status Send Request *//****************************************************************************/typedef struct _MSG_TARGET_STATUS_SEND_REQUEST{ U8 StatusCode; /* 00h */ U8 StatusFlags; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U16 QueueTag; /* 04h */ U8 Reserved; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U32 ReplyWord; /* 0Ch */ U8 LUN[8]; /* 10h */ SGE_SIMPLE_UNION StatusDataSGE; /* 18h */} MSG_TARGET_STATUS_SEND_REQUEST, MPI_POINTER PTR_MSG_TARGET_STATUS_SEND_REQUEST, TargetStatusSendRequest_t, MPI_POINTER pTargetStatusSendRequest_t;#define TARGET_STATUS_SEND_FLAGS_AUTO_GOOD_STATUS (0x01)#define TARGET_STATUS_SEND_FLAGS_REPOST_CMD_BUFFER (0x80)/****************************************************************************//* Target Mode Abort Request *//****************************************************************************/typedef struct _MSG_TARGET_MODE_ABORT_REQUEST{ U8 AbortType; /* 00h */ U8 Reserved; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U16 Reserved1; /* 04h */ U8 Reserved2; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U32 ReplyWord; /* 0Ch */ U32 MsgContextToAbort; /* 10h */} MSG_TARGET_MODE_ABORT, MPI_POINTER PTR_MSG_TARGET_MODE_ABORT, TargetModeAbort_t, MPI_POINTER pTargetModeAbort_t;#define TARGET_MODE_ABORT_TYPE_ALL_CMD_BUFFERS (0x00)#define TARGET_MODE_ABORT_TYPE_ALL_IO (0x01)#define TARGET_MODE_ABORT_TYPE_EXACT_IO (0x02)#define TARGET_MODE_ABORT_TYPE_EXACT_IO_REQUEST (0x03)/* Target Mode Abort Reply */typedef struct _MSG_TARGET_MODE_ABORT_REPLY{ U16 Reserved; /* 00h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U16 Reserved1; /* 04h */ U8 Reserved2; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U16 Reserved3; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */ U32 AbortCount; /* 14h */} MSG_TARGET_MODE_ABORT_REPLY, MPI_POINTER PTR_MSG_TARGET_MODE_ABORT_REPLY, TargetModeAbortReply_t, MPI_POINTER pTargetModeAbortReply_t;/****************************************************************************//* Target Mode Context Reply *//****************************************************************************/#define TARGET_MODE_REPLY_IO_INDEX_MASK (0x00003FFF)#define TARGET_MODE_REPLY_IO_INDEX_SHIFT (0)#define TARGET_MODE_REPLY_INITIATOR_INDEX_MASK (0x03FFC000)#define TARGET_MODE_REPLY_INITIATOR_INDEX_SHIFT (14)#define TARGET_MODE_REPLY_ALIAS_MASK (0x0C000000)#define TARGET_MODE_REPLY_ALIAS_SHIFT (26)#define TARGET_MODE_REPLY_PORT_MASK (0x10000000)#define TARGET_MODE_REPLY_PORT_SHIFT (28)#define GET_IO_INDEX(x) (((x) & TARGET_MODE_REPLY_IO_INDEX_MASK) \ >> TARGET_MODE_REPLY_IO_INDEX_SHIFT)#define SET_IO_INDEX(t, i) \ ((t) = ((t) & ~TARGET_MODE_REPLY_IO_INDEX_MASK) | \ (((i) << TARGET_MODE_REPLY_IO_INDEX_SHIFT) & \ TARGET_MODE_REPLY_IO_INDEX_MASK))#define GET_INITIATOR_INDEX(x) (((x) & TARGET_MODE_REPLY_INITIATOR_INDEX_MASK) \ >> TARGET_MODE_REPLY_INITIATOR_INDEX_SHIFT)#define SET_INITIATOR_INDEX(t, ii) \ ((t) = ((t) & ~TARGET_MODE_REPLY_INITIATOR_INDEX_MASK) | \ (((ii) << TARGET_MODE_REPLY_INITIATOR_INDEX_SHIFT) & \ TARGET_MODE_REPLY_INITIATOR_INDEX_MASK))#define GET_ALIAS(x) (((x) & TARGET_MODE_REPLY_ALIAS_MASK) \ >> TARGET_MODE_REPLY_ALIAS_SHIFT)#define SET_ALIAS(t, a) ((t) = ((t) & ~TARGET_MODE_REPLY_ALIAS_MASK) | \ (((a) << TARGET_MODE_REPLY_ALIAS_SHIFT) & \ TARGET_MODE_REPLY_ALIAS_MASK))#define GET_PORT(x) (((x) & TARGET_MODE_REPLY_PORT_MASK) \ >> TARGET_MODE_REPLY_PORT_SHIFT)#define SET_PORT(t, p) ((t) = ((t) & ~TARGET_MODE_REPLY_PORT_MASK) | \ (((p) << TARGET_MODE_REPLY_PORT_SHIFT) & \ TARGET_MODE_REPLY_PORT_MASK))#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -