1154603Smjacob/* $FreeBSD$ */
2154603Smjacob/*-
3233425Smarius * Copyright (c) 2000-2010, LSI Logic Corporation and its contributors.
4154603Smjacob * All rights reserved.
5154603Smjacob *
6154603Smjacob * Redistribution and use in source and binary forms, with or without
7154603Smjacob * modification, are permitted provided that the following conditions are
8154603Smjacob * met:
9154603Smjacob * 1. Redistributions of source code must retain the above copyright
10154603Smjacob *    notice, this list of conditions and the following disclaimer.
11154603Smjacob * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12154603Smjacob *    substantially similar to the "NO WARRANTY" disclaimer below
13154603Smjacob *    ("Disclaimer") and any redistribution must be conditioned upon including
14154603Smjacob *    a substantially similar Disclaimer requirement for further binary
15154603Smjacob *    redistribution.
16154603Smjacob * 3. Neither the name of the LSI Logic Corporation nor the names of its
17154603Smjacob *    contributors may be used to endorse or promote products derived from
18154603Smjacob *    this software without specific prior written permission.
19154603Smjacob *
20154603Smjacob * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21154603Smjacob * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22154603Smjacob * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23154603Smjacob * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24154603Smjacob * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25154603Smjacob * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26154603Smjacob * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27154603Smjacob * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28154603Smjacob * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29154603Smjacob * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE COPYRIGHT
30154603Smjacob * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31154603Smjacob *
32154603Smjacob *
33154603Smjacob *           Name:  mpi_tool.h
34154603Smjacob *          Title:  MPI Toolbox structures and definitions
35154603Smjacob *  Creation Date:  July 30, 2001
36154603Smjacob *
37154603Smjacob *    mpi_tool.h Version:  01.05.03
38154603Smjacob *
39154603Smjacob *  Version History
40154603Smjacob *  ---------------
41154603Smjacob *
42154603Smjacob *  Date      Version   Description
43154603Smjacob *  --------  --------  ------------------------------------------------------
44154603Smjacob *  08-08-01  01.02.01  Original release.
45154603Smjacob *  08-29-01  01.02.02  Added DIAG_DATA_UPLOAD_HEADER and related defines.
46154603Smjacob *  01-16-04  01.02.03  Added defines and structures for new tools
47154603Smjacob *.                     MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL and
48154603Smjacob *                      MPI_TOOLBOX_FC_MANAGEMENT_TOOL.
49154603Smjacob *  04-29-04  01.02.04  Added message structures for Diagnostic Buffer Post and
50154603Smjacob *                      Diagnostic Release requests and replies.
51154603Smjacob *  05-11-04  01.03.01  Original release for MPI v1.3.
52154603Smjacob *  08-19-04  01.05.01  Original release for MPI v1.5.
53154603Smjacob *  10-06-04  01.05.02  Added define for MPI_DIAG_BUF_TYPE_COUNT.
54154603Smjacob *  02-09-05  01.05.03  Added frame size option to FC management tool.
55154603Smjacob *                      Added Beacon tool to the Toolbox.
56154603Smjacob *  --------------------------------------------------------------------------
57154603Smjacob */
58154603Smjacob
59154603Smjacob#ifndef MPI_TOOL_H
60154603Smjacob#define MPI_TOOL_H
61154603Smjacob
62154603Smjacob#define MPI_TOOLBOX_CLEAN_TOOL                      (0x00)
63154603Smjacob#define MPI_TOOLBOX_MEMORY_MOVE_TOOL                (0x01)
64154603Smjacob#define MPI_TOOLBOX_DIAG_DATA_UPLOAD_TOOL           (0x02)
65154603Smjacob#define MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL           (0x03)
66154603Smjacob#define MPI_TOOLBOX_FC_MANAGEMENT_TOOL              (0x04)
67154603Smjacob#define MPI_TOOLBOX_BEACON_TOOL                     (0x05)
68154603Smjacob
69154603Smjacob
70154603Smjacob/****************************************************************************/
71154603Smjacob/* Toolbox reply                                                            */
72154603Smjacob/****************************************************************************/
73154603Smjacob
74154603Smjacobtypedef struct _MSG_TOOLBOX_REPLY
75154603Smjacob{
76154603Smjacob    U8                      Tool;                       /* 00h */
77154603Smjacob    U8                      Reserved;                   /* 01h */
78154603Smjacob    U8                      MsgLength;                  /* 02h */
79154603Smjacob    U8                      Function;                   /* 03h */
80154603Smjacob    U16                     Reserved1;                  /* 04h */
81154603Smjacob    U8                      Reserved2;                  /* 06h */
82154603Smjacob    U8                      MsgFlags;                   /* 07h */
83154603Smjacob    U32                     MsgContext;                 /* 08h */
84154603Smjacob    U16                     Reserved3;                  /* 0Ch */
85154603Smjacob    U16                     IOCStatus;                  /* 0Eh */
86154603Smjacob    U32                     IOCLogInfo;                 /* 10h */
87154603Smjacob} MSG_TOOLBOX_REPLY, MPI_POINTER PTR_MSG_TOOLBOX_REPLY,
88154603Smjacob  ToolboxReply_t, MPI_POINTER pToolboxReply_t;
89154603Smjacob
90154603Smjacob
91154603Smjacob/****************************************************************************/
92154603Smjacob/* Toolbox Clean Tool request                                               */
93154603Smjacob/****************************************************************************/
94154603Smjacob
95154603Smjacobtypedef struct _MSG_TOOLBOX_CLEAN_REQUEST
96154603Smjacob{
97154603Smjacob    U8                      Tool;                       /* 00h */
98154603Smjacob    U8                      Reserved;                   /* 01h */
99154603Smjacob    U8                      ChainOffset;                /* 02h */
100154603Smjacob    U8                      Function;                   /* 03h */
101154603Smjacob    U16                     Reserved1;                  /* 04h */
102154603Smjacob    U8                      Reserved2;                  /* 06h */
103154603Smjacob    U8                      MsgFlags;                   /* 07h */
104154603Smjacob    U32                     MsgContext;                 /* 08h */
105154603Smjacob    U32                     Flags;                      /* 0Ch */
106154603Smjacob} MSG_TOOLBOX_CLEAN_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_CLEAN_REQUEST,
107154603Smjacob  ToolboxCleanRequest_t, MPI_POINTER pToolboxCleanRequest_t;
108154603Smjacob
109154603Smjacob#define MPI_TOOLBOX_CLEAN_NVSRAM                    (0x00000001)
110154603Smjacob#define MPI_TOOLBOX_CLEAN_SEEPROM                   (0x00000002)
111154603Smjacob#define MPI_TOOLBOX_CLEAN_FLASH                     (0x00000004)
112154603Smjacob#define MPI_TOOLBOX_CLEAN_BOOTLOADER                (0x04000000)
113154603Smjacob#define MPI_TOOLBOX_CLEAN_FW_BACKUP                 (0x08000000)
114154603Smjacob#define MPI_TOOLBOX_CLEAN_FW_CURRENT                (0x10000000)
115154603Smjacob#define MPI_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES       (0x20000000)
116154603Smjacob#define MPI_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES    (0x40000000)
117154603Smjacob#define MPI_TOOLBOX_CLEAN_BOOT_SERVICES             (0x80000000)
118154603Smjacob
119154603Smjacob
120154603Smjacob/****************************************************************************/
121154603Smjacob/* Toolbox Memory Move request                                              */
122154603Smjacob/****************************************************************************/
123154603Smjacob
124154603Smjacobtypedef struct _MSG_TOOLBOX_MEM_MOVE_REQUEST
125154603Smjacob{
126154603Smjacob    U8                      Tool;                       /* 00h */
127154603Smjacob    U8                      Reserved;                   /* 01h */
128154603Smjacob    U8                      ChainOffset;                /* 02h */
129154603Smjacob    U8                      Function;                   /* 03h */
130154603Smjacob    U16                     Reserved1;                  /* 04h */
131154603Smjacob    U8                      Reserved2;                  /* 06h */
132154603Smjacob    U8                      MsgFlags;                   /* 07h */
133154603Smjacob    U32                     MsgContext;                 /* 08h */
134154603Smjacob    SGE_SIMPLE_UNION        SGL;                        /* 0Ch */
135154603Smjacob} MSG_TOOLBOX_MEM_MOVE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_MEM_MOVE_REQUEST,
136154603Smjacob  ToolboxMemMoveRequest_t, MPI_POINTER pToolboxMemMoveRequest_t;
137154603Smjacob
138154603Smjacob
139154603Smjacob/****************************************************************************/
140154603Smjacob/* Toolbox Diagnostic Data Upload request                                   */
141154603Smjacob/****************************************************************************/
142154603Smjacob
143154603Smjacobtypedef struct _MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST
144154603Smjacob{
145154603Smjacob    U8                      Tool;                       /* 00h */
146154603Smjacob    U8                      Reserved;                   /* 01h */
147154603Smjacob    U8                      ChainOffset;                /* 02h */
148154603Smjacob    U8                      Function;                   /* 03h */
149154603Smjacob    U16                     Reserved1;                  /* 04h */
150154603Smjacob    U8                      Reserved2;                  /* 06h */
151154603Smjacob    U8                      MsgFlags;                   /* 07h */
152154603Smjacob    U32                     MsgContext;                 /* 08h */
153154603Smjacob    U32                     Flags;                      /* 0Ch */
154154603Smjacob    U32                     Reserved3;                  /* 10h */
155154603Smjacob    SGE_SIMPLE_UNION        SGL;                        /* 14h */
156154603Smjacob} MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
157154603Smjacob  ToolboxDiagDataUploadRequest_t, MPI_POINTER pToolboxDiagDataUploadRequest_t;
158154603Smjacob
159154603Smjacobtypedef struct _DIAG_DATA_UPLOAD_HEADER
160154603Smjacob{
161154603Smjacob    U32                     DiagDataLength;             /* 00h */
162154603Smjacob    U8                      FormatCode;                 /* 04h */
163154603Smjacob    U8                      Reserved;                   /* 05h */
164154603Smjacob    U16                     Reserved1;                  /* 06h */
165154603Smjacob} DIAG_DATA_UPLOAD_HEADER, MPI_POINTER PTR_DIAG_DATA_UPLOAD_HEADER,
166154603Smjacob  DiagDataUploadHeader_t, MPI_POINTER pDiagDataUploadHeader_t;
167154603Smjacob
168154603Smjacob#define MPI_TB_DIAG_FORMAT_SCSI_PRINTF_1            (0x01)
169154603Smjacob#define MPI_TB_DIAG_FORMAT_SCSI_2                   (0x02)
170154603Smjacob#define MPI_TB_DIAG_FORMAT_SCSI_3                   (0x03)
171154603Smjacob#define MPI_TB_DIAG_FORMAT_FC_TRACE_1               (0x04)
172154603Smjacob
173154603Smjacob
174154603Smjacob/****************************************************************************/
175154603Smjacob/* Toolbox ISTWI Read Write request                                         */
176154603Smjacob/****************************************************************************/
177154603Smjacob
178154603Smjacobtypedef struct _MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST
179154603Smjacob{
180154603Smjacob    U8                      Tool;                       /* 00h */
181154603Smjacob    U8                      Reserved;                   /* 01h */
182154603Smjacob    U8                      ChainOffset;                /* 02h */
183154603Smjacob    U8                      Function;                   /* 03h */
184154603Smjacob    U16                     Reserved1;                  /* 04h */
185154603Smjacob    U8                      Reserved2;                  /* 06h */
186154603Smjacob    U8                      MsgFlags;                   /* 07h */
187154603Smjacob    U32                     MsgContext;                 /* 08h */
188154603Smjacob    U8                      Flags;                      /* 0Ch */
189154603Smjacob    U8                      BusNum;                     /* 0Dh */
190154603Smjacob    U16                     Reserved3;                  /* 0Eh */
191154603Smjacob    U8                      NumAddressBytes;            /* 10h */
192154603Smjacob    U8                      Reserved4;                  /* 11h */
193154603Smjacob    U16                     DataLength;                 /* 12h */
194154603Smjacob    U8                      DeviceAddr;                 /* 14h */
195154603Smjacob    U8                      Addr1;                      /* 15h */
196154603Smjacob    U8                      Addr2;                      /* 16h */
197154603Smjacob    U8                      Addr3;                      /* 17h */
198154603Smjacob    U32                     Reserved5;                  /* 18h */
199154603Smjacob    SGE_SIMPLE_UNION        SGL;                        /* 1Ch */
200154603Smjacob} MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
201154603Smjacob  ToolboxIstwiReadWriteRequest_t, MPI_POINTER pToolboxIstwiReadWriteRequest_t;
202154603Smjacob
203154603Smjacob#define MPI_TB_ISTWI_FLAGS_WRITE                    (0x00)
204154603Smjacob#define MPI_TB_ISTWI_FLAGS_READ                     (0x01)
205154603Smjacob
206154603Smjacob
207154603Smjacob/****************************************************************************/
208154603Smjacob/* Toolbox FC Management request                                            */
209154603Smjacob/****************************************************************************/
210154603Smjacob
211154603Smjacob/* ActionInfo for Bus and TargetId */
212154603Smjacobtypedef struct _MPI_TB_FC_MANAGE_BUS_TID_AI
213154603Smjacob{
214154603Smjacob    U16                     Reserved;                   /* 00h */
215154603Smjacob    U8                      Bus;                        /* 02h */
216154603Smjacob    U8                      TargetId;                   /* 03h */
217154603Smjacob} MPI_TB_FC_MANAGE_BUS_TID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_BUS_TID_AI,
218154603Smjacob  MpiTbFcManageBusTidAi_t, MPI_POINTER pMpiTbFcManageBusTidAi_t;
219154603Smjacob
220154603Smjacob/* ActionInfo for port identifier */
221154603Smjacobtypedef struct _MPI_TB_FC_MANAGE_PID_AI
222154603Smjacob{
223154603Smjacob    U32                     PortIdentifier;             /* 00h */
224154603Smjacob} MPI_TB_FC_MANAGE_PID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_PID_AI,
225154603Smjacob  MpiTbFcManagePidAi_t, MPI_POINTER pMpiTbFcManagePidAi_t;
226154603Smjacob
227154603Smjacob/* ActionInfo for set max frame size */
228154603Smjacobtypedef struct _MPI_TB_FC_MANAGE_FRAME_SIZE_AI
229154603Smjacob{
230154603Smjacob    U16                     FrameSize;                  /* 00h */
231154603Smjacob    U8                      PortNum;                    /* 02h */
232154603Smjacob    U8                      Reserved1;                  /* 03h */
233154603Smjacob} MPI_TB_FC_MANAGE_FRAME_SIZE_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_FRAME_SIZE_AI,
234154603Smjacob  MpiTbFcManageFrameSizeAi_t, MPI_POINTER pMpiTbFcManageFrameSizeAi_t;
235154603Smjacob
236154603Smjacob/* union of ActionInfo */
237154603Smjacobtypedef union _MPI_TB_FC_MANAGE_AI_UNION
238154603Smjacob{
239154603Smjacob    MPI_TB_FC_MANAGE_BUS_TID_AI     BusTid;
240154603Smjacob    MPI_TB_FC_MANAGE_PID_AI         Port;
241154603Smjacob    MPI_TB_FC_MANAGE_FRAME_SIZE_AI  FrameSize;
242154603Smjacob} MPI_TB_FC_MANAGE_AI_UNION, MPI_POINTER PTR_MPI_TB_FC_MANAGE_AI_UNION,
243154603Smjacob  MpiTbFcManageAiUnion_t, MPI_POINTER pMpiTbFcManageAiUnion_t;
244154603Smjacob
245154603Smjacobtypedef struct _MSG_TOOLBOX_FC_MANAGE_REQUEST
246154603Smjacob{
247154603Smjacob    U8                          Tool;                   /* 00h */
248154603Smjacob    U8                          Reserved;               /* 01h */
249154603Smjacob    U8                          ChainOffset;            /* 02h */
250154603Smjacob    U8                          Function;               /* 03h */
251154603Smjacob    U16                         Reserved1;              /* 04h */
252154603Smjacob    U8                          Reserved2;              /* 06h */
253154603Smjacob    U8                          MsgFlags;               /* 07h */
254154603Smjacob    U32                         MsgContext;             /* 08h */
255154603Smjacob    U8                          Action;                 /* 0Ch */
256154603Smjacob    U8                          Reserved3;              /* 0Dh */
257154603Smjacob    U16                         Reserved4;              /* 0Eh */
258154603Smjacob    MPI_TB_FC_MANAGE_AI_UNION   ActionInfo;             /* 10h */
259154603Smjacob} MSG_TOOLBOX_FC_MANAGE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_FC_MANAGE_REQUEST,
260154603Smjacob  ToolboxFcManageRequest_t, MPI_POINTER pToolboxFcManageRequest_t;
261154603Smjacob
262154603Smjacob/* defines for the Action field */
263154603Smjacob#define MPI_TB_FC_MANAGE_ACTION_DISC_ALL            (0x00)
264154603Smjacob#define MPI_TB_FC_MANAGE_ACTION_DISC_PID            (0x01)
265154603Smjacob#define MPI_TB_FC_MANAGE_ACTION_DISC_BUS_TID        (0x02)
266154603Smjacob#define MPI_TB_FC_MANAGE_ACTION_SET_MAX_FRAME_SIZE  (0x03)
267154603Smjacob
268154603Smjacob
269154603Smjacob/****************************************************************************/
270154603Smjacob/* Toolbox Beacon Tool request                                               */
271154603Smjacob/****************************************************************************/
272154603Smjacob
273154603Smjacobtypedef struct _MSG_TOOLBOX_BEACON_REQUEST
274154603Smjacob{
275154603Smjacob    U8                      Tool;                       /* 00h */
276154603Smjacob    U8                      Reserved;                   /* 01h */
277154603Smjacob    U8                      ChainOffset;                /* 02h */
278154603Smjacob    U8                      Function;                   /* 03h */
279154603Smjacob    U16                     Reserved1;                  /* 04h */
280154603Smjacob    U8                      Reserved2;                  /* 06h */
281154603Smjacob    U8                      MsgFlags;                   /* 07h */
282154603Smjacob    U32                     MsgContext;                 /* 08h */
283154603Smjacob    U8                      ConnectNum;                 /* 0Ch */
284154603Smjacob    U8                      PortNum;                    /* 0Dh */
285154603Smjacob    U8                      Reserved3;                  /* 0Eh */
286154603Smjacob    U8                      Flags;                      /* 0Fh */
287154603Smjacob} MSG_TOOLBOX_BEACON_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_BEACON_REQUEST,
288154603Smjacob  ToolboxBeaconRequest_t, MPI_POINTER pToolboxBeaconRequest_t;
289154603Smjacob
290154603Smjacob#define MPI_TOOLBOX_FLAGS_BEACON_MODE_OFF       (0x00)
291154603Smjacob#define MPI_TOOLBOX_FLAGS_BEACON_MODE_ON        (0x01)
292154603Smjacob
293154603Smjacob
294154603Smjacob/****************************************************************************/
295154603Smjacob/* Diagnostic Buffer Post request                                           */
296154603Smjacob/****************************************************************************/
297154603Smjacob
298154603Smjacobtypedef struct _MSG_DIAG_BUFFER_POST_REQUEST
299154603Smjacob{
300154603Smjacob    U8                      TraceLevel;                 /* 00h */
301154603Smjacob    U8                      BufferType;                 /* 01h */
302154603Smjacob    U8                      ChainOffset;                /* 02h */
303154603Smjacob    U8                      Function;                   /* 03h */
304154603Smjacob    U16                     Reserved1;                  /* 04h */
305154603Smjacob    U8                      Reserved2;                  /* 06h */
306154603Smjacob    U8                      MsgFlags;                   /* 07h */
307154603Smjacob    U32                     MsgContext;                 /* 08h */
308154603Smjacob    U32                     ExtendedType;               /* 0Ch */
309154603Smjacob    U32                     BufferLength;               /* 10h */
310154603Smjacob    U32                     ProductSpecific[4];         /* 14h */
311154603Smjacob    U32                     Reserved3;                  /* 24h */
312154603Smjacob    U64                     BufferAddress;              /* 28h */
313154603Smjacob} MSG_DIAG_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REQUEST,
314154603Smjacob  DiagBufferPostRequest_t, MPI_POINTER pDiagBufferPostRequest_t;
315154603Smjacob
316154603Smjacob#define MPI_DIAG_BUF_TYPE_TRACE                     (0x00)
317154603Smjacob#define MPI_DIAG_BUF_TYPE_SNAPSHOT                  (0x01)
318154603Smjacob#define MPI_DIAG_BUF_TYPE_EXTENDED                  (0x02)
319154603Smjacob/* count of the number of buffer types */
320154603Smjacob#define MPI_DIAG_BUF_TYPE_COUNT                     (0x03)
321154603Smjacob
322154603Smjacob#define MPI_DIAG_EXTENDED_QTAG                      (0x00000001)
323154603Smjacob
324154603Smjacob
325154603Smjacob/* Diagnostic Buffer Post reply */
326154603Smjacobtypedef struct _MSG_DIAG_BUFFER_POST_REPLY
327154603Smjacob{
328154603Smjacob    U8                      Reserved1;                  /* 00h */
329154603Smjacob    U8                      BufferType;                 /* 01h */
330154603Smjacob    U8                      MsgLength;                  /* 02h */
331154603Smjacob    U8                      Function;                   /* 03h */
332154603Smjacob    U16                     Reserved2;                  /* 04h */
333154603Smjacob    U8                      Reserved3;                  /* 06h */
334154603Smjacob    U8                      MsgFlags;                   /* 07h */
335154603Smjacob    U32                     MsgContext;                 /* 08h */
336154603Smjacob    U16                     Reserved4;                  /* 0Ch */
337154603Smjacob    U16                     IOCStatus;                  /* 0Eh */
338154603Smjacob    U32                     IOCLogInfo;                 /* 10h */
339154603Smjacob    U32                     TransferLength;             /* 14h */
340154603Smjacob} MSG_DIAG_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REPLY,
341154603Smjacob  DiagBufferPostReply_t, MPI_POINTER pDiagBufferPostReply_t;
342154603Smjacob
343154603Smjacob
344154603Smjacob/****************************************************************************/
345154603Smjacob/* Diagnostic Release request                                               */
346154603Smjacob/****************************************************************************/
347154603Smjacob
348154603Smjacobtypedef struct _MSG_DIAG_RELEASE_REQUEST
349154603Smjacob{
350154603Smjacob    U8                      Reserved1;                  /* 00h */
351154603Smjacob    U8                      BufferType;                 /* 01h */
352154603Smjacob    U8                      ChainOffset;                /* 02h */
353154603Smjacob    U8                      Function;                   /* 03h */
354154603Smjacob    U16                     Reserved2;                  /* 04h */
355154603Smjacob    U8                      Reserved3;                  /* 06h */
356154603Smjacob    U8                      MsgFlags;                   /* 07h */
357154603Smjacob    U32                     MsgContext;                 /* 08h */
358154603Smjacob} MSG_DIAG_RELEASE_REQUEST, MPI_POINTER PTR_MSG_DIAG_RELEASE_REQUEST,
359154603Smjacob  DiagReleaseRequest_t, MPI_POINTER pDiagReleaseRequest_t;
360154603Smjacob
361154603Smjacob
362154603Smjacob/* Diagnostic Release reply */
363154603Smjacobtypedef struct _MSG_DIAG_RELEASE_REPLY
364154603Smjacob{
365154603Smjacob    U8                      Reserved1;                  /* 00h */
366154603Smjacob    U8                      BufferType;                 /* 01h */
367154603Smjacob    U8                      MsgLength;                  /* 02h */
368154603Smjacob    U8                      Function;                   /* 03h */
369154603Smjacob    U16                     Reserved2;                  /* 04h */
370154603Smjacob    U8                      Reserved3;                  /* 06h */
371154603Smjacob    U8                      MsgFlags;                   /* 07h */
372154603Smjacob    U32                     MsgContext;                 /* 08h */
373154603Smjacob    U16                     Reserved4;                  /* 0Ch */
374154603Smjacob    U16                     IOCStatus;                  /* 0Eh */
375154603Smjacob    U32                     IOCLogInfo;                 /* 10h */
376154603Smjacob} MSG_DIAG_RELEASE_REPLY, MPI_POINTER PTR_MSG_DIAG_RELEASE_REPLY,
377154603Smjacob  DiagReleaseReply_t, MPI_POINTER pDiagReleaseReply_t;
378154603Smjacob
379154603Smjacob
380154603Smjacob#endif
381