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