2 ****************************************************************
3 * Copyright (c) 1996-2000 Distributed Processing Technology Corporation
4 * Copyright (c) 2000 Adaptec Corporation.
7 * Copyright 1999 I2O Special Interest Group (I2O SIG). All rights reserved.
10 * TERMS AND CONDITIONS OF USE
12 * Redistribution and use in source form, with or without modification, are
13 * permitted provided that redistributions of source code must retain the
14 * above copyright notice, this list of conditions and the following disclaimer.
16 * This software is provided `as is' by Distributed Processing Technology and
17 * any express or implied warranties, including, but not limited to, the
18 * implied warranties of merchantability and fitness for a particular purpose,
19 * are disclaimed. In no event shall Distributed Processing Technology be
20 * liable for any direct, indirect, incidental, special, exemplary or
21 * consequential damages (including, but not limited to, procurement of
22 * substitute goods or services; loss of use, data, or profits; or business
23 * interruptions) however caused and on any theory of liability, whether in
24 * contract, strict liability, or tort (including negligence or otherwise)
25 * arising in any way out of the use of this driver software, even if advised
26 * of the possibility of such damage.
28 * This header file, and any modifications of this header file, are provided
29 * contingent upon your agreement and adherence to the here-listed terms and
30 * conditions. By accepting and/or using this header file, you agree to abide
31 * by these terms and conditions and that these terms and conditions will be
32 * construed and governed in accordance with the laws of the State of California,
33 * without reference to conflict-of-law provisions. If you do not agree
34 * to these terms and conditions, please delete this file, and any copies,
35 * permanently, without making any use thereof.
37 * THIS HEADER FILE IS PROVIDED FREE OF CHARGE ON AN AS-IS BASIS WITHOUT
38 * WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
39 * TO IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
40 * PURPOSE. I2O SIG DOES NOT WARRANT THAT THIS HEADER FILE WILL MEET THE
41 * USER'S REQUIREMENTS OR THAT ITS OPERATION WILL BE UNINTERRUPTED OR
44 * I2O SIG DISCLAIMS ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF
45 * ANY PROPRIETARY RIGHTS, RELATING TO THE IMPLEMENTATION OF THE I2O
46 * SPECIFICATIONS. I2O SIG DOES NOT WARRANT OR REPRESENT THAT SUCH
47 * IMPLEMENTATIONS WILL NOT INFRINGE SUCH RIGHTS.
49 * THE USER OF THIS HEADER FILE SHALL HAVE NO RECOURSE TO I2O SIG FOR ANY
50 * ACTUAL OR CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOST DATA
51 * OR LOST PROFITS ARISING OUT OF THE USE OR INABILITY TO USE THIS PROGRAM.
53 * I2O SIG grants the user of this header file a license to copy, distribute,
54 * and modify it, for any purpose, under the following terms. Any copying,
55 * distribution, or modification of this header file must not delete or alter
56 * the copyright notice of I2O SIG or any of these Terms and Conditions.
58 * Any distribution of this header file must not include a charge for the
59 * header file (unless such charges are strictly for the physical acts of
60 * copying or transferring copies). However, distribution of a product in
61 * which this header file is embedded may include a charge so long as any
62 * such charge does not include any charge for the header file itself.
64 * Any modification of this header file constitutes a derivative work based
65 * on this header file. Any distribution of such derivative work: (1) must
66 * include prominent notices that the header file has been changed from the
67 * original, together with the dates of any changes; (2) automatically includes
68 * this same license to the original header file from I2O SIG, without any
69 * restriction thereon from the distributing user; and (3) must include a
70 * grant of license of the modified file under the same terms and conditions
71 * as these Terms and Conditions.
73 * The I2O SIG Web site can be found at: http://www.i2osig.org
75 * The I2O SIG encourages you to deposit derivative works based on this
76 * header file at the I2O SIG Web site. Furthermore, to become a Registered
77 * Developer of the I2O SIG, sign up at the Web site or call 415.750.8352
82 ****************************************************************/
84 /*********************************************************************
85 * I2OExec.h -- I2O Executive Class Message definition file
87 * This file contains information presented in Chapter 4 of the I2O(tm)
89 **********************************************************************/
91 #if !defined(I2O_EXECUTIVE_HDR)
92 #define I2O_EXECUTIVE_HDR
94 #define I2OEXEC_REV 1_5_4 /* I2OExec header file revision string */
96 #if ((defined(KERNEL) || defined(_KERNEL)) && defined(__FreeBSD__))
97 # if (!defined(KERN_VERSION))
98 # include <sys/sysctl.h>
100 # if (KERN_VERSION < 3)
101 # include "i386/pci/i2omsg.h" /* Include the Base Message file */
102 # include "i386/pci/i2outil.h"
104 # include "dev/asr/i2omsg.h" /* Include the Base Message file */
105 # include "dev/asr/i2outil.h"
108 # include "i2omsg.h" /* Include the Base Message file */
109 # include "i2outil.h"
116 Gets, reads, receives, etc. are all even numbered functions.
117 Sets, writes, sends, etc. are all odd numbered functions.
118 Functions that both send and receive data can be either but an attempt is made
119 to use the function number that indicates the greater transfer amount.
120 Functions that do not send or receive data use odd function numbers.
122 Some functions are synonyms like read, receive and send, write.
124 All common functions will have a code of less than 0x80.
125 Unique functions to a class will start at 0x80.
126 Executive Functions start at 0xA0.
128 Utility Message function codes range from 0 - 0x1f
129 Base Message function codes range from 0x20 - 0xfe
130 Private Message function code is 0xff.
136 /* I2O Executive Function Codes. */
138 #define I2O_EXEC_ADAPTER_ASSIGN 0xB3
139 #define I2O_EXEC_ADAPTER_READ 0xB2
140 #define I2O_EXEC_ADAPTER_RELEASE 0xB5
141 #define I2O_EXEC_BIOS_INFO_SET 0xA5
142 #define I2O_EXEC_BOOT_DEVICE_SET 0xA7
143 #define I2O_EXEC_CONFIG_VALIDATE 0xBB
144 #define I2O_EXEC_CONN_SETUP 0xCA
145 #define I2O_EXEC_DDM_DESTROY 0xB1
146 #define I2O_EXEC_DDM_ENABLE 0xD5
147 #define I2O_EXEC_DDM_QUIESCE 0xC7
148 #define I2O_EXEC_DDM_RESET 0xD9
149 #define I2O_EXEC_DDM_SUSPEND 0xAF
150 #define I2O_EXEC_DEVICE_ASSIGN 0xB7
151 #define I2O_EXEC_DEVICE_RELEASE 0xB9
152 #define I2O_EXEC_HRT_GET 0xA8
153 #define I2O_EXEC_IOP_CLEAR 0xBE
154 #define I2O_EXEC_IOP_CONNECT 0xC9
155 #define I2O_EXEC_IOP_RESET 0xBD
156 #define I2O_EXEC_LCT_NOTIFY 0xA2
157 #define I2O_EXEC_OUTBOUND_INIT 0xA1
158 #define I2O_EXEC_PATH_ENABLE 0xD3
159 #define I2O_EXEC_PATH_QUIESCE 0xC5
160 #define I2O_EXEC_PATH_RESET 0xD7
161 #define I2O_EXEC_STATIC_MF_CREATE 0xDD
162 #define I2O_EXEC_STATIC_MF_RELEASE 0xDF
163 #define I2O_EXEC_STATUS_GET 0xA0
164 #define I2O_EXEC_SW_DOWNLOAD 0xA9
165 #define I2O_EXEC_SW_UPLOAD 0xAB
166 #define I2O_EXEC_SW_REMOVE 0xAD
167 #define I2O_EXEC_SYS_ENABLE 0xD1
168 #define I2O_EXEC_SYS_MODIFY 0xC1
169 #define I2O_EXEC_SYS_QUIESCE 0xC3
170 #define I2O_EXEC_SYS_TAB_SET 0xA3
173 /* I2O Get Status State values */
175 #define I2O_IOP_STATE_INITIALIZING 0x01
176 #define I2O_IOP_STATE_RESET 0x02
177 #define I2O_IOP_STATE_HOLD 0x04
178 #define I2O_IOP_STATE_READY 0x05
179 #define I2O_IOP_STATE_OPERATIONAL 0x08
180 #define I2O_IOP_STATE_FAILED 0x10
181 #define I2O_IOP_STATE_FAULTED 0x11
184 /* Event Indicator Assignments for the Executive Class. */
186 #define I2O_EVENT_IND_RESOURCE_LIMIT 0x00000001
187 #define I2O_EVENT_IND_CONNECTION_FAIL 0x00000002
188 #define I2O_EVENT_IND_ADAPTER_FAULT 0x00000004
189 #define I2O_EVENT_IND_POWER_FAIL 0x00000008
190 #define I2O_EVENT_IND_RESET_PENDING 0x00000010
191 #define I2O_EVENT_IND_RESET_IMMINENT 0x00000020
192 #define I2O_EVENT_IND_HARDWARE_FAIL 0x00000040
193 #define I2O_EVENT_IND_XCT_CHANGE 0x00000080
194 #define I2O_EVENT_IND_NEW_LCT_ENTRY 0x00000100
195 #define I2O_EVENT_IND_MODIFIED_LCT 0x00000200
196 #define I2O_EVENT_IND_DDM_AVAILABILITY 0x00000400
198 /* Resource Limit Event Data */
200 #define I2O_EVENT_RESOURCE_LIMIT_LOW_MEMORY 0x00000001
201 #define I2O_EVENT_RESOURCE_LIMIT_INBOUND_POOL_LOW 0x00000002
202 #define I2O_EVENT_RESOURCE_LIMIT_OUTBOUND_POOL_LOW 0x00000004
204 /* Connection Fail Event Data */
206 #define I2O_EVENT_CONNECTION_FAIL_REPOND_NORMAL 0x00000000
207 #define I2O_EVENT_CONNECTION_FAIL_NOT_REPONDING 0x00000001
208 #define I2O_EVENT_CONNECTION_FAIL_NO_AVAILABLE_FRAMES 0x00000002
210 /* Reset Pending Event Data */
212 #define I2O_EVENT_RESET_PENDING_POWER_LOSS 0x00000001
213 #define I2O_EVENT_RESET_PENDING_CODE_VIOLATION 0x00000002
215 /* Reset Imminent Event Data */
217 #define I2O_EVENT_RESET_IMMINENT_UNKNOWN_CAUSE 0x00000000
218 #define I2O_EVENT_RESET_IMMINENT_POWER_LOSS 0x00000001
219 #define I2O_EVENT_RESET_IMMINENT_CODE_VIOLATION 0x00000002
220 #define I2O_EVENT_RESET_IMMINENT_PARITY_ERROR 0x00000003
221 #define I2O_EVENT_RESET_IMMINENT_CODE_EXCEPTION 0x00000004
222 #define I2O_EVENT_RESET_IMMINENT_WATCHDOG_TIMEOUT 0x00000005
224 /* Hardware Fail Event Data */
226 #define I2O_EVENT_HARDWARE_FAIL_UNKNOWN_CAUSE 0x00000000
227 #define I2O_EVENT_HARDWARE_FAIL_CPU_FAILURE 0x00000001
228 #define I2O_EVENT_HARDWARE_FAIL_MEMORY_FAULT 0x00000002
229 #define I2O_EVENT_HARDWARE_FAIL_DMA_FAILURE 0x00000003
230 #define I2O_EVENT_HARDWARE_FAIL_IO_BUS_FAILURE 0x00000004
232 /* DDM Availability Event Data */
234 #define I2O_EVENT_DDM_AVAILIBILITY_RESPOND_NORMAL 0x00000000
235 #define I2O_EVENT_DDM_AVAILIBILITY_CONGESTED 0x00000001
236 #define I2O_EVENT_DDM_AVAILIBILITY_NOT_RESPONDING 0x00000002
237 #define I2O_EVENT_DDM_AVAILIBILITY_PROTECTION_VIOLATION 0x00000003
238 #define I2O_EVENT_DDM_AVAILIBILITY_CODE_VIOLATION 0x00000004
240 /****************************************************************************/
242 #define I2O_OPERATION_FLAG_ASSIGN_PERMANENT 0x01
244 /* ExecAdapterAssign Function Message Frame structure. */
246 typedef struct _I2O_EXEC_ADAPTER_ASSIGN_MESSAGE {
247 I2O_MESSAGE_FRAME StdMessageFrame;
248 I2O_TRANSACTION_CONTEXT TransactionContext;
249 #if (defined(__BORLANDC__))
252 BF DdmTID:I2O_TID_SZ;
253 BF reserved:I2O_RESERVED_12BITS;
254 BF OperationFlags:I2O_8BIT_FLAGS_SZ;
256 I2O_HRT_ENTRY HRTEntry;
257 } I2O_EXEC_ADAPTER_ASSIGN_MESSAGE, *PI2O_EXEC_ADAPTER_ASSIGN_MESSAGE;
260 /****************************************************************************/
262 #define I2O_REQUEST_FLAG_CONFIG_REGISTER 0x00000000
263 #define I2O_REQUEST_FLAG_IO_REGISTER 0x00000001
264 #define I2O_REQUEST_FLAG_ADAPTER_MEMORY 0x00000002
266 /* ExecAdapterRead Function Message Frame structure. */
268 typedef struct _I2O_EXEC_ADAPTER_READ_MESSAGE {
269 I2O_MESSAGE_FRAME StdMessageFrame;
270 I2O_TRANSACTION_CONTEXT TransactionContext;
276 } I2O_EXEC_ADAPTER_READ_MESSAGE, *PI2O_EXEC_ADAPTER_READ_MESSAGE;
279 /****************************************************************************/
281 #define I2O_OPERATION_FLAG_RELEASE_PERMANENT 0x01
283 /* ExecAdapterRelease Function Message Frame structure. */
285 typedef struct _I2O_EXEC_ADAPTER_RELEASE_MESSAGE {
286 I2O_MESSAGE_FRAME StdMessageFrame;
287 I2O_TRANSACTION_CONTEXT TransactionContext;
290 I2O_HRT_ENTRY HRTEntry;
291 } I2O_EXEC_ADAPTER_RELEASE_MESSAGE, *PI2O_EXEC_ADAPTER_RELEASE_MESSAGE;
294 /****************************************************************************/
296 /* ExecBiosInfoSet Function Message Frame structure. */
298 typedef struct _I2O_EXEC_BIOS_INFO_SET_MESSAGE {
299 I2O_MESSAGE_FRAME StdMessageFrame;
300 I2O_TRANSACTION_CONTEXT TransactionContext;
301 #if (defined(__BORLANDC__))
304 BF DeviceTID:I2O_TID_SZ;
305 BF reserved:I2O_RESERVED_12BITS;
306 BF BiosInfo:I2O_BIOS_INFO_SZ;
308 } I2O_EXEC_BIOS_INFO_SET_MESSAGE, *PI2O_EXEC_BIOS_INFO_SET_MESSAGE;
311 /****************************************************************************/
313 /* ExecBootDeviceSet Function Message Frame structure. */
315 typedef struct _I2O_EXEC_BOOT_DEVICE_SET_MESSAGE {
316 I2O_MESSAGE_FRAME StdMessageFrame;
317 I2O_TRANSACTION_CONTEXT TransactionContext;
318 BF BootDevice:I2O_TID_SZ;
319 BF reserved:I2O_RESERVED_4BITS;
320 BF reserved1:I2O_RESERVED_16BITS;
321 } I2O_EXEC_BOOT_DEVICE_SET_MESSAGE, *PI2O_EXEC_BOOT_DEVICE_SET_MESSAGE;
324 /****************************************************************************/
326 /* ExecConfigValidate Function Message Frame structure. */
328 typedef struct _I2O_EXEC_CONFIG_VALIDATE_MESSAGE {
329 I2O_MESSAGE_FRAME StdMessageFrame;
330 I2O_TRANSACTION_CONTEXT TransactionContext;
331 } I2O_EXEC_CONFIG_VALIDATE_MESSAGE, *PI2O_EXEC_CONFIG_VALIDATE_MESSAGE;
334 /****************************************************************************/
336 /* ExecConnSetup Requestor */
338 typedef struct _I2O_ALIAS_CONNECT_SETUP {
339 #if (defined(__BORLANDC__))
340 U32 IOP1AliasForTargetDevice;
342 BF IOP1AliasForTargetDevice:I2O_TID_SZ;
343 BF IOP2AliasForInitiatorDevice:I2O_TID_SZ;
344 BF reserved:I2O_RESERVED_8BITS;
346 } I2O_ALIAS_CONNECT_SETUP, *PI2O_ALIAS_CONNECT_SETUP;
348 #define I2O_OPERATION_FLAG_PEER_TO_PEER_BIDIRECTIONAL 0x01
350 /* ExecConnSetup Object */
352 typedef struct _I2O_OBJECT_CONNECT_SETUP {
353 #if (defined(__BORLANDC__))
356 BF TargetDevice:I2O_TID_SZ;
357 BF InitiatorDevice:I2O_TID_SZ;
358 BF OperationFlags:I2O_8BIT_FLAGS_SZ;
360 } I2O_OBJECT_CONNECT_SETUP, *PI2O_OBJECT_CONNECT_SETUP;
363 /* ExecConnSetup Function Message Frame structure. */
365 typedef struct _I2O_EXEC_CONN_SETUP_MESSAGE {
366 I2O_MESSAGE_FRAME StdMessageFrame;
367 I2O_TRANSACTION_CONTEXT TransactionContext;
368 I2O_OBJECT_CONNECT_SETUP ObjectInfo;
369 I2O_ALIAS_CONNECT_SETUP AliasInfo;
370 U16 IOP2InboundMFrameSize;
373 } I2O_EXEC_CONN_SETUP_MESSAGE, *PI2O_EXEC_CONN_SETUP_MESSAGE;
376 /* ExecConnSetup Object Reply */
378 typedef struct _I2O_OBJECT_CONNECT_REPLY {
379 #if (defined(__BORLANDC__))
382 BF TargetDevice:I2O_TID_SZ;
383 BF InitiatorDevice:I2O_TID_SZ;
384 BF ReplyStatusCode:I2O_8BIT_FLAGS_SZ;
386 } I2O_OBJECT_CONNECT_REPLY, *PI2O_OBJECT_CONNECT_REPLY;
389 /* ExecConnSetup reply structure. */
391 typedef struct _I2O_EXEC_CONN_SETUP_REPLY {
392 I2O_MESSAGE_FRAME StdMessageFrame;
393 I2O_TRANSACTION_CONTEXT TransactionContext;
394 I2O_OBJECT_CONNECT_REPLY ObjectInfo;
395 I2O_ALIAS_CONNECT_SETUP AliasInfo;
396 U16 IOP2InboundMFrameSize;
398 } I2O_EXEC_CONN_SETUP_REPLY, *PI2O_EXEC_CONN_SETUP_REPLY;
401 /****************************************************************************/
403 /* ExecDdmDestroy Function Message Frame structure. */
405 typedef struct _I2O_EXEC_DDM_DESTROY_MESSAGE {
406 I2O_MESSAGE_FRAME StdMessageFrame;
407 I2O_TRANSACTION_CONTEXT TransactionContext;
408 BF DdmTID:I2O_TID_SZ;
409 BF reserved:I2O_RESERVED_4BITS;
410 BF reserved1:I2O_RESERVED_16BITS;
411 } I2O_EXEC_DDM_DESTROY_MESSAGE, *PI2O_EXEC_DDM_DESTROY_MESSAGE;
414 /****************************************************************************/
416 /* ExecDdmEnable Function Message Frame structure. */
418 typedef struct _I2O_EXEC_DDM_ENABLE_MESSAGE {
419 I2O_MESSAGE_FRAME StdMessageFrame;
420 I2O_TRANSACTION_CONTEXT TransactionContext;
421 BF DeviceTID:I2O_TID_SZ;
422 BF reserved2:I2O_RESERVED_4BITS;
423 BF reserved1:I2O_RESERVED_16BITS;
424 BF IOP_ID:I2O_IOP_ID_SZ;
425 BF reserved:I2O_RESERVED_4BITS;
426 BF HostUnitID:I2O_UNIT_ID_SZ;
427 } I2O_EXEC_DDM_ENABLE_MESSAGE, *PI2O_EXEC_DDM_ENABLE_MESSAGE;
430 /****************************************************************************/
432 /* ExecDdmQuiesce Function Message Frame structure. */
434 typedef struct _I2O_EXEC_DDM_QUIESCE_MESSAGE {
435 I2O_MESSAGE_FRAME StdMessageFrame;
436 I2O_TRANSACTION_CONTEXT TransactionContext;
437 BF DeviceTID:I2O_TID_SZ;
438 BF reserved2:I2O_RESERVED_4BITS;
439 BF reserved1:I2O_RESERVED_16BITS;
440 BF IOP_ID:I2O_IOP_ID_SZ;
441 BF reserved:I2O_RESERVED_4BITS;
442 BF HostUnitID:I2O_UNIT_ID_SZ;
443 } I2O_EXEC_DDM_QUIESCE_MESSAGE, *PI2O_EXEC_DDM_QUIESCE_MESSAGE;
446 /****************************************************************************/
448 /* ExecDdmReset Function Message Frame structure. */
450 typedef struct _I2O_EXEC_DDM_RESET_MESSAGE {
451 I2O_MESSAGE_FRAME StdMessageFrame;
452 I2O_TRANSACTION_CONTEXT TransactionContext;
453 BF DeviceTID:I2O_TID_SZ;
454 BF reserved2:I2O_RESERVED_4BITS;
455 BF reserved1:I2O_RESERVED_16BITS;
456 BF IOP_ID:I2O_IOP_ID_SZ;
457 BF reserved:I2O_RESERVED_4BITS;
458 BF HostUnitID:I2O_UNIT_ID_SZ;
459 } I2O_EXEC_DDM_RESET_MESSAGE, *PI2O_EXEC_DDM_RESET_MESSAGE;
462 /****************************************************************************/
464 /* ExecDdmSuspend Function Message Frame structure. */
466 typedef struct _I2O_EXEC_DDM_SUSPEND_MESSAGE {
467 I2O_MESSAGE_FRAME StdMessageFrame;
468 I2O_TRANSACTION_CONTEXT TransactionContext;
469 BF DdmTID:I2O_TID_SZ;
470 BF reserved:I2O_RESERVED_4BITS;
471 BF reserved1:I2O_RESERVED_16BITS;
472 } I2O_EXEC_DDM_SUSPEND_MESSAGE, *PI2O_EXEC_DDM_SUSPEND_MESSAGE;
475 /****************************************************************************/
477 #define I2O_OPERATION_FLAG_ASSIGN_PERMANENT 0x01
479 /* ExecDeviceAssign Function Message Frame structure. */
481 typedef struct _I2O_EXEC_DEVICE_ASSIGN_MESSAGE {
482 I2O_MESSAGE_FRAME StdMessageFrame;
483 I2O_TRANSACTION_CONTEXT TransactionContext;
484 #if (defined(__BORLANDC__))
487 BF DeviceTID:I2O_TID_SZ;
488 BF DdmTID:I2O_TID_SZ;
489 BF OperationFlags:I2O_8BIT_FLAGS_SZ;
491 BF IOP_ID:I2O_IOP_ID_SZ;
492 BF reserved:I2O_RESERVED_4BITS;
493 BF HostUnitID:I2O_UNIT_ID_SZ;
494 } I2O_EXEC_DEVICE_ASSIGN_MESSAGE, *PI2O_EXEC_DEVICE_ASSIGN_MESSAGE;
497 /****************************************************************************/
499 #define I2O_OPERATION_FLAG_RELEASE_PERMANENT 0x01
501 /* ExecDeviceRelease Function Message Frame structure. */
503 typedef struct _I2O_EXEC_DEVICE_RELEASE_MESSAGE {
504 I2O_MESSAGE_FRAME StdMessageFrame;
505 I2O_TRANSACTION_CONTEXT TransactionContext;
506 #if (defined(__BORLANDC__))
509 BF DeviceTID:I2O_TID_SZ;
510 BF DdmTID:I2O_TID_SZ;
511 BF OperationFlags:I2O_8BIT_FLAGS_SZ;
513 BF IOP_ID:I2O_IOP_ID_SZ;
514 BF reserved:I2O_RESERVED_4BITS;
515 BF HostUnitID:I2O_UNIT_ID_SZ;
516 } I2O_EXEC_DEVICE_RELEASE_MESSAGE, *PI2O_EXEC_DEVICE_RELEASE_MESSAGE;
519 /****************************************************************************/
521 /* HRT Entry Structure defined in I2OMSG.H */
523 /* ExecHrtGet Function Message Frame structure. */
525 typedef struct _I2O_EXEC_HRT_GET_MESSAGE {
526 I2O_MESSAGE_FRAME StdMessageFrame;
527 I2O_TRANSACTION_CONTEXT TransactionContext;
529 } I2O_EXEC_HRT_GET_MESSAGE, *PI2O_EXEC_HRT_GET_MESSAGE;
532 /****************************************************************************/
535 /* ExecIopClear Function Message Frame structure. */
537 typedef struct _I2O_EXEC_IOP_CLEAR_MESSAGE {
538 I2O_MESSAGE_FRAME StdMessageFrame;
539 I2O_TRANSACTION_CONTEXT TransactionContext;
540 } I2O_EXEC_IOP_CLEAR_MESSAGE, *PI2O_EXEC_IOP_CLEAR_MESSAGE;
543 /****************************************************************************/
546 /* ExecIopConnect Function Message Frame structure. */
548 typedef struct _I2O_EXEC_IOP_CONNECT_MESSAGE {
549 I2O_MESSAGE_FRAME StdMessageFrame;
550 I2O_TRANSACTION_CONTEXT TransactionContext;
551 BF reserved:I2O_RESERVED_16BITS;
552 BF reserved3:I2O_RESERVED_8BITS;
553 BF IOP1MsgerType:I2O_MESSENGER_TYPE_SZ;
554 U16 IOP1InboundMFrameSize;
555 BF IOP1AliasForIOP2:I2O_TID_SZ;
557 BF IOP_ID1:I2O_IOP_ID_SZ;
558 BF reserved2:I2O_RESERVED_4BITS;
559 BF HostUnitID1:I2O_UNIT_ID_SZ;
560 } I2O_EXEC_IOP_CONNECT_MESSAGE, *PI2O_EXEC_IOP_CONNECT_MESSAGE;
563 /* ExecIopConnect reply structure */
565 typedef struct _I2O_EXEC_IOP_CONNECT_IOP_REPLY {
566 I2O_MESSAGE_FRAME StdMessageFrame;
567 I2O_TRANSACTION_CONTEXT TransactionContext;
568 U16 DetailedStatusCode;
571 U16 IOP2InboundMFrameSize;
572 BF IOP2AliasForIOP1:I2O_TID_SZ;
574 BF IOP_ID2:I2O_IOP_ID_SZ;
575 BF reserved2:I2O_RESERVED_4BITS;
576 BF HostUnitID2:I2O_UNIT_ID_SZ;
577 } I2O_EXEC_IOP_CONNECT_REPLY, *PI2O_EXEC_IOP_CONNECT_REPLY;
580 /****************************************************************************/
583 #define I2O_EXEC_IOP_RESET_RESERVED_SZ 16
585 #define I2O_EXEC_IOP_RESET_IN_PROGRESS 0x01
586 #define I2O_EXEC_IOP_RESET_REJECTED 0x02
588 #define I2O_EXEC_IOP_RESET_STATUS_RESERVED_SZ 3
590 typedef struct _I2O_EXEC_IOP_RESET_STATUS {
591 # if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
595 U8 reserved[I2O_EXEC_IOP_RESET_STATUS_RESERVED_SZ];
597 } I2O_EXEC_IOP_RESET_STATUS, *PI2O_EXEC_IOP_RESET_STATUS;
600 /* ExecIopReset Function Message Frame structure. */
602 typedef struct _I2O_EXEC_IOP_RESET_MESSAGE {
606 #if (defined(__BORLANDC__) || defined(sparc))
609 BF TargetAddress:I2O_TID_SZ;
610 BF InitiatorAddress:I2O_TID_SZ;
611 BF Function:I2O_FUNCTION_SZ;
613 U8 Reserved[I2O_EXEC_IOP_RESET_RESERVED_SZ];
614 U32 StatusWordLowAddress;
615 U32 StatusWordHighAddress;
616 } I2O_EXEC_IOP_RESET_MESSAGE, *PI2O_EXEC_IOP_RESET_MESSAGE;
619 /****************************************************************************/
621 /* LCT Entry Structure defined in I2OMSG.H */
623 /* ExecLCTNotify Function Message Frame structure. */
625 typedef struct _I2O_EXEC_LCT_NOTIFY_MESSAGE {
626 I2O_MESSAGE_FRAME StdMessageFrame;
627 I2O_TRANSACTION_CONTEXT TransactionContext;
629 U32 LastReportedChangeIndicator;
631 } I2O_EXEC_LCT_NOTIFY_MESSAGE, *PI2O_EXEC_LCT_NOTIFY_MESSAGE;
634 /****************************************************************************/
637 /* ExecOutboundInit Function Message Frame structure. */
639 typedef struct _I2O_EXEC_OUTBOUND_INIT_MESSAGE {
640 I2O_MESSAGE_FRAME StdMessageFrame;
641 I2O_TRANSACTION_CONTEXT TransactionContext;
642 U32 HostPageFrameSize;
645 U16 OutboundMFrameSize;
647 } I2O_EXEC_OUTBOUND_INIT_MESSAGE, *PI2O_EXEC_OUTBOUND_INIT_MESSAGE;
650 #define I2O_EXEC_OUTBOUND_INIT_IN_PROGRESS 0x01
651 #define I2O_EXEC_OUTBOUND_INIT_REJECTED 0x02
652 #define I2O_EXEC_OUTBOUND_INIT_FAILED 0x03
653 #define I2O_EXEC_OUTBOUND_INIT_COMPLETE 0x04
655 #define I2O_EXEC_OUTBOUND_INIT_RESERVED_SZ 3
658 typedef struct _I2O_EXEC_OUTBOUND_INIT_STATUS {
660 U8 reserved[I2O_EXEC_OUTBOUND_INIT_RESERVED_SZ];
661 } I2O_EXEC_OUTBOUND_INIT_STATUS, *PI2O_EXEC_OUTBOUND_INIT_STATUS;
664 typedef struct _I2O_EXEC_OUTBOUND_INIT_RECLAIM_LIST {
668 } I2O_EXEC_OUTBOUND_INIT_RECLAIM_LIST, *PI2O_EXEC_OUTBOUND_INIT_RECLAIM_LIST;
671 /****************************************************************************/
673 /* ExecPathEnable Function Message Frame structure. */
675 typedef struct _I2O_EXEC_PATH_ENABLE_MESSAGE {
676 I2O_MESSAGE_FRAME StdMessageFrame;
677 I2O_TRANSACTION_CONTEXT TransactionContext;
678 BF IOP_ID:I2O_IOP_ID_SZ;
679 BF reserved:I2O_RESERVED_4BITS;
680 BF HostUnitID:I2O_UNIT_ID_SZ;
681 } I2O_EXEC_PATH_ENABLE_MESSAGE, *PI2O_EXEC_PATH_ENABLE_MESSAGE;
684 /****************************************************************************/
686 /* ExecPathQuiesce Function Message Frame structure. */
688 typedef struct _I2O_EXEC_PATH_QUIESCE_MESSAGE {
689 I2O_MESSAGE_FRAME StdMessageFrame;
690 I2O_TRANSACTION_CONTEXT TransactionContext;
691 BF IOP_ID:I2O_IOP_ID_SZ;
692 BF reserved:I2O_RESERVED_4BITS;
693 BF HostUnitID:I2O_UNIT_ID_SZ;
694 } I2O_EXEC_PATH_QUIESCE_MESSAGE, *PI2O_EXEC_PATH_QUIESCE_MESSAGE;
697 /****************************************************************************/
699 /* ExecPathReset Function Message Frame structure. */
701 typedef struct _I2O_EXEC_PATH_RESET_MESSAGE {
702 I2O_MESSAGE_FRAME StdMessageFrame;
703 I2O_TRANSACTION_CONTEXT TransactionContext;
704 BF IOP_ID:I2O_IOP_ID_SZ;
705 BF reserved:I2O_RESERVED_4BITS;
706 BF HostUnitID:I2O_UNIT_ID_SZ;
707 } I2O_EXEC_PATH_RESET_MESSAGE, *PI2O_EXEC_PATH_RESET_MESSAGE;
710 /****************************************************************************/
712 #define I2O_EXEC_STATIC_MF_CREATE_RESERVED_SZ 3
714 /* ExecStaticMfCreate Message Frame structure */
716 typedef struct _I2O_EXEC_STATIC_MF_CREATE_MESSAGE {
717 I2O_MESSAGE_FRAME StdMessageFrame;
718 I2O_TRANSACTION_CONTEXT TransactionContext;
720 U8 reserved[I2O_EXEC_STATIC_MF_CREATE_RESERVED_SZ];
721 I2O_MESSAGE_FRAME StaticMessageFrame;
722 } I2O_EXEC_STATIC_MF_CREATE_MESSAGE, *PI2O_EXEC_STATIC_MF_CREATE_MESSAGE;
725 /* ExecStaticMfCreate Message Frame reply */
727 typedef struct _I2O_EXEC_STATIC_MF_CREATE_REPLY {
728 I2O_SINGLE_REPLY_MESSAGE_FRAME StdReplyFrame;
729 PI2O_MESSAGE_FRAME StaticMFA;
730 } I2O_EXEC_STATIC_MF_CREATE_REPLY, *PI2O_EXEC_STATIC_MF_CREATE_REPLY;
733 /* ExecStaticMfRelease Message Frame structure */
735 typedef struct _I2O_EXEC_STATIC_MF_RELEASE_MESSAGE {
736 I2O_MESSAGE_FRAME StdMessageFrame;
737 I2O_TRANSACTION_CONTEXT TransactionContext;
738 PI2O_MESSAGE_FRAME StaticMFA;
739 } I2O_EXEC_STATIC_MF_RELEASE_MESSAGE, *PI2O_EXEC_STATIC_MF_RELEASE_MESSAGE;
742 /****************************************************************************/
744 #define I2O_EXEC_STATUS_GET_RESERVED_SZ 16
746 /* ExecStatusGet Function Message Frame structure. */
748 typedef struct _I2O_EXEC_STATUS_GET_MESSAGE {
752 #if (defined(__BORLANDC__) || defined(_DPT_BIG_ENDIAN) || defined(sparc))
755 BF TargetAddress:I2O_TID_SZ;
756 BF InitiatorAddress:I2O_TID_SZ;
757 BF Function:I2O_FUNCTION_SZ;
759 U8 Reserved[I2O_EXEC_STATUS_GET_RESERVED_SZ];
760 U32 ReplyBufferAddressLow;
761 U32 ReplyBufferAddressHigh;
762 U32 ReplyBufferLength;
763 } I2O_EXEC_STATUS_GET_MESSAGE, *PI2O_EXEC_STATUS_GET_MESSAGE;
766 #define I2O_IOP_STATUS_PROD_ID_STR_SZ 24
767 #define I2O_EXEC_STATUS_GET_REPLY_RESERVED_SZ 6
769 /* ExecStatusGet reply Structure */
771 #define I2O_IOP_CAP_CONTEXT_32_ONLY 0x00000000
772 #define I2O_IOP_CAP_CONTEXT_64_ONLY 0x00000001
773 #define I2O_IOP_CAP_CONTEXT_32_64_NOT_CURRENTLY 0x00000002
774 #define I2O_IOP_CAP_CONTEXT_32_64_CURRENTLY 0x00000003
775 #define I2O_IOP_CAP_CURRENT_CONTEXT_NOT_CONFIG 0x00000000
776 #define I2O_IOP_CAP_CURRENT_CONTEXT_32_ONLY 0x00000004
777 #define I2O_IOP_CAP_CURRENT_CONTEXT_64_ONLY 0x00000008
778 #define I2O_IOP_CAP_CURRENT_CONTEXT_32_64 0x0000000C
779 #define I2O_IOP_CAP_INBOUND_PEER_SUPPORT 0x00000010
780 #define I2O_IOP_CAP_OUTBOUND_PEER_SUPPORT 0x00000020
781 #define I2O_IOP_CAP_PEER_TO_PEER_SUPPORT 0x00000040
783 typedef struct _I2O_EXEC_STATUS_GET_REPLY {
786 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
789 BF IOP_ID:I2O_IOP_ID_SZ;
790 BF reserved1:I2O_RESERVED_4BITS;
791 BF HostUnitID:I2O_UNIT_ID_SZ;
793 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
796 BF SegmentNumber:I2O_SEGMENT_NUMBER_SZ;
797 BF I2oVersion:I2O_4BIT_VERSION_SZ;
798 BF IopState:I2O_IOP_STATE_SZ;
799 BF MessengerType:I2O_MESSENGER_TYPE_SZ;
801 U16 InboundMFrameSize;
804 U32 MaxInboundMFrames;
805 U32 CurrentInboundMFrames;
806 U32 MaxOutboundMFrames;
807 U8 ProductIDString[I2O_IOP_STATUS_PROD_ID_STR_SZ];
810 U32 DesiredPrivateMemSize;
811 U32 CurrentPrivateMemSize;
812 U32 CurrentPrivateMemBase;
813 U32 DesiredPrivateIOSize;
814 U32 CurrentPrivateIOSize;
815 U32 CurrentPrivateIOBase;
818 } I2O_EXEC_STATUS_GET_REPLY, *PI2O_EXEC_STATUS_GET_REPLY;
821 /****************************************************************************/
823 #define I2O_EXEC_SW_DOWNLOAD_FLAG_LOAD_MEMORY 0x00
824 #define I2O_EXEC_SW_DOWNLOAD_FLAG_PERMANENT_STORE 0x01
825 #define I2O_EXEC_SW_DOWNLOAD_FLAG_EXPERIMENTAL 0x00
826 #define I2O_EXEC_SW_DOWNLOAD_FLAG_OVERRIDE 0x02
828 #define I2O_EXEC_SW_TYPE_DDM 0x01
829 #define I2O_EXEC_SW_TYPE_DDM_MPB 0x02
830 #define I2O_EXEC_SW_TYPE_DDM_CONFIG_TABLE 0x03
831 #define I2O_EXEC_SW_TYPE_IRTOS 0x11
832 #define I2O_EXEC_SW_TYPE_IRTOS_PRIVATE_MODULE 0x12
833 #define I2O_EXEC_SW_TYPE_IRTOS_DIALOG_TABLE 0x13
834 #define I2O_EXEC_SW_TYPE_IOP_PRIVATE_MODULE 0x22
835 #define I2O_EXEC_SW_TYPE_IOP_DIALOG_TABLE 0x23
838 /* I2O ExecSwDownload/Upload/Remove SwID Structure */
840 typedef struct _I2O_SW_ID {
843 } I2O_SW_ID, *PI2O_SW_ID;
846 /* ExecSwDownload Function Message Frame structure. */
848 typedef struct _I2O_EXEC_SW_DOWNLOAD_MESSAGE {
849 I2O_MESSAGE_FRAME StdMessageFrame;
850 I2O_TRANSACTION_CONTEXT TransactionContext;
858 } I2O_EXEC_SW_DOWNLOAD_MESSAGE, *PI2O_EXEC_SW_DOWNLOAD_MESSAGE;
861 /****************************************************************************/
864 /* ExecSwUpload Function Message Frame structure. */
866 typedef struct _I2O_EXEC_SW_UPLOAD_MESSAGE {
867 I2O_MESSAGE_FRAME StdMessageFrame;
868 I2O_TRANSACTION_CONTEXT TransactionContext;
876 } I2O_EXEC_SW_UPLOAD_MESSAGE, *PI2O_EXEC_SW_UPLOAD_MESSAGE;
879 /****************************************************************************/
882 /* ExecSwRemove Function Message Frame structure. */
884 typedef struct _I2O_EXEC_SW_REMOVE_MESSAGE {
885 I2O_MESSAGE_FRAME StdMessageFrame;
886 I2O_TRANSACTION_CONTEXT TransactionContext;
892 } I2O_EXEC_SW_REMOVE_MESSAGE, *PI2O_EXEC_SW_REMOVE_MESSAGE;
895 /****************************************************************************/
898 /* ExecSysEnable Function Message Frame structure. */
900 typedef struct _I2O_EXEC_SYS_ENABLE_MESSAGE {
901 I2O_MESSAGE_FRAME StdMessageFrame;
902 I2O_TRANSACTION_CONTEXT TransactionContext;
903 } I2O_EXEC_SYS_ENABLE_MESSAGE, *PI2O_EXEC_SYS_ENABLE_MESSAGE;
906 /****************************************************************************/
909 /* ExecSysModify Function Message Frame structure. */
911 typedef struct _I2O_EXEC_SYS_MODIFY_MESSAGE {
912 I2O_MESSAGE_FRAME StdMessageFrame;
913 I2O_TRANSACTION_CONTEXT TransactionContext;
915 } I2O_EXEC_SYS_MODIFY_MESSAGE, *PI2O_EXEC_SYS_MODIFY_MESSAGE;
918 /****************************************************************************/
921 /* ExecSysQuiesce Function Message Frame structure. */
923 typedef struct _I2O_EXEC_SYS_QUIESCE_MESSAGE {
924 I2O_MESSAGE_FRAME StdMessageFrame;
925 I2O_TRANSACTION_CONTEXT TransactionContext;
926 } I2O_EXEC_SYS_QUIESCE_MESSAGE, *PI2O_EXEC_SYS_QUIESCE_MESSAGE;
929 /****************************************************************************/
932 /* ExecSysTabSet (System Table) Function Message Frame structure. */
934 #define I2O_EXEC_SYS_TAB_IOP_ID_LOCAL_IOP 0x000
935 #define I2O_EXEC_SYS_TAB_IOP_ID_LOCAL_HOST 0x001
936 #define I2O_EXEC_SYS_TAB_IOP_ID_UNKNOWN_IOP 0xFFF
937 #define I2O_EXEC_SYS_TAB_HOST_UNIT_ID_LOCAL_UNIT 0x0000
938 #define I2O_EXEC_SYS_TAB_HOST_UNIT_ID_UNKNOWN_UNIT 0xffff
939 #define I2O_EXEC_SYS_TAB_SEG_NUMBER_LOCAL_SEGMENT 0x000
940 #define I2O_EXEC_SYS_TAB_SEG_NUMBER_UNKNOWN_SEGMENT 0xfff
942 typedef struct _I2O_EXEC_SYS_TAB_SET_MESSAGE {
943 I2O_MESSAGE_FRAME StdMessageFrame;
944 I2O_TRANSACTION_CONTEXT TransactionContext;
945 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
948 BF IOP_ID:I2O_IOP_ID_SZ;
949 BF reserved:I2O_RESERVED_4BITS;
950 BF HostUnitID:I2O_UNIT_ID_SZ;
952 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
955 BF SegmentNumber:I2O_SEGMENT_NUMBER_SZ;
956 BF reserved2:I2O_RESERVED_4BITS;
957 BF reserved3:I2O_RESERVED_16BITS;
960 } I2O_EXEC_SYS_TAB_SET_MESSAGE, *PI2O_EXEC_SYS_TAB_SET_MESSAGE;
963 /* ExecSysTabSet (System Table) Header Reply structure. */
965 #define I2O_SET_SYSTAB_RESERVED_SZ 8
967 typedef struct _I2O_SET_SYSTAB_HEADER {
971 U32 CurrentChangeIndicator;
972 U8 reserved1[I2O_SET_SYSTAB_RESERVED_SZ];
973 /* I2O_SYSTAB_ENTRY SysTabEntry[1]; */
974 } I2O_SET_SYSTAB_HEADER, *PI2O_SET_SYSTAB_HEADER;
977 #define I2O_RESOURCE_MANAGER_VERSION 0
979 typedef struct _MESSENGER_INFO {
980 U32 InboundMessagePortAddressLow;
981 U32 InboundMessagePortAddressHigh;
982 } I2O_MESSENGER_INFO, *PI2O_MESSENGER_INFO;
984 /* ExecSysTabSet IOP Descriptor Entry structure. */
986 typedef struct _I2O_IOP_ENTRY {
989 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
992 BF IOP_ID:I2O_IOP_ID_SZ;
993 BF reserved3:I2O_RESERVED_4BITS;
994 BF reserved1:I2O_RESERVED_16BITS;
996 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
999 BF SegmentNumber:I2O_SEGMENT_NUMBER_SZ;
1000 BF I2oVersion:I2O_4BIT_VERSION_SZ;
1001 BF IopState:I2O_IOP_STATE_SZ;
1002 BF MessengerType:I2O_MESSENGER_TYPE_SZ;
1004 U16 InboundMessageFrameSize;
1007 U32 IopCapabilities;
1008 I2O_MESSENGER_INFO MessengerInfo;
1009 } I2O_IOP_ENTRY, *PI2O_IOP_ENTRY;
1012 /****************************************************************************/
1013 /* Executive Parameter Groups */
1014 /****************************************************************************/
1017 #define I2O_EXEC_IOP_HARDWARE_GROUP_NO 0x0000
1018 #define I2O_EXEC_IOP_MESSAGE_IF_GROUP_NO 0x0001
1019 #define I2O_EXEC_EXECUTING_ENVIRONMENT_GROUP_NO 0x0002
1020 #define I2O_EXEC_EXECUTING_DDM_LIST_GROUP_NO 0x0003
1021 #define I2O_EXEC_DRIVER_STORE_GROUP_NO 0x0004
1022 #define I2O_EXEC_DRIVER_STORE_TABLE_GROUP_NO 0x0005
1023 #define I2O_EXEC_IOP_BUS_ATTRIBUTES_GROUP_NO 0x0006
1024 #define I2O_EXEC_IOP_SW_ATTRIBUTES_GROUP_NO 0x0007
1025 #define I2O_EXEC_HARDWARE_RESOURCE_TABLE_GROUP_NO 0x0100
1026 #define I2O_EXEC_LCT_SCALAR_GROUP_NO 0x0101
1027 #define I2O_EXEC_LCT_TABLE_GROUP_NO 0x0102
1028 #define I2O_EXEC_SYSTEM_TABLE_GROUP_NO 0x0103
1029 #define I2O_EXEC_EXTERNAL_CONN_TABLE_GROUP_NO 0x0104
1032 /* EXEC Group 0000h - IOP Hardware Parameter Group */
1034 /* IOP HardWare Capabilities defines */
1036 #define I2O_IOP_HW_CAP_SELF_BOOT 0x00000001
1037 #define I2O_IOP_HW_CAP_IRTOS_UPGRADEABLE 0x00000002
1038 #define I2O_IOP_HW_CAP_DOWNLOADABLE_DDM 0x00000004
1039 #define I2O_IOP_HW_CAP_INSTALLABLE_DDM 0x00000008
1040 #define I2O_IOP_HW_CAP_BATTERY_BACKUP_RAM 0x00000010
1042 /* IOP Processor Type defines */
1044 #define I2O_IOP_PROC_TYPE_INTEL_80960 0x00
1045 #define I2O_IOP_PROC_TYPE_AMD_29000 0x01
1046 #define I2O_IOP_PROC_TYPE_MOTOROLA_68000 0x02
1047 #define I2O_IOP_PROC_TYPE_ARM 0x03
1048 #define I2O_IOP_PROC_TYPE_MIPS 0x04
1049 #define I2O_IOP_PROC_TYPE_SPARC 0x05
1050 #define I2O_IOP_PROC_TYPE_POWER_PC 0x06
1051 #define I2O_IOP_PROC_TYPE_ALPHA 0x07
1052 #define I2O_IOP_PROC_TYPE_INTEL_X86 0x08
1053 #define I2O_IOP_PROC_TYPE_OTHER 0xFF
1056 typedef struct _I2O_EXEC_IOP_HARDWARE_SCALAR {
1059 U32 ProcessorMemory;
1063 U8 ProcessorVersion;
1064 } I2O_EXEC_IOP_HARDWARE_SCALAR, *PI2O_EXEC_IOP_HARDWARE_SCALAR;
1067 /* EXEC Group 0001h - IOP Message Interface Parameter Group */
1069 /* InitCode defines */
1070 #define I2O_MESSAGE_IF_INIT_CODE_NO_OWNER 0x00
1071 #define I2O_MESSAGE_IF_INIT_CODE_BIOS 0x10
1072 #define I2O_MESSAGE_IF_INIT_CODE_OEM_BIOS_EXTENSION 0x20
1073 #define I2O_MESSAGE_IF_INIT_CODE_ROM_BIOS_EXTENSION 0x30
1074 #define I2O_MESSAGE_IF_INIT_CODE_OS 0x80
1076 typedef struct _I2O_EXEC_IOP_MESSAGE_IF_SCALAR {
1077 U32 InboundFrameSize;
1078 U32 InboundSizeTarget;
1081 U32 InboundPoolCount;
1082 U32 InboundCurrentFree;
1083 U32 InboundCurrentPost;
1085 U16 StaticInstanceCount;
1087 U16 StaticInstanceLimit;
1088 U32 OutboundFrameSize;
1090 U32 OutboundMaxTarget;
1091 U32 OutboundCurrentFree;
1092 U32 OutboundCurrentPost;
1094 } I2O_EXEC_IOP_MESSAGE_IF_SCALAR, *PI2O_EXEC_IOP_MESSAGE_IF_SCALAR;
1097 /* EXEC Group 0002h - Executing Environment Parameter Group */
1099 typedef struct _I2O_EXEC_EXECUTE_ENVIRONMENT_SCALAR {
1106 } I2O_EXEC_EXECUTE_ENVIRONMENT_SCALAR, *PI2O_EXEC_EXECUTE_ENVIRONMENT_SCALAR;
1109 /* EXEC Group 0003h - Executing DDM's Parameter Group */
1111 /* ModuleType Defines */
1113 #define I2O_EXEC_DDM_MODULE_TYPE_OTHER 0x00
1114 #define I2O_EXEC_DDM_MODULE_TYPE_DOWNLOAD 0x01
1115 #define I2O_EXEC_DDM_MODULE_TYPE_EMBEDDED 0x22
1118 typedef struct _I2O_EXEC_EXECUTE_DDM_TABLE {
1124 U8 ModuleName[I2O_MODULE_NAME_SZ];
1128 } I2O_EXEC_EXECUTE_DDM_TABLE, *PI2O_EXEC_EXECUTE_DDM_TABLE;
1131 /* EXEC Group 0004h - Driver Store Environment Parameter Group */
1134 typedef struct _I2O_EXEC_DRIVER_STORE_SCALAR {
1139 } I2O_EXEC_DRIVER_STORE_SCALAR, *PI2O_EXEC_DRIVER_STORE_SCALAR;
1142 /* EXEC Group 0005h - Driver Store Parameter Group */
1145 typedef struct _I2O_EXEC_DRIVER_STORE_TABLE {
1151 U8 ModuleName[I2O_MODULE_NAME_SZ];
1159 } I2O_EXEC_DRIVER_STORE_TABLE, *PI2O_EXEC_DRIVER_STORE_TABLE;
1162 /* EXEC Group 0006h - IOP's Bus Attributes Parameter Group */
1164 #define I2O_EXEC_IOP_BUS_ATTRIB_SYSTEM_BUS 0x00
1165 #define I2O_EXEC_IOP_BUS_ATTRIB_BRIDGED_SYSTEM_BUS 0x01
1166 #define I2O_EXEC_IOP_BUS_ATTRIB_PRIVATE 0x02
1168 typedef struct _I2O_EXEC_IOP_BUS_ATTRIBUTE_TABLE {
1174 } I2O_EXEC_IOP_BUS_ATTRIBUTE_TABLE, *PI2O_EXEC_IOP_BUS_ATTRIBUTE_TABLE;
1177 /* EXEC Group 0007h - IOP's Bus Attributes Parameter Group */
1179 #define I2O_EXEC_IOP_SW_CAP_IRTOS_I2O_COMPLIANT 0x00000001
1180 #define I2O_EXEC_IOP_SW_CAP_IRTOS_UPGRADEABLE 0x00000002
1181 #define I2O_EXEC_IOP_SW_CAP_DOWNLOADABLE_DDM 0x00000004
1182 #define I2O_EXEC_IOP_SW_CAP_INSTALLABLE_DDM 0x00000008
1184 typedef struct _I2O_EXEC_IOP_SW_ATTRIBUTES_SCALAR {
1189 } I2O_EXEC_IOP_SW_ATTRIBUTES_SCALAR, *PI2O_EXEC_IOP_SW_ATTRIBUTES_SCALAR;
1192 /* EXEC Group 0100h - Hardware Resource Table Parameter Group */
1194 typedef struct _I2O_EXEC_HARDWARE_RESOURCE_TABLE {
1196 U16 StateInfo; /* AdapterState plus Local TID */
1199 U64 PhysicalLocation;
1202 } I2O_EXEC_HARDWARE_RESOURCE_TABLE, *PI2O_EXEC_HARDWARE_RESOURCE_TABLE;
1204 /* EXEC Group 0101h - Logical Configuration Table Scalar Parameter Group */
1206 typedef struct _I2O_EXEC_LCT_SCALAR {
1209 U32 CurrentChangeIndicator;
1210 } I2O_EXEC_LCT_SCALAR, *PI2O_EXEC_LCT_SCALAR;
1212 /* EXEC Group 0102h - Logical Configuration Table Parameter Group */
1214 typedef struct _I2O_EXEC_LCT_TABLE {
1219 U32 ChangeIndicator;
1223 U8 IdentityTag[I2O_IDENTITY_TAG_SZ];
1224 U32 EventCapabilities;
1226 } I2O_EXEC_LCT_TABLE, *PI2O_EXEC_LCT_TABLE;
1228 /* EXEC Group 0103h - System Table Parameter Group */
1230 #define I2O_MESSENGER_TYPE_MEMORY_MAPPED_MESSAGE_UNIT 0x0
1232 typedef struct _I2O_EXEC_SYSTEM_TABLE {
1240 U32 InboundMessagePortAddress;
1241 U16 InboundMessageFrameSize;
1242 U32 IopCapabilities;
1243 I2O_MESSENGER_INFO MessengerInfo;
1244 } I2O_EXEC_SYSTEM_TABLE, *PI2O_EXEC_SYSTEM_TABLE;
1247 /* EXEC Group 0104h - External Connection Table Parameter Group */
1249 #define I2O_EXEC_XCT_FLAGS_REMOTE_IOP_CREATED_CONNECTION 0x00
1250 #define I2O_EXEC_XCT_FLAGS_THIS_IOP_CREATED_CONNECTION 0x01
1252 typedef struct _I2O_EXEC_EXTERNAL_CONNECTION_TABLE {
1259 } I2O_EXEC_EXTERNAL_CONNECTION_TABLE, *PI2O_EXEC_EXTERNAL_CONNECTION_TABLE;
1262 /****************************************************************************/
1268 #endif /* I2O_EXECUTIVE_HDR */