xref: /freebsd/sys/dev/mps/mpi/mpi2_tool.h (revision 193d9e768ba63fcfb187cfd17f461f7d41345048)
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 
85 typedef 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 
108 typedef 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 
141 typedef 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 
162 typedef 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 
188 typedef 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 */
203 typedef 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 */
246 typedef 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 
275 typedef 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 */
306 typedef 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 */
333 typedef 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 
366 typedef 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 
406 typedef 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 
430 typedef 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 
450 typedef 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