2 * Copyright (c) 2012-2015 LSI Corp.
3 * Copyright (c) 2013-2015 Avago Technologies
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. Neither the name of the author nor the names of any co-contributors
15 * may be used to endorse or promote products derived from this software
16 * without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * Avago Technologies (LSI) MPT-Fusion Host Adapter FreeBSD
36 * Copyright (c) 2000-2015 LSI Corporation.
37 * Copyright (c) 2013-2015 Avago Technologies
41 * Title: MPI diagnostic tool structures and definitions
42 * Creation Date: March 26, 2007
44 * mpi2_tool.h Version: 02.00.11
49 * Date Version Description
50 * -------- -------- ------------------------------------------------------
51 * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A.
52 * 12-18-07 02.00.01 Added Diagnostic Buffer Post and Diagnostic Release
53 * structures and defines.
54 * 02-29-08 02.00.02 Modified various names to make them 32-character unique.
55 * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool.
56 * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request
58 * Added MPI2_DIAG_BUF_TYPE_EXTENDED.
59 * Incremented MPI2_DIAG_BUF_TYPE_COUNT.
60 * 05-12-10 02.00.05 Added Diagnostic Data Upload tool.
61 * 08-11-10 02.00.06 Added defines that were missing for Diagnostic Buffer
63 * 05-25-11 02.00.07 Added Flags field and related defines to
64 * MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST.
65 * 11-18-11 02.00.08 Incorporating additions for MPI v2.5.
66 * 07-10-12 02.00.09 Add MPI v2.5 Toolbox Diagnostic CLI Tool Request
68 * 07-26-12 02.00.10 Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that
69 * it uses MPI Chain SGE as well as MPI Simple SGE.
70 * 08-19-13 02.00.11 Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info.
71 * --------------------------------------------------------------------------
77 /*****************************************************************************
81 *****************************************************************************/
83 /* defines for the Tools */
84 #define MPI2_TOOLBOX_CLEAN_TOOL (0x00)
85 #define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01)
86 #define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02)
87 #define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03)
88 #define MPI2_TOOLBOX_BEACON_TOOL (0x05)
89 #define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06)
90 #define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL (0x07)
93 /****************************************************************************
95 ****************************************************************************/
97 typedef struct _MPI2_TOOLBOX_REPLY
100 U8 Reserved1; /* 0x01 */
101 U8 MsgLength; /* 0x02 */
102 U8 Function; /* 0x03 */
103 U16 Reserved2; /* 0x04 */
104 U8 Reserved3; /* 0x06 */
105 U8 MsgFlags; /* 0x07 */
108 U16 Reserved4; /* 0x0A */
109 U16 Reserved5; /* 0x0C */
110 U16 IOCStatus; /* 0x0E */
111 U32 IOCLogInfo; /* 0x10 */
112 } MPI2_TOOLBOX_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_REPLY,
113 Mpi2ToolboxReply_t, MPI2_POINTER pMpi2ToolboxReply_t;
116 /****************************************************************************
117 * Toolbox Clean Tool request
118 ****************************************************************************/
120 typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST
123 U8 Reserved1; /* 0x01 */
124 U8 ChainOffset; /* 0x02 */
125 U8 Function; /* 0x03 */
126 U16 Reserved2; /* 0x04 */
127 U8 Reserved3; /* 0x06 */
128 U8 MsgFlags; /* 0x07 */
131 U16 Reserved4; /* 0x0A */
132 U32 Flags; /* 0x0C */
133 } MPI2_TOOLBOX_CLEAN_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_CLEAN_REQUEST,
134 Mpi2ToolboxCleanRequest_t, MPI2_POINTER pMpi2ToolboxCleanRequest_t;
136 /* values for the Flags field */
137 #define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000)
138 #define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000)
139 #define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000)
140 #define MPI2_TOOLBOX_CLEAN_FW_CURRENT (0x10000000)
141 #define MPI2_TOOLBOX_CLEAN_FW_BACKUP (0x08000000)
142 #define MPI2_TOOLBOX_CLEAN_MEGARAID (0x02000000)
143 #define MPI2_TOOLBOX_CLEAN_INITIALIZATION (0x01000000)
144 #define MPI2_TOOLBOX_CLEAN_FLASH (0x00000004)
145 #define MPI2_TOOLBOX_CLEAN_SEEPROM (0x00000002)
146 #define MPI2_TOOLBOX_CLEAN_NVSRAM (0x00000001)
149 /****************************************************************************
150 * Toolbox Memory Move request
151 ****************************************************************************/
153 typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST
156 U8 Reserved1; /* 0x01 */
157 U8 ChainOffset; /* 0x02 */
158 U8 Function; /* 0x03 */
159 U16 Reserved2; /* 0x04 */
160 U8 Reserved3; /* 0x06 */
161 U8 MsgFlags; /* 0x07 */
164 U16 Reserved4; /* 0x0A */
165 MPI2_SGE_SIMPLE_UNION SGL; /* 0x0C */
166 } MPI2_TOOLBOX_MEM_MOVE_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST,
167 Mpi2ToolboxMemMoveRequest_t, MPI2_POINTER pMpi2ToolboxMemMoveRequest_t;
170 /****************************************************************************
171 * Toolbox Diagnostic Data Upload request
172 ****************************************************************************/
174 typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST
177 U8 Reserved1; /* 0x01 */
178 U8 ChainOffset; /* 0x02 */
179 U8 Function; /* 0x03 */
180 U16 Reserved2; /* 0x04 */
181 U8 Reserved3; /* 0x06 */
182 U8 MsgFlags; /* 0x07 */
185 U16 Reserved4; /* 0x0A */
186 U8 SGLFlags; /* 0x0C */
187 U8 Reserved5; /* 0x0D */
188 U16 Reserved6; /* 0x0E */
189 U32 Flags; /* 0x10 */
190 U32 DataLength; /* 0x14 */
191 MPI2_SGE_SIMPLE_UNION SGL; /* 0x18 */
192 } MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
193 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
194 Mpi2ToolboxDiagDataUploadRequest_t,
195 MPI2_POINTER pMpi2ToolboxDiagDataUploadRequest_t;
197 /* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
200 typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER
202 U32 DiagDataLength; /* 00h */
203 U8 FormatCode; /* 04h */
204 U8 Reserved1; /* 05h */
205 U16 Reserved2; /* 06h */
206 } MPI2_DIAG_DATA_UPLOAD_HEADER, MPI2_POINTER PTR_MPI2_DIAG_DATA_UPLOAD_HEADER,
207 Mpi2DiagDataUploadHeader_t, MPI2_POINTER pMpi2DiagDataUploadHeader_t;
210 /****************************************************************************
211 * Toolbox ISTWI Read Write Tool
212 ****************************************************************************/
214 /* Toolbox ISTWI Read Write Tool request message */
215 typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST
218 U8 Reserved1; /* 0x01 */
219 U8 ChainOffset; /* 0x02 */
220 U8 Function; /* 0x03 */
221 U16 Reserved2; /* 0x04 */
222 U8 Reserved3; /* 0x06 */
223 U8 MsgFlags; /* 0x07 */
226 U16 Reserved4; /* 0x0A */
227 U32 Reserved5; /* 0x0C */
228 U32 Reserved6; /* 0x10 */
229 U8 DevIndex; /* 0x14 */
230 U8 Action; /* 0x15 */
231 U8 SGLFlags; /* 0x16 */
233 U16 TxDataLength; /* 0x18 */
234 U16 RxDataLength; /* 0x1A */
235 U32 Reserved8; /* 0x1C */
236 U32 Reserved9; /* 0x20 */
237 U32 Reserved10; /* 0x24 */
238 U32 Reserved11; /* 0x28 */
239 U32 Reserved12; /* 0x2C */
240 MPI2_SGE_SIMPLE_UNION SGL; /* 0x30 */
241 } MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
242 MPI2_POINTER PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
243 Mpi2ToolboxIstwiReadWriteRequest_t,
244 MPI2_POINTER pMpi2ToolboxIstwiReadWriteRequest_t;
246 /* values for the Action field */
247 #define MPI2_TOOL_ISTWI_ACTION_READ_DATA (0x01)
248 #define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA (0x02)
249 #define MPI2_TOOL_ISTWI_ACTION_SEQUENCE (0x03)
250 #define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS (0x10)
251 #define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11)
252 #define MPI2_TOOL_ISTWI_ACTION_RESET (0x12)
254 /* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
256 /* values for the Flags field */
257 #define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE (0x80)
258 #define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK (0x07)
261 /* Toolbox ISTWI Read Write Tool reply message */
262 typedef struct _MPI2_TOOLBOX_ISTWI_REPLY
265 U8 Reserved1; /* 0x01 */
266 U8 MsgLength; /* 0x02 */
267 U8 Function; /* 0x03 */
268 U16 Reserved2; /* 0x04 */
269 U8 Reserved3; /* 0x06 */
270 U8 MsgFlags; /* 0x07 */
273 U16 Reserved4; /* 0x0A */
274 U16 Reserved5; /* 0x0C */
275 U16 IOCStatus; /* 0x0E */
276 U32 IOCLogInfo; /* 0x10 */
277 U8 DevIndex; /* 0x14 */
278 U8 Action; /* 0x15 */
279 U8 IstwiStatus; /* 0x16 */
280 U8 Reserved6; /* 0x17 */
281 U16 TxDataCount; /* 0x18 */
282 U16 RxDataCount; /* 0x1A */
283 } MPI2_TOOLBOX_ISTWI_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_ISTWI_REPLY,
284 Mpi2ToolboxIstwiReply_t, MPI2_POINTER pMpi2ToolboxIstwiReply_t;
287 /****************************************************************************
288 * Toolbox Beacon Tool request
289 ****************************************************************************/
291 typedef struct _MPI2_TOOLBOX_BEACON_REQUEST
294 U8 Reserved1; /* 0x01 */
295 U8 ChainOffset; /* 0x02 */
296 U8 Function; /* 0x03 */
297 U16 Reserved2; /* 0x04 */
298 U8 Reserved3; /* 0x06 */
299 U8 MsgFlags; /* 0x07 */
302 U16 Reserved4; /* 0x0A */
303 U8 Reserved5; /* 0x0C */
304 U8 PhysicalPort; /* 0x0D */
305 U8 Reserved6; /* 0x0E */
307 } MPI2_TOOLBOX_BEACON_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_BEACON_REQUEST,
308 Mpi2ToolboxBeaconRequest_t, MPI2_POINTER pMpi2ToolboxBeaconRequest_t;
310 /* values for the Flags field */
311 #define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF (0x00)
312 #define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON (0x01)
315 /****************************************************************************
316 * Toolbox Diagnostic CLI Tool
317 ****************************************************************************/
319 #define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH (0x5C)
321 /* MPI v2.0 Toolbox Diagnostic CLI Tool request message */
322 typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST
325 U8 Reserved1; /* 0x01 */
326 U8 ChainOffset; /* 0x02 */
327 U8 Function; /* 0x03 */
328 U16 Reserved2; /* 0x04 */
329 U8 Reserved3; /* 0x06 */
330 U8 MsgFlags; /* 0x07 */
333 U16 Reserved4; /* 0x0A */
334 U8 SGLFlags; /* 0x0C */
335 U8 Reserved5; /* 0x0D */
336 U16 Reserved6; /* 0x0E */
337 U32 DataLength; /* 0x10 */
338 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH]; /* 0x14 */
339 MPI2_MPI_SGE_IO_UNION SGL; /* 0x70 */
340 } MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
341 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
342 Mpi2ToolboxDiagnosticCliRequest_t,
343 MPI2_POINTER pMpi2ToolboxDiagnosticCliRequest_t;
345 /* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
348 /* MPI v2.5 Toolbox Diagnostic CLI Tool request message */
349 typedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST
352 U8 Reserved1; /* 0x01 */
353 U8 ChainOffset; /* 0x02 */
354 U8 Function; /* 0x03 */
355 U16 Reserved2; /* 0x04 */
356 U8 Reserved3; /* 0x06 */
357 U8 MsgFlags; /* 0x07 */
360 U16 Reserved4; /* 0x0A */
361 U32 Reserved5; /* 0x0C */
362 U32 DataLength; /* 0x10 */
363 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH]; /* 0x14 */
364 MPI25_SGE_IO_UNION SGL; /* 0x70 */
365 } MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
366 MPI2_POINTER PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
367 Mpi25ToolboxDiagnosticCliRequest_t,
368 MPI2_POINTER pMpi25ToolboxDiagnosticCliRequest_t;
371 /* Toolbox Diagnostic CLI Tool reply message */
372 typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY
375 U8 Reserved1; /* 0x01 */
376 U8 MsgLength; /* 0x02 */
377 U8 Function; /* 0x03 */
378 U16 Reserved2; /* 0x04 */
379 U8 Reserved3; /* 0x06 */
380 U8 MsgFlags; /* 0x07 */
383 U16 Reserved4; /* 0x0A */
384 U16 Reserved5; /* 0x0C */
385 U16 IOCStatus; /* 0x0E */
386 U32 IOCLogInfo; /* 0x10 */
387 U32 ReturnedDataLength; /* 0x14 */
388 } MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY,
389 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY,
390 Mpi2ToolboxDiagnosticCliReply_t,
391 MPI2_POINTER pMpi2ToolboxDiagnosticCliReply_t;
394 /****************************************************************************
395 * Toolbox Console Text Display Tool
396 ****************************************************************************/
398 /* Toolbox Console Text Display Tool request message */
399 typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST
402 U8 Reserved1; /* 0x01 */
403 U8 ChainOffset; /* 0x02 */
404 U8 Function; /* 0x03 */
405 U16 Reserved2; /* 0x04 */
406 U8 Reserved3; /* 0x06 */
407 U8 MsgFlags; /* 0x07 */
410 U16 Reserved4; /* 0x0A */
411 U8 Console; /* 0x0C */
413 U16 Reserved6; /* 0x0E */
414 U8 TextToDisplay[4]; /* 0x10 */ /* actual length determined at runtime based on frame size */
415 } MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
416 MPI2_POINTER PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
417 Mpi2ToolboxTextDisplayRequest_t,
418 MPI2_POINTER pMpi2ToolboxTextDisplayRequest_t;
420 /* defines for the Console field */
421 #define MPI2_TOOLBOX_CONSOLE_TYPE_MASK (0xF0)
422 #define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT (0x00)
423 #define MPI2_TOOLBOX_CONSOLE_TYPE_UART (0x10)
424 #define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET (0x20)
426 #define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK (0x0F)
428 /* defines for the Flags field */
429 #define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP (0x01)
433 /*****************************************************************************
435 * Diagnostic Buffer Messages
437 *****************************************************************************/
440 /****************************************************************************
441 * Diagnostic Buffer Post request
442 ****************************************************************************/
444 typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST
446 U8 ExtendedType; /* 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 */
455 U16 Reserved4; /* 0x0A */
456 U64 BufferAddress; /* 0x0C */
457 U32 BufferLength; /* 0x14 */
458 U32 Reserved5; /* 0x18 */
459 U32 Reserved6; /* 0x1C */
460 U32 Flags; /* 0x20 */
461 U32 ProductSpecific[23]; /* 0x24 */
462 } MPI2_DIAG_BUFFER_POST_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REQUEST,
463 Mpi2DiagBufferPostRequest_t, MPI2_POINTER pMpi2DiagBufferPostRequest_t;
465 /* values for the ExtendedType field */
466 #define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION (0x02)
468 /* values for the BufferType field */
469 #define MPI2_DIAG_BUF_TYPE_TRACE (0x00)
470 #define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01)
471 #define MPI2_DIAG_BUF_TYPE_EXTENDED (0x02)
472 /* count of the number of buffer types */
473 #define MPI2_DIAG_BUF_TYPE_COUNT (0x03)
475 /* values for the Flags field */
476 #define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL (0x00000002) /* for MPI v2.0 products only */
477 #define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE (0x00000001)
480 /****************************************************************************
481 * Diagnostic Buffer Post reply
482 ****************************************************************************/
484 typedef struct _MPI2_DIAG_BUFFER_POST_REPLY
486 U8 ExtendedType; /* 0x00 */
487 U8 BufferType; /* 0x01 */
488 U8 MsgLength; /* 0x02 */
489 U8 Function; /* 0x03 */
490 U16 Reserved2; /* 0x04 */
491 U8 Reserved3; /* 0x06 */
492 U8 MsgFlags; /* 0x07 */
495 U16 Reserved4; /* 0x0A */
496 U16 Reserved5; /* 0x0C */
497 U16 IOCStatus; /* 0x0E */
498 U32 IOCLogInfo; /* 0x10 */
499 U32 TransferLength; /* 0x14 */
500 } MPI2_DIAG_BUFFER_POST_REPLY, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REPLY,
501 Mpi2DiagBufferPostReply_t, MPI2_POINTER pMpi2DiagBufferPostReply_t;
504 /****************************************************************************
505 * Diagnostic Release request
506 ****************************************************************************/
508 typedef struct _MPI2_DIAG_RELEASE_REQUEST
510 U8 Reserved1; /* 0x00 */
511 U8 BufferType; /* 0x01 */
512 U8 ChainOffset; /* 0x02 */
513 U8 Function; /* 0x03 */
514 U16 Reserved2; /* 0x04 */
515 U8 Reserved3; /* 0x06 */
516 U8 MsgFlags; /* 0x07 */
519 U16 Reserved4; /* 0x0A */
520 } MPI2_DIAG_RELEASE_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REQUEST,
521 Mpi2DiagReleaseRequest_t, MPI2_POINTER pMpi2DiagReleaseRequest_t;
524 /****************************************************************************
525 * Diagnostic Buffer Post reply
526 ****************************************************************************/
528 typedef struct _MPI2_DIAG_RELEASE_REPLY
530 U8 Reserved1; /* 0x00 */
531 U8 BufferType; /* 0x01 */
532 U8 MsgLength; /* 0x02 */
533 U8 Function; /* 0x03 */
534 U16 Reserved2; /* 0x04 */
535 U8 Reserved3; /* 0x06 */
536 U8 MsgFlags; /* 0x07 */
539 U16 Reserved4; /* 0x0A */
540 U16 Reserved5; /* 0x0C */
541 U16 IOCStatus; /* 0x0E */
542 U32 IOCLogInfo; /* 0x10 */
543 } MPI2_DIAG_RELEASE_REPLY, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REPLY,
544 Mpi2DiagReleaseReply_t, MPI2_POINTER pMpi2DiagReleaseReply_t;