1139749Simp/*-
2139749Simp ****************************************************************
365312Smsmith * Copyright (c) 1996-2000 Distributed Processing Technology Corporation
465312Smsmith * Copyright (c) 2000 Adaptec Corporation.
565312Smsmith * All rights reserved.
696554Sobrien *
796554Sobrien * Copyright 1999 I2O Special Interest Group (I2O SIG).	 All rights reserved.
865312Smsmith * All rights reserved
996554Sobrien *
1065312Smsmith * TERMS AND CONDITIONS OF USE
1196554Sobrien *
1265312Smsmith * Redistribution and use in source form, with or without modification, are
1365312Smsmith * permitted provided that redistributions of source code must retain the
1465312Smsmith * above copyright notice, this list of conditions and the following disclaimer.
1596554Sobrien *
1665312Smsmith * This software is provided `as is' by Distributed Processing Technology and
1765312Smsmith * any express or implied warranties, including, but not limited to, the
1865312Smsmith * implied warranties of merchantability and fitness for a particular purpose,
1965312Smsmith * are disclaimed. In no event shall Distributed Processing Technology be
2065312Smsmith * liable for any direct, indirect, incidental, special, exemplary or
2165312Smsmith * consequential damages (including, but not limited to, procurement of
2265312Smsmith * substitute goods or services; loss of use, data, or profits; or business
2365312Smsmith * interruptions) however caused and on any theory of liability, whether in
2465312Smsmith * contract, strict liability, or tort (including negligence or otherwise)
2565312Smsmith * arising in any way out of the use of this driver software, even if advised
2665312Smsmith * of the possibility of such damage.
2796554Sobrien *
2865312Smsmith * This header file, and any modifications of this header file, are provided
2965312Smsmith * contingent upon your agreement and adherence to the here-listed terms and
3096554Sobrien * conditions.	By accepting and/or using this header file, you agree to abide
3165312Smsmith * by these terms and conditions and that these terms and conditions will be
3265312Smsmith * construed and governed in accordance with the laws of the State of California,
3365312Smsmith * without reference to conflict-of-law provisions.  If you do not agree
3465312Smsmith * to these terms and conditions, please delete this file, and any copies,
3565312Smsmith * permanently, without making any use thereof.
3696554Sobrien *
3765312Smsmith * THIS HEADER FILE IS PROVIDED FREE OF CHARGE ON AN AS-IS BASIS WITHOUT
3865312Smsmith * WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
3965312Smsmith * TO IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
4065312Smsmith * PURPOSE.  I2O SIG DOES NOT WARRANT THAT THIS HEADER FILE WILL MEET THE
4165312Smsmith * USER'S REQUIREMENTS OR THAT ITS OPERATION WILL BE UNINTERRUPTED OR
4265312Smsmith * ERROR-FREE.
4396554Sobrien *
4465312Smsmith * I2O SIG DISCLAIMS ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF
4565312Smsmith * ANY PROPRIETARY RIGHTS, RELATING TO THE IMPLEMENTATION OF THE I2O
4665312Smsmith * SPECIFICATIONS.  I2O SIG DOES NOT WARRANT OR REPRESENT THAT SUCH
4765312Smsmith * IMPLEMENTATIONS WILL NOT INFRINGE SUCH RIGHTS.
4896554Sobrien *
4965312Smsmith * THE USER OF THIS HEADER FILE SHALL HAVE NO RECOURSE TO I2O SIG FOR ANY
5065312Smsmith * ACTUAL OR CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOST DATA
5165312Smsmith * OR LOST PROFITS ARISING OUT OF THE USE OR INABILITY TO USE THIS PROGRAM.
5296554Sobrien *
5365312Smsmith * I2O SIG grants the user of this header file a license to copy, distribute,
5465312Smsmith * and modify it, for any purpose, under the following terms.  Any copying,
5565312Smsmith * distribution, or modification of this header file must not delete or alter
5665312Smsmith * the copyright notice of I2O SIG or any of these Terms and Conditions.
5796554Sobrien *
5865312Smsmith * Any distribution of this header file must not include a charge for the
5965312Smsmith * header file (unless such charges are strictly for the physical acts of
6065312Smsmith * copying or transferring copies).  However, distribution of a product in
6165312Smsmith * which this header file is embedded may include a charge so long as any
6265312Smsmith * such charge does not include any charge for the header file itself.
6396554Sobrien *
6465312Smsmith * Any modification of this header file constitutes a derivative work based
6596554Sobrien * on this header file.	 Any distribution of such derivative work: (1) must
6665312Smsmith * include prominent notices that the header file has been changed from the
6796554Sobrien * original, together with the dates of any changes; (2) automatically includes
6865312Smsmith * this same license to the original header file from I2O SIG, without any
6965312Smsmith * restriction thereon from the distributing user; and (3) must include a
7065312Smsmith * grant of license of the modified file under the same terms and conditions
7165312Smsmith * as these Terms and Conditions.
7296554Sobrien *
7365312Smsmith * The I2O SIG Web site can be found at: http://www.i2osig.org
7496554Sobrien *
7565312Smsmith * The I2O SIG encourages you to deposit derivative works based on this
7696554Sobrien * header file at the I2O SIG Web site.	 Furthermore, to become a Registered
7765312Smsmith * Developer of the I2O SIG, sign up at the Web site or call 415.750.8352
7865312Smsmith * (United States).
7987826Sobrien *
8087826Sobrien * $FreeBSD: releng/10.3/sys/dev/asr/i2outil.h 139749 2005-01-06 01:43:34Z imp $
8187826Sobrien *
8265312Smsmith ****************************************************************/
8365312Smsmith
8465312Smsmith/*********************************************************************
8565312Smsmith * I2OUtil.h -- I2O Utility Class Message defintion file
8665312Smsmith *
8765312Smsmith * This file contains information presented in Chapter 6 of the I2O
8865312Smsmith * Specification.
8965312Smsmith **********************************************************************/
9065312Smsmith
9165312Smsmith#if !defined(I2O_UTILITY_HDR)
9296615Sobrien#define	I2O_UTILITY_HDR
9365312Smsmith
9496615Sobrien#define	I2OUTIL_REV 1_5_4  /* I2OUtil header file revision string */
9565312Smsmith
9665312Smsmith#if ((defined(KERNEL) || defined(_KERNEL)) && defined(__FreeBSD__))
9765312Smsmith# if (KERN_VERSION < 3)
9865312Smsmith#  include   "i386/pci/i2omsg.h"      /* Include the Base Message file */
9965312Smsmith# else
10065312Smsmith#  include   "dev/asr/i2omsg.h"
10165312Smsmith# endif
10265312Smsmith#else
10396554Sobrien# include   "i2omsg.h"	    /* Include the Base Message file */
10465312Smsmith#endif
10565312Smsmith
10665312Smsmith
10765312Smsmith/*
10865312SmsmithNOTES:
10965312Smsmith
11065312Smsmith   Gets, reads, receives, etc. are all even numbered functions.
11165312Smsmith   Sets, writes, sends, etc. are all odd numbered functions.
11265312Smsmith   Functions that both send and receive data can be either but an attempt is made
11365312Smsmith       to use the function number that indicates the greater transfer amount.
11465312Smsmith   Functions that do not send or receive data use odd function numbers.
11565312Smsmith
11665312Smsmith   Some functions are synonyms like read, receive and send, write.
11765312Smsmith
11865312Smsmith   All common functions will have a code of less than 0x80.
11965312Smsmith   Unique functions to a class will start at 0x80.
12065312Smsmith   Executive Functions start at 0xA0.
12165312Smsmith
12265312Smsmith   Utility Message function codes range from 0 - 0x1f
12365312Smsmith   Base Message function codes range from 0x20 - 0xfe
12465312Smsmith   Private Message function code is 0xff.
12565312Smsmith*/
12665312Smsmith
12765312SmsmithPRAGMA_ALIGN_PUSH
12865312Smsmith
12965312SmsmithPRAGMA_PACK_PUSH
13065312Smsmith
13165312Smsmith/* Utility Message class functions. */
13265312Smsmith
13396554Sobrien#define	   I2O_UTIL_NOP				       0x00
13496554Sobrien#define	   I2O_UTIL_ABORT			       0x01
13596554Sobrien#define	   I2O_UTIL_CLAIM			       0x09
13696554Sobrien#define	   I2O_UTIL_CLAIM_RELEASE		       0x0B
13796554Sobrien#define	   I2O_UTIL_CONFIG_DIALOG		       0x10
13896554Sobrien#define	   I2O_UTIL_DEVICE_RESERVE		       0x0D
13996554Sobrien#define	   I2O_UTIL_DEVICE_RELEASE		       0x0F
14096554Sobrien#define	   I2O_UTIL_EVENT_ACKNOWLEDGE		       0x14
14196554Sobrien#define	   I2O_UTIL_EVENT_REGISTER		       0x13
14296554Sobrien#define	   I2O_UTIL_LOCK			       0x17
14396554Sobrien#define	   I2O_UTIL_LOCK_RELEASE		       0x19
14496554Sobrien#define	   I2O_UTIL_PARAMS_GET			       0x06
14596554Sobrien#define	   I2O_UTIL_PARAMS_SET			       0x05
14696554Sobrien#define	   I2O_UTIL_REPLY_FAULT_NOTIFY		       0x15
14765312Smsmith
14865312Smsmith/****************************************************************************/
14965312Smsmith
15065312Smsmith/* ABORT Abort type defines. */
15165312Smsmith
15296554Sobrien#define	   I2O_ABORT_TYPE_EXACT_ABORT		       0x00
15396554Sobrien#define	   I2O_ABORT_TYPE_FUNCTION_ABORT	       0x01
15496554Sobrien#define	   I2O_ABORT_TYPE_TRANSACTION_ABORT	       0x02
15596554Sobrien#define	   I2O_ABORT_TYPE_WILD_ABORT		       0x03
15696554Sobrien#define	   I2O_ABORT_TYPE_CLEAN_EXACT_ABORT	       0x04
15796554Sobrien#define	   I2O_ABORT_TYPE_CLEAN_FUNCTION_ABORT	       0x05
15896551Sobrien#define	   I2O_ABORT_TYPE_CLEAN_TRANSACTION_ABORT      0x06
15996554Sobrien#define	   I2O_ABORT_TYPE_CLEAN_WILD_ABORT	       0x07
16065312Smsmith
16165312Smsmith/* UtilAbort Function Message Frame structure. */
16265312Smsmith
16365312Smsmithtypedef struct _I2O_UTIL_ABORT_MESSAGE {
16496554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
16565312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
16665312Smsmith#   if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
16796554Sobrien	U32		       reserved;
16865312Smsmith#   else
16996554Sobrien	U16		       reserved;
17096554Sobrien	U8		       AbortType;
17196554Sobrien	U8		       FunctionToAbort;
17265312Smsmith#   endif
17365312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContextToAbort;
17465312Smsmith} I2O_UTIL_ABORT_MESSAGE, *PI2O_UTIL_ABORT_MESSAGE;
17565312Smsmith
17665312Smsmith
17765312Smsmithtypedef struct _I2O_UTIL_ABORT_REPLY {
17896554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
17965312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
18096554Sobrien    U32			       CountOfAbortedMessages;
18165312Smsmith} I2O_UTIL_ABORT_REPLY, *PI2O_UTIL_ABORT_REPLY;
18265312Smsmith
18365312Smsmith
18465312Smsmith/****************************************************************************/
18565312Smsmith
18665312Smsmith/* Claim Flag defines */
18765312Smsmith
18896554Sobrien#define	   I2O_CLAIM_FLAGS_EXCLUSIVE		       0x0001 /* Reserved */
18996554Sobrien#define	   I2O_CLAIM_FLAGS_RESET_SENSITIVE	       0x0002
19096554Sobrien#define	   I2O_CLAIM_FLAGS_STATE_SENSITIVE	       0x0004
19196554Sobrien#define	   I2O_CLAIM_FLAGS_CAPACITY_SENSITIVE	       0x0008
19296551Sobrien#define	   I2O_CLAIM_FLAGS_PEER_SERVICE_DISABLED       0x0010
19396551Sobrien#define	   I2O_CLAIM_FLAGS_MGMT_SERVICE_DISABLED       0x0020
19465312Smsmith
19565312Smsmith/* Claim Type defines */
19665312Smsmith
19796554Sobrien#define	   I2O_CLAIM_TYPE_PRIMARY_USER		       0x01
19896554Sobrien#define	   I2O_CLAIM_TYPE_AUTHORIZED_USER	       0x02
19996554Sobrien#define	   I2O_CLAIM_TYPE_SECONDARY_USER	       0x03
20096554Sobrien#define	   I2O_CLAIM_TYPE_MANAGEMENT_USER	       0x04
20165312Smsmith
20265312Smsmith/* UtilClaim Function Message Frame structure. */
20365312Smsmith
20465312Smsmithtypedef struct _I2O_UTIL_CLAIM_MESSAGE {
20596554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
20665312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
20796554Sobrien    U16			       ClaimFlags;
20896554Sobrien    U8			       reserved;
20996554Sobrien    U8			       ClaimType;
21065312Smsmith} I2O_UTIL_CLAIM_MESSAGE, *PI2O_UTIL_CLAIM_MESSAGE;
21165312Smsmith
21265312Smsmith
21365312Smsmith/****************************************************************************/
21465312Smsmith
21565312Smsmith/* Claim Release Flag defines */
21665312Smsmith
21796554Sobrien#define	   I2O_RELEASE_FLAGS_CONDITIONAL	       0x0001
21865312Smsmith
21965312Smsmith/* UtilClaimRelease Function Message Frame structure. */
22065312Smsmith
22165312Smsmithtypedef struct _I2O_UTIL_CLAIM_RELEASE_MESSAGE {
22296554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
22365312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
22496554Sobrien    U16			       ReleaseFlags;
22596554Sobrien    U8			       reserved;
22696554Sobrien    U8			       ClaimType;
22765312Smsmith} I2O_UTIL_CLAIM_RELEASE_MESSAGE, *PI2O_UTIL_CLAIM_RELEASE_MESSAGE;
22865312Smsmith
22965312Smsmith
23065312Smsmith/****************************************************************************/
23165312Smsmith
23265312Smsmith/*  UtilConfigDialog Function Message Frame structure */
23365312Smsmith
23465312Smsmithtypedef struct _I2O_UTIL_CONFIG_DIALOG_MESSAGE {
23596554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
23665312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
23796554Sobrien    U32			       PageNumber;
23896554Sobrien    I2O_SG_ELEMENT	       SGL;
23965312Smsmith} I2O_UTIL_CONFIG_DIALOG_MESSAGE, *PI2O_UTIL_CONFIG_DIALOG_MESSAGE;
24065312Smsmith
24165312Smsmith
24265312Smsmith/****************************************************************************/
24365312Smsmith
24465312Smsmith/*  Event Acknowledge Function Message Frame structure */
24565312Smsmith
24665312Smsmithtypedef struct _I2O_UTIL_EVENT_ACK_MESSAGE {
24796554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
24865312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
24996554Sobrien    U32			       EventIndicator;
25096554Sobrien    U32			       EventData[1];
25165312Smsmith} I2O_UTIL_EVENT_ACK_MESSAGE, *PI2O_UTIL_EVENT_ACK_MESSAGE;
25265312Smsmith
25365312Smsmith/* Event Ack Reply structure */
25465312Smsmith
25565312Smsmithtypedef struct _I2O_UTIL_EVENT_ACK_REPLY {
25696554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
25765312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
25896554Sobrien    U32			       EventIndicator;
25996554Sobrien    U32			       EventData[1];
26065312Smsmith} I2O_UTIL_EVENT_ACK_REPLY, *PI2O_UTIL_EVENT_ACK_REPLY;
26165312Smsmith
26265312Smsmith
26365312Smsmith/****************************************************************************/
26465312Smsmith
26565312Smsmith/* Event Indicator Mask Flags */
26665312Smsmith
26796554Sobrien#define	   I2O_EVENT_IND_STATE_CHANGE		       0x80000000
26896554Sobrien#define	   I2O_EVENT_IND_GENERAL_WARNING	       0x40000000
26996554Sobrien#define	   I2O_EVENT_IND_CONFIGURATION_FLAG	       0x20000000
27096554Sobrien/* #define	   I2O_EVENT_IND_RESERVE_RELEASE	       0x10000000 */
27196554Sobrien#define	   I2O_EVENT_IND_LOCK_RELEASE		       0x10000000
27296554Sobrien#define	   I2O_EVENT_IND_CAPABILITY_CHANGE	       0x08000000
27396554Sobrien#define	   I2O_EVENT_IND_DEVICE_RESET		       0x04000000
27496554Sobrien#define	   I2O_EVENT_IND_EVENT_MASK_MODIFIED	       0x02000000
27596554Sobrien#define	   I2O_EVENT_IND_FIELD_MODIFIED		       0x01000000
27696554Sobrien#define	   I2O_EVENT_IND_VENDOR_EVENT		       0x00800000
27796554Sobrien#define	   I2O_EVENT_IND_DEVICE_STATE		       0x00400000
27865312Smsmith
27965312Smsmith/* Event Data for generic Events */
28065312Smsmith
28196554Sobrien#define	   I2O_EVENT_STATE_CHANGE_NORMAL	       0x00
28296554Sobrien#define	   I2O_EVENT_STATE_CHANGE_SUSPENDED	       0x01
28396554Sobrien#define	   I2O_EVENT_STATE_CHANGE_RESTART	       0x02
28496554Sobrien#define	   I2O_EVENT_STATE_CHANGE_NA_RECOVER	       0x03
28596554Sobrien#define	   I2O_EVENT_STATE_CHANGE_NA_NO_RECOVER	       0x04
28696551Sobrien#define	   I2O_EVENT_STATE_CHANGE_QUIESCE_REQUEST      0x05
28796554Sobrien#define	   I2O_EVENT_STATE_CHANGE_FAILED	       0x10
28896554Sobrien#define	   I2O_EVENT_STATE_CHANGE_FAULTED	       0x11
28965312Smsmith
29096554Sobrien#define	   I2O_EVENT_GEN_WARNING_NORMAL		       0x00
29196551Sobrien#define	   I2O_EVENT_GEN_WARNING_ERROR_THRESHOLD       0x01
29296554Sobrien#define	   I2O_EVENT_GEN_WARNING_MEDIA_FAULT	       0x02
29365312Smsmith
29496554Sobrien#define	   I2O_EVENT_CAPABILITY_OTHER		       0x01
29596554Sobrien#define	   I2O_EVENT_CAPABILITY_CHANGED		       0x02
29665312Smsmith
29796554Sobrien#define	   I2O_EVENT_SENSOR_STATE_CHANGED	       0x01
29865312Smsmith
29965312Smsmith
30065312Smsmith/*  UtilEventRegister Function Message Frame structure */
30165312Smsmith
30265312Smsmithtypedef struct _I2O_UTIL_EVENT_REGISTER_MESSAGE {
30396554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
30465312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
30596554Sobrien    U32			       EventMask;
30665312Smsmith} I2O_UTIL_EVENT_REGISTER_MESSAGE, *PI2O_UTIL_EVENT_REGISTER_MESSAGE;
30765312Smsmith
30865312Smsmith/* UtilEventRegister Reply structure */
30965312Smsmith
31065312Smsmithtypedef struct _I2O_UTIL_EVENT_REGISTER_REPLY {
31196554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
31265312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
31396554Sobrien    U32			       EventIndicator;
31496554Sobrien    U32			       EventData[1];
31565312Smsmith} I2O_UTIL_EVENT_REGISTER_REPLY, *PI2O_UTIL_EVENT_REGISTER_REPLY;
31665312Smsmith
31765312Smsmith
31865312Smsmith/****************************************************************************/
31965312Smsmith
32065312Smsmith/* UtilLock Function Message Frame structure. */
32165312Smsmith
32265312Smsmithtypedef struct _I2O_UTIL_LOCK_MESSAGE {
32396554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
32465312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
32565312Smsmith} I2O_UTIL_LOCK_MESSAGE, *PI2O_UTIL_LOCK_MESSAGE;
32665312Smsmith
32765312Smsmith/****************************************************************************/
32865312Smsmith
32965312Smsmith/* UtilLockRelease Function Message Frame structure. */
33065312Smsmith
33165312Smsmithtypedef struct _I2O_UTIL_LOCK_RELEASE_MESSAGE {
33296554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
33365312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
33465312Smsmith} I2O_UTIL_LOCK_RELEASE_MESSAGE, *PI2O_UTIL_LOCK_RELEASE_MESSAGE;
33565312Smsmith
33665312Smsmith
33765312Smsmith/****************************************************************************/
33865312Smsmith
33965312Smsmith/* UtilNOP Function Message Frame structure. */
34065312Smsmith
34165312Smsmithtypedef struct _I2O_UTIL_NOP_MESSAGE {
34296554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
34365312Smsmith} I2O_UTIL_NOP_MESSAGE, *PI2O_UTIL_NOP_MESSAGE;
34465312Smsmith
34565312Smsmith
34665312Smsmith/****************************************************************************/
34765312Smsmith
34865312Smsmith/* UtilParamsGet Message Frame structure. */
34965312Smsmith
35065312Smsmithtypedef struct _I2O_UTIL_PARAMS_GET_MESSAGE {
35196554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
35265312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
35396554Sobrien    U32			       OperationFlags;
35496554Sobrien    I2O_SG_ELEMENT	       SGL;
35565312Smsmith} I2O_UTIL_PARAMS_GET_MESSAGE, *PI2O_UTIL_PARAMS_GET_MESSAGE;
35665312Smsmith
35765312Smsmith
35865312Smsmith/****************************************************************************/
35965312Smsmith
36065312Smsmith/* UtilParamsSet Message Frame structure. */
36165312Smsmith
36265312Smsmithtypedef struct _I2O_UTIL_PARAMS_SET_MESSAGE {
36396554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
36465312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
36596554Sobrien    U32			       OperationFlags;
36696554Sobrien    I2O_SG_ELEMENT	       SGL;
36765312Smsmith} I2O_UTIL_PARAMS_SET_MESSAGE, *PI2O_UTIL_PARAMS_SET_MESSAGE;
36865312Smsmith
36965312Smsmith
37065312Smsmith/****************************************************************************/
37165312Smsmith
37265312Smsmith/* UtilReplyFaultNotify Message for Message Failure. */
37365312Smsmith
37465312Smsmithtypedef struct _I2O_UTIL_REPLY_FAULT_NOTIFY_MESSAGE {
37596554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
37665312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
37796554Sobrien    U8			       LowestVersion;
37896554Sobrien    U8			       HighestVersion;
37996554Sobrien    BF			       Severity:I2O_FAILCODE_SEVERITY_SZ;
38096554Sobrien    BF			       FailureCode:I2O_FAILCODE_CODE_SZ;
38196554Sobrien    BF			       FailingIOP_ID:I2O_IOP_ID_SZ;
38296554Sobrien    BF			       reserved:I2O_RESERVED_4BITS;
38396554Sobrien    BF			       FailingHostUnitID:I2O_UNIT_ID_SZ;
38496554Sobrien    U32			       AgeLimit;
38565312Smsmith#if I2O_64BIT_CONTEXT
38696554Sobrien    PI2O_MESSAGE_FRAME	       OriginalMFA;
38765312Smsmith#else
38896554Sobrien    PI2O_MESSAGE_FRAME	       OriginalMFALowPart;
38996554Sobrien    U32			       OriginalMFAHighPart;  /* Always 0000 */
39065312Smsmith#endif
39165312Smsmith} I2O_UTIL_REPLY_FAULT_NOTIFY_MESSAGE, *PI2O_UTIL_REPLY_FAULT_NOTIFY_MESSAGE;
39265312Smsmith
39365312Smsmith
39465312Smsmith/****************************************************************************/
39565312Smsmith
39665312Smsmith/* Device Reserve Function Message Frame structure. */
39765312Smsmith/* NOTE:  This was previously called the Reserve Message */
39865312Smsmith
39965312Smsmithtypedef struct _I2O_UTIL_DEVICE_RESERVE_MESSAGE {
40096554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
40165312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
40265312Smsmith} I2O_UTIL_DEVICE_RESERVE_MESSAGE, *PI2O_UTIL_DEVICE_RESERVE_MESSAGE;
40365312Smsmith
40465312Smsmith
40565312Smsmith/****************************************************************************/
40665312Smsmith
40765312Smsmith/* Device Release Function Message Frame structure. */
40865312Smsmith/* NOTE:  This was previously called the ReserveRelease Message */
40965312Smsmith
41065312Smsmithtypedef struct _I2O_UTIL_DEVICE_RELEASE_MESSAGE {
41196554Sobrien    I2O_MESSAGE_FRAME	       StdMessageFrame;
41265312Smsmith    I2O_TRANSACTION_CONTEXT    TransactionContext;
41365312Smsmith} I2O_UTIL_DEVICE_RELEASE_MESSAGE, *PI2O_UTIL_DEVICE_RELEASE_MESSAGE;
41465312Smsmith
41565312Smsmith
41665312Smsmith/****************************************************************************/
41765312Smsmith
41865312SmsmithPRAGMA_PACK_POP
41965312SmsmithPRAGMA_ALIGN_POP
42065312Smsmith
42196554Sobrien#endif	  /* I2O_UTILITY_HDR  */
422