#ifndef MPI30_TARG_H
#define MPI30_TARG_H 1
typedef struct _MPI3_TARGET_SSP_CMD_BUFFER
{
U8 FrameType;
U8 Reserved01;
U16 InitiatorConnectionTag;
U32 HashedSourceSASAddress;
U16 Reserved08;
U16 Flags;
U32 Reserved0C;
U16 Tag;
U16 TargetPortTransferTag;
U32 DataOffset;
U8 LogicalUnitNumber[8];
U8 Reserved20;
U8 TaskAttribute;
U8 Reserved22;
U8 AdditionalCDBLength;
U8 CDB[16];
} MPI3_TARGET_SSP_CMD_BUFFER, MPI3_POINTER PTR_MPI3_TARGET_SSP_CMD_BUFFER,
Mpi3TargetSspCmdBuffer_t, MPI3_POINTER pMpi3TargetSspCmdBuffer_t;
typedef struct _MPI3_TARGET_SSP_TASK_BUFFER
{
U8 FrameType;
U8 Reserved01;
U16 InitiatorConnectionTag;
U32 HashedSourceSASAddress;
U16 Reserved08;
U16 Flags;
U32 Reserved0C;
U16 Tag;
U16 TargetPortTransferTag;
U32 DataOffset;
U8 LogicalUnitNumber[8];
U16 Reserved20;
U8 TaskManagementFunction;
U8 Reserved23;
U16 ManagedTaskTag;
U16 Reserved26;
U32 Reserved28[3];
} MPI3_TARGET_SSP_TASK_BUFFER, MPI3_POINTER PTR_MPI3_TARGET_SSP_TASK_BUFFER,
Mpi3TargetSspTaskBuffer_t, MPI3_POINTER pMpi3TargetSspTaskBuffer_t;
#define MPI3_TARGET_FRAME_TYPE_COMMAND (0x06)
#define MPI3_TARGET_FRAME_TYPE_TASK (0x16)
#define MPI3_TARGET_HASHED_SAS_ADDRESS_MASK (0xFFFFFF00)
#define MPI3_TARGET_HASHED_SAS_ADDRESS_SHIFT (8)
typedef struct _MPI3_TARGET_CMD_BUF_POST_BASE_REQUEST
{
U16 HostTag;
U8 IOCUseOnly02;
U8 Function;
U16 IOCUseOnly04;
U8 IOCUseOnly06;
U8 MsgFlags;
U16 ChangeCount;
U8 BufferPostFlags;
U8 Reserved0B;
U16 MinReplyQueueID;
U16 MaxReplyQueueID;
U64 BaseAddress;
U16 CmdBufferLength;
U16 TotalCmdBuffers;
U32 Reserved1C;
} MPI3_TARGET_CMD_BUF_POST_BASE_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_CMD_BUF_POST_BASE_REQUEST,
Mpi3TargetCmdBufPostBaseRequest_t, MPI3_POINTER pMpi3TargetCmdBufPostBaseRequest_t;
#define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_MASK (0x0C)
#define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_SHIFT (2)
#define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_SYSTEM (0x00)
#define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_IOCUDP (0x04)
#define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_IOCCTL (0x08)
#define MPI3_CMD_BUF_POST_BASE_FLAGS_AUTO_POST_ALL (0x01)
#define MPI3_CMD_BUF_POST_BASE_MIN_BUF_LENGTH (0x34)
#define MPI3_CMD_BUF_POST_BASE_MAX_BUF_LENGTH (0x3FC)
typedef struct _MPI3_TARGET_CMD_BUF_POST_LIST_REQUEST
{
U16 HostTag;
U8 IOCUseOnly02;
U8 Function;
U16 IOCUseOnly04;
U8 IOCUseOnly06;
U8 MsgFlags;
U16 ChangeCount;
U16 Reserved0A;
U8 CmdBufferCount;
U8 Reserved0D[3];
U16 IoIndex[2];
} MPI3_TARGET_CMD_BUF_POST_LIST_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_CMD_BUF_POST_LIST_REQUEST,
Mpi3TargetCmdBufPostListRequest_t, MPI3_POINTER pMpi3TargetCmdBufPostListRequest_t;
typedef struct _MPI3_TARGET_CMD_BUF_POST_REPLY
{
U16 HostTag;
U8 IOCUseOnly02;
U8 Function;
U16 IOCUseOnly04;
U8 IOCUseOnly06;
U8 MsgFlags;
U16 IOCUseOnly08;
U16 IOCStatus;
U32 IOCLogInfo;
U8 CmdBufferCount;
U8 Reserved11[3];
U16 IoIndex[2];
} MPI3_TARGET_CMD_BUF_POST_REPLY, MPI3_POINTER PTR_MPI3_TARGET_CMD_BUF_POST_REPLY,
Mpi3TargetCmdBufPostReply_t, MPI3_POINTER pMpi3TargetCmdBufPostReply_t;
typedef struct _MPI3_TARGET_ASSIST_REQUEST
{
U16 HostTag;
U8 IOCUseOnly02;
U8 Function;
U16 IOCUseOnly04;
U8 IOCUseOnly06;
U8 MsgFlags;
U16 ChangeCount;
U16 DevHandle;
U32 Flags;
U16 Reserved10;
U16 QueueTag;
U16 IoIndex;
U16 InitiatorConnectionTag;
U32 IOCUseOnly18;
U32 DataLength;
U32 PortTransferLength;
U32 PrimaryReferenceTag;
U16 PrimaryApplicationTag;
U16 PrimaryApplicationTagMask;
U32 RelativeOffset;
MPI3_SGE_UNION SGL[5];
} MPI3_TARGET_ASSIST_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_ASSIST_REQUEST,
Mpi3TargetAssistRequest_t, MPI3_POINTER pMpi3TargetAssistRequest_t;
#define MPI3_TARGET_ASSIST_MSGFLAGS_METASGL_VALID (0x80)
#define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_23_MASK (0x00800000)
#define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_23_SHIFT (23)
#define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_22_MASK (0x00400000)
#define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_22_SHIFT (22)
#define MPI3_TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER (0x00200000)
#define MPI3_TARGET_ASSIST_FLAGS_AUTO_STATUS (0x00100000)
#define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_MASK (0x000C0000)
#define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_SHIFT (18)
#define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_WRITE (0x00040000)
#define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_READ (0x00080000)
#define MPI3_TARGET_ASSIST_FLAGS_DMAOPERATION_MASK (0x00030000)
#define MPI3_TARGET_ASSIST_FLAGS_DMAOPERATION_SHIFT (16)
#define MPI3_TARGET_ASSIST_FLAGS_DMAOPERATION_HOST_PI (0x00010000)
#define MPI3_TARGET_ASSIST_METASGL_INDEX (4)
typedef struct _MPI3_TARGET_STATUS_SEND_REQUEST
{
U16 HostTag;
U8 IOCUseOnly02;
U8 Function;
U16 IOCUseOnly04;
U8 IOCUseOnly06;
U8 MsgFlags;
U16 ChangeCount;
U16 DevHandle;
U16 ResponseIULength;
U16 Flags;
U16 Reserved10;
U16 QueueTag;
U16 IoIndex;
U16 InitiatorConnectionTag;
U32 IOCUseOnly18[6];
U32 IOCUseOnly30[4];
MPI3_SGE_UNION SGL;
} MPI3_TARGET_STATUS_SEND_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_STATUS_SEND_REQUEST,
Mpi3TargetStatusSendRequest_t, MPI3_POINTER pMpi3TargetStatusSendRequest_t;
#define MPI3_TSS_FLAGS_IOC_USE_ONLY_6_MASK (0x0040)
#define MPI3_TSS_FLAGS_IOC_USE_ONLY_6_SHIFT (6)
#define MPI3_TSS_FLAGS_REPOST_CMD_BUFFER (0x0020)
#define MPI3_TSS_FLAGS_AUTO_SEND_GOOD_STATUS (0x0010)
typedef struct _MPI3_TARGET_STANDARD_REPLY
{
U16 HostTag;
U8 IOCUseOnly02;
U8 Function;
U16 IOCUseOnly04;
U8 IOCUseOnly06;
U8 MsgFlags;
U16 IOCUseOnly08;
U16 IOCStatus;
U32 IOCLogInfo;
U32 TransferCount;
} MPI3_TARGET_STANDARD_REPLY, MPI3_POINTER PTR_MPI3_TARGET_STANDARD_REPLY,
Mpi3TargetStandardReply_t, MPI3_POINTER pMpi3TargetStandardReply_t;
typedef struct _MPI3_TARGET_MODE_ABORT_REQUEST
{
U16 HostTag;
U8 IOCUseOnly02;
U8 Function;
U16 IOCUseOnly04;
U8 IOCUseOnly06;
U8 MsgFlags;
U16 ChangeCount;
U8 AbortType;
U8 Reserved0B;
U16 RequestQueueIDToAbort;
U16 HostTagToAbort;
U16 DevHandle;
U8 IOCUseOnly12;
U8 Reserved13;
} MPI3_TARGET_MODE_ABORT_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_MODE_ABORT_REQUEST,
Mpi3TargetModeAbortRequest_t, MPI3_POINTER pMpi3TargetModeAbortRequest_t;
#define MPI3_TARGET_MODE_ABORT_ALL_CMD_BUFFERS (0x00)
#define MPI3_TARGET_MODE_ABORT_EXACT_IO_REQUEST (0x01)
#define MPI3_TARGET_MODE_ABORT_ALL_COMMANDS (0x02)
#define MPI3_TARGET_MODE_ABORT_ALL_COMMANDS_DEVHANDLE (0x03)
typedef struct _MPI3_TARGET_MODE_ABORT_REPLY
{
U16 HostTag;
U8 IOCUseOnly02;
U8 Function;
U16 IOCUseOnly04;
U8 IOCUseOnly06;
U8 MsgFlags;
U16 IOCUseOnly08;
U16 IOCStatus;
U32 IOCLogInfo;
U32 AbortCount;
} MPI3_TARGET_MODE_ABORT_REPLY, MPI3_POINTER PTR_MPI3_TARGET_MODE_ABORT_REPLY,
Mpi3TargetModeAbortReply_t, MPI3_POINTER pMpi3TargetModeAbortReply_t;
#endif