linux/drivers/scsi/mpt3sas/mpi/mpi2_tool.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Copyright 2000-2014 Avago Technologies.  All rights reserved.
   4 *
   5 *
   6 *          Name:  mpi2_tool.h
   7 *         Title:  MPI diagnostic tool structures and definitions
   8 * Creation Date:  March 26, 2007
   9 *
  10 *   mpi2_tool.h Version:  02.00.13
  11 *
  12 * Version History
  13 * ---------------
  14 *
  15 * Date      Version   Description
  16 * --------  --------  ------------------------------------------------------
  17 * 04-30-07  02.00.00  Corresponds to Fusion-MPT MPI Specification Rev A.
  18 * 12-18-07  02.00.01  Added Diagnostic Buffer Post and Diagnostic Release
  19 *                     structures and defines.
  20 * 02-29-08  02.00.02  Modified various names to make them 32-character unique.
  21 * 05-06-09  02.00.03  Added ISTWI Read Write Tool and Diagnostic CLI Tool.
  22 * 07-30-09  02.00.04  Added ExtendedType field to DiagnosticBufferPost request
  23 *                     and reply messages.
  24 *                     Added MPI2_DIAG_BUF_TYPE_EXTENDED.
  25 *                     Incremented MPI2_DIAG_BUF_TYPE_COUNT.
  26 * 05-12-10  02.00.05  Added Diagnostic Data Upload tool.
  27 * 08-11-10  02.00.06  Added defines that were missing for Diagnostic Buffer
  28 *                     Post Request.
  29 * 05-25-11  02.00.07  Added Flags field and related defines to
  30 *                     MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST.
  31 * 11-18-11  02.00.08  Incorporating additions for MPI v2.5.
  32 * 07-10-12  02.00.09  Add MPI v2.5 Toolbox Diagnostic CLI Tool Request
  33 *                     message.
  34 * 07-26-12  02.00.10  Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that
  35 *                     it uses MPI Chain SGE as well as MPI Simple SGE.
  36 * 08-19-13  02.00.11  Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info.
  37 * 01-08-14  02.00.12  Added MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC.
  38 * 11-18-14  02.00.13  Updated copyright information.
  39 * --------------------------------------------------------------------------
  40 */
  41
  42#ifndef MPI2_TOOL_H
  43#define MPI2_TOOL_H
  44
  45/*****************************************************************************
  46*
  47*              Toolbox Messages
  48*
  49*****************************************************************************/
  50
  51/*defines for the Tools */
  52#define MPI2_TOOLBOX_CLEAN_TOOL                     (0x00)
  53#define MPI2_TOOLBOX_MEMORY_MOVE_TOOL               (0x01)
  54#define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL          (0x02)
  55#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL          (0x03)
  56#define MPI2_TOOLBOX_BEACON_TOOL                    (0x05)
  57#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL            (0x06)
  58#define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL              (0x07)
  59
  60/****************************************************************************
  61* Toolbox reply
  62****************************************************************************/
  63
  64typedef struct _MPI2_TOOLBOX_REPLY {
  65        U8 Tool;                /*0x00 */
  66        U8 Reserved1;           /*0x01 */
  67        U8 MsgLength;           /*0x02 */
  68        U8 Function;            /*0x03 */
  69        U16 Reserved2;          /*0x04 */
  70        U8 Reserved3;           /*0x06 */
  71        U8 MsgFlags;            /*0x07 */
  72        U8 VP_ID;               /*0x08 */
  73        U8 VF_ID;               /*0x09 */
  74        U16 Reserved4;          /*0x0A */
  75        U16 Reserved5;          /*0x0C */
  76        U16 IOCStatus;          /*0x0E */
  77        U32 IOCLogInfo;         /*0x10 */
  78} MPI2_TOOLBOX_REPLY, *PTR_MPI2_TOOLBOX_REPLY,
  79        Mpi2ToolboxReply_t, *pMpi2ToolboxReply_t;
  80
  81/****************************************************************************
  82* Toolbox Clean Tool request
  83****************************************************************************/
  84
  85typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST {
  86        U8 Tool;                /*0x00 */
  87        U8 Reserved1;           /*0x01 */
  88        U8 ChainOffset;         /*0x02 */
  89        U8 Function;            /*0x03 */
  90        U16 Reserved2;          /*0x04 */
  91        U8 Reserved3;           /*0x06 */
  92        U8 MsgFlags;            /*0x07 */
  93        U8 VP_ID;               /*0x08 */
  94        U8 VF_ID;               /*0x09 */
  95        U16 Reserved4;          /*0x0A */
  96        U32 Flags;              /*0x0C */
  97} MPI2_TOOLBOX_CLEAN_REQUEST, *PTR_MPI2_TOOLBOX_CLEAN_REQUEST,
  98        Mpi2ToolboxCleanRequest_t, *pMpi2ToolboxCleanRequest_t;
  99
 100/*values for the Flags field */
 101#define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES            (0x80000000)
 102#define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES   (0x40000000)
 103#define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES      (0x20000000)
 104#define MPI2_TOOLBOX_CLEAN_FW_CURRENT               (0x10000000)
 105#define MPI2_TOOLBOX_CLEAN_FW_BACKUP                (0x08000000)
 106#define MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC   (0x04000000)
 107#define MPI2_TOOLBOX_CLEAN_MEGARAID                 (0x02000000)
 108#define MPI2_TOOLBOX_CLEAN_INITIALIZATION           (0x01000000)
 109#define MPI2_TOOLBOX_CLEAN_FLASH                    (0x00000004)
 110#define MPI2_TOOLBOX_CLEAN_SEEPROM                  (0x00000002)
 111#define MPI2_TOOLBOX_CLEAN_NVSRAM                   (0x00000001)
 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, *PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST,
 130        Mpi2ToolboxMemMoveRequest_t, *pMpi2ToolboxMemMoveRequest_t;
 131
 132/****************************************************************************
 133* Toolbox Diagnostic Data Upload request
 134****************************************************************************/
 135
 136typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST {
 137        U8 Tool;                /*0x00 */
 138        U8 Reserved1;           /*0x01 */
 139        U8 ChainOffset;         /*0x02 */
 140        U8 Function;            /*0x03 */
 141        U16 Reserved2;          /*0x04 */
 142        U8 Reserved3;           /*0x06 */
 143        U8 MsgFlags;            /*0x07 */
 144        U8 VP_ID;               /*0x08 */
 145        U8 VF_ID;               /*0x09 */
 146        U16 Reserved4;          /*0x0A */
 147        U8 SGLFlags;            /*0x0C */
 148        U8 Reserved5;           /*0x0D */
 149        U16 Reserved6;          /*0x0E */
 150        U32 Flags;              /*0x10 */
 151        U32 DataLength;         /*0x14 */
 152        MPI2_SGE_SIMPLE_UNION SGL;      /*0x18 */
 153} MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
 154        *PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
 155        Mpi2ToolboxDiagDataUploadRequest_t,
 156        *pMpi2ToolboxDiagDataUploadRequest_t;
 157
 158/*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
 159
 160typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER {
 161        U32 DiagDataLength;     /*00h */
 162        U8 FormatCode;          /*04h */
 163        U8 Reserved1;           /*05h */
 164        U16 Reserved2;          /*06h */
 165} MPI2_DIAG_DATA_UPLOAD_HEADER, *PTR_MPI2_DIAG_DATA_UPLOAD_HEADER,
 166        Mpi2DiagDataUploadHeader_t, *pMpi2DiagDataUploadHeader_t;
 167
 168/****************************************************************************
 169* Toolbox ISTWI Read Write Tool
 170****************************************************************************/
 171
 172/*Toolbox ISTWI Read Write Tool request message */
 173typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST {
 174        U8 Tool;                /*0x00 */
 175        U8 Reserved1;           /*0x01 */
 176        U8 ChainOffset;         /*0x02 */
 177        U8 Function;            /*0x03 */
 178        U16 Reserved2;          /*0x04 */
 179        U8 Reserved3;           /*0x06 */
 180        U8 MsgFlags;            /*0x07 */
 181        U8 VP_ID;               /*0x08 */
 182        U8 VF_ID;               /*0x09 */
 183        U16 Reserved4;          /*0x0A */
 184        U32 Reserved5;          /*0x0C */
 185        U32 Reserved6;          /*0x10 */
 186        U8 DevIndex;            /*0x14 */
 187        U8 Action;              /*0x15 */
 188        U8 SGLFlags;            /*0x16 */
 189        U8 Flags;               /*0x17 */
 190        U16 TxDataLength;       /*0x18 */
 191        U16 RxDataLength;       /*0x1A */
 192        U32 Reserved8;          /*0x1C */
 193        U32 Reserved9;          /*0x20 */
 194        U32 Reserved10;         /*0x24 */
 195        U32 Reserved11;         /*0x28 */
 196        U32 Reserved12;         /*0x2C */
 197        MPI2_SGE_SIMPLE_UNION SGL;      /*0x30 */
 198} MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
 199        *PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
 200        Mpi2ToolboxIstwiReadWriteRequest_t,
 201        *pMpi2ToolboxIstwiReadWriteRequest_t;
 202
 203/*values for the Action field */
 204#define MPI2_TOOL_ISTWI_ACTION_READ_DATA            (0x01)
 205#define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA           (0x02)
 206#define MPI2_TOOL_ISTWI_ACTION_SEQUENCE             (0x03)
 207#define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS          (0x10)
 208#define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS          (0x11)
 209#define MPI2_TOOL_ISTWI_ACTION_RESET                (0x12)
 210
 211/*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
 212
 213/*values for the Flags field */
 214#define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE   (0x80)
 215#define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK         (0x07)
 216
 217/*Toolbox ISTWI Read Write Tool reply message */
 218typedef struct _MPI2_TOOLBOX_ISTWI_REPLY {
 219        U8 Tool;                /*0x00 */
 220        U8 Reserved1;           /*0x01 */
 221        U8 MsgLength;           /*0x02 */
 222        U8 Function;            /*0x03 */
 223        U16 Reserved2;          /*0x04 */
 224        U8 Reserved3;           /*0x06 */
 225        U8 MsgFlags;            /*0x07 */
 226        U8 VP_ID;               /*0x08 */
 227        U8 VF_ID;               /*0x09 */
 228        U16 Reserved4;          /*0x0A */
 229        U16 Reserved5;          /*0x0C */
 230        U16 IOCStatus;          /*0x0E */
 231        U32 IOCLogInfo;         /*0x10 */
 232        U8 DevIndex;            /*0x14 */
 233        U8 Action;              /*0x15 */
 234        U8 IstwiStatus;         /*0x16 */
 235        U8 Reserved6;           /*0x17 */
 236        U16 TxDataCount;        /*0x18 */
 237        U16 RxDataCount;        /*0x1A */
 238} MPI2_TOOLBOX_ISTWI_REPLY, *PTR_MPI2_TOOLBOX_ISTWI_REPLY,
 239        Mpi2ToolboxIstwiReply_t, *pMpi2ToolboxIstwiReply_t;
 240
 241/****************************************************************************
 242* Toolbox Beacon Tool request
 243****************************************************************************/
 244
 245typedef struct _MPI2_TOOLBOX_BEACON_REQUEST {
 246        U8 Tool;                /*0x00 */
 247        U8 Reserved1;           /*0x01 */
 248        U8 ChainOffset;         /*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        U8 Reserved5;           /*0x0C */
 257        U8 PhysicalPort;        /*0x0D */
 258        U8 Reserved6;           /*0x0E */
 259        U8 Flags;               /*0x0F */
 260} MPI2_TOOLBOX_BEACON_REQUEST, *PTR_MPI2_TOOLBOX_BEACON_REQUEST,
 261        Mpi2ToolboxBeaconRequest_t, *pMpi2ToolboxBeaconRequest_t;
 262
 263/*values for the Flags field */
 264#define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF       (0x00)
 265#define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON        (0x01)
 266
 267/****************************************************************************
 268* Toolbox Diagnostic CLI Tool
 269****************************************************************************/
 270
 271#define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH    (0x5C)
 272
 273/*MPI v2.0 Toolbox Diagnostic CLI Tool request message */
 274typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST {
 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 SGLFlags;            /*0x0C */
 286        U8 Reserved5;           /*0x0D */
 287        U16 Reserved6;          /*0x0E */
 288        U32 DataLength;         /*0x10 */
 289        U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];/*0x14 */
 290        MPI2_MPI_SGE_IO_UNION SGL;      /*0x70 */
 291} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
 292        *PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
 293        Mpi2ToolboxDiagnosticCliRequest_t,
 294        *pMpi2ToolboxDiagnosticCliRequest_t;
 295
 296/*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
 297
 298/*MPI v2.5 Toolbox Diagnostic CLI Tool request message */
 299typedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST {
 300        U8 Tool;                /*0x00 */
 301        U8 Reserved1;           /*0x01 */
 302        U8 ChainOffset;         /*0x02 */
 303        U8 Function;            /*0x03 */
 304        U16 Reserved2;          /*0x04 */
 305        U8 Reserved3;           /*0x06 */
 306        U8 MsgFlags;            /*0x07 */
 307        U8 VP_ID;               /*0x08 */
 308        U8 VF_ID;               /*0x09 */
 309        U16 Reserved4;          /*0x0A */
 310        U32 Reserved5;          /*0x0C */
 311        U32 DataLength;         /*0x10 */
 312        U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];/*0x14 */
 313        MPI25_SGE_IO_UNION      SGL;                        /* 0x70 */
 314} MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
 315        *PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
 316        Mpi25ToolboxDiagnosticCliRequest_t,
 317        *pMpi25ToolboxDiagnosticCliRequest_t;
 318
 319/*Toolbox Diagnostic CLI Tool reply message */
 320typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY {
 321        U8 Tool;                /*0x00 */
 322        U8 Reserved1;           /*0x01 */
 323        U8 MsgLength;           /*0x02 */
 324        U8 Function;            /*0x03 */
 325        U16 Reserved2;          /*0x04 */
 326        U8 Reserved3;           /*0x06 */
 327        U8 MsgFlags;            /*0x07 */
 328        U8 VP_ID;               /*0x08 */
 329        U8 VF_ID;               /*0x09 */
 330        U16 Reserved4;          /*0x0A */
 331        U16 Reserved5;          /*0x0C */
 332        U16 IOCStatus;          /*0x0E */
 333        U32 IOCLogInfo;         /*0x10 */
 334        U32 ReturnedDataLength; /*0x14 */
 335} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY,
 336        *PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY,
 337        Mpi2ToolboxDiagnosticCliReply_t,
 338        *pMpi2ToolboxDiagnosticCliReply_t;
 339
 340
 341/****************************************************************************
 342*  Toolbox Console Text Display Tool
 343****************************************************************************/
 344
 345/* Toolbox Console Text Display Tool request message */
 346typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST {
 347        U8                      Tool;                   /* 0x00 */
 348        U8                      Reserved1;              /* 0x01 */
 349        U8                      ChainOffset;            /* 0x02 */
 350        U8                      Function;               /* 0x03 */
 351        U16                     Reserved2;              /* 0x04 */
 352        U8                      Reserved3;              /* 0x06 */
 353        U8                      MsgFlags;               /* 0x07 */
 354        U8                      VP_ID;                  /* 0x08 */
 355        U8                      VF_ID;                  /* 0x09 */
 356        U16                     Reserved4;              /* 0x0A */
 357        U8                      Console;                /* 0x0C */
 358        U8                      Flags;                  /* 0x0D */
 359        U16                     Reserved6;              /* 0x0E */
 360        U8                      TextToDisplay[4];       /* 0x10 */
 361} MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
 362*PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
 363Mpi2ToolboxTextDisplayRequest_t,
 364*pMpi2ToolboxTextDisplayRequest_t;
 365
 366/* defines for the Console field */
 367#define MPI2_TOOLBOX_CONSOLE_TYPE_MASK          (0xF0)
 368#define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT       (0x00)
 369#define MPI2_TOOLBOX_CONSOLE_TYPE_UART          (0x10)
 370#define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET      (0x20)
 371
 372#define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK        (0x0F)
 373
 374/* defines for the Flags field */
 375#define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP     (0x01)
 376
 377
 378
 379/*****************************************************************************
 380*
 381*      Diagnostic Buffer Messages
 382*
 383*****************************************************************************/
 384
 385/****************************************************************************
 386* Diagnostic Buffer Post request
 387****************************************************************************/
 388
 389typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST {
 390        U8 ExtendedType;        /*0x00 */
 391        U8 BufferType;          /*0x01 */
 392        U8 ChainOffset;         /*0x02 */
 393        U8 Function;            /*0x03 */
 394        U16 Reserved2;          /*0x04 */
 395        U8 Reserved3;           /*0x06 */
 396        U8 MsgFlags;            /*0x07 */
 397        U8 VP_ID;               /*0x08 */
 398        U8 VF_ID;               /*0x09 */
 399        U16 Reserved4;          /*0x0A */
 400        U64 BufferAddress;      /*0x0C */
 401        U32 BufferLength;       /*0x14 */
 402        U32 Reserved5;          /*0x18 */
 403        U32 Reserved6;          /*0x1C */
 404        U32 Flags;              /*0x20 */
 405        U32 ProductSpecific[23];        /*0x24 */
 406} MPI2_DIAG_BUFFER_POST_REQUEST, *PTR_MPI2_DIAG_BUFFER_POST_REQUEST,
 407        Mpi2DiagBufferPostRequest_t, *pMpi2DiagBufferPostRequest_t;
 408
 409/*values for the ExtendedType field */
 410#define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION         (0x02)
 411
 412/*values for the BufferType field */
 413#define MPI2_DIAG_BUF_TYPE_TRACE                    (0x00)
 414#define MPI2_DIAG_BUF_TYPE_SNAPSHOT                 (0x01)
 415#define MPI2_DIAG_BUF_TYPE_EXTENDED                 (0x02)
 416/*count of the number of buffer types */
 417#define MPI2_DIAG_BUF_TYPE_COUNT                    (0x03)
 418
 419/*values for the Flags field */
 420#define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL          (0x00000002)
 421#define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE        (0x00000001)
 422
 423/****************************************************************************
 424* Diagnostic Buffer Post reply
 425****************************************************************************/
 426
 427typedef struct _MPI2_DIAG_BUFFER_POST_REPLY {
 428        U8 ExtendedType;        /*0x00 */
 429        U8 BufferType;          /*0x01 */
 430        U8 MsgLength;           /*0x02 */
 431        U8 Function;            /*0x03 */
 432        U16 Reserved2;          /*0x04 */
 433        U8 Reserved3;           /*0x06 */
 434        U8 MsgFlags;            /*0x07 */
 435        U8 VP_ID;               /*0x08 */
 436        U8 VF_ID;               /*0x09 */
 437        U16 Reserved4;          /*0x0A */
 438        U16 Reserved5;          /*0x0C */
 439        U16 IOCStatus;          /*0x0E */
 440        U32 IOCLogInfo;         /*0x10 */
 441        U32 TransferLength;     /*0x14 */
 442} MPI2_DIAG_BUFFER_POST_REPLY, *PTR_MPI2_DIAG_BUFFER_POST_REPLY,
 443        Mpi2DiagBufferPostReply_t, *pMpi2DiagBufferPostReply_t;
 444
 445/****************************************************************************
 446* Diagnostic Release request
 447****************************************************************************/
 448
 449typedef struct _MPI2_DIAG_RELEASE_REQUEST {
 450        U8 Reserved1;           /*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} MPI2_DIAG_RELEASE_REQUEST, *PTR_MPI2_DIAG_RELEASE_REQUEST,
 461        Mpi2DiagReleaseRequest_t, *pMpi2DiagReleaseRequest_t;
 462
 463/****************************************************************************
 464* Diagnostic Buffer Post reply
 465****************************************************************************/
 466
 467typedef struct _MPI2_DIAG_RELEASE_REPLY {
 468        U8 Reserved1;           /*0x00 */
 469        U8 BufferType;          /*0x01 */
 470        U8 MsgLength;           /*0x02 */
 471        U8 Function;            /*0x03 */
 472        U16 Reserved2;          /*0x04 */
 473        U8 Reserved3;           /*0x06 */
 474        U8 MsgFlags;            /*0x07 */
 475        U8 VP_ID;               /*0x08 */
 476        U8 VF_ID;               /*0x09 */
 477        U16 Reserved4;          /*0x0A */
 478        U16 Reserved5;          /*0x0C */
 479        U16 IOCStatus;          /*0x0E */
 480        U32 IOCLogInfo;         /*0x10 */
 481} MPI2_DIAG_RELEASE_REPLY, *PTR_MPI2_DIAG_RELEASE_REPLY,
 482        Mpi2DiagReleaseReply_t, *pMpi2DiagReleaseReply_t;
 483
 484#endif
 485