1 /* 2 * Copyright (c) 2003 LSI Logic Corporation. 3 * 4 * 5 * Name: mpi_inb.h 6 * Title: MPI Inband structures and definitions 7 * Creation Date: September 30, 2003 8 * 9 * mpi_inb.h Version: 01.03.xx 10 * 11 * Version History 12 * --------------- 13 * 14 * Date Version Description 15 * -------- -------- ------------------------------------------------------ 16 * ??-??-?? 01.03.01 Original release. 17 * -------------------------------------------------------------------------- 18 */ 19 20 #ifndef MPI_INB_H 21 #define MPI_INB_H 22 23 /****************************************************************************** 24 * 25 * I n b a n d M e s s a g e s 26 * 27 *******************************************************************************/ 28 29 30 /****************************************************************************/ 31 /* Inband Buffer Post Request */ 32 /****************************************************************************/ 33 34 typedef struct _MSG_INBAND_BUFFER_POST_REQUEST 35 { 36 U8 Reserved1; /* 00h */ 37 U8 BufferCount; /* 01h */ 38 U8 ChainOffset; /* 02h */ 39 U8 Function; /* 03h */ 40 U16 Reserved2; /* 04h */ 41 U8 Reserved3; /* 06h */ 42 U8 MsgFlags; /* 07h */ 43 U32 MsgContext; /* 08h */ 44 U32 Reserved4; /* 0Ch */ 45 SGE_TRANS_SIMPLE_UNION SGL; /* 10h */ 46 } MSG_INBAND_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_INBAND_BUFFER_POST_REQUEST, 47 MpiInbandBufferPostRequest_t , MPI_POINTER pMpiInbandBufferPostRequest_t; 48 49 50 typedef struct _WWN_FC_FORMAT 51 { 52 U64 NodeName; /* 00h */ 53 U64 PortName; /* 08h */ 54 } WWN_FC_FORMAT, MPI_POINTER PTR_WWN_FC_FORMAT, 55 WwnFcFormat_t, MPI_POINTER pWwnFcFormat_t; 56 57 typedef struct _WWN_SAS_FORMAT 58 { 59 U64 WorldWideID; /* 00h */ 60 U32 Reserved1; /* 08h */ 61 U32 Reserved2; /* 0Ch */ 62 } WWN_SAS_FORMAT, MPI_POINTER PTR_WWN_SAS_FORMAT, 63 WwnSasFormat_t, MPI_POINTER pWwnSasFormat_t; 64 65 typedef union _WWN_INBAND_FORMAT 66 { 67 WWN_FC_FORMAT Fc; 68 WWN_SAS_FORMAT Sas; 69 } WWN_INBAND_FORMAT, MPI_POINTER PTR_WWN_INBAND_FORMAT, 70 WwnInbandFormat, MPI_POINTER pWwnInbandFormat; 71 72 73 /* Inband Buffer Post reply message */ 74 75 typedef struct _MSG_INBAND_BUFFER_POST_REPLY 76 { 77 U16 Reserved1; /* 00h */ 78 U8 MsgLength; /* 02h */ 79 U8 Function; /* 03h */ 80 U16 Reserved2; /* 04h */ 81 U8 Reserved3; /* 06h */ 82 U8 MsgFlags; /* 07h */ 83 U32 MsgContext; /* 08h */ 84 U16 Reserved4; /* 0Ch */ 85 U16 IOCStatus; /* 0Eh */ 86 U32 IOCLogInfo; /* 10h */ 87 U32 TransferLength; /* 14h */ 88 U32 TransactionContext; /* 18h */ 89 WWN_INBAND_FORMAT Wwn; /* 1Ch */ 90 U32 IOCIdentifier[4]; /* 2Ch */ 91 } MSG_INBAND_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_INBAND_BUFFER_POST_REPLY, 92 MpiInbandBufferPostReply_t, MPI_POINTER pMpiInbandBufferPostReply_t; 93 94 95 /****************************************************************************/ 96 /* Inband Send Request */ 97 /****************************************************************************/ 98 99 typedef struct _MSG_INBAND_SEND_REQUEST 100 { 101 U16 Reserved1; /* 00h */ 102 U8 ChainOffset; /* 02h */ 103 U8 Function; /* 03h */ 104 U16 Reserved2; /* 04h */ 105 U8 Reserved3; /* 06h */ 106 U8 MsgFlags; /* 07h */ 107 U32 MsgContext; /* 08h */ 108 U32 Reserved4; /* 0Ch */ 109 WWN_INBAND_FORMAT Wwn; /* 10h */ 110 U32 Reserved5; /* 20h */ 111 SGE_IO_UNION SGL; /* 24h */ 112 } MSG_INBAND_SEND_REQUEST, MPI_POINTER PTR_MSG_INBAND_SEND_REQUEST, 113 MpiInbandSendRequest_t , MPI_POINTER pMpiInbandSendRequest_t; 114 115 116 /* Inband Send reply message */ 117 118 typedef struct _MSG_INBAND_SEND_REPLY 119 { 120 U16 Reserved1; /* 00h */ 121 U8 MsgLength; /* 02h */ 122 U8 Function; /* 03h */ 123 U16 Reserved2; /* 04h */ 124 U8 Reserved3; /* 06h */ 125 U8 MsgFlags; /* 07h */ 126 U32 MsgContext; /* 08h */ 127 U16 Reserved4; /* 0Ch */ 128 U16 IOCStatus; /* 0Eh */ 129 U32 IOCLogInfo; /* 10h */ 130 U32 ResponseLength; /* 14h */ 131 } MSG_INBAND_SEND_REPLY, MPI_POINTER PTR_MSG_INBAND_SEND_REPLY, 132 MpiInbandSendReply_t, MPI_POINTER pMpiInbandSendReply_t; 133 134 135 /****************************************************************************/ 136 /* Inband Response Request */ 137 /****************************************************************************/ 138 139 typedef struct _MSG_INBAND_RSP_REQUEST 140 { 141 U16 Reserved1; /* 00h */ 142 U8 ChainOffset; /* 02h */ 143 U8 Function; /* 03h */ 144 U16 Reserved2; /* 04h */ 145 U8 Reserved3; /* 06h */ 146 U8 MsgFlags; /* 07h */ 147 U32 MsgContext; /* 08h */ 148 U32 Reserved4; /* 0Ch */ 149 WWN_INBAND_FORMAT Wwn; /* 10h */ 150 U32 IOCIdentifier[4]; /* 20h */ 151 U32 ResponseLength; /* 30h */ 152 SGE_IO_UNION SGL; /* 34h */ 153 } MSG_INBAND_RSP_REQUEST, MPI_POINTER PTR_MSG_INBAND_RSP_REQUEST, 154 MpiInbandRspRequest_t , MPI_POINTER pMpiInbandRspRequest_t; 155 156 157 /* Inband Response reply message */ 158 159 typedef struct _MSG_INBAND_RSP_REPLY 160 { 161 U16 Reserved1; /* 00h */ 162 U8 MsgLength; /* 02h */ 163 U8 Function; /* 03h */ 164 U16 Reserved2; /* 04h */ 165 U8 Reserved3; /* 06h */ 166 U8 MsgFlags; /* 07h */ 167 U32 MsgContext; /* 08h */ 168 U16 Reserved4; /* 0Ch */ 169 U16 IOCStatus; /* 0Eh */ 170 U32 IOCLogInfo; /* 10h */ 171 } MSG_INBAND_RSP_REPLY, MPI_POINTER PTR_MSG_INBAND_RSP_REPLY, 172 MpiInbandRspReply_t, MPI_POINTER pMpiInbandRspReply_t; 173 174 175 /****************************************************************************/ 176 /* Inband Abort Request */ 177 /****************************************************************************/ 178 179 typedef struct _MSG_INBAND_ABORT_REQUEST 180 { 181 U8 Reserved1; /* 00h */ 182 U8 AbortType; /* 01h */ 183 U8 ChainOffset; /* 02h */ 184 U8 Function; /* 03h */ 185 U16 Reserved2; /* 04h */ 186 U8 Reserved3; /* 06h */ 187 U8 MsgFlags; /* 07h */ 188 U32 MsgContext; /* 08h */ 189 U32 Reserved4; /* 0Ch */ 190 U32 ContextToAbort; /* 10h */ 191 } MSG_INBAND_ABORT_REQUEST, MPI_POINTER PTR_MSG_INBAND_ABORT_REQUEST, 192 MpiInbandAbortRequest_t , MPI_POINTER pMpiInbandAbortRequest_t; 193 194 #define MPI_INBAND_ABORT_TYPE_ALL_BUFFERS (0x00) 195 #define MPI_INBAND_ABORT_TYPE_EXACT_BUFFER (0x01) 196 #define MPI_INBAND_ABORT_TYPE_SEND_REQUEST (0x02) 197 #define MPI_INBAND_ABORT_TYPE_RESPONSE_REQUEST (0x03) 198 199 200 /* Inband Abort reply message */ 201 202 typedef struct _MSG_INBAND_ABORT_REPLY 203 { 204 U8 Reserved1; /* 00h */ 205 U8 AbortType; /* 01h */ 206 U8 MsgLength; /* 02h */ 207 U8 Function; /* 03h */ 208 U16 Reserved2; /* 04h */ 209 U8 Reserved3; /* 06h */ 210 U8 MsgFlags; /* 07h */ 211 U32 MsgContext; /* 08h */ 212 U16 Reserved4; /* 0Ch */ 213 U16 IOCStatus; /* 0Eh */ 214 U32 IOCLogInfo; /* 10h */ 215 } MSG_INBAND_ABORT_REPLY, MPI_POINTER PTR_MSG_INBAND_ABORT_REPLY, 216 MpiInbandAbortReply_t, MPI_POINTER pMpiInbandAbortReply_t; 217 218 219 #endif 220 221