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