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