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