162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2000-2008 LSI Corporation. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Name: mpi_fc.h 762306a36Sopenharmony_ci * Title: MPI Fibre Channel messages and structures 862306a36Sopenharmony_ci * Creation Date: June 12, 2000 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * mpi_fc.h Version: 01.05.01 1162306a36Sopenharmony_ci * 1262306a36Sopenharmony_ci * Version History 1362306a36Sopenharmony_ci * --------------- 1462306a36Sopenharmony_ci * 1562306a36Sopenharmony_ci * Date Version Description 1662306a36Sopenharmony_ci * -------- -------- ------------------------------------------------------ 1762306a36Sopenharmony_ci * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. 1862306a36Sopenharmony_ci * 06-06-00 01.00.01 Update version number for 1.0 release. 1962306a36Sopenharmony_ci * 06-12-00 01.00.02 Added _MSG_FC_ABORT_REPLY structure. 2062306a36Sopenharmony_ci * 11-02-00 01.01.01 Original release for post 1.0 work 2162306a36Sopenharmony_ci * 12-04-00 01.01.02 Added messages for Common Transport Send and 2262306a36Sopenharmony_ci * Primitive Send. 2362306a36Sopenharmony_ci * 01-09-01 01.01.03 Modifed some of the new flags to have an MPI prefix 2462306a36Sopenharmony_ci * and modified the FcPrimitiveSend flags. 2562306a36Sopenharmony_ci * 01-25-01 01.01.04 Move InitiatorIndex in LinkServiceRsp reply to a larger 2662306a36Sopenharmony_ci * field. 2762306a36Sopenharmony_ci * Added FC_ABORT_TYPE_CT_SEND_REQUEST and 2862306a36Sopenharmony_ci * FC_ABORT_TYPE_EXLINKSEND_REQUEST for FcAbort request. 2962306a36Sopenharmony_ci * Added MPI_FC_PRIM_SEND_FLAGS_STOP_SEND. 3062306a36Sopenharmony_ci * 02-20-01 01.01.05 Started using MPI_POINTER. 3162306a36Sopenharmony_ci * 03-27-01 01.01.06 Added Flags field to MSG_LINK_SERVICE_BUFFER_POST_REPLY 3262306a36Sopenharmony_ci * and defined MPI_LS_BUF_POST_REPLY_FLAG_NO_RSP_NEEDED. 3362306a36Sopenharmony_ci * Added MPI_FC_PRIM_SEND_FLAGS_RESET_LINK define. 3462306a36Sopenharmony_ci * Added structure offset comments. 3562306a36Sopenharmony_ci * 04-09-01 01.01.07 Added RspLength field to MSG_LINK_SERVICE_RSP_REQUEST. 3662306a36Sopenharmony_ci * 08-08-01 01.02.01 Original release for v1.2 work. 3762306a36Sopenharmony_ci * 09-28-01 01.02.02 Change name of reserved field in 3862306a36Sopenharmony_ci * MSG_LINK_SERVICE_RSP_REPLY. 3962306a36Sopenharmony_ci * 05-31-02 01.02.03 Adding AliasIndex to FC Direct Access requests. 4062306a36Sopenharmony_ci * 01-16-04 01.02.04 Added define for MPI_FC_PRIM_SEND_FLAGS_ML_RESET_LINK. 4162306a36Sopenharmony_ci * 05-11-04 01.03.01 Original release for MPI v1.3. 4262306a36Sopenharmony_ci * 08-19-04 01.05.01 Original release for MPI v1.5. 4362306a36Sopenharmony_ci * -------------------------------------------------------------------------- 4462306a36Sopenharmony_ci */ 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci#ifndef MPI_FC_H 4762306a36Sopenharmony_ci#define MPI_FC_H 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci/***************************************************************************** 5162306a36Sopenharmony_ci* 5262306a36Sopenharmony_ci* F C D i r e c t A c c e s s M e s s a g e s 5362306a36Sopenharmony_ci* 5462306a36Sopenharmony_ci*****************************************************************************/ 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci/****************************************************************************/ 5762306a36Sopenharmony_ci/* Link Service Buffer Post messages */ 5862306a36Sopenharmony_ci/****************************************************************************/ 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_citypedef struct _MSG_LINK_SERVICE_BUFFER_POST_REQUEST 6162306a36Sopenharmony_ci{ 6262306a36Sopenharmony_ci U8 BufferPostFlags; /* 00h */ 6362306a36Sopenharmony_ci U8 BufferCount; /* 01h */ 6462306a36Sopenharmony_ci U8 ChainOffset; /* 02h */ 6562306a36Sopenharmony_ci U8 Function; /* 03h */ 6662306a36Sopenharmony_ci U16 Reserved; /* 04h */ 6762306a36Sopenharmony_ci U8 Reserved1; /* 06h */ 6862306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 6962306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 7062306a36Sopenharmony_ci SGE_TRANS_SIMPLE_UNION SGL; 7162306a36Sopenharmony_ci} MSG_LINK_SERVICE_BUFFER_POST_REQUEST, 7262306a36Sopenharmony_ci MPI_POINTER PTR_MSG_LINK_SERVICE_BUFFER_POST_REQUEST, 7362306a36Sopenharmony_ci LinkServiceBufferPostRequest_t, MPI_POINTER pLinkServiceBufferPostRequest_t; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci#define LINK_SERVICE_BUFFER_POST_FLAGS_PORT_MASK (0x01) 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_citypedef struct _WWNFORMAT 7862306a36Sopenharmony_ci{ 7962306a36Sopenharmony_ci U32 PortNameHigh; /* 00h */ 8062306a36Sopenharmony_ci U32 PortNameLow; /* 04h */ 8162306a36Sopenharmony_ci U32 NodeNameHigh; /* 08h */ 8262306a36Sopenharmony_ci U32 NodeNameLow; /* 0Ch */ 8362306a36Sopenharmony_ci} WWNFORMAT, 8462306a36Sopenharmony_ci WwnFormat_t; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci/* Link Service Buffer Post Reply */ 8762306a36Sopenharmony_citypedef struct _MSG_LINK_SERVICE_BUFFER_POST_REPLY 8862306a36Sopenharmony_ci{ 8962306a36Sopenharmony_ci U8 Flags; /* 00h */ 9062306a36Sopenharmony_ci U8 Reserved; /* 01h */ 9162306a36Sopenharmony_ci U8 MsgLength; /* 02h */ 9262306a36Sopenharmony_ci U8 Function; /* 03h */ 9362306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 9462306a36Sopenharmony_ci U8 PortNumber; /* 06h */ 9562306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 9662306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 9762306a36Sopenharmony_ci U16 Reserved2; /* 0Ch */ 9862306a36Sopenharmony_ci U16 IOCStatus; /* 0Eh */ 9962306a36Sopenharmony_ci U32 IOCLogInfo; /* 10h */ 10062306a36Sopenharmony_ci U32 TransferLength; /* 14h */ 10162306a36Sopenharmony_ci U32 TransactionContext; /* 18h */ 10262306a36Sopenharmony_ci U32 Rctl_Did; /* 1Ch */ 10362306a36Sopenharmony_ci U32 Csctl_Sid; /* 20h */ 10462306a36Sopenharmony_ci U32 Type_Fctl; /* 24h */ 10562306a36Sopenharmony_ci U16 SeqCnt; /* 28h */ 10662306a36Sopenharmony_ci U8 Dfctl; /* 2Ah */ 10762306a36Sopenharmony_ci U8 SeqId; /* 2Bh */ 10862306a36Sopenharmony_ci U16 Rxid; /* 2Ch */ 10962306a36Sopenharmony_ci U16 Oxid; /* 2Eh */ 11062306a36Sopenharmony_ci U32 Parameter; /* 30h */ 11162306a36Sopenharmony_ci WWNFORMAT Wwn; /* 34h */ 11262306a36Sopenharmony_ci} MSG_LINK_SERVICE_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_LINK_SERVICE_BUFFER_POST_REPLY, 11362306a36Sopenharmony_ci LinkServiceBufferPostReply_t, MPI_POINTER pLinkServiceBufferPostReply_t; 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci#define MPI_LS_BUF_POST_REPLY_FLAG_NO_RSP_NEEDED (0x80) 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci#define MPI_FC_DID_MASK (0x00FFFFFF) 11862306a36Sopenharmony_ci#define MPI_FC_DID_SHIFT (0) 11962306a36Sopenharmony_ci#define MPI_FC_RCTL_MASK (0xFF000000) 12062306a36Sopenharmony_ci#define MPI_FC_RCTL_SHIFT (24) 12162306a36Sopenharmony_ci#define MPI_FC_SID_MASK (0x00FFFFFF) 12262306a36Sopenharmony_ci#define MPI_FC_SID_SHIFT (0) 12362306a36Sopenharmony_ci#define MPI_FC_CSCTL_MASK (0xFF000000) 12462306a36Sopenharmony_ci#define MPI_FC_CSCTL_SHIFT (24) 12562306a36Sopenharmony_ci#define MPI_FC_FCTL_MASK (0x00FFFFFF) 12662306a36Sopenharmony_ci#define MPI_FC_FCTL_SHIFT (0) 12762306a36Sopenharmony_ci#define MPI_FC_TYPE_MASK (0xFF000000) 12862306a36Sopenharmony_ci#define MPI_FC_TYPE_SHIFT (24) 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci/* obsolete name for the above */ 13162306a36Sopenharmony_ci#define FCP_TARGET_DID_MASK (0x00FFFFFF) 13262306a36Sopenharmony_ci#define FCP_TARGET_DID_SHIFT (0) 13362306a36Sopenharmony_ci#define FCP_TARGET_RCTL_MASK (0xFF000000) 13462306a36Sopenharmony_ci#define FCP_TARGET_RCTL_SHIFT (24) 13562306a36Sopenharmony_ci#define FCP_TARGET_SID_MASK (0x00FFFFFF) 13662306a36Sopenharmony_ci#define FCP_TARGET_SID_SHIFT (0) 13762306a36Sopenharmony_ci#define FCP_TARGET_CSCTL_MASK (0xFF000000) 13862306a36Sopenharmony_ci#define FCP_TARGET_CSCTL_SHIFT (24) 13962306a36Sopenharmony_ci#define FCP_TARGET_FCTL_MASK (0x00FFFFFF) 14062306a36Sopenharmony_ci#define FCP_TARGET_FCTL_SHIFT (0) 14162306a36Sopenharmony_ci#define FCP_TARGET_TYPE_MASK (0xFF000000) 14262306a36Sopenharmony_ci#define FCP_TARGET_TYPE_SHIFT (24) 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci/****************************************************************************/ 14662306a36Sopenharmony_ci/* Link Service Response messages */ 14762306a36Sopenharmony_ci/****************************************************************************/ 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_citypedef struct _MSG_LINK_SERVICE_RSP_REQUEST 15062306a36Sopenharmony_ci{ 15162306a36Sopenharmony_ci U8 RspFlags; /* 00h */ 15262306a36Sopenharmony_ci U8 RspLength; /* 01h */ 15362306a36Sopenharmony_ci U8 ChainOffset; /* 02h */ 15462306a36Sopenharmony_ci U8 Function; /* 03h */ 15562306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 15662306a36Sopenharmony_ci U8 Reserved2; /* 06h */ 15762306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 15862306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 15962306a36Sopenharmony_ci U32 Rctl_Did; /* 0Ch */ 16062306a36Sopenharmony_ci U32 Csctl_Sid; /* 10h */ 16162306a36Sopenharmony_ci U32 Type_Fctl; /* 14h */ 16262306a36Sopenharmony_ci U16 SeqCnt; /* 18h */ 16362306a36Sopenharmony_ci U8 Dfctl; /* 1Ah */ 16462306a36Sopenharmony_ci U8 SeqId; /* 1Bh */ 16562306a36Sopenharmony_ci U16 Rxid; /* 1Ch */ 16662306a36Sopenharmony_ci U16 Oxid; /* 1Eh */ 16762306a36Sopenharmony_ci U32 Parameter; /* 20h */ 16862306a36Sopenharmony_ci SGE_SIMPLE_UNION SGL; /* 24h */ 16962306a36Sopenharmony_ci} MSG_LINK_SERVICE_RSP_REQUEST, MPI_POINTER PTR_MSG_LINK_SERVICE_RSP_REQUEST, 17062306a36Sopenharmony_ci LinkServiceRspRequest_t, MPI_POINTER pLinkServiceRspRequest_t; 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci#define LINK_SERVICE_RSP_FLAGS_IMMEDIATE (0x80) 17362306a36Sopenharmony_ci#define LINK_SERVICE_RSP_FLAGS_PORT_MASK (0x01) 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci/* Link Service Response Reply */ 17762306a36Sopenharmony_citypedef struct _MSG_LINK_SERVICE_RSP_REPLY 17862306a36Sopenharmony_ci{ 17962306a36Sopenharmony_ci U16 Reserved; /* 00h */ 18062306a36Sopenharmony_ci U8 MsgLength; /* 02h */ 18162306a36Sopenharmony_ci U8 Function; /* 03h */ 18262306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 18362306a36Sopenharmony_ci U8 Reserved_0100_InitiatorIndex; /* 06h */ /* obsolete InitiatorIndex */ 18462306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 18562306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 18662306a36Sopenharmony_ci U16 Reserved3; /* 0Ch */ 18762306a36Sopenharmony_ci U16 IOCStatus; /* 0Eh */ 18862306a36Sopenharmony_ci U32 IOCLogInfo; /* 10h */ 18962306a36Sopenharmony_ci U32 InitiatorIndex; /* 14h */ 19062306a36Sopenharmony_ci} MSG_LINK_SERVICE_RSP_REPLY, MPI_POINTER PTR_MSG_LINK_SERVICE_RSP_REPLY, 19162306a36Sopenharmony_ci LinkServiceRspReply_t, MPI_POINTER pLinkServiceRspReply_t; 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci/****************************************************************************/ 19562306a36Sopenharmony_ci/* Extended Link Service Send messages */ 19662306a36Sopenharmony_ci/****************************************************************************/ 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_citypedef struct _MSG_EXLINK_SERVICE_SEND_REQUEST 19962306a36Sopenharmony_ci{ 20062306a36Sopenharmony_ci U8 SendFlags; /* 00h */ 20162306a36Sopenharmony_ci U8 AliasIndex; /* 01h */ 20262306a36Sopenharmony_ci U8 ChainOffset; /* 02h */ 20362306a36Sopenharmony_ci U8 Function; /* 03h */ 20462306a36Sopenharmony_ci U32 MsgFlags_Did; /* 04h */ 20562306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 20662306a36Sopenharmony_ci U32 ElsCommandCode; /* 0Ch */ 20762306a36Sopenharmony_ci SGE_SIMPLE_UNION SGL; /* 10h */ 20862306a36Sopenharmony_ci} MSG_EXLINK_SERVICE_SEND_REQUEST, MPI_POINTER PTR_MSG_EXLINK_SERVICE_SEND_REQUEST, 20962306a36Sopenharmony_ci ExLinkServiceSendRequest_t, MPI_POINTER pExLinkServiceSendRequest_t; 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ci#define EX_LINK_SERVICE_SEND_DID_MASK (0x00FFFFFF) 21262306a36Sopenharmony_ci#define EX_LINK_SERVICE_SEND_DID_SHIFT (0) 21362306a36Sopenharmony_ci#define EX_LINK_SERVICE_SEND_MSGFLAGS_MASK (0xFF000000) 21462306a36Sopenharmony_ci#define EX_LINK_SERVICE_SEND_MSGFLAGS_SHIFT (24) 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci/* Extended Link Service Send Reply */ 21862306a36Sopenharmony_citypedef struct _MSG_EXLINK_SERVICE_SEND_REPLY 21962306a36Sopenharmony_ci{ 22062306a36Sopenharmony_ci U8 Reserved; /* 00h */ 22162306a36Sopenharmony_ci U8 AliasIndex; /* 01h */ 22262306a36Sopenharmony_ci U8 MsgLength; /* 02h */ 22362306a36Sopenharmony_ci U8 Function; /* 03h */ 22462306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 22562306a36Sopenharmony_ci U8 Reserved2; /* 06h */ 22662306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 22762306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 22862306a36Sopenharmony_ci U16 Reserved3; /* 0Ch */ 22962306a36Sopenharmony_ci U16 IOCStatus; /* 0Eh */ 23062306a36Sopenharmony_ci U32 IOCLogInfo; /* 10h */ 23162306a36Sopenharmony_ci U32 ResponseLength; /* 14h */ 23262306a36Sopenharmony_ci} MSG_EXLINK_SERVICE_SEND_REPLY, MPI_POINTER PTR_MSG_EXLINK_SERVICE_SEND_REPLY, 23362306a36Sopenharmony_ci ExLinkServiceSendReply_t, MPI_POINTER pExLinkServiceSendReply_t; 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci/****************************************************************************/ 23662306a36Sopenharmony_ci/* FC Abort messages */ 23762306a36Sopenharmony_ci/****************************************************************************/ 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_citypedef struct _MSG_FC_ABORT_REQUEST 24062306a36Sopenharmony_ci{ 24162306a36Sopenharmony_ci U8 AbortFlags; /* 00h */ 24262306a36Sopenharmony_ci U8 AbortType; /* 01h */ 24362306a36Sopenharmony_ci U8 ChainOffset; /* 02h */ 24462306a36Sopenharmony_ci U8 Function; /* 03h */ 24562306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 24662306a36Sopenharmony_ci U8 Reserved2; /* 06h */ 24762306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 24862306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 24962306a36Sopenharmony_ci U32 TransactionContextToAbort; /* 0Ch */ 25062306a36Sopenharmony_ci} MSG_FC_ABORT_REQUEST, MPI_POINTER PTR_MSG_FC_ABORT_REQUEST, 25162306a36Sopenharmony_ci FcAbortRequest_t, MPI_POINTER pFcAbortRequest_t; 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci#define FC_ABORT_FLAG_PORT_MASK (0x01) 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci#define FC_ABORT_TYPE_ALL_FC_BUFFERS (0x00) 25662306a36Sopenharmony_ci#define FC_ABORT_TYPE_EXACT_FC_BUFFER (0x01) 25762306a36Sopenharmony_ci#define FC_ABORT_TYPE_CT_SEND_REQUEST (0x02) 25862306a36Sopenharmony_ci#define FC_ABORT_TYPE_EXLINKSEND_REQUEST (0x03) 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci/* FC Abort Reply */ 26162306a36Sopenharmony_citypedef struct _MSG_FC_ABORT_REPLY 26262306a36Sopenharmony_ci{ 26362306a36Sopenharmony_ci U16 Reserved; /* 00h */ 26462306a36Sopenharmony_ci U8 MsgLength; /* 02h */ 26562306a36Sopenharmony_ci U8 Function; /* 03h */ 26662306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 26762306a36Sopenharmony_ci U8 Reserved2; /* 06h */ 26862306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 26962306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 27062306a36Sopenharmony_ci U16 Reserved3; /* 0Ch */ 27162306a36Sopenharmony_ci U16 IOCStatus; /* 0Eh */ 27262306a36Sopenharmony_ci U32 IOCLogInfo; /* 10h */ 27362306a36Sopenharmony_ci} MSG_FC_ABORT_REPLY, MPI_POINTER PTR_MSG_FC_ABORT_REPLY, 27462306a36Sopenharmony_ci FcAbortReply_t, MPI_POINTER pFcAbortReply_t; 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ci/****************************************************************************/ 27862306a36Sopenharmony_ci/* FC Common Transport Send messages */ 27962306a36Sopenharmony_ci/****************************************************************************/ 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_citypedef struct _MSG_FC_COMMON_TRANSPORT_SEND_REQUEST 28262306a36Sopenharmony_ci{ 28362306a36Sopenharmony_ci U8 SendFlags; /* 00h */ 28462306a36Sopenharmony_ci U8 AliasIndex; /* 01h */ 28562306a36Sopenharmony_ci U8 ChainOffset; /* 02h */ 28662306a36Sopenharmony_ci U8 Function; /* 03h */ 28762306a36Sopenharmony_ci U32 MsgFlags_Did; /* 04h */ 28862306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 28962306a36Sopenharmony_ci U16 CTCommandCode; /* 0Ch */ 29062306a36Sopenharmony_ci U8 FsType; /* 0Eh */ 29162306a36Sopenharmony_ci U8 Reserved1; /* 0Fh */ 29262306a36Sopenharmony_ci SGE_SIMPLE_UNION SGL; /* 10h */ 29362306a36Sopenharmony_ci} MSG_FC_COMMON_TRANSPORT_SEND_REQUEST, 29462306a36Sopenharmony_ci MPI_POINTER PTR_MSG_FC_COMMON_TRANSPORT_SEND_REQUEST, 29562306a36Sopenharmony_ci FcCommonTransportSendRequest_t, MPI_POINTER pFcCommonTransportSendRequest_t; 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci#define MPI_FC_CT_SEND_DID_MASK (0x00FFFFFF) 29862306a36Sopenharmony_ci#define MPI_FC_CT_SEND_DID_SHIFT (0) 29962306a36Sopenharmony_ci#define MPI_FC_CT_SEND_MSGFLAGS_MASK (0xFF000000) 30062306a36Sopenharmony_ci#define MPI_FC_CT_SEND_MSGFLAGS_SHIFT (24) 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_ci/* FC Common Transport Send Reply */ 30462306a36Sopenharmony_citypedef struct _MSG_FC_COMMON_TRANSPORT_SEND_REPLY 30562306a36Sopenharmony_ci{ 30662306a36Sopenharmony_ci U8 Reserved; /* 00h */ 30762306a36Sopenharmony_ci U8 AliasIndex; /* 01h */ 30862306a36Sopenharmony_ci U8 MsgLength; /* 02h */ 30962306a36Sopenharmony_ci U8 Function; /* 03h */ 31062306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 31162306a36Sopenharmony_ci U8 Reserved2; /* 06h */ 31262306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 31362306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 31462306a36Sopenharmony_ci U16 Reserved3; /* 0Ch */ 31562306a36Sopenharmony_ci U16 IOCStatus; /* 0Eh */ 31662306a36Sopenharmony_ci U32 IOCLogInfo; /* 10h */ 31762306a36Sopenharmony_ci U32 ResponseLength; /* 14h */ 31862306a36Sopenharmony_ci} MSG_FC_COMMON_TRANSPORT_SEND_REPLY, MPI_POINTER PTR_MSG_FC_COMMON_TRANSPORT_SEND_REPLY, 31962306a36Sopenharmony_ci FcCommonTransportSendReply_t, MPI_POINTER pFcCommonTransportSendReply_t; 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ci/****************************************************************************/ 32362306a36Sopenharmony_ci/* FC Primitive Send messages */ 32462306a36Sopenharmony_ci/****************************************************************************/ 32562306a36Sopenharmony_ci 32662306a36Sopenharmony_citypedef struct _MSG_FC_PRIMITIVE_SEND_REQUEST 32762306a36Sopenharmony_ci{ 32862306a36Sopenharmony_ci U8 SendFlags; /* 00h */ 32962306a36Sopenharmony_ci U8 Reserved; /* 01h */ 33062306a36Sopenharmony_ci U8 ChainOffset; /* 02h */ 33162306a36Sopenharmony_ci U8 Function; /* 03h */ 33262306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 33362306a36Sopenharmony_ci U8 Reserved2; /* 06h */ 33462306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 33562306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 33662306a36Sopenharmony_ci U8 FcPrimitive[4]; /* 0Ch */ 33762306a36Sopenharmony_ci} MSG_FC_PRIMITIVE_SEND_REQUEST, MPI_POINTER PTR_MSG_FC_PRIMITIVE_SEND_REQUEST, 33862306a36Sopenharmony_ci FcPrimitiveSendRequest_t, MPI_POINTER pFcPrimitiveSendRequest_t; 33962306a36Sopenharmony_ci 34062306a36Sopenharmony_ci#define MPI_FC_PRIM_SEND_FLAGS_PORT_MASK (0x01) 34162306a36Sopenharmony_ci#define MPI_FC_PRIM_SEND_FLAGS_ML_RESET_LINK (0x02) 34262306a36Sopenharmony_ci#define MPI_FC_PRIM_SEND_FLAGS_RESET_LINK (0x04) 34362306a36Sopenharmony_ci#define MPI_FC_PRIM_SEND_FLAGS_STOP_SEND (0x08) 34462306a36Sopenharmony_ci#define MPI_FC_PRIM_SEND_FLAGS_SEND_ONCE (0x10) 34562306a36Sopenharmony_ci#define MPI_FC_PRIM_SEND_FLAGS_SEND_AROUND (0x20) 34662306a36Sopenharmony_ci#define MPI_FC_PRIM_SEND_FLAGS_UNTIL_FULL (0x40) 34762306a36Sopenharmony_ci#define MPI_FC_PRIM_SEND_FLAGS_FOREVER (0x80) 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ci/* FC Primitive Send Reply */ 35062306a36Sopenharmony_citypedef struct _MSG_FC_PRIMITIVE_SEND_REPLY 35162306a36Sopenharmony_ci{ 35262306a36Sopenharmony_ci U8 SendFlags; /* 00h */ 35362306a36Sopenharmony_ci U8 Reserved; /* 01h */ 35462306a36Sopenharmony_ci U8 MsgLength; /* 02h */ 35562306a36Sopenharmony_ci U8 Function; /* 03h */ 35662306a36Sopenharmony_ci U16 Reserved1; /* 04h */ 35762306a36Sopenharmony_ci U8 Reserved2; /* 06h */ 35862306a36Sopenharmony_ci U8 MsgFlags; /* 07h */ 35962306a36Sopenharmony_ci U32 MsgContext; /* 08h */ 36062306a36Sopenharmony_ci U16 Reserved3; /* 0Ch */ 36162306a36Sopenharmony_ci U16 IOCStatus; /* 0Eh */ 36262306a36Sopenharmony_ci U32 IOCLogInfo; /* 10h */ 36362306a36Sopenharmony_ci} MSG_FC_PRIMITIVE_SEND_REPLY, MPI_POINTER PTR_MSG_FC_PRIMITIVE_SEND_REPLY, 36462306a36Sopenharmony_ci FcPrimitiveSendReply_t, MPI_POINTER pFcPrimitiveSendReply_t; 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci#endif 36762306a36Sopenharmony_ci 368