📄 mpi_targ.h
字号:
/* * Copyright (c) 2000-2001 LSI Logic Corporation. * * * Name: MPI_TARG.H * Title: MPI Target mode messages and structures * Creation Date: June 22, 2000 * * MPI Version: 01.01.04 * * 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. * -------------------------------------------------------------------------- */#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)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;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;#define PRIORITY_REASON_NO_DISCONNECT (0x00)#define PRIORITY_REASON_SCSI_TASK_MANAGEMENT (0x01)#define PRIORITY_REASON_UNKNOWN (0xFF)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 */ U16 Reserved3; /* 0Ch */ 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;typedef struct _MPI_TARGET_FCP_CMD_BUFFER{ U8 FcpLun[8]; /* 00h */ U8 FcpCntl[4]; /* 08h */ U8 FcpCdb[16]; /* 0Ch */ U32 FcpDl; /* 1Ch */} MPI_TARGET_FCP_CMD_BUFFER, MPI_POINTER PTR_MPI_TARGET_FCP_CMD_BUFFER, MpiTargetFcpCmdBuffer, MPI_POINTER pMpiTargetFcpCmdBuffer;typedef struct _MPI_TARGET_SCSI_SPI_CMD_BUFFER{ /* SPI L_Q information unit */ U8 L_QType; /* 00h */ U8 Reserved; /* 01h */ U16 Tag; /* 02h */ U8 LogicalUnitNumber[8]; /* 04h */ U32 DataLength; /* 0Ch */ /* SPI command information unit */ U8 ReservedFirstByteOfCommandIU; /* 10h */ U8 TaskAttribute; /* 11h */ U8 TaskManagementFlags; /* 12h */ U8 AdditionalCDBLength; /* 13h */ U8 CDB[16]; /* 14h */} MPI_TARGET_SCSI_SPI_CMD_BUFFER,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -