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