12d1d418eSSumit Saxena /* 2*baabb919SChandrakanth patil * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 32d1d418eSSumit Saxena * 4*baabb919SChandrakanth patil * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. 52d1d418eSSumit Saxena * Support: <fbsd-storage-driver.pdl@broadcom.com> 62d1d418eSSumit Saxena * 72d1d418eSSumit Saxena * Redistribution and use in source and binary forms, with or without 82d1d418eSSumit Saxena * modification, are permitted provided that the following conditions are 92d1d418eSSumit Saxena * met: 102d1d418eSSumit Saxena * 112d1d418eSSumit Saxena * 1. Redistributions of source code must retain the above copyright notice, 122d1d418eSSumit Saxena * this list of conditions and the following disclaimer. 132d1d418eSSumit Saxena * 2. Redistributions in binary form must reproduce the above copyright notice, 142d1d418eSSumit Saxena * this list of conditions and the following disclaimer in the documentation and/or other 152d1d418eSSumit Saxena * materials provided with the distribution. 162d1d418eSSumit Saxena * 3. Neither the name of the Broadcom Inc. nor the names of its contributors 172d1d418eSSumit Saxena * may be used to endorse or promote products derived from this software without 182d1d418eSSumit Saxena * specific prior written permission. 192d1d418eSSumit Saxena * 202d1d418eSSumit Saxena * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 212d1d418eSSumit Saxena * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 222d1d418eSSumit Saxena * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 232d1d418eSSumit Saxena * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 242d1d418eSSumit Saxena * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 252d1d418eSSumit Saxena * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 262d1d418eSSumit Saxena * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 272d1d418eSSumit Saxena * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 282d1d418eSSumit Saxena * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 292d1d418eSSumit Saxena * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 302d1d418eSSumit Saxena * POSSIBILITY OF SUCH DAMAGE. 312d1d418eSSumit Saxena * 322d1d418eSSumit Saxena * The views and conclusions contained in the software and documentation are 332d1d418eSSumit Saxena * those of the authors and should not be interpreted as representing 342d1d418eSSumit Saxena * official policies,either expressed or implied, of the FreeBSD Project. 352d1d418eSSumit Saxena * 362d1d418eSSumit Saxena * Mail to: Broadcom Inc 1320 Ridder Park Dr, San Jose, CA 95131 372d1d418eSSumit Saxena * 382d1d418eSSumit Saxena * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD 392d1d418eSSumit Saxena * 402d1d418eSSumit Saxena */ 412d1d418eSSumit Saxena #ifndef MPI30_TARG_H 422d1d418eSSumit Saxena #define MPI30_TARG_H 1 432d1d418eSSumit Saxena 442d1d418eSSumit Saxena /***************************************************************************** 452d1d418eSSumit Saxena * Command Buffer Formats * 462d1d418eSSumit Saxena ****************************************************************************/ 472d1d418eSSumit Saxena typedef struct _MPI3_TARGET_SSP_CMD_BUFFER 482d1d418eSSumit Saxena { 492d1d418eSSumit Saxena U8 FrameType; /* 0x00 */ 502d1d418eSSumit Saxena U8 Reserved01; /* 0x01 */ 512d1d418eSSumit Saxena U16 InitiatorConnectionTag; /* 0x02 */ 522d1d418eSSumit Saxena U32 HashedSourceSASAddress; /* 0x04 */ 532d1d418eSSumit Saxena U16 Reserved08; /* 0x08 */ 542d1d418eSSumit Saxena U16 Flags; /* 0x0A */ 552d1d418eSSumit Saxena U32 Reserved0C; /* 0x0C */ 562d1d418eSSumit Saxena U16 Tag; /* 0x10 */ 572d1d418eSSumit Saxena U16 TargetPortTransferTag; /* 0x12 */ 582d1d418eSSumit Saxena U32 DataOffset; /* 0x14 */ 592d1d418eSSumit Saxena U8 LogicalUnitNumber[8]; /* 0x18 */ 602d1d418eSSumit Saxena U8 Reserved20; /* 0x20 */ 612d1d418eSSumit Saxena U8 TaskAttribute; /* 0x21 */ 622d1d418eSSumit Saxena U8 Reserved22; /* 0x22 */ 632d1d418eSSumit Saxena U8 AdditionalCDBLength; /* 0x23 */ 642d1d418eSSumit Saxena U8 CDB[16]; /* 0x24 */ 652d1d418eSSumit Saxena /* AdditionalCDBBytes field starts here */ /* 0x34 */ 662d1d418eSSumit Saxena } MPI3_TARGET_SSP_CMD_BUFFER, MPI3_POINTER PTR_MPI3_TARGET_SSP_CMD_BUFFER, 672d1d418eSSumit Saxena Mpi3TargetSspCmdBuffer_t, MPI3_POINTER pMpi3TargetSspCmdBuffer_t; 682d1d418eSSumit Saxena 692d1d418eSSumit Saxena typedef struct _MPI3_TARGET_SSP_TASK_BUFFER 702d1d418eSSumit Saxena { 712d1d418eSSumit Saxena U8 FrameType; /* 0x00 */ 722d1d418eSSumit Saxena U8 Reserved01; /* 0x01 */ 732d1d418eSSumit Saxena U16 InitiatorConnectionTag; /* 0x02 */ 742d1d418eSSumit Saxena U32 HashedSourceSASAddress; /* 0x04 */ 752d1d418eSSumit Saxena U16 Reserved08; /* 0x08 */ 762d1d418eSSumit Saxena U16 Flags; /* 0x0A */ 772d1d418eSSumit Saxena U32 Reserved0C; /* 0x0C */ 782d1d418eSSumit Saxena U16 Tag; /* 0x10 */ 792d1d418eSSumit Saxena U16 TargetPortTransferTag; /* 0x12 */ 802d1d418eSSumit Saxena U32 DataOffset; /* 0x14 */ 812d1d418eSSumit Saxena U8 LogicalUnitNumber[8]; /* 0x18 */ 822d1d418eSSumit Saxena U16 Reserved20; /* 0x20 */ 832d1d418eSSumit Saxena U8 TaskManagementFunction; /* 0x22 */ 842d1d418eSSumit Saxena U8 Reserved23; /* 0x23 */ 852d1d418eSSumit Saxena U16 ManagedTaskTag; /* 0x24 */ 862d1d418eSSumit Saxena U16 Reserved26; /* 0x26 */ 872d1d418eSSumit Saxena U32 Reserved28[3]; /* 0x28 */ 882d1d418eSSumit Saxena } MPI3_TARGET_SSP_TASK_BUFFER, MPI3_POINTER PTR_MPI3_TARGET_SSP_TASK_BUFFER, 892d1d418eSSumit Saxena Mpi3TargetSspTaskBuffer_t, MPI3_POINTER pMpi3TargetSspTaskBuffer_t; 902d1d418eSSumit Saxena 912d1d418eSSumit Saxena /**** Defines for the FrameType field ****/ 922d1d418eSSumit Saxena #define MPI3_TARGET_FRAME_TYPE_COMMAND (0x06) 932d1d418eSSumit Saxena #define MPI3_TARGET_FRAME_TYPE_TASK (0x16) 942d1d418eSSumit Saxena 952d1d418eSSumit Saxena /**** Defines for the HashedSourceSASAddress field ****/ 962d1d418eSSumit Saxena #define MPI3_TARGET_HASHED_SAS_ADDRESS_MASK (0xFFFFFF00) 972d1d418eSSumit Saxena #define MPI3_TARGET_HASHED_SAS_ADDRESS_SHIFT (8) 982d1d418eSSumit Saxena 992d1d418eSSumit Saxena 1002d1d418eSSumit Saxena /***************************************************************************** 1012d1d418eSSumit Saxena * Target Command Buffer Post Base Request Message * 1022d1d418eSSumit Saxena ****************************************************************************/ 1032d1d418eSSumit Saxena typedef struct _MPI3_TARGET_CMD_BUF_POST_BASE_REQUEST 1042d1d418eSSumit Saxena { 1052d1d418eSSumit Saxena U16 HostTag; /* 0x00 */ 1062d1d418eSSumit Saxena U8 IOCUseOnly02; /* 0x02 */ 1072d1d418eSSumit Saxena U8 Function; /* 0x03 */ 1082d1d418eSSumit Saxena U16 IOCUseOnly04; /* 0x04 */ 1092d1d418eSSumit Saxena U8 IOCUseOnly06; /* 0x06 */ 1102d1d418eSSumit Saxena U8 MsgFlags; /* 0x07 */ 1112d1d418eSSumit Saxena U16 ChangeCount; /* 0x08 */ 1122d1d418eSSumit Saxena U8 BufferPostFlags; /* 0x0A */ 1132d1d418eSSumit Saxena U8 Reserved0B; /* 0x0B */ 1142d1d418eSSumit Saxena U16 MinReplyQueueID; /* 0x0C */ 1152d1d418eSSumit Saxena U16 MaxReplyQueueID; /* 0x0E */ 1162d1d418eSSumit Saxena U64 BaseAddress; /* 0x10 */ 1172d1d418eSSumit Saxena U16 CmdBufferLength; /* 0x18 */ 1182d1d418eSSumit Saxena U16 TotalCmdBuffers; /* 0x1A */ 1192d1d418eSSumit Saxena U32 Reserved1C; /* 0x1C */ 1202d1d418eSSumit Saxena } MPI3_TARGET_CMD_BUF_POST_BASE_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_CMD_BUF_POST_BASE_REQUEST, 1212d1d418eSSumit Saxena Mpi3TargetCmdBufPostBaseRequest_t, MPI3_POINTER pMpi3TargetCmdBufPostBaseRequest_t; 1222d1d418eSSumit Saxena 1232d1d418eSSumit Saxena /**** Defines for the BufferPostFlags field ****/ 1242d1d418eSSumit Saxena #define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_MASK (0x0C) 1252d1d418eSSumit Saxena #define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_SYSTEM (0x00) 1262d1d418eSSumit Saxena #define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_IOCUDP (0x04) 1272d1d418eSSumit Saxena #define MPI3_CMD_BUF_POST_BASE_FLAGS_DLAS_IOCCTL (0x08) 1282d1d418eSSumit Saxena #define MPI3_CMD_BUF_POST_BASE_FLAGS_AUTO_POST_ALL (0x01) 1292d1d418eSSumit Saxena 1302d1d418eSSumit Saxena /**** Defines for the CmdBufferLength field ****/ 1312d1d418eSSumit Saxena #define MPI3_CMD_BUF_POST_BASE_MIN_BUF_LENGTH (0x34) 1322d1d418eSSumit Saxena #define MPI3_CMD_BUF_POST_BASE_MAX_BUF_LENGTH (0x3FC) 1332d1d418eSSumit Saxena 1342d1d418eSSumit Saxena /***************************************************************************** 1352d1d418eSSumit Saxena * Target Command Buffer Post List Request Message * 1362d1d418eSSumit Saxena ****************************************************************************/ 1372d1d418eSSumit Saxena typedef struct _MPI3_TARGET_CMD_BUF_POST_LIST_REQUEST 1382d1d418eSSumit Saxena { 1392d1d418eSSumit Saxena U16 HostTag; /* 0x00 */ 1402d1d418eSSumit Saxena U8 IOCUseOnly02; /* 0x02 */ 1412d1d418eSSumit Saxena U8 Function; /* 0x03 */ 1422d1d418eSSumit Saxena U16 IOCUseOnly04; /* 0x04 */ 1432d1d418eSSumit Saxena U8 IOCUseOnly06; /* 0x06 */ 1442d1d418eSSumit Saxena U8 MsgFlags; /* 0x07 */ 1452d1d418eSSumit Saxena U16 ChangeCount; /* 0x08 */ 1462d1d418eSSumit Saxena U16 Reserved0A; /* 0x0A */ 1472d1d418eSSumit Saxena U8 CmdBufferCount; /* 0x0C */ 1482d1d418eSSumit Saxena U8 Reserved0D[3]; /* 0x0D */ 1492d1d418eSSumit Saxena U16 IoIndex[2]; /* 0x10 */ 1502d1d418eSSumit Saxena } MPI3_TARGET_CMD_BUF_POST_LIST_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_CMD_BUF_POST_LIST_REQUEST, 1512d1d418eSSumit Saxena Mpi3TargetCmdBufPostListRequest_t, MPI3_POINTER pMpi3TargetCmdBufPostListRequest_t; 1522d1d418eSSumit Saxena 1532d1d418eSSumit Saxena 1542d1d418eSSumit Saxena /***************************************************************************** 1552d1d418eSSumit Saxena * Target Command Buffer Post Base List Reply Message * 1562d1d418eSSumit Saxena ****************************************************************************/ 1572d1d418eSSumit Saxena typedef struct _MPI3_TARGET_CMD_BUF_POST_REPLY 1582d1d418eSSumit Saxena { 1592d1d418eSSumit Saxena U16 HostTag; /* 0x00 */ 1602d1d418eSSumit Saxena U8 IOCUseOnly02; /* 0x02 */ 1612d1d418eSSumit Saxena U8 Function; /* 0x03 */ 1622d1d418eSSumit Saxena U16 IOCUseOnly04; /* 0x04 */ 1632d1d418eSSumit Saxena U8 IOCUseOnly06; /* 0x06 */ 1642d1d418eSSumit Saxena U8 MsgFlags; /* 0x07 */ 1652d1d418eSSumit Saxena U16 IOCUseOnly08; /* 0x08 */ 1662d1d418eSSumit Saxena U16 IOCStatus; /* 0x0A */ 1672d1d418eSSumit Saxena U32 IOCLogInfo; /* 0x0C */ 1682d1d418eSSumit Saxena U8 CmdBufferCount; /* 0x10 */ 1692d1d418eSSumit Saxena U8 Reserved11[3]; /* 0x11 */ 1702d1d418eSSumit Saxena U16 IoIndex[2]; /* 0x14 */ 1712d1d418eSSumit Saxena } MPI3_TARGET_CMD_BUF_POST_REPLY, MPI3_POINTER PTR_MPI3_TARGET_CMD_BUF_POST_REPLY, 1722d1d418eSSumit Saxena Mpi3TargetCmdBufPostReply_t, MPI3_POINTER pMpi3TargetCmdBufPostReply_t; 1732d1d418eSSumit Saxena 1742d1d418eSSumit Saxena 1752d1d418eSSumit Saxena /***************************************************************************** 1762d1d418eSSumit Saxena * Target Assist Request Message * 1772d1d418eSSumit Saxena ****************************************************************************/ 1782d1d418eSSumit Saxena typedef struct _MPI3_TARGET_ASSIST_REQUEST 1792d1d418eSSumit Saxena { 1802d1d418eSSumit Saxena U16 HostTag; /* 0x00 */ 1812d1d418eSSumit Saxena U8 IOCUseOnly02; /* 0x02 */ 1822d1d418eSSumit Saxena U8 Function; /* 0x03 */ 1832d1d418eSSumit Saxena U16 IOCUseOnly04; /* 0x04 */ 1842d1d418eSSumit Saxena U8 IOCUseOnly06; /* 0x06 */ 1852d1d418eSSumit Saxena U8 MsgFlags; /* 0x07 */ 1862d1d418eSSumit Saxena U16 ChangeCount; /* 0x08 */ 1872d1d418eSSumit Saxena U16 DevHandle; /* 0x0A */ 1882d1d418eSSumit Saxena U32 Flags; /* 0x0C */ 1892d1d418eSSumit Saxena U16 Reserved10; /* 0x10 */ 1902d1d418eSSumit Saxena U16 QueueTag; /* 0x12 */ 1912d1d418eSSumit Saxena U16 IoIndex; /* 0x14 */ 1922d1d418eSSumit Saxena U16 InitiatorConnectionTag; /* 0x16 */ 193*baabb919SChandrakanth patil U32 IOCUseOnly18; /* 0x18 */ 1942d1d418eSSumit Saxena U32 DataLength; /* 0x1C */ 1952d1d418eSSumit Saxena U32 PortTransferLength; /* 0x20 */ 1962d1d418eSSumit Saxena U32 PrimaryReferenceTag; /* 0x24 */ 1972d1d418eSSumit Saxena U16 PrimaryApplicationTag; /* 0x28 */ 1982d1d418eSSumit Saxena U16 PrimaryApplicationTagMask; /* 0x2A */ 1992d1d418eSSumit Saxena U32 RelativeOffset; /* 0x2C */ 2002d1d418eSSumit Saxena MPI3_SGE_UNION SGL[5]; /* 0x30 */ 2012d1d418eSSumit Saxena } MPI3_TARGET_ASSIST_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_ASSIST_REQUEST, 2022d1d418eSSumit Saxena Mpi3TargetAssistRequest_t, MPI3_POINTER pMpi3TargetAssistRequest_t; 2032d1d418eSSumit Saxena 2042d1d418eSSumit Saxena /**** Defines for the MsgFlags field ****/ 2052d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_MSGFLAGS_METASGL_VALID (0x80) 2062d1d418eSSumit Saxena 2072d1d418eSSumit Saxena /**** Defines for the Flags field ****/ 208*baabb919SChandrakanth patil #define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_23_MASK (0x00800000) 209*baabb919SChandrakanth patil #define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_22_MASK (0x00400000) 2102d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER (0x00200000) 2112d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_FLAGS_AUTO_STATUS (0x00100000) 2122d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_MASK (0x000C0000) 2132d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_WRITE (0x00040000) 2142d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_READ (0x00080000) 2152d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_FLAGS_DMAOPERATION_MASK (0x00030000) 2162d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_FLAGS_DMAOPERATION_HOST_PI (0x00010000) 2172d1d418eSSumit Saxena 2182d1d418eSSumit Saxena /**** Defines for the SGL field ****/ 2192d1d418eSSumit Saxena #define MPI3_TARGET_ASSIST_METASGL_INDEX (4) 2202d1d418eSSumit Saxena 2212d1d418eSSumit Saxena /***************************************************************************** 2222d1d418eSSumit Saxena * Target Status Send Request Message * 2232d1d418eSSumit Saxena ****************************************************************************/ 2242d1d418eSSumit Saxena typedef struct _MPI3_TARGET_STATUS_SEND_REQUEST 2252d1d418eSSumit Saxena { 2262d1d418eSSumit Saxena U16 HostTag; /* 0x00 */ 2272d1d418eSSumit Saxena U8 IOCUseOnly02; /* 0x02 */ 2282d1d418eSSumit Saxena U8 Function; /* 0x03 */ 2292d1d418eSSumit Saxena U16 IOCUseOnly04; /* 0x04 */ 2302d1d418eSSumit Saxena U8 IOCUseOnly06; /* 0x06 */ 2312d1d418eSSumit Saxena U8 MsgFlags; /* 0x07 */ 2322d1d418eSSumit Saxena U16 ChangeCount; /* 0x08 */ 2332d1d418eSSumit Saxena U16 DevHandle; /* 0x0A */ 2342d1d418eSSumit Saxena U16 ResponseIULength; /* 0x0C */ 2352d1d418eSSumit Saxena U16 Flags; /* 0x0E */ 2362d1d418eSSumit Saxena U16 Reserved10; /* 0x10 */ 2372d1d418eSSumit Saxena U16 QueueTag; /* 0x12 */ 2382d1d418eSSumit Saxena U16 IoIndex; /* 0x14 */ 2392d1d418eSSumit Saxena U16 InitiatorConnectionTag; /* 0x16 */ 2402d1d418eSSumit Saxena U32 IOCUseOnly18[6]; /* 0x18 */ 2412d1d418eSSumit Saxena U32 IOCUseOnly30[4]; /* 0x30 */ 2422d1d418eSSumit Saxena MPI3_SGE_UNION SGL; /* 0x40 */ 2432d1d418eSSumit Saxena } MPI3_TARGET_STATUS_SEND_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_STATUS_SEND_REQUEST, 2442d1d418eSSumit Saxena Mpi3TargetStatusSendRequest_t, MPI3_POINTER pMpi3TargetStatusSendRequest_t; 2452d1d418eSSumit Saxena 2462d1d418eSSumit Saxena /**** Defines for the Flags field ****/ 247*baabb919SChandrakanth patil #define MPI3_TSS_FLAGS_IOC_USE_ONLY_6_MASK (0x0040) 2482d1d418eSSumit Saxena #define MPI3_TSS_FLAGS_REPOST_CMD_BUFFER (0x0020) 2492d1d418eSSumit Saxena #define MPI3_TSS_FLAGS_AUTO_SEND_GOOD_STATUS (0x0010) 2502d1d418eSSumit Saxena 2512d1d418eSSumit Saxena 2522d1d418eSSumit Saxena /***************************************************************************** 2532d1d418eSSumit Saxena * Standard Target Mode Reply Message * 2542d1d418eSSumit Saxena ****************************************************************************/ 2552d1d418eSSumit Saxena typedef struct _MPI3_TARGET_STANDARD_REPLY 2562d1d418eSSumit Saxena { 2572d1d418eSSumit Saxena U16 HostTag; /* 0x00 */ 2582d1d418eSSumit Saxena U8 IOCUseOnly02; /* 0x02 */ 2592d1d418eSSumit Saxena U8 Function; /* 0x03 */ 2602d1d418eSSumit Saxena U16 IOCUseOnly04; /* 0x04 */ 2612d1d418eSSumit Saxena U8 IOCUseOnly06; /* 0x06 */ 2622d1d418eSSumit Saxena U8 MsgFlags; /* 0x07 */ 2632d1d418eSSumit Saxena U16 IOCUseOnly08; /* 0x08 */ 2642d1d418eSSumit Saxena U16 IOCStatus; /* 0x0A */ 2652d1d418eSSumit Saxena U32 IOCLogInfo; /* 0x0C */ 2662d1d418eSSumit Saxena U32 TransferCount; /* 0x10 */ 2672d1d418eSSumit Saxena } MPI3_TARGET_STANDARD_REPLY, MPI3_POINTER PTR_MPI3_TARGET_STANDARD_REPLY, 2682d1d418eSSumit Saxena Mpi3TargetStandardReply_t, MPI3_POINTER pMpi3TargetStandardReply_t; 2692d1d418eSSumit Saxena 2702d1d418eSSumit Saxena 2712d1d418eSSumit Saxena /***************************************************************************** 2722d1d418eSSumit Saxena * Target Mode Abort Request Message * 2732d1d418eSSumit Saxena ****************************************************************************/ 2742d1d418eSSumit Saxena typedef struct _MPI3_TARGET_MODE_ABORT_REQUEST 2752d1d418eSSumit Saxena { 2762d1d418eSSumit Saxena U16 HostTag; /* 0x00 */ 2772d1d418eSSumit Saxena U8 IOCUseOnly02; /* 0x02 */ 2782d1d418eSSumit Saxena U8 Function; /* 0x03 */ 2792d1d418eSSumit Saxena U16 IOCUseOnly04; /* 0x04 */ 2802d1d418eSSumit Saxena U8 IOCUseOnly06; /* 0x06 */ 2812d1d418eSSumit Saxena U8 MsgFlags; /* 0x07 */ 2822d1d418eSSumit Saxena U16 ChangeCount; /* 0x08 */ 2832d1d418eSSumit Saxena U8 AbortType; /* 0x0A */ 2842d1d418eSSumit Saxena U8 Reserved0B; /* 0x0B */ 2852d1d418eSSumit Saxena U16 RequestQueueIDToAbort; /* 0x0C */ 2862d1d418eSSumit Saxena U16 HostTagToAbort; /* 0x0E */ 2872d1d418eSSumit Saxena U16 DevHandle; /* 0x10 */ 2882d1d418eSSumit Saxena U8 IOCUseOnly12; /* 0x12 */ 2892d1d418eSSumit Saxena U8 Reserved13; /* 0x13 */ 2902d1d418eSSumit Saxena } MPI3_TARGET_MODE_ABORT_REQUEST, MPI3_POINTER PTR_MPI3_TARGET_MODE_ABORT_REQUEST, 2912d1d418eSSumit Saxena Mpi3TargetModeAbortRequest_t, MPI3_POINTER pMpi3TargetModeAbortRequest_t; 2922d1d418eSSumit Saxena 2932d1d418eSSumit Saxena /**** Defines for the AbortType field ****/ 2942d1d418eSSumit Saxena #define MPI3_TARGET_MODE_ABORT_ALL_CMD_BUFFERS (0x00) 2952d1d418eSSumit Saxena #define MPI3_TARGET_MODE_ABORT_EXACT_IO_REQUEST (0x01) 2962d1d418eSSumit Saxena #define MPI3_TARGET_MODE_ABORT_ALL_COMMANDS (0x02) 2972d1d418eSSumit Saxena 2982d1d418eSSumit Saxena 2992d1d418eSSumit Saxena /***************************************************************************** 3002d1d418eSSumit Saxena * Target Mode Abort Reply Message * 3012d1d418eSSumit Saxena ****************************************************************************/ 3022d1d418eSSumit Saxena typedef struct _MPI3_TARGET_MODE_ABORT_REPLY 3032d1d418eSSumit Saxena { 3042d1d418eSSumit Saxena U16 HostTag; /* 0x00 */ 3052d1d418eSSumit Saxena U8 IOCUseOnly02; /* 0x02 */ 3062d1d418eSSumit Saxena U8 Function; /* 0x03 */ 3072d1d418eSSumit Saxena U16 IOCUseOnly04; /* 0x04 */ 3082d1d418eSSumit Saxena U8 IOCUseOnly06; /* 0x06 */ 3092d1d418eSSumit Saxena U8 MsgFlags; /* 0x07 */ 3102d1d418eSSumit Saxena U16 IOCUseOnly08; /* 0x08 */ 3112d1d418eSSumit Saxena U16 IOCStatus; /* 0x0A */ 3122d1d418eSSumit Saxena U32 IOCLogInfo; /* 0x0C */ 3132d1d418eSSumit Saxena U32 AbortCount; /* 0x10 */ 3142d1d418eSSumit Saxena } MPI3_TARGET_MODE_ABORT_REPLY, MPI3_POINTER PTR_MPI3_TARGET_MODE_ABORT_REPLY, 3152d1d418eSSumit Saxena Mpi3TargetModeAbortReply_t, MPI3_POINTER pMpi3TargetModeAbortReply_t; 3162d1d418eSSumit Saxena 3172d1d418eSSumit Saxena #endif /* MPI30_TARG_H */ 3182d1d418eSSumit Saxena 319