📄 mpi_targ.h
字号:
/* * Copyright (c) 2000-2004 LSI Logic Corporation. * * * Name: mpi_targ.h * Title: MPI Target mode messages and structures * Creation Date: June 22, 2000 * * mpi_targ.h Version: 01.05.05 * * Version History * --------------- * * Date Version Description * -------- -------- ------------------------------------------------------ * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. * 06-06-00 01.00.01 Update version number for 1.0 release. * 06-22-00 01.00.02 Added _MSG_TARGET_CMD_BUFFER_POST_REPLY structure. * Corrected DECSRIPTOR typo to DESCRIPTOR. * 11-02-00 01.01.01 Original release for post 1.0 work * Modified target mode to use IoIndex instead of * HostIndex and IocIndex. Added Alias. * 01-09-01 01.01.02 Added defines for TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER * and TARGET_STATUS_SEND_FLAGS_REPOST_CMD_BUFFER. * 02-20-01 01.01.03 Started using MPI_POINTER. * Added structures for MPI_TARGET_SCSI_SPI_CMD_BUFFER and * MPI_TARGET_FCP_CMD_BUFFER. * 03-27-01 01.01.04 Added structure offset comments. * 08-08-01 01.02.01 Original release for v1.2 work. * 09-28-01 01.02.02 Added structure for MPI_TARGET_SCSI_SPI_STATUS_IU. * Added PriorityReason field to some replies and * defined more PriorityReason codes. * Added some defines for to support previous version * of MPI. * 10-04-01 01.02.03 Added PriorityReason to MSG_TARGET_ERROR_REPLY. * 11-01-01 01.02.04 Added define for TARGET_STATUS_SEND_FLAGS_HIGH_PRIORITY. * 03-14-02 01.02.05 Modified MPI_TARGET_FCP_RSP_BUFFER to get the proper * byte ordering. * 05-31-02 01.02.06 Modified TARGET_MODE_REPLY_ALIAS_MASK to only include * one bit. * Added AliasIndex field to MPI_TARGET_FCP_CMD_BUFFER. * 09-16-02 01.02.07 Added flags for confirmed completion. * Added PRIORITY_REASON_TARGET_BUSY. * 11-15-02 01.02.08 Added AliasID field to MPI_TARGET_SCSI_SPI_CMD_BUFFER. * 04-01-03 01.02.09 Added OptionalOxid field to MPI_TARGET_FCP_CMD_BUFFER. * 05-11-04 01.03.01 Original release for MPI v1.3. * 08-19-04 01.05.01 Added new request message structures for * MSG_TARGET_CMD_BUF_POST_BASE_REQUEST, * MSG_TARGET_CMD_BUF_POST_LIST_REQUEST, and * MSG_TARGET_ASSIST_EXT_REQUEST. * Added new structures for SAS SSP Command buffer, SSP * Task buffer, and SSP Status IU. * 10-05-04 01.05.02 MSG_TARGET_CMD_BUFFER_POST_BASE_LIST_REPLY added. * 02-22-05 01.05.03 Changed a comment. * 03-11-05 01.05.04 Removed TargetAssistExtended Request. * 06-24-05 01.05.05 Added TargetAssistExtended structures and defines. * -------------------------------------------------------------------------- */#ifndef MPI_TARG_H#define MPI_TARG_H/******************************************************************************** S C S I T a r g e t M e s s a g e s********************************************************************************/typedef struct _CMD_BUFFER_DESCRIPTOR{ U16 IoIndex; /* 00h */ U16 Reserved; /* 02h */ union /* 04h */ { U32 PhysicalAddress32; U64 PhysicalAddress64; } u;} CMD_BUFFER_DESCRIPTOR, MPI_POINTER PTR_CMD_BUFFER_DESCRIPTOR, CmdBufferDescriptor_t, MPI_POINTER pCmdBufferDescriptor_t;/****************************************************************************//* Target Command Buffer Post Request *//****************************************************************************/typedef struct _MSG_TARGET_CMD_BUFFER_POST_REQUEST{ U8 BufferPostFlags; /* 00h */ U8 BufferCount; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U8 BufferLength; /* 04h */ U8 Reserved; /* 05h */ U8 Reserved1; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ CMD_BUFFER_DESCRIPTOR Buffer[1]; /* 0Ch */} MSG_TARGET_CMD_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_TARGET_CMD_BUFFER_POST_REQUEST, TargetCmdBufferPostRequest_t, MPI_POINTER pTargetCmdBufferPostRequest_t;#define CMD_BUFFER_POST_FLAGS_PORT_MASK (0x01)#define CMD_BUFFER_POST_FLAGS_ADDR_MODE_MASK (0x80)#define CMD_BUFFER_POST_FLAGS_ADDR_MODE_32 (0)#define CMD_BUFFER_POST_FLAGS_ADDR_MODE_64 (1)#define CMD_BUFFER_POST_FLAGS_64_BIT_ADDR (0x80)#define CMD_BUFFER_POST_IO_INDEX_MASK (0x00003FFF)#define CMD_BUFFER_POST_IO_INDEX_MASK_0100 (0x000003FF) /* obsolete */typedef struct _MSG_TARGET_CMD_BUFFER_POST_REPLY{ U8 BufferPostFlags; /* 00h */ U8 BufferCount; /* 01h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U8 BufferLength; /* 04h */ U8 Reserved; /* 05h */ U8 Reserved1; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U16 Reserved2; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */} MSG_TARGET_CMD_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_TARGET_CMD_BUFFER_POST_REPLY, TargetCmdBufferPostReply_t, MPI_POINTER pTargetCmdBufferPostReply_t;/* the following structure is obsolete as of MPI v1.2 */typedef struct _MSG_PRIORITY_CMD_RECEIVED_REPLY{ U16 Reserved; /* 00h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U16 Reserved1; /* 04h */ U8 Reserved2; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U8 PriorityReason; /* 0Ch */ U8 Reserved3; /* 0Dh */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */ U32 ReplyWord; /* 14h */} MSG_PRIORITY_CMD_RECEIVED_REPLY, MPI_POINTER PTR_MSG_PRIORITY_CMD_RECEIVED_REPLY, PriorityCommandReceivedReply_t, MPI_POINTER pPriorityCommandReceivedReply_t;typedef struct _MSG_TARGET_CMD_BUFFER_POST_ERROR_REPLY{ U16 Reserved; /* 00h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U16 Reserved1; /* 04h */ U8 Reserved2; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U8 PriorityReason; /* 0Ch */ U8 Reserved3; /* 0Dh */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */ U32 ReplyWord; /* 14h */} MSG_TARGET_CMD_BUFFER_POST_ERROR_REPLY, MPI_POINTER PTR_MSG_TARGET_CMD_BUFFER_POST_ERROR_REPLY, TargetCmdBufferPostErrorReply_t, MPI_POINTER pTargetCmdBufferPostErrorReply_t;#define PRIORITY_REASON_NO_DISCONNECT (0x00)#define PRIORITY_REASON_SCSI_TASK_MANAGEMENT (0x01)#define PRIORITY_REASON_CMD_PARITY_ERR (0x02)#define PRIORITY_REASON_MSG_OUT_PARITY_ERR (0x03)#define PRIORITY_REASON_LQ_CRC_ERR (0x04)#define PRIORITY_REASON_CMD_CRC_ERR (0x05)#define PRIORITY_REASON_PROTOCOL_ERR (0x06)#define PRIORITY_REASON_DATA_OUT_PARITY_ERR (0x07)#define PRIORITY_REASON_DATA_OUT_CRC_ERR (0x08)#define PRIORITY_REASON_TARGET_BUSY (0x09)#define PRIORITY_REASON_UNKNOWN (0xFF)/****************************************************************************//* Target Command Buffer Post Base Request *//****************************************************************************/typedef struct _MSG_TARGET_CMD_BUF_POST_BASE_REQUEST{ U8 BufferPostFlags; /* 00h */ U8 PortNumber; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U16 TotalCmdBuffers; /* 04h */ U8 Reserved; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U32 Reserved1; /* 0Ch */ U16 CmdBufferLength; /* 10h */ U16 NextCmdBufferOffset; /* 12h */ U32 BaseAddressLow; /* 14h */ U32 BaseAddressHigh; /* 18h */} MSG_TARGET_CMD_BUF_POST_BASE_REQUEST, MPI_POINTER PTR__MSG_TARGET_CMD_BUF_POST_BASE_REQUEST, TargetCmdBufferPostBaseRequest_t, MPI_POINTER pTargetCmdBufferPostBaseRequest_t;#define CMD_BUFFER_POST_BASE_FLAGS_AUTO_POST_ALL (0x01)typedef struct _MSG_TARGET_CMD_BUFFER_POST_BASE_LIST_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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -