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 61typedef 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 82typedef 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 113typedef 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 132typedef 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 156typedef 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 */ 169typedef 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 */ 214typedef 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 241typedef 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 */ 270typedef 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 */ 295typedef 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 */ 316typedef 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 */ 342typedef 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, 359Mpi2ToolboxTextDisplayRequest_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 385typedef 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 423typedef 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 445typedef 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 463typedef 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