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