1 /* $FreeBSD: src/sys/dev/asr/i2oexec.h,v 1.1.2.1 2000/09/21 20:33:50 msmith Exp $ */
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
79 ****************************************************************/
81 /*********************************************************************
82 * I2OExec.h -- I2O Executive Class Message definition file
84 * This file contains information presented in Chapter 4 of the I2O(tm)
86 **********************************************************************/
88 #if !defined(I2O_EXECUTIVE_HDR)
89 #define I2O_EXECUTIVE_HDR
91 #define I2OEXEC_REV 1_5_4 /* I2OExec header file revision string */
93 #if ((defined(KERNEL) || defined(_KERNEL)) && defined(__FreeBSD__))
94 # if (!defined(KERN_VERSION))
95 # include <sys/sysctl.h>
97 # if (KERN_VERSION < 3)
98 # include "i386/pci/i2omsg.h" /* Include the Base Message file */
99 # include "i386/pci/i2outil.h"
101 # include "dev/asr/i2omsg.h" /* Include the Base Message file */
102 # include "dev/asr/i2outil.h"
105 # include "i2omsg.h" /* Include the Base Message file */
106 # include "i2outil.h"
113 Gets, reads, receives, etc. are all even numbered functions.
114 Sets, writes, sends, etc. are all odd numbered functions.
115 Functions that both send and receive data can be either but an attempt is made
116 to use the function number that indicates the greater transfer amount.
117 Functions that do not send or receive data use odd function numbers.
119 Some functions are synonyms like read, receive and send, write.
121 All common functions will have a code of less than 0x80.
122 Unique functions to a class will start at 0x80.
123 Executive Functions start at 0xA0.
125 Utility Message function codes range from 0 - 0x1f
126 Base Message function codes range from 0x20 - 0xfe
127 Private Message function code is 0xff.
133 /* I2O Executive Function Codes. */
135 #define I2O_EXEC_ADAPTER_ASSIGN 0xB3
136 #define I2O_EXEC_ADAPTER_READ 0xB2
137 #define I2O_EXEC_ADAPTER_RELEASE 0xB5
138 #define I2O_EXEC_BIOS_INFO_SET 0xA5
139 #define I2O_EXEC_BOOT_DEVICE_SET 0xA7
140 #define I2O_EXEC_CONFIG_VALIDATE 0xBB
141 #define I2O_EXEC_CONN_SETUP 0xCA
142 #define I2O_EXEC_DDM_DESTROY 0xB1
143 #define I2O_EXEC_DDM_ENABLE 0xD5
144 #define I2O_EXEC_DDM_QUIESCE 0xC7
145 #define I2O_EXEC_DDM_RESET 0xD9
146 #define I2O_EXEC_DDM_SUSPEND 0xAF
147 #define I2O_EXEC_DEVICE_ASSIGN 0xB7
148 #define I2O_EXEC_DEVICE_RELEASE 0xB9
149 #define I2O_EXEC_HRT_GET 0xA8
150 #define I2O_EXEC_IOP_CLEAR 0xBE
151 #define I2O_EXEC_IOP_CONNECT 0xC9
152 #define I2O_EXEC_IOP_RESET 0xBD
153 #define I2O_EXEC_LCT_NOTIFY 0xA2
154 #define I2O_EXEC_OUTBOUND_INIT 0xA1
155 #define I2O_EXEC_PATH_ENABLE 0xD3
156 #define I2O_EXEC_PATH_QUIESCE 0xC5
157 #define I2O_EXEC_PATH_RESET 0xD7
158 #define I2O_EXEC_STATIC_MF_CREATE 0xDD
159 #define I2O_EXEC_STATIC_MF_RELEASE 0xDF
160 #define I2O_EXEC_STATUS_GET 0xA0
161 #define I2O_EXEC_SW_DOWNLOAD 0xA9
162 #define I2O_EXEC_SW_UPLOAD 0xAB
163 #define I2O_EXEC_SW_REMOVE 0xAD
164 #define I2O_EXEC_SYS_ENABLE 0xD1
165 #define I2O_EXEC_SYS_MODIFY 0xC1
166 #define I2O_EXEC_SYS_QUIESCE 0xC3
167 #define I2O_EXEC_SYS_TAB_SET 0xA3
170 /* I2O Get Status State values */
172 #define I2O_IOP_STATE_INITIALIZING 0x01
173 #define I2O_IOP_STATE_RESET 0x02
174 #define I2O_IOP_STATE_HOLD 0x04
175 #define I2O_IOP_STATE_READY 0x05
176 #define I2O_IOP_STATE_OPERATIONAL 0x08
177 #define I2O_IOP_STATE_FAILED 0x10
178 #define I2O_IOP_STATE_FAULTED 0x11
181 /* Event Indicator Assignments for the Executive Class. */
183 #define I2O_EVENT_IND_RESOURCE_LIMIT 0x00000001
184 #define I2O_EVENT_IND_CONNECTION_FAIL 0x00000002
185 #define I2O_EVENT_IND_ADAPTER_FAULT 0x00000004
186 #define I2O_EVENT_IND_POWER_FAIL 0x00000008
187 #define I2O_EVENT_IND_RESET_PENDING 0x00000010
188 #define I2O_EVENT_IND_RESET_IMMINENT 0x00000020
189 #define I2O_EVENT_IND_HARDWARE_FAIL 0x00000040
190 #define I2O_EVENT_IND_XCT_CHANGE 0x00000080
191 #define I2O_EVENT_IND_NEW_LCT_ENTRY 0x00000100
192 #define I2O_EVENT_IND_MODIFIED_LCT 0x00000200
193 #define I2O_EVENT_IND_DDM_AVAILABILITY 0x00000400
195 /* Resource Limit Event Data */
197 #define I2O_EVENT_RESOURCE_LIMIT_LOW_MEMORY 0x00000001
198 #define I2O_EVENT_RESOURCE_LIMIT_INBOUND_POOL_LOW 0x00000002
199 #define I2O_EVENT_RESOURCE_LIMIT_OUTBOUND_POOL_LOW 0x00000004
201 /* Connection Fail Event Data */
203 #define I2O_EVENT_CONNECTION_FAIL_REPOND_NORMAL 0x00000000
204 #define I2O_EVENT_CONNECTION_FAIL_NOT_REPONDING 0x00000001
205 #define I2O_EVENT_CONNECTION_FAIL_NO_AVAILABLE_FRAMES 0x00000002
207 /* Reset Pending Event Data */
209 #define I2O_EVENT_RESET_PENDING_POWER_LOSS 0x00000001
210 #define I2O_EVENT_RESET_PENDING_CODE_VIOLATION 0x00000002
212 /* Reset Imminent Event Data */
214 #define I2O_EVENT_RESET_IMMINENT_UNKNOWN_CAUSE 0x00000000
215 #define I2O_EVENT_RESET_IMMINENT_POWER_LOSS 0x00000001
216 #define I2O_EVENT_RESET_IMMINENT_CODE_VIOLATION 0x00000002
217 #define I2O_EVENT_RESET_IMMINENT_PARITY_ERROR 0x00000003
218 #define I2O_EVENT_RESET_IMMINENT_CODE_EXCEPTION 0x00000004
219 #define I2O_EVENT_RESET_IMMINENT_WATCHDOG_TIMEOUT 0x00000005
221 /* Hardware Fail Event Data */
223 #define I2O_EVENT_HARDWARE_FAIL_UNKNOWN_CAUSE 0x00000000
224 #define I2O_EVENT_HARDWARE_FAIL_CPU_FAILURE 0x00000001
225 #define I2O_EVENT_HARDWARE_FAIL_MEMORY_FAULT 0x00000002
226 #define I2O_EVENT_HARDWARE_FAIL_DMA_FAILURE 0x00000003
227 #define I2O_EVENT_HARDWARE_FAIL_IO_BUS_FAILURE 0x00000004
229 /* DDM Availability Event Data */
231 #define I2O_EVENT_DDM_AVAILIBILITY_RESPOND_NORMAL 0x00000000
232 #define I2O_EVENT_DDM_AVAILIBILITY_CONGESTED 0x00000001
233 #define I2O_EVENT_DDM_AVAILIBILITY_NOT_RESPONDING 0x00000002
234 #define I2O_EVENT_DDM_AVAILIBILITY_PROTECTION_VIOLATION 0x00000003
235 #define I2O_EVENT_DDM_AVAILIBILITY_CODE_VIOLATION 0x00000004
237 /****************************************************************************/
239 #define I2O_OPERATION_FLAG_ASSIGN_PERMANENT 0x01
241 /* ExecAdapterAssign Function Message Frame structure. */
243 typedef struct _I2O_EXEC_ADAPTER_ASSIGN_MESSAGE {
244 I2O_MESSAGE_FRAME StdMessageFrame;
245 I2O_TRANSACTION_CONTEXT TransactionContext;
246 #if (defined(__BORLANDC__))
249 BF DdmTID:I2O_TID_SZ;
250 BF reserved:I2O_RESERVED_12BITS;
251 BF OperationFlags:I2O_8BIT_FLAGS_SZ;
253 I2O_HRT_ENTRY HRTEntry;
254 } I2O_EXEC_ADAPTER_ASSIGN_MESSAGE, *PI2O_EXEC_ADAPTER_ASSIGN_MESSAGE;
257 /****************************************************************************/
259 #define I2O_REQUEST_FLAG_CONFIG_REGISTER 0x00000000
260 #define I2O_REQUEST_FLAG_IO_REGISTER 0x00000001
261 #define I2O_REQUEST_FLAG_ADAPTER_MEMORY 0x00000002
263 /* ExecAdapterRead Function Message Frame structure. */
265 typedef struct _I2O_EXEC_ADAPTER_READ_MESSAGE {
266 I2O_MESSAGE_FRAME StdMessageFrame;
267 I2O_TRANSACTION_CONTEXT TransactionContext;
273 } I2O_EXEC_ADAPTER_READ_MESSAGE, *PI2O_EXEC_ADAPTER_READ_MESSAGE;
276 /****************************************************************************/
278 #define I2O_OPERATION_FLAG_RELEASE_PERMANENT 0x01
280 /* ExecAdapterRelease Function Message Frame structure. */
282 typedef struct _I2O_EXEC_ADAPTER_RELEASE_MESSAGE {
283 I2O_MESSAGE_FRAME StdMessageFrame;
284 I2O_TRANSACTION_CONTEXT TransactionContext;
287 I2O_HRT_ENTRY HRTEntry;
288 } I2O_EXEC_ADAPTER_RELEASE_MESSAGE, *PI2O_EXEC_ADAPTER_RELEASE_MESSAGE;
291 /****************************************************************************/
293 /* ExecBiosInfoSet Function Message Frame structure. */
295 typedef struct _I2O_EXEC_BIOS_INFO_SET_MESSAGE {
296 I2O_MESSAGE_FRAME StdMessageFrame;
297 I2O_TRANSACTION_CONTEXT TransactionContext;
298 #if (defined(__BORLANDC__))
301 BF DeviceTID:I2O_TID_SZ;
302 BF reserved:I2O_RESERVED_12BITS;
303 BF BiosInfo:I2O_BIOS_INFO_SZ;
305 } I2O_EXEC_BIOS_INFO_SET_MESSAGE, *PI2O_EXEC_BIOS_INFO_SET_MESSAGE;
308 /****************************************************************************/
310 /* ExecBootDeviceSet Function Message Frame structure. */
312 typedef struct _I2O_EXEC_BOOT_DEVICE_SET_MESSAGE {
313 I2O_MESSAGE_FRAME StdMessageFrame;
314 I2O_TRANSACTION_CONTEXT TransactionContext;
315 BF BootDevice:I2O_TID_SZ;
316 BF reserved:I2O_RESERVED_4BITS;
317 BF reserved1:I2O_RESERVED_16BITS;
318 } I2O_EXEC_BOOT_DEVICE_SET_MESSAGE, *PI2O_EXEC_BOOT_DEVICE_SET_MESSAGE;
321 /****************************************************************************/
323 /* ExecConfigValidate Function Message Frame structure. */
325 typedef struct _I2O_EXEC_CONFIG_VALIDATE_MESSAGE {
326 I2O_MESSAGE_FRAME StdMessageFrame;
327 I2O_TRANSACTION_CONTEXT TransactionContext;
328 } I2O_EXEC_CONFIG_VALIDATE_MESSAGE, *PI2O_EXEC_CONFIG_VALIDATE_MESSAGE;
331 /****************************************************************************/
333 /* ExecConnSetup Requestor */
335 typedef struct _I2O_ALIAS_CONNECT_SETUP {
336 #if (defined(__BORLANDC__))
337 U32 IOP1AliasForTargetDevice;
339 BF IOP1AliasForTargetDevice:I2O_TID_SZ;
340 BF IOP2AliasForInitiatorDevice:I2O_TID_SZ;
341 BF reserved:I2O_RESERVED_8BITS;
343 } I2O_ALIAS_CONNECT_SETUP, *PI2O_ALIAS_CONNECT_SETUP;
345 #define I2O_OPERATION_FLAG_PEER_TO_PEER_BIDIRECTIONAL 0x01
347 /* ExecConnSetup Object */
349 typedef struct _I2O_OBJECT_CONNECT_SETUP {
350 #if (defined(__BORLANDC__))
353 BF TargetDevice:I2O_TID_SZ;
354 BF InitiatorDevice:I2O_TID_SZ;
355 BF OperationFlags:I2O_8BIT_FLAGS_SZ;
357 } I2O_OBJECT_CONNECT_SETUP, *PI2O_OBJECT_CONNECT_SETUP;
360 /* ExecConnSetup Function Message Frame structure. */
362 typedef struct _I2O_EXEC_CONN_SETUP_MESSAGE {
363 I2O_MESSAGE_FRAME StdMessageFrame;
364 I2O_TRANSACTION_CONTEXT TransactionContext;
365 I2O_OBJECT_CONNECT_SETUP ObjectInfo;
366 I2O_ALIAS_CONNECT_SETUP AliasInfo;
367 U16 IOP2InboundMFrameSize;
370 } I2O_EXEC_CONN_SETUP_MESSAGE, *PI2O_EXEC_CONN_SETUP_MESSAGE;
373 /* ExecConnSetup Object Reply */
375 typedef struct _I2O_OBJECT_CONNECT_REPLY {
376 #if (defined(__BORLANDC__))
379 BF TargetDevice:I2O_TID_SZ;
380 BF InitiatorDevice:I2O_TID_SZ;
381 BF ReplyStatusCode:I2O_8BIT_FLAGS_SZ;
383 } I2O_OBJECT_CONNECT_REPLY, *PI2O_OBJECT_CONNECT_REPLY;
386 /* ExecConnSetup reply structure. */
388 typedef struct _I2O_EXEC_CONN_SETUP_REPLY {
389 I2O_MESSAGE_FRAME StdMessageFrame;
390 I2O_TRANSACTION_CONTEXT TransactionContext;
391 I2O_OBJECT_CONNECT_REPLY ObjectInfo;
392 I2O_ALIAS_CONNECT_SETUP AliasInfo;
393 U16 IOP2InboundMFrameSize;
395 } I2O_EXEC_CONN_SETUP_REPLY, *PI2O_EXEC_CONN_SETUP_REPLY;
398 /****************************************************************************/
400 /* ExecDdmDestroy Function Message Frame structure. */
402 typedef struct _I2O_EXEC_DDM_DESTROY_MESSAGE {
403 I2O_MESSAGE_FRAME StdMessageFrame;
404 I2O_TRANSACTION_CONTEXT TransactionContext;
405 BF DdmTID:I2O_TID_SZ;
406 BF reserved:I2O_RESERVED_4BITS;
407 BF reserved1:I2O_RESERVED_16BITS;
408 } I2O_EXEC_DDM_DESTROY_MESSAGE, *PI2O_EXEC_DDM_DESTROY_MESSAGE;
411 /****************************************************************************/
413 /* ExecDdmEnable Function Message Frame structure. */
415 typedef struct _I2O_EXEC_DDM_ENABLE_MESSAGE {
416 I2O_MESSAGE_FRAME StdMessageFrame;
417 I2O_TRANSACTION_CONTEXT TransactionContext;
418 BF DeviceTID:I2O_TID_SZ;
419 BF reserved2:I2O_RESERVED_4BITS;
420 BF reserved1:I2O_RESERVED_16BITS;
421 BF IOP_ID:I2O_IOP_ID_SZ;
422 BF reserved:I2O_RESERVED_4BITS;
423 BF HostUnitID:I2O_UNIT_ID_SZ;
424 } I2O_EXEC_DDM_ENABLE_MESSAGE, *PI2O_EXEC_DDM_ENABLE_MESSAGE;
427 /****************************************************************************/
429 /* ExecDdmQuiesce Function Message Frame structure. */
431 typedef struct _I2O_EXEC_DDM_QUIESCE_MESSAGE {
432 I2O_MESSAGE_FRAME StdMessageFrame;
433 I2O_TRANSACTION_CONTEXT TransactionContext;
434 BF DeviceTID:I2O_TID_SZ;
435 BF reserved2:I2O_RESERVED_4BITS;
436 BF reserved1:I2O_RESERVED_16BITS;
437 BF IOP_ID:I2O_IOP_ID_SZ;
438 BF reserved:I2O_RESERVED_4BITS;
439 BF HostUnitID:I2O_UNIT_ID_SZ;
440 } I2O_EXEC_DDM_QUIESCE_MESSAGE, *PI2O_EXEC_DDM_QUIESCE_MESSAGE;
443 /****************************************************************************/
445 /* ExecDdmReset Function Message Frame structure. */
447 typedef struct _I2O_EXEC_DDM_RESET_MESSAGE {
448 I2O_MESSAGE_FRAME StdMessageFrame;
449 I2O_TRANSACTION_CONTEXT TransactionContext;
450 BF DeviceTID:I2O_TID_SZ;
451 BF reserved2:I2O_RESERVED_4BITS;
452 BF reserved1:I2O_RESERVED_16BITS;
453 BF IOP_ID:I2O_IOP_ID_SZ;
454 BF reserved:I2O_RESERVED_4BITS;
455 BF HostUnitID:I2O_UNIT_ID_SZ;
456 } I2O_EXEC_DDM_RESET_MESSAGE, *PI2O_EXEC_DDM_RESET_MESSAGE;
459 /****************************************************************************/
461 /* ExecDdmSuspend Function Message Frame structure. */
463 typedef struct _I2O_EXEC_DDM_SUSPEND_MESSAGE {
464 I2O_MESSAGE_FRAME StdMessageFrame;
465 I2O_TRANSACTION_CONTEXT TransactionContext;
466 BF DdmTID:I2O_TID_SZ;
467 BF reserved:I2O_RESERVED_4BITS;
468 BF reserved1:I2O_RESERVED_16BITS;
469 } I2O_EXEC_DDM_SUSPEND_MESSAGE, *PI2O_EXEC_DDM_SUSPEND_MESSAGE;
472 /****************************************************************************/
474 #define I2O_OPERATION_FLAG_ASSIGN_PERMANENT 0x01
476 /* ExecDeviceAssign Function Message Frame structure. */
478 typedef struct _I2O_EXEC_DEVICE_ASSIGN_MESSAGE {
479 I2O_MESSAGE_FRAME StdMessageFrame;
480 I2O_TRANSACTION_CONTEXT TransactionContext;
481 #if (defined(__BORLANDC__))
484 BF DeviceTID:I2O_TID_SZ;
485 BF DdmTID:I2O_TID_SZ;
486 BF OperationFlags:I2O_8BIT_FLAGS_SZ;
488 BF IOP_ID:I2O_IOP_ID_SZ;
489 BF reserved:I2O_RESERVED_4BITS;
490 BF HostUnitID:I2O_UNIT_ID_SZ;
491 } I2O_EXEC_DEVICE_ASSIGN_MESSAGE, *PI2O_EXEC_DEVICE_ASSIGN_MESSAGE;
494 /****************************************************************************/
496 #define I2O_OPERATION_FLAG_RELEASE_PERMANENT 0x01
498 /* ExecDeviceRelease Function Message Frame structure. */
500 typedef struct _I2O_EXEC_DEVICE_RELEASE_MESSAGE {
501 I2O_MESSAGE_FRAME StdMessageFrame;
502 I2O_TRANSACTION_CONTEXT TransactionContext;
503 #if (defined(__BORLANDC__))
506 BF DeviceTID:I2O_TID_SZ;
507 BF DdmTID:I2O_TID_SZ;
508 BF OperationFlags:I2O_8BIT_FLAGS_SZ;
510 BF IOP_ID:I2O_IOP_ID_SZ;
511 BF reserved:I2O_RESERVED_4BITS;
512 BF HostUnitID:I2O_UNIT_ID_SZ;
513 } I2O_EXEC_DEVICE_RELEASE_MESSAGE, *PI2O_EXEC_DEVICE_RELEASE_MESSAGE;
516 /****************************************************************************/
518 /* HRT Entry Structure defined in I2OMSG.H */
520 /* ExecHrtGet Function Message Frame structure. */
522 typedef struct _I2O_EXEC_HRT_GET_MESSAGE {
523 I2O_MESSAGE_FRAME StdMessageFrame;
524 I2O_TRANSACTION_CONTEXT TransactionContext;
526 } I2O_EXEC_HRT_GET_MESSAGE, *PI2O_EXEC_HRT_GET_MESSAGE;
529 /****************************************************************************/
532 /* ExecIopClear Function Message Frame structure. */
534 typedef struct _I2O_EXEC_IOP_CLEAR_MESSAGE {
535 I2O_MESSAGE_FRAME StdMessageFrame;
536 I2O_TRANSACTION_CONTEXT TransactionContext;
537 } I2O_EXEC_IOP_CLEAR_MESSAGE, *PI2O_EXEC_IOP_CLEAR_MESSAGE;
540 /****************************************************************************/
543 /* ExecIopConnect Function Message Frame structure. */
545 typedef struct _I2O_EXEC_IOP_CONNECT_MESSAGE {
546 I2O_MESSAGE_FRAME StdMessageFrame;
547 I2O_TRANSACTION_CONTEXT TransactionContext;
548 BF reserved:I2O_RESERVED_16BITS;
549 BF reserved3:I2O_RESERVED_8BITS;
550 BF IOP1MsgerType:I2O_MESSENGER_TYPE_SZ;
551 U16 IOP1InboundMFrameSize;
552 BF IOP1AliasForIOP2:I2O_TID_SZ;
554 BF IOP_ID1:I2O_IOP_ID_SZ;
555 BF reserved2:I2O_RESERVED_4BITS;
556 BF HostUnitID1:I2O_UNIT_ID_SZ;
557 } I2O_EXEC_IOP_CONNECT_MESSAGE, *PI2O_EXEC_IOP_CONNECT_MESSAGE;
560 /* ExecIopConnect reply structure */
562 typedef struct _I2O_EXEC_IOP_CONNECT_IOP_REPLY {
563 I2O_MESSAGE_FRAME StdMessageFrame;
564 I2O_TRANSACTION_CONTEXT TransactionContext;
565 U16 DetailedStatusCode;
568 U16 IOP2InboundMFrameSize;
569 BF IOP2AliasForIOP1:I2O_TID_SZ;
571 BF IOP_ID2:I2O_IOP_ID_SZ;
572 BF reserved2:I2O_RESERVED_4BITS;
573 BF HostUnitID2:I2O_UNIT_ID_SZ;
574 } I2O_EXEC_IOP_CONNECT_REPLY, *PI2O_EXEC_IOP_CONNECT_REPLY;
577 /****************************************************************************/
580 #define I2O_EXEC_IOP_RESET_RESERVED_SZ 16
582 #define I2O_EXEC_IOP_RESET_IN_PROGRESS 0x01
583 #define I2O_EXEC_IOP_RESET_REJECTED 0x02
585 #define I2O_EXEC_IOP_RESET_STATUS_RESERVED_SZ 3
587 typedef struct _I2O_EXEC_IOP_RESET_STATUS {
588 # if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
592 U8 reserved[I2O_EXEC_IOP_RESET_STATUS_RESERVED_SZ];
594 } I2O_EXEC_IOP_RESET_STATUS, *PI2O_EXEC_IOP_RESET_STATUS;
597 /* ExecIopReset Function Message Frame structure. */
599 typedef struct _I2O_EXEC_IOP_RESET_MESSAGE {
603 #if (defined(__BORLANDC__) || defined(sparc))
606 BF TargetAddress:I2O_TID_SZ;
607 BF InitiatorAddress:I2O_TID_SZ;
608 BF Function:I2O_FUNCTION_SZ;
610 U8 Reserved[I2O_EXEC_IOP_RESET_RESERVED_SZ];
611 U32 StatusWordLowAddress;
612 U32 StatusWordHighAddress;
613 } I2O_EXEC_IOP_RESET_MESSAGE, *PI2O_EXEC_IOP_RESET_MESSAGE;
616 /****************************************************************************/
618 /* LCT Entry Structure defined in I2OMSG.H */
620 /* ExecLCTNotify Function Message Frame structure. */
622 typedef struct _I2O_EXEC_LCT_NOTIFY_MESSAGE {
623 I2O_MESSAGE_FRAME StdMessageFrame;
624 I2O_TRANSACTION_CONTEXT TransactionContext;
626 U32 LastReportedChangeIndicator;
628 } I2O_EXEC_LCT_NOTIFY_MESSAGE, *PI2O_EXEC_LCT_NOTIFY_MESSAGE;
631 /****************************************************************************/
634 /* ExecOutboundInit Function Message Frame structure. */
636 typedef struct _I2O_EXEC_OUTBOUND_INIT_MESSAGE {
637 I2O_MESSAGE_FRAME StdMessageFrame;
638 I2O_TRANSACTION_CONTEXT TransactionContext;
639 U32 HostPageFrameSize;
642 U16 OutboundMFrameSize;
644 } I2O_EXEC_OUTBOUND_INIT_MESSAGE, *PI2O_EXEC_OUTBOUND_INIT_MESSAGE;
647 #define I2O_EXEC_OUTBOUND_INIT_IN_PROGRESS 0x01
648 #define I2O_EXEC_OUTBOUND_INIT_REJECTED 0x02
649 #define I2O_EXEC_OUTBOUND_INIT_FAILED 0x03
650 #define I2O_EXEC_OUTBOUND_INIT_COMPLETE 0x04
652 #define I2O_EXEC_OUTBOUND_INIT_RESERVED_SZ 3
655 typedef struct _I2O_EXEC_OUTBOUND_INIT_STATUS {
657 U8 reserved[I2O_EXEC_OUTBOUND_INIT_RESERVED_SZ];
658 } I2O_EXEC_OUTBOUND_INIT_STATUS, *PI2O_EXEC_OUTBOUND_INIT_STATUS;
661 typedef struct _I2O_EXEC_OUTBOUND_INIT_RECLAIM_LIST {
665 } I2O_EXEC_OUTBOUND_INIT_RECLAIM_LIST, *PI2O_EXEC_OUTBOUND_INIT_RECLAIM_LIST;
668 /****************************************************************************/
670 /* ExecPathEnable Function Message Frame structure. */
672 typedef struct _I2O_EXEC_PATH_ENABLE_MESSAGE {
673 I2O_MESSAGE_FRAME StdMessageFrame;
674 I2O_TRANSACTION_CONTEXT TransactionContext;
675 BF IOP_ID:I2O_IOP_ID_SZ;
676 BF reserved:I2O_RESERVED_4BITS;
677 BF HostUnitID:I2O_UNIT_ID_SZ;
678 } I2O_EXEC_PATH_ENABLE_MESSAGE, *PI2O_EXEC_PATH_ENABLE_MESSAGE;
681 /****************************************************************************/
683 /* ExecPathQuiesce Function Message Frame structure. */
685 typedef struct _I2O_EXEC_PATH_QUIESCE_MESSAGE {
686 I2O_MESSAGE_FRAME StdMessageFrame;
687 I2O_TRANSACTION_CONTEXT TransactionContext;
688 BF IOP_ID:I2O_IOP_ID_SZ;
689 BF reserved:I2O_RESERVED_4BITS;
690 BF HostUnitID:I2O_UNIT_ID_SZ;
691 } I2O_EXEC_PATH_QUIESCE_MESSAGE, *PI2O_EXEC_PATH_QUIESCE_MESSAGE;
694 /****************************************************************************/
696 /* ExecPathReset Function Message Frame structure. */
698 typedef struct _I2O_EXEC_PATH_RESET_MESSAGE {
699 I2O_MESSAGE_FRAME StdMessageFrame;
700 I2O_TRANSACTION_CONTEXT TransactionContext;
701 BF IOP_ID:I2O_IOP_ID_SZ;
702 BF reserved:I2O_RESERVED_4BITS;
703 BF HostUnitID:I2O_UNIT_ID_SZ;
704 } I2O_EXEC_PATH_RESET_MESSAGE, *PI2O_EXEC_PATH_RESET_MESSAGE;
707 /****************************************************************************/
709 #define I2O_EXEC_STATIC_MF_CREATE_RESERVED_SZ 3
711 /* ExecStaticMfCreate Message Frame structure */
713 typedef struct _I2O_EXEC_STATIC_MF_CREATE_MESSAGE {
714 I2O_MESSAGE_FRAME StdMessageFrame;
715 I2O_TRANSACTION_CONTEXT TransactionContext;
717 U8 reserved[I2O_EXEC_STATIC_MF_CREATE_RESERVED_SZ];
718 I2O_MESSAGE_FRAME StaticMessageFrame;
719 } I2O_EXEC_STATIC_MF_CREATE_MESSAGE, *PI2O_EXEC_STATIC_MF_CREATE_MESSAGE;
722 /* ExecStaticMfCreate Message Frame reply */
724 typedef struct _I2O_EXEC_STATIC_MF_CREATE_REPLY {
725 I2O_SINGLE_REPLY_MESSAGE_FRAME StdReplyFrame;
726 PI2O_MESSAGE_FRAME StaticMFA;
727 } I2O_EXEC_STATIC_MF_CREATE_REPLY, *PI2O_EXEC_STATIC_MF_CREATE_REPLY;
730 /* ExecStaticMfRelease Message Frame structure */
732 typedef struct _I2O_EXEC_STATIC_MF_RELEASE_MESSAGE {
733 I2O_MESSAGE_FRAME StdMessageFrame;
734 I2O_TRANSACTION_CONTEXT TransactionContext;
735 PI2O_MESSAGE_FRAME StaticMFA;
736 } I2O_EXEC_STATIC_MF_RELEASE_MESSAGE, *PI2O_EXEC_STATIC_MF_RELEASE_MESSAGE;
739 /****************************************************************************/
741 #define I2O_EXEC_STATUS_GET_RESERVED_SZ 16
743 /* ExecStatusGet Function Message Frame structure. */
745 typedef struct _I2O_EXEC_STATUS_GET_MESSAGE {
749 #if (defined(__BORLANDC__) || defined(_DPT_BIG_ENDIAN) || defined(sparc))
752 BF TargetAddress:I2O_TID_SZ;
753 BF InitiatorAddress:I2O_TID_SZ;
754 BF Function:I2O_FUNCTION_SZ;
756 U8 Reserved[I2O_EXEC_STATUS_GET_RESERVED_SZ];
757 U32 ReplyBufferAddressLow;
758 U32 ReplyBufferAddressHigh;
759 U32 ReplyBufferLength;
760 } I2O_EXEC_STATUS_GET_MESSAGE, *PI2O_EXEC_STATUS_GET_MESSAGE;
763 #define I2O_IOP_STATUS_PROD_ID_STR_SZ 24
764 #define I2O_EXEC_STATUS_GET_REPLY_RESERVED_SZ 6
766 /* ExecStatusGet reply Structure */
768 #define I2O_IOP_CAP_CONTEXT_32_ONLY 0x00000000
769 #define I2O_IOP_CAP_CONTEXT_64_ONLY 0x00000001
770 #define I2O_IOP_CAP_CONTEXT_32_64_NOT_CURRENTLY 0x00000002
771 #define I2O_IOP_CAP_CONTEXT_32_64_CURRENTLY 0x00000003
772 #define I2O_IOP_CAP_CURRENT_CONTEXT_NOT_CONFIG 0x00000000
773 #define I2O_IOP_CAP_CURRENT_CONTEXT_32_ONLY 0x00000004
774 #define I2O_IOP_CAP_CURRENT_CONTEXT_64_ONLY 0x00000008
775 #define I2O_IOP_CAP_CURRENT_CONTEXT_32_64 0x0000000C
776 #define I2O_IOP_CAP_INBOUND_PEER_SUPPORT 0x00000010
777 #define I2O_IOP_CAP_OUTBOUND_PEER_SUPPORT 0x00000020
778 #define I2O_IOP_CAP_PEER_TO_PEER_SUPPORT 0x00000040
780 typedef struct _I2O_EXEC_STATUS_GET_REPLY {
783 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
786 BF IOP_ID:I2O_IOP_ID_SZ;
787 BF reserved1:I2O_RESERVED_4BITS;
788 BF HostUnitID:I2O_UNIT_ID_SZ;
790 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
793 BF SegmentNumber:I2O_SEGMENT_NUMBER_SZ;
794 BF I2oVersion:I2O_4BIT_VERSION_SZ;
795 BF IopState:I2O_IOP_STATE_SZ;
796 BF MessengerType:I2O_MESSENGER_TYPE_SZ;
798 U16 InboundMFrameSize;
801 U32 MaxInboundMFrames;
802 U32 CurrentInboundMFrames;
803 U32 MaxOutboundMFrames;
804 U8 ProductIDString[I2O_IOP_STATUS_PROD_ID_STR_SZ];
807 U32 DesiredPrivateMemSize;
808 U32 CurrentPrivateMemSize;
809 U32 CurrentPrivateMemBase;
810 U32 DesiredPrivateIOSize;
811 U32 CurrentPrivateIOSize;
812 U32 CurrentPrivateIOBase;
815 } I2O_EXEC_STATUS_GET_REPLY, *PI2O_EXEC_STATUS_GET_REPLY;
818 /****************************************************************************/
820 #define I2O_EXEC_SW_DOWNLOAD_FLAG_LOAD_MEMORY 0x00
821 #define I2O_EXEC_SW_DOWNLOAD_FLAG_PERMANENT_STORE 0x01
822 #define I2O_EXEC_SW_DOWNLOAD_FLAG_EXPERIMENTAL 0x00
823 #define I2O_EXEC_SW_DOWNLOAD_FLAG_OVERRIDE 0x02
825 #define I2O_EXEC_SW_TYPE_DDM 0x01
826 #define I2O_EXEC_SW_TYPE_DDM_MPB 0x02
827 #define I2O_EXEC_SW_TYPE_DDM_CONFIG_TABLE 0x03
828 #define I2O_EXEC_SW_TYPE_IRTOS 0x11
829 #define I2O_EXEC_SW_TYPE_IRTOS_PRIVATE_MODULE 0x12
830 #define I2O_EXEC_SW_TYPE_IRTOS_DIALOG_TABLE 0x13
831 #define I2O_EXEC_SW_TYPE_IOP_PRIVATE_MODULE 0x22
832 #define I2O_EXEC_SW_TYPE_IOP_DIALOG_TABLE 0x23
835 /* I2O ExecSwDownload/Upload/Remove SwID Structure */
837 typedef struct _I2O_SW_ID {
840 } I2O_SW_ID, *PI2O_SW_ID;
843 /* ExecSwDownload Function Message Frame structure. */
845 typedef struct _I2O_EXEC_SW_DOWNLOAD_MESSAGE {
846 I2O_MESSAGE_FRAME StdMessageFrame;
847 I2O_TRANSACTION_CONTEXT TransactionContext;
855 } I2O_EXEC_SW_DOWNLOAD_MESSAGE, *PI2O_EXEC_SW_DOWNLOAD_MESSAGE;
858 /****************************************************************************/
861 /* ExecSwUpload Function Message Frame structure. */
863 typedef struct _I2O_EXEC_SW_UPLOAD_MESSAGE {
864 I2O_MESSAGE_FRAME StdMessageFrame;
865 I2O_TRANSACTION_CONTEXT TransactionContext;
873 } I2O_EXEC_SW_UPLOAD_MESSAGE, *PI2O_EXEC_SW_UPLOAD_MESSAGE;
876 /****************************************************************************/
879 /* ExecSwRemove Function Message Frame structure. */
881 typedef struct _I2O_EXEC_SW_REMOVE_MESSAGE {
882 I2O_MESSAGE_FRAME StdMessageFrame;
883 I2O_TRANSACTION_CONTEXT TransactionContext;
889 } I2O_EXEC_SW_REMOVE_MESSAGE, *PI2O_EXEC_SW_REMOVE_MESSAGE;
892 /****************************************************************************/
895 /* ExecSysEnable Function Message Frame structure. */
897 typedef struct _I2O_EXEC_SYS_ENABLE_MESSAGE {
898 I2O_MESSAGE_FRAME StdMessageFrame;
899 I2O_TRANSACTION_CONTEXT TransactionContext;
900 } I2O_EXEC_SYS_ENABLE_MESSAGE, *PI2O_EXEC_SYS_ENABLE_MESSAGE;
903 /****************************************************************************/
906 /* ExecSysModify Function Message Frame structure. */
908 typedef struct _I2O_EXEC_SYS_MODIFY_MESSAGE {
909 I2O_MESSAGE_FRAME StdMessageFrame;
910 I2O_TRANSACTION_CONTEXT TransactionContext;
912 } I2O_EXEC_SYS_MODIFY_MESSAGE, *PI2O_EXEC_SYS_MODIFY_MESSAGE;
915 /****************************************************************************/
918 /* ExecSysQuiesce Function Message Frame structure. */
920 typedef struct _I2O_EXEC_SYS_QUIESCE_MESSAGE {
921 I2O_MESSAGE_FRAME StdMessageFrame;
922 I2O_TRANSACTION_CONTEXT TransactionContext;
923 } I2O_EXEC_SYS_QUIESCE_MESSAGE, *PI2O_EXEC_SYS_QUIESCE_MESSAGE;
926 /****************************************************************************/
929 /* ExecSysTabSet (System Table) Function Message Frame structure. */
931 #define I2O_EXEC_SYS_TAB_IOP_ID_LOCAL_IOP 0x000
932 #define I2O_EXEC_SYS_TAB_IOP_ID_LOCAL_HOST 0x001
933 #define I2O_EXEC_SYS_TAB_IOP_ID_UNKNOWN_IOP 0xFFF
934 #define I2O_EXEC_SYS_TAB_HOST_UNIT_ID_LOCAL_UNIT 0x0000
935 #define I2O_EXEC_SYS_TAB_HOST_UNIT_ID_UNKNOWN_UNIT 0xffff
936 #define I2O_EXEC_SYS_TAB_SEG_NUMBER_LOCAL_SEGMENT 0x000
937 #define I2O_EXEC_SYS_TAB_SEG_NUMBER_UNKNOWN_SEGMENT 0xfff
939 typedef struct _I2O_EXEC_SYS_TAB_SET_MESSAGE {
940 I2O_MESSAGE_FRAME StdMessageFrame;
941 I2O_TRANSACTION_CONTEXT TransactionContext;
942 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
945 BF IOP_ID:I2O_IOP_ID_SZ;
946 BF reserved:I2O_RESERVED_4BITS;
947 BF HostUnitID:I2O_UNIT_ID_SZ;
949 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
952 BF SegmentNumber:I2O_SEGMENT_NUMBER_SZ;
953 BF reserved2:I2O_RESERVED_4BITS;
954 BF reserved3:I2O_RESERVED_16BITS;
957 } I2O_EXEC_SYS_TAB_SET_MESSAGE, *PI2O_EXEC_SYS_TAB_SET_MESSAGE;
960 /* ExecSysTabSet (System Table) Header Reply structure. */
962 #define I2O_SET_SYSTAB_RESERVED_SZ 8
964 typedef struct _I2O_SET_SYSTAB_HEADER {
968 U32 CurrentChangeIndicator;
969 U8 reserved1[I2O_SET_SYSTAB_RESERVED_SZ];
970 /* I2O_SYSTAB_ENTRY SysTabEntry[1]; */
971 } I2O_SET_SYSTAB_HEADER, *PI2O_SET_SYSTAB_HEADER;
974 #define I2O_RESOURCE_MANAGER_VERSION 0
976 typedef struct _MESSENGER_INFO {
977 U32 InboundMessagePortAddressLow;
978 U32 InboundMessagePortAddressHigh;
979 } I2O_MESSENGER_INFO, *PI2O_MESSENGER_INFO;
981 /* ExecSysTabSet IOP Descriptor Entry structure. */
983 typedef struct _I2O_IOP_ENTRY {
986 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
989 BF IOP_ID:I2O_IOP_ID_SZ;
990 BF reserved3:I2O_RESERVED_4BITS;
991 BF reserved1:I2O_RESERVED_16BITS;
993 #if (defined(_DPT_BIG_ENDIAN) || defined(sparc))
996 BF SegmentNumber:I2O_SEGMENT_NUMBER_SZ;
997 BF I2oVersion:I2O_4BIT_VERSION_SZ;
998 BF IopState:I2O_IOP_STATE_SZ;
999 BF MessengerType:I2O_MESSENGER_TYPE_SZ;
1001 U16 InboundMessageFrameSize;
1004 U32 IopCapabilities;
1005 I2O_MESSENGER_INFO MessengerInfo;
1006 } I2O_IOP_ENTRY, *PI2O_IOP_ENTRY;
1009 /****************************************************************************/
1010 /* Executive Parameter Groups */
1011 /****************************************************************************/
1014 #define I2O_EXEC_IOP_HARDWARE_GROUP_NO 0x0000
1015 #define I2O_EXEC_IOP_MESSAGE_IF_GROUP_NO 0x0001
1016 #define I2O_EXEC_EXECUTING_ENVIRONMENT_GROUP_NO 0x0002
1017 #define I2O_EXEC_EXECUTING_DDM_LIST_GROUP_NO 0x0003
1018 #define I2O_EXEC_DRIVER_STORE_GROUP_NO 0x0004
1019 #define I2O_EXEC_DRIVER_STORE_TABLE_GROUP_NO 0x0005
1020 #define I2O_EXEC_IOP_BUS_ATTRIBUTES_GROUP_NO 0x0006
1021 #define I2O_EXEC_IOP_SW_ATTRIBUTES_GROUP_NO 0x0007
1022 #define I2O_EXEC_HARDWARE_RESOURCE_TABLE_GROUP_NO 0x0100
1023 #define I2O_EXEC_LCT_SCALAR_GROUP_NO 0x0101
1024 #define I2O_EXEC_LCT_TABLE_GROUP_NO 0x0102
1025 #define I2O_EXEC_SYSTEM_TABLE_GROUP_NO 0x0103
1026 #define I2O_EXEC_EXTERNAL_CONN_TABLE_GROUP_NO 0x0104
1029 /* EXEC Group 0000h - IOP Hardware Parameter Group */
1031 /* IOP HardWare Capabilities defines */
1033 #define I2O_IOP_HW_CAP_SELF_BOOT 0x00000001
1034 #define I2O_IOP_HW_CAP_IRTOS_UPGRADEABLE 0x00000002
1035 #define I2O_IOP_HW_CAP_DOWNLOADABLE_DDM 0x00000004
1036 #define I2O_IOP_HW_CAP_INSTALLABLE_DDM 0x00000008
1037 #define I2O_IOP_HW_CAP_BATTERY_BACKUP_RAM 0x00000010
1039 /* IOP Processor Type defines */
1041 #define I2O_IOP_PROC_TYPE_INTEL_80960 0x00
1042 #define I2O_IOP_PROC_TYPE_AMD_29000 0x01
1043 #define I2O_IOP_PROC_TYPE_MOTOROLA_68000 0x02
1044 #define I2O_IOP_PROC_TYPE_ARM 0x03
1045 #define I2O_IOP_PROC_TYPE_MIPS 0x04
1046 #define I2O_IOP_PROC_TYPE_SPARC 0x05
1047 #define I2O_IOP_PROC_TYPE_POWER_PC 0x06
1048 #define I2O_IOP_PROC_TYPE_ALPHA 0x07
1049 #define I2O_IOP_PROC_TYPE_INTEL_X86 0x08
1050 #define I2O_IOP_PROC_TYPE_OTHER 0xFF
1053 typedef struct _I2O_EXEC_IOP_HARDWARE_SCALAR {
1056 U32 ProcessorMemory;
1060 U8 ProcessorVersion;
1061 } I2O_EXEC_IOP_HARDWARE_SCALAR, *PI2O_EXEC_IOP_HARDWARE_SCALAR;
1064 /* EXEC Group 0001h - IOP Message Interface Parameter Group */
1066 /* InitCode defines */
1067 #define I2O_MESSAGE_IF_INIT_CODE_NO_OWNER 0x00
1068 #define I2O_MESSAGE_IF_INIT_CODE_BIOS 0x10
1069 #define I2O_MESSAGE_IF_INIT_CODE_OEM_BIOS_EXTENSION 0x20
1070 #define I2O_MESSAGE_IF_INIT_CODE_ROM_BIOS_EXTENSION 0x30
1071 #define I2O_MESSAGE_IF_INIT_CODE_OS 0x80
1073 typedef struct _I2O_EXEC_IOP_MESSAGE_IF_SCALAR {
1074 U32 InboundFrameSize;
1075 U32 InboundSizeTarget;
1078 U32 InboundPoolCount;
1079 U32 InboundCurrentFree;
1080 U32 InboundCurrentPost;
1082 U16 StaticInstanceCount;
1084 U16 StaticInstanceLimit;
1085 U32 OutboundFrameSize;
1087 U32 OutboundMaxTarget;
1088 U32 OutboundCurrentFree;
1089 U32 OutboundCurrentPost;
1091 } I2O_EXEC_IOP_MESSAGE_IF_SCALAR, *PI2O_EXEC_IOP_MESSAGE_IF_SCALAR;
1094 /* EXEC Group 0002h - Executing Environment Parameter Group */
1096 typedef struct _I2O_EXEC_EXECUTE_ENVIRONMENT_SCALAR {
1103 } I2O_EXEC_EXECUTE_ENVIRONMENT_SCALAR, *PI2O_EXEC_EXECUTE_ENVIRONMENT_SCALAR;
1106 /* EXEC Group 0003h - Executing DDM's Parameter Group */
1108 /* ModuleType Defines */
1110 #define I2O_EXEC_DDM_MODULE_TYPE_OTHER 0x00
1111 #define I2O_EXEC_DDM_MODULE_TYPE_DOWNLOAD 0x01
1112 #define I2O_EXEC_DDM_MODULE_TYPE_EMBEDDED 0x22
1115 typedef struct _I2O_EXEC_EXECUTE_DDM_TABLE {
1121 U8 ModuleName[I2O_MODULE_NAME_SZ];
1125 } I2O_EXEC_EXECUTE_DDM_TABLE, *PI2O_EXEC_EXECUTE_DDM_TABLE;
1128 /* EXEC Group 0004h - Driver Store Environment Parameter Group */
1131 typedef struct _I2O_EXEC_DRIVER_STORE_SCALAR {
1136 } I2O_EXEC_DRIVER_STORE_SCALAR, *PI2O_EXEC_DRIVER_STORE_SCALAR;
1139 /* EXEC Group 0005h - Driver Store Parameter Group */
1142 typedef struct _I2O_EXEC_DRIVER_STORE_TABLE {
1148 U8 ModuleName[I2O_MODULE_NAME_SZ];
1156 } I2O_EXEC_DRIVER_STORE_TABLE, *PI2O_EXEC_DRIVER_STORE_TABLE;
1159 /* EXEC Group 0006h - IOP's Bus Attributes Parameter Group */
1161 #define I2O_EXEC_IOP_BUS_ATTRIB_SYSTEM_BUS 0x00
1162 #define I2O_EXEC_IOP_BUS_ATTRIB_BRIDGED_SYSTEM_BUS 0x01
1163 #define I2O_EXEC_IOP_BUS_ATTRIB_PRIVATE 0x02
1165 typedef struct _I2O_EXEC_IOP_BUS_ATTRIBUTE_TABLE {
1171 } I2O_EXEC_IOP_BUS_ATTRIBUTE_TABLE, *PI2O_EXEC_IOP_BUS_ATTRIBUTE_TABLE;
1174 /* EXEC Group 0007h - IOP's Bus Attributes Parameter Group */
1176 #define I2O_EXEC_IOP_SW_CAP_IRTOS_I2O_COMPLIANT 0x00000001
1177 #define I2O_EXEC_IOP_SW_CAP_IRTOS_UPGRADEABLE 0x00000002
1178 #define I2O_EXEC_IOP_SW_CAP_DOWNLOADABLE_DDM 0x00000004
1179 #define I2O_EXEC_IOP_SW_CAP_INSTALLABLE_DDM 0x00000008
1181 typedef struct _I2O_EXEC_IOP_SW_ATTRIBUTES_SCALAR {
1186 } I2O_EXEC_IOP_SW_ATTRIBUTES_SCALAR, *PI2O_EXEC_IOP_SW_ATTRIBUTES_SCALAR;
1189 /* EXEC Group 0100h - Hardware Resource Table Parameter Group */
1191 typedef struct _I2O_EXEC_HARDWARE_RESOURCE_TABLE {
1193 U16 StateInfo; /* AdapterState plus Local TID */
1196 U64 PhysicalLocation;
1199 } I2O_EXEC_HARDWARE_RESOURCE_TABLE, *PI2O_EXEC_HARDWARE_RESOURCE_TABLE;
1201 /* EXEC Group 0101h - Logical Configuration Table Scalar Parameter Group */
1203 typedef struct _I2O_EXEC_LCT_SCALAR {
1206 U32 CurrentChangeIndicator;
1207 } I2O_EXEC_LCT_SCALAR, *PI2O_EXEC_LCT_SCALAR;
1209 /* EXEC Group 0102h - Logical Configuration Table Parameter Group */
1211 typedef struct _I2O_EXEC_LCT_TABLE {
1216 U32 ChangeIndicator;
1220 U8 IdentityTag[I2O_IDENTITY_TAG_SZ];
1221 U32 EventCapabilities;
1223 } I2O_EXEC_LCT_TABLE, *PI2O_EXEC_LCT_TABLE;
1225 /* EXEC Group 0103h - System Table Parameter Group */
1227 #define I2O_MESSENGER_TYPE_MEMORY_MAPPED_MESSAGE_UNIT 0x0
1229 typedef struct _I2O_EXEC_SYSTEM_TABLE {
1237 U32 InboundMessagePortAddress;
1238 U16 InboundMessageFrameSize;
1239 U32 IopCapabilities;
1240 I2O_MESSENGER_INFO MessengerInfo;
1241 } I2O_EXEC_SYSTEM_TABLE, *PI2O_EXEC_SYSTEM_TABLE;
1244 /* EXEC Group 0104h - External Connection Table Parameter Group */
1246 #define I2O_EXEC_XCT_FLAGS_REMOTE_IOP_CREATED_CONNECTION 0x00
1247 #define I2O_EXEC_XCT_FLAGS_THIS_IOP_CREATED_CONNECTION 0x01
1249 typedef struct _I2O_EXEC_EXTERNAL_CONNECTION_TABLE {
1256 } I2O_EXEC_EXTERNAL_CONNECTION_TABLE, *PI2O_EXEC_EXTERNAL_CONNECTION_TABLE;
1259 /****************************************************************************/
1265 #endif /* I2O_EXECUTIVE_HDR */