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