Deleted Added
full compact
i2outil.h (87826) i2outil.h (96551)
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 *
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)
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
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
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
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
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
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
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
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
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
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
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
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 */
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 */