1/**************************************************************** 2 * Copyright (c) 1996-2000 Distributed Processing Technology Corporation 3 * Copyright (c) 2000 Adaptec Corporation. 4 * All rights reserved. 5 * 6 * Copyright 1999 I2O Special Interest Group (I2O SIG). All rights reserved. 7 * All rights reserved 8 * 9 * TERMS AND CONDITIONS OF USE 10 * 11 * Redistribution and use in source form, with or without modification, are 12 * permitted provided that redistributions of source code must retain the 13 * above copyright notice, this list of conditions and the following disclaimer. 14 * 15 * This software is provided `as is' by Distributed Processing Technology and 16 * any express or implied warranties, including, but not limited to, the 17 * implied warranties of merchantability and fitness for a particular purpose, 18 * are disclaimed. In no event shall Distributed Processing Technology be 19 * liable for any direct, indirect, incidental, special, exemplary or 20 * consequential damages (including, but not limited to, procurement of 21 * substitute goods or services; loss of use, data, or profits; or business 22 * interruptions) however caused and on any theory of liability, whether in 23 * contract, strict liability, or tort (including negligence or otherwise) 24 * arising in any way out of the use of this driver software, even if advised 25 * of the possibility of such damage. 26 * 27 * This header file, and any modifications of this header file, are provided 28 * contingent upon your agreement and adherence to the here-listed terms and 29 * conditions. By accepting and/or using this header file, you agree to abide 30 * by these terms and conditions and that these terms and conditions will be 31 * construed and governed in accordance with the laws of the State of California, 32 * without reference to conflict-of-law provisions. If you do not agree 33 * to these terms and conditions, please delete this file, and any copies, 34 * permanently, without making any use thereof. 35 * 36 * THIS HEADER FILE IS PROVIDED FREE OF CHARGE ON AN AS-IS BASIS WITHOUT 37 * WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 38 * TO IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 39 * PURPOSE. I2O SIG DOES NOT WARRANT THAT THIS HEADER FILE WILL MEET THE 40 * USER'S REQUIREMENTS OR THAT ITS OPERATION WILL BE UNINTERRUPTED OR 41 * ERROR-FREE. 42 * 43 * I2O SIG DISCLAIMS ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF 44 * ANY PROPRIETARY RIGHTS, RELATING TO THE IMPLEMENTATION OF THE I2O 45 * SPECIFICATIONS. I2O SIG DOES NOT WARRANT OR REPRESENT THAT SUCH 46 * IMPLEMENTATIONS WILL NOT INFRINGE SUCH RIGHTS. 47 * 48 * THE USER OF THIS HEADER FILE SHALL HAVE NO RECOURSE TO I2O SIG FOR ANY 49 * ACTUAL OR CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOST DATA 50 * OR LOST PROFITS ARISING OUT OF THE USE OR INABILITY TO USE THIS PROGRAM. 51 * 52 * I2O SIG grants the user of this header file a license to copy, distribute, 53 * and modify it, for any purpose, under the following terms. Any copying, 54 * distribution, or modification of this header file must not delete or alter 55 * the copyright notice of I2O SIG or any of these Terms and Conditions. 56 * 57 * Any distribution of this header file must not include a charge for the 58 * header file (unless such charges are strictly for the physical acts of 59 * copying or transferring copies). However, distribution of a product in 60 * which this header file is embedded may include a charge so long as any 61 * such charge does not include any charge for the header file itself. 62 * 63 * Any modification of this header file constitutes a derivative work based 64 * on this header file. Any distribution of such derivative work: (1) must 65 * include prominent notices that the header file has been changed from the 66 * original, together with the dates of any changes; (2) automatically includes 67 * this same license to the original header file from I2O SIG, without any 68 * restriction thereon from the distributing user; and (3) must include a 69 * grant of license of the modified file under the same terms and conditions 70 * as these Terms and Conditions. 71 * 72 * The I2O SIG Web site can be found at: http://www.i2osig.org 73 * 74 * The I2O SIG encourages you to deposit derivative works based on this 75 * header file at the I2O SIG Web site. Furthermore, to become a Registered 76 * Developer of the I2O SIG, sign up at the Web site or call 415.750.8352 77 * (United States). 78 *
|
79 * $FreeBSD: head/sys/dev/asr/i2outil.h 87826 2001-12-13 23:48:34Z obrien $
|
79 * $FreeBSD: head/sys/dev/asr/i2outil.h 96551 2002-05-14 00:53:08Z obrien $ |
80 * 81 ****************************************************************/ 82 83/********************************************************************* 84 * I2OUtil.h -- I2O Utility Class Message defintion file 85 * 86 * This file contains information presented in Chapter 6 of the I2O 87 * Specification. 88 **********************************************************************/ 89 90#if !defined(I2O_UTILITY_HDR)
|
91#define I2O_UTILITY_HDR
|
91#define I2O_UTILITY_HDR |
92
|
93#define I2OUTIL_REV 1_5_4 /* I2OUtil header file revision string */
|
93#define I2OUTIL_REV 1_5_4 /* I2OUtil header file revision string */ |
94 95#if ((defined(KERNEL) || defined(_KERNEL)) && defined(__FreeBSD__)) 96# if (KERN_VERSION < 3) 97# include "i386/pci/i2omsg.h" /* Include the Base Message file */ 98# else 99# include "dev/asr/i2omsg.h" 100# endif 101#else 102# include "i2omsg.h" /* Include the Base Message file */ 103#endif 104 105 106/* 107NOTES: 108 109 Gets, reads, receives, etc. are all even numbered functions. 110 Sets, writes, sends, etc. are all odd numbered functions. 111 Functions that both send and receive data can be either but an attempt is made 112 to use the function number that indicates the greater transfer amount. 113 Functions that do not send or receive data use odd function numbers. 114 115 Some functions are synonyms like read, receive and send, write. 116 117 All common functions will have a code of less than 0x80. 118 Unique functions to a class will start at 0x80. 119 Executive Functions start at 0xA0. 120 121 Utility Message function codes range from 0 - 0x1f 122 Base Message function codes range from 0x20 - 0xfe 123 Private Message function code is 0xff. 124*/ 125 126PRAGMA_ALIGN_PUSH 127 128PRAGMA_PACK_PUSH 129 130/* Utility Message class functions. */ 131
|
132#define I2O_UTIL_NOP 0x00
133#define I2O_UTIL_ABORT 0x01
134#define I2O_UTIL_CLAIM 0x09
135#define I2O_UTIL_CLAIM_RELEASE 0x0B
136#define I2O_UTIL_CONFIG_DIALOG 0x10
137#define I2O_UTIL_DEVICE_RESERVE 0x0D
138#define I2O_UTIL_DEVICE_RELEASE 0x0F
139#define I2O_UTIL_EVENT_ACKNOWLEDGE 0x14
140#define I2O_UTIL_EVENT_REGISTER 0x13
141#define I2O_UTIL_LOCK 0x17
142#define I2O_UTIL_LOCK_RELEASE 0x19
143#define I2O_UTIL_PARAMS_GET 0x06
144#define I2O_UTIL_PARAMS_SET 0x05
145#define I2O_UTIL_REPLY_FAULT_NOTIFY 0x15
|
132#define I2O_UTIL_NOP 0x00 133#define I2O_UTIL_ABORT 0x01 134#define I2O_UTIL_CLAIM 0x09 135#define I2O_UTIL_CLAIM_RELEASE 0x0B 136#define I2O_UTIL_CONFIG_DIALOG 0x10 137#define I2O_UTIL_DEVICE_RESERVE 0x0D 138#define I2O_UTIL_DEVICE_RELEASE 0x0F 139#define I2O_UTIL_EVENT_ACKNOWLEDGE 0x14 140#define I2O_UTIL_EVENT_REGISTER 0x13 141#define I2O_UTIL_LOCK 0x17 142#define I2O_UTIL_LOCK_RELEASE 0x19 143#define I2O_UTIL_PARAMS_GET 0x06 144#define I2O_UTIL_PARAMS_SET 0x05 145#define I2O_UTIL_REPLY_FAULT_NOTIFY 0x15 |
146 147/****************************************************************************/ 148 149/* ABORT Abort type defines. */ 150
|
151#define I2O_ABORT_TYPE_EXACT_ABORT 0x00
152#define I2O_ABORT_TYPE_FUNCTION_ABORT 0x01
153#define I2O_ABORT_TYPE_TRANSACTION_ABORT 0x02
154#define I2O_ABORT_TYPE_WILD_ABORT 0x03
155#define I2O_ABORT_TYPE_CLEAN_EXACT_ABORT 0x04
156#define I2O_ABORT_TYPE_CLEAN_FUNCTION_ABORT 0x05
157#define I2O_ABORT_TYPE_CLEAN_TRANSACTION_ABORT 0x06
158#define I2O_ABORT_TYPE_CLEAN_WILD_ABORT 0x07
|
151#define I2O_ABORT_TYPE_EXACT_ABORT 0x00 152#define I2O_ABORT_TYPE_FUNCTION_ABORT 0x01 153#define I2O_ABORT_TYPE_TRANSACTION_ABORT 0x02 154#define I2O_ABORT_TYPE_WILD_ABORT 0x03 155#define I2O_ABORT_TYPE_CLEAN_EXACT_ABORT 0x04 156#define I2O_ABORT_TYPE_CLEAN_FUNCTION_ABORT 0x05 157#define I2O_ABORT_TYPE_CLEAN_TRANSACTION_ABORT 0x06 158#define I2O_ABORT_TYPE_CLEAN_WILD_ABORT 0x07 |
159 160/* UtilAbort Function Message Frame structure. */ 161 162typedef struct _I2O_UTIL_ABORT_MESSAGE { 163 I2O_MESSAGE_FRAME StdMessageFrame; 164 I2O_TRANSACTION_CONTEXT TransactionContext; 165# if (defined(_DPT_BIG_ENDIAN) || defined(sparc)) 166 U32 reserved; 167# else 168 U16 reserved; 169 U8 AbortType; 170 U8 FunctionToAbort; 171# endif 172 I2O_TRANSACTION_CONTEXT TransactionContextToAbort; 173} I2O_UTIL_ABORT_MESSAGE, *PI2O_UTIL_ABORT_MESSAGE; 174 175 176typedef struct _I2O_UTIL_ABORT_REPLY { 177 I2O_MESSAGE_FRAME StdMessageFrame; 178 I2O_TRANSACTION_CONTEXT TransactionContext; 179 U32 CountOfAbortedMessages; 180} I2O_UTIL_ABORT_REPLY, *PI2O_UTIL_ABORT_REPLY; 181 182 183/****************************************************************************/ 184 185/* Claim Flag defines */ 186
|
187#define I2O_CLAIM_FLAGS_EXCLUSIVE 0x0001 /* Reserved */
188#define I2O_CLAIM_FLAGS_RESET_SENSITIVE 0x0002
189#define I2O_CLAIM_FLAGS_STATE_SENSITIVE 0x0004
190#define I2O_CLAIM_FLAGS_CAPACITY_SENSITIVE 0x0008
191#define I2O_CLAIM_FLAGS_PEER_SERVICE_DISABLED 0x0010
192#define I2O_CLAIM_FLAGS_MGMT_SERVICE_DISABLED 0x0020
|
187#define I2O_CLAIM_FLAGS_EXCLUSIVE 0x0001 /* Reserved */ 188#define I2O_CLAIM_FLAGS_RESET_SENSITIVE 0x0002 189#define I2O_CLAIM_FLAGS_STATE_SENSITIVE 0x0004 190#define I2O_CLAIM_FLAGS_CAPACITY_SENSITIVE 0x0008 191#define I2O_CLAIM_FLAGS_PEER_SERVICE_DISABLED 0x0010 192#define I2O_CLAIM_FLAGS_MGMT_SERVICE_DISABLED 0x0020 |
193 194/* Claim Type defines */ 195
|
196#define I2O_CLAIM_TYPE_PRIMARY_USER 0x01
197#define I2O_CLAIM_TYPE_AUTHORIZED_USER 0x02
198#define I2O_CLAIM_TYPE_SECONDARY_USER 0x03
199#define I2O_CLAIM_TYPE_MANAGEMENT_USER 0x04
|
196#define I2O_CLAIM_TYPE_PRIMARY_USER 0x01 197#define I2O_CLAIM_TYPE_AUTHORIZED_USER 0x02 198#define I2O_CLAIM_TYPE_SECONDARY_USER 0x03 199#define I2O_CLAIM_TYPE_MANAGEMENT_USER 0x04 |
200 201/* UtilClaim Function Message Frame structure. */ 202 203typedef struct _I2O_UTIL_CLAIM_MESSAGE { 204 I2O_MESSAGE_FRAME StdMessageFrame; 205 I2O_TRANSACTION_CONTEXT TransactionContext; 206 U16 ClaimFlags; 207 U8 reserved; 208 U8 ClaimType; 209} I2O_UTIL_CLAIM_MESSAGE, *PI2O_UTIL_CLAIM_MESSAGE; 210 211 212/****************************************************************************/ 213 214/* Claim Release Flag defines */ 215
|
216#define I2O_RELEASE_FLAGS_CONDITIONAL 0x0001
|
216#define I2O_RELEASE_FLAGS_CONDITIONAL 0x0001 |
217 218/* UtilClaimRelease Function Message Frame structure. */ 219 220typedef struct _I2O_UTIL_CLAIM_RELEASE_MESSAGE { 221 I2O_MESSAGE_FRAME StdMessageFrame; 222 I2O_TRANSACTION_CONTEXT TransactionContext; 223 U16 ReleaseFlags; 224 U8 reserved; 225 U8 ClaimType; 226} I2O_UTIL_CLAIM_RELEASE_MESSAGE, *PI2O_UTIL_CLAIM_RELEASE_MESSAGE; 227 228 229/****************************************************************************/ 230 231/* UtilConfigDialog Function Message Frame structure */ 232 233typedef struct _I2O_UTIL_CONFIG_DIALOG_MESSAGE { 234 I2O_MESSAGE_FRAME StdMessageFrame; 235 I2O_TRANSACTION_CONTEXT TransactionContext; 236 U32 PageNumber; 237 I2O_SG_ELEMENT SGL; 238} I2O_UTIL_CONFIG_DIALOG_MESSAGE, *PI2O_UTIL_CONFIG_DIALOG_MESSAGE; 239 240 241/****************************************************************************/ 242 243/* Event Acknowledge Function Message Frame structure */ 244 245typedef struct _I2O_UTIL_EVENT_ACK_MESSAGE { 246 I2O_MESSAGE_FRAME StdMessageFrame; 247 I2O_TRANSACTION_CONTEXT TransactionContext; 248 U32 EventIndicator; 249 U32 EventData[1]; 250} I2O_UTIL_EVENT_ACK_MESSAGE, *PI2O_UTIL_EVENT_ACK_MESSAGE; 251 252/* Event Ack Reply structure */ 253 254typedef struct _I2O_UTIL_EVENT_ACK_REPLY { 255 I2O_MESSAGE_FRAME StdMessageFrame; 256 I2O_TRANSACTION_CONTEXT TransactionContext; 257 U32 EventIndicator; 258 U32 EventData[1]; 259} I2O_UTIL_EVENT_ACK_REPLY, *PI2O_UTIL_EVENT_ACK_REPLY; 260 261 262/****************************************************************************/ 263 264/* Event Indicator Mask Flags */ 265
|
266#define I2O_EVENT_IND_STATE_CHANGE 0x80000000
267#define I2O_EVENT_IND_GENERAL_WARNING 0x40000000
268#define I2O_EVENT_IND_CONFIGURATION_FLAG 0x20000000
269/* #define I2O_EVENT_IND_RESERVE_RELEASE 0x10000000 */
270#define I2O_EVENT_IND_LOCK_RELEASE 0x10000000
271#define I2O_EVENT_IND_CAPABILITY_CHANGE 0x08000000
272#define I2O_EVENT_IND_DEVICE_RESET 0x04000000
273#define I2O_EVENT_IND_EVENT_MASK_MODIFIED 0x02000000
274#define I2O_EVENT_IND_FIELD_MODIFIED 0x01000000
275#define I2O_EVENT_IND_VENDOR_EVENT 0x00800000
276#define I2O_EVENT_IND_DEVICE_STATE 0x00400000
|
266#define I2O_EVENT_IND_STATE_CHANGE 0x80000000 267#define I2O_EVENT_IND_GENERAL_WARNING 0x40000000 268#define I2O_EVENT_IND_CONFIGURATION_FLAG 0x20000000 269/* #define I2O_EVENT_IND_RESERVE_RELEASE 0x10000000 */ 270#define I2O_EVENT_IND_LOCK_RELEASE 0x10000000 271#define I2O_EVENT_IND_CAPABILITY_CHANGE 0x08000000 272#define I2O_EVENT_IND_DEVICE_RESET 0x04000000 273#define I2O_EVENT_IND_EVENT_MASK_MODIFIED 0x02000000 274#define I2O_EVENT_IND_FIELD_MODIFIED 0x01000000 275#define I2O_EVENT_IND_VENDOR_EVENT 0x00800000 276#define I2O_EVENT_IND_DEVICE_STATE 0x00400000 |
277 278/* Event Data for generic Events */ 279
|
280#define I2O_EVENT_STATE_CHANGE_NORMAL 0x00
281#define I2O_EVENT_STATE_CHANGE_SUSPENDED 0x01
282#define I2O_EVENT_STATE_CHANGE_RESTART 0x02
283#define I2O_EVENT_STATE_CHANGE_NA_RECOVER 0x03
284#define I2O_EVENT_STATE_CHANGE_NA_NO_RECOVER 0x04
285#define I2O_EVENT_STATE_CHANGE_QUIESCE_REQUEST 0x05
286#define I2O_EVENT_STATE_CHANGE_FAILED 0x10
287#define I2O_EVENT_STATE_CHANGE_FAULTED 0x11
|
280#define I2O_EVENT_STATE_CHANGE_NORMAL 0x00 281#define I2O_EVENT_STATE_CHANGE_SUSPENDED 0x01 282#define I2O_EVENT_STATE_CHANGE_RESTART 0x02 283#define I2O_EVENT_STATE_CHANGE_NA_RECOVER 0x03 284#define I2O_EVENT_STATE_CHANGE_NA_NO_RECOVER 0x04 285#define I2O_EVENT_STATE_CHANGE_QUIESCE_REQUEST 0x05 286#define I2O_EVENT_STATE_CHANGE_FAILED 0x10 287#define I2O_EVENT_STATE_CHANGE_FAULTED 0x11 |
288
|
289#define I2O_EVENT_GEN_WARNING_NORMAL 0x00
290#define I2O_EVENT_GEN_WARNING_ERROR_THRESHOLD 0x01
291#define I2O_EVENT_GEN_WARNING_MEDIA_FAULT 0x02
|
289#define I2O_EVENT_GEN_WARNING_NORMAL 0x00 290#define I2O_EVENT_GEN_WARNING_ERROR_THRESHOLD 0x01 291#define I2O_EVENT_GEN_WARNING_MEDIA_FAULT 0x02 |
292
|
293#define I2O_EVENT_CAPABILITY_OTHER 0x01
294#define I2O_EVENT_CAPABILITY_CHANGED 0x02
|
293#define I2O_EVENT_CAPABILITY_OTHER 0x01 294#define I2O_EVENT_CAPABILITY_CHANGED 0x02 |
295
|
296#define I2O_EVENT_SENSOR_STATE_CHANGED 0x01
|
296#define I2O_EVENT_SENSOR_STATE_CHANGED 0x01 |
297 298 299/* UtilEventRegister Function Message Frame structure */ 300 301typedef struct _I2O_UTIL_EVENT_REGISTER_MESSAGE { 302 I2O_MESSAGE_FRAME StdMessageFrame; 303 I2O_TRANSACTION_CONTEXT TransactionContext; 304 U32 EventMask; 305} I2O_UTIL_EVENT_REGISTER_MESSAGE, *PI2O_UTIL_EVENT_REGISTER_MESSAGE; 306 307/* UtilEventRegister Reply structure */ 308 309typedef struct _I2O_UTIL_EVENT_REGISTER_REPLY { 310 I2O_MESSAGE_FRAME StdMessageFrame; 311 I2O_TRANSACTION_CONTEXT TransactionContext; 312 U32 EventIndicator; 313 U32 EventData[1]; 314} I2O_UTIL_EVENT_REGISTER_REPLY, *PI2O_UTIL_EVENT_REGISTER_REPLY; 315 316 317/****************************************************************************/ 318 319/* UtilLock Function Message Frame structure. */ 320 321typedef struct _I2O_UTIL_LOCK_MESSAGE { 322 I2O_MESSAGE_FRAME StdMessageFrame; 323 I2O_TRANSACTION_CONTEXT TransactionContext; 324} I2O_UTIL_LOCK_MESSAGE, *PI2O_UTIL_LOCK_MESSAGE; 325 326/****************************************************************************/ 327 328/* UtilLockRelease Function Message Frame structure. */ 329 330typedef struct _I2O_UTIL_LOCK_RELEASE_MESSAGE { 331 I2O_MESSAGE_FRAME StdMessageFrame; 332 I2O_TRANSACTION_CONTEXT TransactionContext; 333} I2O_UTIL_LOCK_RELEASE_MESSAGE, *PI2O_UTIL_LOCK_RELEASE_MESSAGE; 334 335 336/****************************************************************************/ 337 338/* UtilNOP Function Message Frame structure. */ 339 340typedef struct _I2O_UTIL_NOP_MESSAGE { 341 I2O_MESSAGE_FRAME StdMessageFrame; 342} I2O_UTIL_NOP_MESSAGE, *PI2O_UTIL_NOP_MESSAGE; 343 344 345/****************************************************************************/ 346 347/* UtilParamsGet Message Frame structure. */ 348 349typedef struct _I2O_UTIL_PARAMS_GET_MESSAGE { 350 I2O_MESSAGE_FRAME StdMessageFrame; 351 I2O_TRANSACTION_CONTEXT TransactionContext; 352 U32 OperationFlags; 353 I2O_SG_ELEMENT SGL; 354} I2O_UTIL_PARAMS_GET_MESSAGE, *PI2O_UTIL_PARAMS_GET_MESSAGE; 355 356 357/****************************************************************************/ 358 359/* UtilParamsSet Message Frame structure. */ 360 361typedef struct _I2O_UTIL_PARAMS_SET_MESSAGE { 362 I2O_MESSAGE_FRAME StdMessageFrame; 363 I2O_TRANSACTION_CONTEXT TransactionContext; 364 U32 OperationFlags; 365 I2O_SG_ELEMENT SGL; 366} I2O_UTIL_PARAMS_SET_MESSAGE, *PI2O_UTIL_PARAMS_SET_MESSAGE; 367 368 369/****************************************************************************/ 370 371/* UtilReplyFaultNotify Message for Message Failure. */ 372 373typedef struct _I2O_UTIL_REPLY_FAULT_NOTIFY_MESSAGE { 374 I2O_MESSAGE_FRAME StdMessageFrame; 375 I2O_TRANSACTION_CONTEXT TransactionContext; 376 U8 LowestVersion; 377 U8 HighestVersion; 378 BF Severity:I2O_FAILCODE_SEVERITY_SZ; 379 BF FailureCode:I2O_FAILCODE_CODE_SZ; 380 BF FailingIOP_ID:I2O_IOP_ID_SZ; 381 BF reserved:I2O_RESERVED_4BITS; 382 BF FailingHostUnitID:I2O_UNIT_ID_SZ; 383 U32 AgeLimit; 384#if I2O_64BIT_CONTEXT 385 PI2O_MESSAGE_FRAME OriginalMFA; 386#else 387 PI2O_MESSAGE_FRAME OriginalMFALowPart; 388 U32 OriginalMFAHighPart; /* Always 0000 */ 389#endif 390} I2O_UTIL_REPLY_FAULT_NOTIFY_MESSAGE, *PI2O_UTIL_REPLY_FAULT_NOTIFY_MESSAGE; 391 392 393/****************************************************************************/ 394 395/* Device Reserve Function Message Frame structure. */ 396/* NOTE: This was previously called the Reserve Message */ 397 398typedef struct _I2O_UTIL_DEVICE_RESERVE_MESSAGE { 399 I2O_MESSAGE_FRAME StdMessageFrame; 400 I2O_TRANSACTION_CONTEXT TransactionContext; 401} I2O_UTIL_DEVICE_RESERVE_MESSAGE, *PI2O_UTIL_DEVICE_RESERVE_MESSAGE; 402 403 404/****************************************************************************/ 405 406/* Device Release Function Message Frame structure. */ 407/* NOTE: This was previously called the ReserveRelease Message */ 408 409typedef struct _I2O_UTIL_DEVICE_RELEASE_MESSAGE { 410 I2O_MESSAGE_FRAME StdMessageFrame; 411 I2O_TRANSACTION_CONTEXT TransactionContext; 412} I2O_UTIL_DEVICE_RELEASE_MESSAGE, *PI2O_UTIL_DEVICE_RELEASE_MESSAGE; 413 414 415/****************************************************************************/ 416 417PRAGMA_PACK_POP 418PRAGMA_ALIGN_POP 419 420#endif /* I2O_UTILITY_HDR */
|