1 /* 2 * Copyright (c) 2000-2014 LSI Corporation. 3 * 4 * 5 * Name: mpi2_tool.h 6 * Title: MPI diagnostic tool structures and definitions 7 * Creation Date: March 26, 2007 8 * 9 * mpi2_tool.h Version: 02.00.11 10 * 11 * Version History 12 * --------------- 13 * 14 * Date Version Description 15 * -------- -------- ------------------------------------------------------ 16 * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A. 17 * 12-18-07 02.00.01 Added Diagnostic Buffer Post and Diagnostic Release 18 * structures and defines. 19 * 02-29-08 02.00.02 Modified various names to make them 32-character unique. 20 * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. 21 * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request 22 * and reply messages. 23 * Added MPI2_DIAG_BUF_TYPE_EXTENDED. 24 * Incremented MPI2_DIAG_BUF_TYPE_COUNT. 25 * 05-12-10 02.00.05 Added Diagnostic Data Upload tool. 26 * 08-11-10 02.00.06 Added defines that were missing for Diagnostic Buffer 27 * Post Request. 28 * 05-25-11 02.00.07 Added Flags field and related defines to 29 * MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST. 30 * 11-18-11 02.00.08 Incorporating additions for MPI v2.5. 31 * 07-10-12 02.00.09 Add MPI v2.5 Toolbox Diagnostic CLI Tool Request 32 * message. 33 * 07-26-12 02.00.10 Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that 34 * it uses MPI Chain SGE as well as MPI Simple SGE. 35 * 08-19-13 02.00.11 Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info. 36 * -------------------------------------------------------------------------- 37 */ 38 39 #ifndef MPI2_TOOL_H 40 #define MPI2_TOOL_H 41 42 /***************************************************************************** 43 * 44 * Toolbox Messages 45 * 46 *****************************************************************************/ 47 48 /*defines for the Tools */ 49 #define MPI2_TOOLBOX_CLEAN_TOOL (0x00) 50 #define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01) 51 #define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02) 52 #define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03) 53 #define MPI2_TOOLBOX_BEACON_TOOL (0x05) 54 #define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06) 55 #define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL (0x07) 56 57 /**************************************************************************** 58 * Toolbox reply 59 ****************************************************************************/ 60 61 typedef struct _MPI2_TOOLBOX_REPLY { 62 U8 Tool; /*0x00 */ 63 U8 Reserved1; /*0x01 */ 64 U8 MsgLength; /*0x02 */ 65 U8 Function; /*0x03 */ 66 U16 Reserved2; /*0x04 */ 67 U8 Reserved3; /*0x06 */ 68 U8 MsgFlags; /*0x07 */ 69 U8 VP_ID; /*0x08 */ 70 U8 VF_ID; /*0x09 */ 71 U16 Reserved4; /*0x0A */ 72 U16 Reserved5; /*0x0C */ 73 U16 IOCStatus; /*0x0E */ 74 U32 IOCLogInfo; /*0x10 */ 75 } MPI2_TOOLBOX_REPLY, *PTR_MPI2_TOOLBOX_REPLY, 76 Mpi2ToolboxReply_t, *pMpi2ToolboxReply_t; 77 78 /**************************************************************************** 79 * Toolbox Clean Tool request 80 ****************************************************************************/ 81 82 typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST { 83 U8 Tool; /*0x00 */ 84 U8 Reserved1; /*0x01 */ 85 U8 ChainOffset; /*0x02 */ 86 U8 Function; /*0x03 */ 87 U16 Reserved2; /*0x04 */ 88 U8 Reserved3; /*0x06 */ 89 U8 MsgFlags; /*0x07 */ 90 U8 VP_ID; /*0x08 */ 91 U8 VF_ID; /*0x09 */ 92 U16 Reserved4; /*0x0A */ 93 U32 Flags; /*0x0C */ 94 } MPI2_TOOLBOX_CLEAN_REQUEST, *PTR_MPI2_TOOLBOX_CLEAN_REQUEST, 95 Mpi2ToolboxCleanRequest_t, *pMpi2ToolboxCleanRequest_t; 96 97 /*values for the Flags field */ 98 #define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000) 99 #define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000) 100 #define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000) 101 #define MPI2_TOOLBOX_CLEAN_FW_CURRENT (0x10000000) 102 #define MPI2_TOOLBOX_CLEAN_FW_BACKUP (0x08000000) 103 #define MPI2_TOOLBOX_CLEAN_MEGARAID (0x02000000) 104 #define MPI2_TOOLBOX_CLEAN_INITIALIZATION (0x01000000) 105 #define MPI2_TOOLBOX_CLEAN_FLASH (0x00000004) 106 #define MPI2_TOOLBOX_CLEAN_SEEPROM (0x00000002) 107 #define MPI2_TOOLBOX_CLEAN_NVSRAM (0x00000001) 108 109 /**************************************************************************** 110 * Toolbox Memory Move request 111 ****************************************************************************/ 112 113 typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST { 114 U8 Tool; /*0x00 */ 115 U8 Reserved1; /*0x01 */ 116 U8 ChainOffset; /*0x02 */ 117 U8 Function; /*0x03 */ 118 U16 Reserved2; /*0x04 */ 119 U8 Reserved3; /*0x06 */ 120 U8 MsgFlags; /*0x07 */ 121 U8 VP_ID; /*0x08 */ 122 U8 VF_ID; /*0x09 */ 123 U16 Reserved4; /*0x0A */ 124 MPI2_SGE_SIMPLE_UNION SGL; /*0x0C */ 125 } MPI2_TOOLBOX_MEM_MOVE_REQUEST, *PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST, 126 Mpi2ToolboxMemMoveRequest_t, *pMpi2ToolboxMemMoveRequest_t; 127 128 /**************************************************************************** 129 * Toolbox Diagnostic Data Upload request 130 ****************************************************************************/ 131 132 typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST { 133 U8 Tool; /*0x00 */ 134 U8 Reserved1; /*0x01 */ 135 U8 ChainOffset; /*0x02 */ 136 U8 Function; /*0x03 */ 137 U16 Reserved2; /*0x04 */ 138 U8 Reserved3; /*0x06 */ 139 U8 MsgFlags; /*0x07 */ 140 U8 VP_ID; /*0x08 */ 141 U8 VF_ID; /*0x09 */ 142 U16 Reserved4; /*0x0A */ 143 U8 SGLFlags; /*0x0C */ 144 U8 Reserved5; /*0x0D */ 145 U16 Reserved6; /*0x0E */ 146 U32 Flags; /*0x10 */ 147 U32 DataLength; /*0x14 */ 148 MPI2_SGE_SIMPLE_UNION SGL; /*0x18 */ 149 } MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, 150 *PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, 151 Mpi2ToolboxDiagDataUploadRequest_t, 152 *pMpi2ToolboxDiagDataUploadRequest_t; 153 154 /*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ 155 156 typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER { 157 U32 DiagDataLength; /*00h */ 158 U8 FormatCode; /*04h */ 159 U8 Reserved1; /*05h */ 160 U16 Reserved2; /*06h */ 161 } MPI2_DIAG_DATA_UPLOAD_HEADER, *PTR_MPI2_DIAG_DATA_UPLOAD_HEADER, 162 Mpi2DiagDataUploadHeader_t, *pMpi2DiagDataUploadHeader_t; 163 164 /**************************************************************************** 165 * Toolbox ISTWI Read Write Tool 166 ****************************************************************************/ 167 168 /*Toolbox ISTWI Read Write Tool request message */ 169 typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST { 170 U8 Tool; /*0x00 */ 171 U8 Reserved1; /*0x01 */ 172 U8 ChainOffset; /*0x02 */ 173 U8 Function; /*0x03 */ 174 U16 Reserved2; /*0x04 */ 175 U8 Reserved3; /*0x06 */ 176 U8 MsgFlags; /*0x07 */ 177 U8 VP_ID; /*0x08 */ 178 U8 VF_ID; /*0x09 */ 179 U16 Reserved4; /*0x0A */ 180 U32 Reserved5; /*0x0C */ 181 U32 Reserved6; /*0x10 */ 182 U8 DevIndex; /*0x14 */ 183 U8 Action; /*0x15 */ 184 U8 SGLFlags; /*0x16 */ 185 U8 Flags; /*0x17 */ 186 U16 TxDataLength; /*0x18 */ 187 U16 RxDataLength; /*0x1A */ 188 U32 Reserved8; /*0x1C */ 189 U32 Reserved9; /*0x20 */ 190 U32 Reserved10; /*0x24 */ 191 U32 Reserved11; /*0x28 */ 192 U32 Reserved12; /*0x2C */ 193 MPI2_SGE_SIMPLE_UNION SGL; /*0x30 */ 194 } MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST, 195 *PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST, 196 Mpi2ToolboxIstwiReadWriteRequest_t, 197 *pMpi2ToolboxIstwiReadWriteRequest_t; 198 199 /*values for the Action field */ 200 #define MPI2_TOOL_ISTWI_ACTION_READ_DATA (0x01) 201 #define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA (0x02) 202 #define MPI2_TOOL_ISTWI_ACTION_SEQUENCE (0x03) 203 #define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS (0x10) 204 #define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11) 205 #define MPI2_TOOL_ISTWI_ACTION_RESET (0x12) 206 207 /*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ 208 209 /*values for the Flags field */ 210 #define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE (0x80) 211 #define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK (0x07) 212 213 /*Toolbox ISTWI Read Write Tool reply message */ 214 typedef struct _MPI2_TOOLBOX_ISTWI_REPLY { 215 U8 Tool; /*0x00 */ 216 U8 Reserved1; /*0x01 */ 217 U8 MsgLength; /*0x02 */ 218 U8 Function; /*0x03 */ 219 U16 Reserved2; /*0x04 */ 220 U8 Reserved3; /*0x06 */ 221 U8 MsgFlags; /*0x07 */ 222 U8 VP_ID; /*0x08 */ 223 U8 VF_ID; /*0x09 */ 224 U16 Reserved4; /*0x0A */ 225 U16 Reserved5; /*0x0C */ 226 U16 IOCStatus; /*0x0E */ 227 U32 IOCLogInfo; /*0x10 */ 228 U8 DevIndex; /*0x14 */ 229 U8 Action; /*0x15 */ 230 U8 IstwiStatus; /*0x16 */ 231 U8 Reserved6; /*0x17 */ 232 U16 TxDataCount; /*0x18 */ 233 U16 RxDataCount; /*0x1A */ 234 } MPI2_TOOLBOX_ISTWI_REPLY, *PTR_MPI2_TOOLBOX_ISTWI_REPLY, 235 Mpi2ToolboxIstwiReply_t, *pMpi2ToolboxIstwiReply_t; 236 237 /**************************************************************************** 238 * Toolbox Beacon Tool request 239 ****************************************************************************/ 240 241 typedef struct _MPI2_TOOLBOX_BEACON_REQUEST { 242 U8 Tool; /*0x00 */ 243 U8 Reserved1; /*0x01 */ 244 U8 ChainOffset; /*0x02 */ 245 U8 Function; /*0x03 */ 246 U16 Reserved2; /*0x04 */ 247 U8 Reserved3; /*0x06 */ 248 U8 MsgFlags; /*0x07 */ 249 U8 VP_ID; /*0x08 */ 250 U8 VF_ID; /*0x09 */ 251 U16 Reserved4; /*0x0A */ 252 U8 Reserved5; /*0x0C */ 253 U8 PhysicalPort; /*0x0D */ 254 U8 Reserved6; /*0x0E */ 255 U8 Flags; /*0x0F */ 256 } MPI2_TOOLBOX_BEACON_REQUEST, *PTR_MPI2_TOOLBOX_BEACON_REQUEST, 257 Mpi2ToolboxBeaconRequest_t, *pMpi2ToolboxBeaconRequest_t; 258 259 /*values for the Flags field */ 260 #define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF (0x00) 261 #define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON (0x01) 262 263 /**************************************************************************** 264 * Toolbox Diagnostic CLI Tool 265 ****************************************************************************/ 266 267 #define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH (0x5C) 268 269 /*MPI v2.0 Toolbox Diagnostic CLI Tool request message */ 270 typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST { 271 U8 Tool; /*0x00 */ 272 U8 Reserved1; /*0x01 */ 273 U8 ChainOffset; /*0x02 */ 274 U8 Function; /*0x03 */ 275 U16 Reserved2; /*0x04 */ 276 U8 Reserved3; /*0x06 */ 277 U8 MsgFlags; /*0x07 */ 278 U8 VP_ID; /*0x08 */ 279 U8 VF_ID; /*0x09 */ 280 U16 Reserved4; /*0x0A */ 281 U8 SGLFlags; /*0x0C */ 282 U8 Reserved5; /*0x0D */ 283 U16 Reserved6; /*0x0E */ 284 U32 DataLength; /*0x10 */ 285 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];/*0x14 */ 286 MPI2_MPI_SGE_IO_UNION SGL; /*0x70 */ 287 } MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, 288 *PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, 289 Mpi2ToolboxDiagnosticCliRequest_t, 290 *pMpi2ToolboxDiagnosticCliRequest_t; 291 292 /*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ 293 294 /*MPI v2.5 Toolbox Diagnostic CLI Tool request message */ 295 typedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST { 296 U8 Tool; /*0x00 */ 297 U8 Reserved1; /*0x01 */ 298 U8 ChainOffset; /*0x02 */ 299 U8 Function; /*0x03 */ 300 U16 Reserved2; /*0x04 */ 301 U8 Reserved3; /*0x06 */ 302 U8 MsgFlags; /*0x07 */ 303 U8 VP_ID; /*0x08 */ 304 U8 VF_ID; /*0x09 */ 305 U16 Reserved4; /*0x0A */ 306 U32 Reserved5; /*0x0C */ 307 U32 DataLength; /*0x10 */ 308 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];/*0x14 */ 309 MPI25_SGE_IO_UNION SGL; /* 0x70 */ 310 } MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, 311 *PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, 312 Mpi25ToolboxDiagnosticCliRequest_t, 313 *pMpi25ToolboxDiagnosticCliRequest_t; 314 315 /*Toolbox Diagnostic CLI Tool reply message */ 316 typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY { 317 U8 Tool; /*0x00 */ 318 U8 Reserved1; /*0x01 */ 319 U8 MsgLength; /*0x02 */ 320 U8 Function; /*0x03 */ 321 U16 Reserved2; /*0x04 */ 322 U8 Reserved3; /*0x06 */ 323 U8 MsgFlags; /*0x07 */ 324 U8 VP_ID; /*0x08 */ 325 U8 VF_ID; /*0x09 */ 326 U16 Reserved4; /*0x0A */ 327 U16 Reserved5; /*0x0C */ 328 U16 IOCStatus; /*0x0E */ 329 U32 IOCLogInfo; /*0x10 */ 330 U32 ReturnedDataLength; /*0x14 */ 331 } MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY, 332 *PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY, 333 Mpi2ToolboxDiagnosticCliReply_t, 334 *pMpi2ToolboxDiagnosticCliReply_t; 335 336 337 /**************************************************************************** 338 * Toolbox Console Text Display Tool 339 ****************************************************************************/ 340 341 /* Toolbox Console Text Display Tool request message */ 342 typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST { 343 U8 Tool; /* 0x00 */ 344 U8 Reserved1; /* 0x01 */ 345 U8 ChainOffset; /* 0x02 */ 346 U8 Function; /* 0x03 */ 347 U16 Reserved2; /* 0x04 */ 348 U8 Reserved3; /* 0x06 */ 349 U8 MsgFlags; /* 0x07 */ 350 U8 VP_ID; /* 0x08 */ 351 U8 VF_ID; /* 0x09 */ 352 U16 Reserved4; /* 0x0A */ 353 U8 Console; /* 0x0C */ 354 U8 Flags; /* 0x0D */ 355 U16 Reserved6; /* 0x0E */ 356 U8 TextToDisplay[4]; /* 0x10 */ 357 } MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST, 358 *PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST, 359 Mpi2ToolboxTextDisplayRequest_t, 360 *pMpi2ToolboxTextDisplayRequest_t; 361 362 /* defines for the Console field */ 363 #define MPI2_TOOLBOX_CONSOLE_TYPE_MASK (0xF0) 364 #define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT (0x00) 365 #define MPI2_TOOLBOX_CONSOLE_TYPE_UART (0x10) 366 #define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET (0x20) 367 368 #define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK (0x0F) 369 370 /* defines for the Flags field */ 371 #define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP (0x01) 372 373 374 375 /***************************************************************************** 376 * 377 * Diagnostic Buffer Messages 378 * 379 *****************************************************************************/ 380 381 /**************************************************************************** 382 * Diagnostic Buffer Post request 383 ****************************************************************************/ 384 385 typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST { 386 U8 ExtendedType; /*0x00 */ 387 U8 BufferType; /*0x01 */ 388 U8 ChainOffset; /*0x02 */ 389 U8 Function; /*0x03 */ 390 U16 Reserved2; /*0x04 */ 391 U8 Reserved3; /*0x06 */ 392 U8 MsgFlags; /*0x07 */ 393 U8 VP_ID; /*0x08 */ 394 U8 VF_ID; /*0x09 */ 395 U16 Reserved4; /*0x0A */ 396 U64 BufferAddress; /*0x0C */ 397 U32 BufferLength; /*0x14 */ 398 U32 Reserved5; /*0x18 */ 399 U32 Reserved6; /*0x1C */ 400 U32 Flags; /*0x20 */ 401 U32 ProductSpecific[23]; /*0x24 */ 402 } MPI2_DIAG_BUFFER_POST_REQUEST, *PTR_MPI2_DIAG_BUFFER_POST_REQUEST, 403 Mpi2DiagBufferPostRequest_t, *pMpi2DiagBufferPostRequest_t; 404 405 /*values for the ExtendedType field */ 406 #define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION (0x02) 407 408 /*values for the BufferType field */ 409 #define MPI2_DIAG_BUF_TYPE_TRACE (0x00) 410 #define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01) 411 #define MPI2_DIAG_BUF_TYPE_EXTENDED (0x02) 412 /*count of the number of buffer types */ 413 #define MPI2_DIAG_BUF_TYPE_COUNT (0x03) 414 415 /*values for the Flags field */ 416 #define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL (0x00000002) 417 #define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE (0x00000001) 418 419 /**************************************************************************** 420 * Diagnostic Buffer Post reply 421 ****************************************************************************/ 422 423 typedef struct _MPI2_DIAG_BUFFER_POST_REPLY { 424 U8 ExtendedType; /*0x00 */ 425 U8 BufferType; /*0x01 */ 426 U8 MsgLength; /*0x02 */ 427 U8 Function; /*0x03 */ 428 U16 Reserved2; /*0x04 */ 429 U8 Reserved3; /*0x06 */ 430 U8 MsgFlags; /*0x07 */ 431 U8 VP_ID; /*0x08 */ 432 U8 VF_ID; /*0x09 */ 433 U16 Reserved4; /*0x0A */ 434 U16 Reserved5; /*0x0C */ 435 U16 IOCStatus; /*0x0E */ 436 U32 IOCLogInfo; /*0x10 */ 437 U32 TransferLength; /*0x14 */ 438 } MPI2_DIAG_BUFFER_POST_REPLY, *PTR_MPI2_DIAG_BUFFER_POST_REPLY, 439 Mpi2DiagBufferPostReply_t, *pMpi2DiagBufferPostReply_t; 440 441 /**************************************************************************** 442 * Diagnostic Release request 443 ****************************************************************************/ 444 445 typedef struct _MPI2_DIAG_RELEASE_REQUEST { 446 U8 Reserved1; /*0x00 */ 447 U8 BufferType; /*0x01 */ 448 U8 ChainOffset; /*0x02 */ 449 U8 Function; /*0x03 */ 450 U16 Reserved2; /*0x04 */ 451 U8 Reserved3; /*0x06 */ 452 U8 MsgFlags; /*0x07 */ 453 U8 VP_ID; /*0x08 */ 454 U8 VF_ID; /*0x09 */ 455 U16 Reserved4; /*0x0A */ 456 } MPI2_DIAG_RELEASE_REQUEST, *PTR_MPI2_DIAG_RELEASE_REQUEST, 457 Mpi2DiagReleaseRequest_t, *pMpi2DiagReleaseRequest_t; 458 459 /**************************************************************************** 460 * Diagnostic Buffer Post reply 461 ****************************************************************************/ 462 463 typedef struct _MPI2_DIAG_RELEASE_REPLY { 464 U8 Reserved1; /*0x00 */ 465 U8 BufferType; /*0x01 */ 466 U8 MsgLength; /*0x02 */ 467 U8 Function; /*0x03 */ 468 U16 Reserved2; /*0x04 */ 469 U8 Reserved3; /*0x06 */ 470 U8 MsgFlags; /*0x07 */ 471 U8 VP_ID; /*0x08 */ 472 U8 VF_ID; /*0x09 */ 473 U16 Reserved4; /*0x0A */ 474 U16 Reserved5; /*0x0C */ 475 U16 IOCStatus; /*0x0E */ 476 U32 IOCLogInfo; /*0x10 */ 477 } MPI2_DIAG_RELEASE_REPLY, *PTR_MPI2_DIAG_RELEASE_REPLY, 478 Mpi2DiagReleaseReply_t, *pMpi2DiagReleaseReply_t; 479 480 #endif 481