summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/i2o/i2oexec.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys/i2o/i2oexec.h')
-rw-r--r--usr/src/uts/common/sys/i2o/i2oexec.h2478
1 files changed, 0 insertions, 2478 deletions
diff --git a/usr/src/uts/common/sys/i2o/i2oexec.h b/usr/src/uts/common/sys/i2o/i2oexec.h
deleted file mode 100644
index 9dfb92dba2..0000000000
--- a/usr/src/uts/common/sys/i2o/i2oexec.h
+++ /dev/null
@@ -1,2478 +0,0 @@
-/*
- * *****************************************************************************
- *
- * All software on this website is made available under the following terms and
- * conditions. By downloading this software, you agree to abide by these terms
- * and conditions with respect to this software.
- *
- * I2O SIG All rights reserved.
- *
- * These header files are provided, pursuant to your I2O SIG membership
- * agreement, free of charge on an as-is basis without warranty of any kind,
- * either express or implied, including but not limited to, implied warranties
- * or merchantability and fitness for a particular purpose. I2O SIG does not
- * warrant that this program will meet the user's requirements or that the
- * operation of these programs will be uninterrupted or error-free.
- * Acceptance and use of this program constitutes the user's understanding
- * that he will have no recourse to I2O SIG for any actual or consequential
- * damages including, but not limited to, loss profits arising out of use
- * or inability to use this program.
- *
- * Member is permitted to create derivative works to this header-file program.
- * However, all copies of the program and its derivative works must contain the
- * I2O SIG copyright notice.
- *
- * *****************************************************************************
- */
-
-/*
- * ********************************************************************
- * I2OExec.h -- I2O Executive Class Message definition file
- *
- * This file contains information presented in Chapter 4 of the I2O(tm)
- * Specification.
- * ********************************************************************
- */
-
-/*
- * Copyright (c) 1998 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-#ifndef _SYS_I2OEXEC_H
-#define _SYS_I2OEXEC_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/i2o/i2omsg.h> /* the Base Message file */
-#include <sys/i2o/i2outil.h>
-#include <sys/types.h>
-
-
-#define I2OEXEC_REV 1_5_4 /* I2OExec header file revision string */
-
-
-/*
- * ****************************************************************************
- * NOTES:
- *
- * Gets, reads, receives, etc. are all even numbered functions.
- * Sets, writes, sends, etc. are all odd numbered functions.
- * Functions that both send and receive data can be either but an attempt
- * is made to use the function number that indicates the greater transfer
- * amount. Functions that do not send or receive data use odd function
- * numbers.
- *
- * Some functions are synonyms like read, receive and send, write.
- *
- * All common functions will have a code of less than 0x80.
- * Unique functions to a class will start at 0x80.
- * Executive Functions start at 0xA0.
- *
- * Utility Message function codes range from 0 - 0x1f
- * Base Message function codes range from 0x20 - 0xfe
- * Private Message function code is 0xff.
- * *****************************************************************************
- */
-
-/* I2O Executive Function Codes. */
-
-#define I2O_EXEC_ADAPTER_ASSIGN 0xB3
-#define I2O_EXEC_ADAPTER_READ 0xB2
-#define I2O_EXEC_ADAPTER_RELEASE 0xB5
-#define I2O_EXEC_BIOS_INFO_SET 0xA5
-#define I2O_EXEC_BOOT_DEVICE_SET 0xA7
-#define I2O_EXEC_CONFIG_VALIDATE 0xBB
-#define I2O_EXEC_CONN_SETUP 0xCA
-#define I2O_EXEC_DDM_DESTROY 0xB1
-#define I2O_EXEC_DDM_ENABLE 0xD5
-#define I2O_EXEC_DDM_QUIESCE 0xC7
-#define I2O_EXEC_DDM_RESET 0xD9
-#define I2O_EXEC_DDM_SUSPEND 0xAF
-#define I2O_EXEC_DEVICE_ASSIGN 0xB7
-#define I2O_EXEC_DEVICE_RELEASE 0xB9
-#define I2O_EXEC_HRT_GET 0xA8
-#define I2O_EXEC_IOP_CLEAR 0xBE
-#define I2O_EXEC_IOP_CONNECT 0xC9
-#define I2O_EXEC_IOP_RESET 0xBD
-#define I2O_EXEC_LCT_NOTIFY 0xA2
-#define I2O_EXEC_OUTBOUND_INIT 0xA1
-#define I2O_EXEC_PATH_ENABLE 0xD3
-#define I2O_EXEC_PATH_QUIESCE 0xC5
-#define I2O_EXEC_PATH_RESET 0xD7
-#define I2O_EXEC_STATIC_MF_CREATE 0xDD
-#define I2O_EXEC_STATIC_MF_RELEASE 0xDF
-#define I2O_EXEC_STATUS_GET 0xA0
-#define I2O_EXEC_SW_DOWNLOAD 0xA9
-#define I2O_EXEC_SW_UPLOAD 0xAB
-#define I2O_EXEC_SW_REMOVE 0xAD
-#define I2O_EXEC_SYS_ENABLE 0xD1
-#define I2O_EXEC_SYS_MODIFY 0xC1
-#define I2O_EXEC_SYS_QUIESCE 0xC3
-#define I2O_EXEC_SYS_TAB_SET 0xA3
-
-
-/* I2O Get Status State values */
-
-#define I2O_IOP_STATE_INITIALIZING 0x01
-#define I2O_IOP_STATE_RESET 0x02
-#define I2O_IOP_STATE_HOLD 0x04
-#define I2O_IOP_STATE_READY 0x05
-#define I2O_IOP_STATE_OPERATIONAL 0x08
-#define I2O_IOP_STATE_FAILED 0x10
-#define I2O_IOP_STATE_FAULTED 0x11
-
-
-/* Event Indicator Assignments for the Executive Class. */
-
-#define I2O_EVENT_IND_RESOURCE_LIMIT 0x00000001
-#define I2O_EVENT_IND_CONNECTION_FAIL 0x00000002
-#define I2O_EVENT_IND_ADAPTER_FAULT 0x00000004
-#define I2O_EVENT_IND_POWER_FAIL 0x00000008
-#define I2O_EVENT_IND_RESET_PENDING 0x00000010
-#define I2O_EVENT_IND_RESET_IMMINENT 0x00000020
-#define I2O_EVENT_IND_HARDWARE_FAIL 0x00000040
-#define I2O_EVENT_IND_XCT_CHANGE 0x00000080
-#define I2O_EVENT_IND_NEW_LCT_ENTRY 0x00000100
-#define I2O_EVENT_IND_MODIFIED_LCT 0x00000200
-#define I2O_EVENT_IND_DDM_AVAILABILITY 0x00000400
-
-/* Resource Limit Event Data */
-
-#define I2O_EVENT_RESOURCE_LIMIT_LOW_MEMORY 0x00000001
-#define I2O_EVENT_RESOURCE_LIMIT_INBOUND_POOL_LOW 0x00000002
-#define I2O_EVENT_RESOURCE_LIMIT_OUTBOUND_POOL_LOW 0x00000004
-
-/* Connection Fail Event Data */
-
-#define I2O_EVENT_CONNECTION_FAIL_REPOND_NORMAL 0x00000000
-#define I2O_EVENT_CONNECTION_FAIL_NOT_REPONDING 0x00000001
-#define I2O_EVENT_CONNECTION_FAIL_NO_AVAILABLE_FRAMES 0x00000002
-
-/* Reset Pending Event Data */
-
-#define I2O_EVENT_RESET_PENDING_POWER_LOSS 0x00000001
-#define I2O_EVENT_RESET_PENDING_CODE_VIOLATION 0x00000002
-
-/* Reset Imminent Event Data */
-
-#define I2O_EVENT_RESET_IMMINENT_UNKNOWN_CAUSE 0x00000000
-#define I2O_EVENT_RESET_IMMINENT_POWER_LOSS 0x00000001
-#define I2O_EVENT_RESET_IMMINENT_CODE_VIOLATION 0x00000002
-#define I2O_EVENT_RESET_IMMINENT_PARITY_ERROR 0x00000003
-#define I2O_EVENT_RESET_IMMINENT_CODE_EXCEPTION 0x00000004
-#define I2O_EVENT_RESET_IMMINENT_WATCHDOG_TIMEOUT 0x00000005
-
-/* Hardware Fail Event Data */
-
-#define I2O_EVENT_HARDWARE_FAIL_UNKNOWN_CAUSE 0x00000000
-#define I2O_EVENT_HARDWARE_FAIL_CPU_FAILURE 0x00000001
-#define I2O_EVENT_HARDWARE_FAIL_MEMORY_FAULT 0x00000002
-#define I2O_EVENT_HARDWARE_FAIL_DMA_FAILURE 0x00000003
-#define I2O_EVENT_HARDWARE_FAIL_IO_BUS_FAILURE 0x00000004
-
-/* DDM Availability Event Data */
-
-#define I2O_EVENT_DDM_AVAILIBILITY_RESPOND_NORMAL 0x00000000
-#define I2O_EVENT_DDM_AVAILIBILITY_CONGESTED 0x00000001
-#define I2O_EVENT_DDM_AVAILIBILITY_NOT_RESPONDING 0x00000002
-#define I2O_EVENT_DDM_AVAILIBILITY_PROTECTION_VIOLATION 0x00000003
-#define I2O_EVENT_DDM_AVAILIBILITY_CODE_VIOLATION 0x00000004
-
-
-#define I2O_OPERATION_FLAG_ASSIGN_PERMANENT 0x01
-
-/* ExecAdapterAssign Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_adapter_assign_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DdmTID:12;
- uint32_t reserved:12;
- uint32_t OperationFlags:8;
- } s;
- uint32_t w;
- } u1;
- i2o_hrt_entry_t HRTEntry;
-} i2o_exec_adappter_assign_message_t;
-
-/* macros to access the bit fields in exec adapter assign message */
-
-#define get_i2o_exec_adapter_DdmTID(mp, hdl) \
- (mp)->u1.s.DdmTID
-#define put_i2o_exec_adapter_DdmTID(mp, id, hdl) \
- ((mp)->u1.s.DdmTID = (id))
-#define get_i2o_exec_adapter_OperationFlags(mp, hdl) \
- (mp)->u1.s.OperationFlags
-#define put_i2o_exec_adapter_OperationFlags(mp, n, hdl) \
- ((mp)->u1.s.OperationFlags = (n))
-
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_adapter_assign_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t OperationFlags:8;
- uint32_t reserved:12;
- uint32_t DdmTID:12;
- } s;
- uint32_t w;
- } u1;
- i2o_hrt_entry_t HRTEntry;
-} i2o_exec_adappter_assign_message_t;
-
-/* macros to access the bit fields in exec adapter assign message */
-
-
-#define get_i2o_exec_adapter_OperationFlags(mp, hdl) \
- (mp)->u1.s.OperationFlags
-#define put_i2o_exec_adapter_OperatonFlags(mp, n, hdl) \
- ((mp)->u1.s.OperationFlags = (n))
-
-#define get_i2o_exec_adapter_DdmTID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u1.w) & 0xFFF)
-#define put_i2o_exec_adapter_DdmTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, \
- (ddi_get32(hdl, &(mp)->u1.w) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-#define I2O_REQUEST_FLAG_CONFIG_REGISTER 0x00000000
-#define I2O_REQUEST_FLAG_IO_REGISTER 0x00000001
-#define I2O_REQUEST_FLAG_ADAPTER_MEMORY 0x00000002
-
-/* ExecAdapterRead Function Message Frame structure. */
-
-typedef struct i2o_exec_adapter_read_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t AdapterID;
- uint32_t RequestFlags;
- uint32_t Offset;
- uint32_t Length;
- i2o_sg_element_t SGL;
-} i2o_exec_adapter_read_message_t;
-
-
-#define I2O_OPERATION_FLAG_RELEASE_PERMANENT 0x01
-
-/* ExecAdapterRelease Function Message Frame structure. */
-
-typedef struct i2o_exec_dapater_release_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t reserved[3];
- uint8_t OperationFlags;
- i2o_hrt_entry_t HRTEntry;
-} i2o_exec_adapter_release_message_t;
-
-
-
-/* ExecBiosInfoSet Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_bios_info_set_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DeviceTID:12;
- uint32_t reserved:12;
- uint32_t BiosInfo:8;
- } s;
- uint32_t w;
- } u1;
-} i2o_exec_bios_info_set_message_t;
-
-/* macros to access the bit fields in exec bios info set message structure */
-
-#define get_i2o_exec_bios_DeviceTID(mp, hdl) \
- (mp)->u1.s.DeviceTID
-#define put_i2o_exec_bios_DeviceTID(mp, id, hdl) \
- ((mp)->u1.s.DeviceTID = (id))
-#define get_i2o_exec_BiosInfo(mp, hdl) \
- (mp)->u1.s.BiosInfo
-#define put_i2o_exec_BiosInfo(mp, n, hdl) \
- ((mp)->u1.s.BiosInfo = (id))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_bios_info_set_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t BiosInfo:8;
- uint32_t reserved:12;
- uint32_t DeviceTID:12;
- } s;
- uint32_t w;
- } u1;
-} i2o_exec_bios_info_set_message_t;
-
-/* macros to access the bit fields in exec bios info set message structure */
-
-#define get_i2o_exec_BiosInfo(mp, hdl) \
- (mp)->u1.s.BiosInfo
-#define put_i2o_exec_BiosInfo(mp, n, hdl) \
- ((mp)->u1.s.BiosInfo = (n))
-
-#define get_i2o_exec_bios_DeviceID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u1.w) & 0xFFF)
-#define put_i2o_exec_bios_DeviceID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, \
- (ddi_get32(hdl, &(mp)->u1.w) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-/* ExecBootDeviceSet Function Message Frame structure. */
-
-typedef struct i2o_exec_boot_device_set_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t BootDevice:12;
- uint32_t reserved:20;
- } s;
- uint32_t w;
- } u1;
-} i2o_exec_boot_device_set_message_t;
-
-/* macros to access the bit fields in exec boot set message structure */
-
-#define get_i2o_exec_boot_BootDevice(mp, hdl) \
- (mp)->u1.s.BootDevice
-#define put_i2o_exec_boot_BootDevice(mp, id, hdl) \
- ((mp)->u1.s.BootDevice = (id))
-
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_boot_device_set_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t reserved:20;
- uint32_t BootDevice:12;
- } s;
- uint32_t w;
- } u1;
-} i2o_exec_boot_device_set_message_t;
-
-#define get_i2o_exec_boot_BootDevice(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u1.w) & 0xFFF)
-#define put_i2o_exec_boot_BootDevice(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, \
- (ddi_get32(hdl, &(mp)->u1.w) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecConfigValidate Function Message Frame structure. */
-
-typedef struct i2o_exec_config_validate_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_exec_config_validate_message_t;
-
-
-
-/* ExecConnSetup Requestor */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_alias_connect_setup {
- union {
- struct {
- uint32_t IOP1AliasForTargetDevice:12;
- uint32_t IOP2AliasForInitiatorDevice:12;
- uint32_t reserved:8;
- } s;
- uint32_t w;
- } u1;
-} i2o_alias_connect_setup_t;
-
-/* macros to access the bit fields in alias connect setup structure */
-
-#define get_i2o_exec_setup_IOP1AliasForTargetDevice(mp, hdl) \
- (mp)->u1.s.IOP1AliasForTargetDevice
-#define put_i2o_exec_setup_IOP1AliasForTargetDevice(mp, id, hdl) \
- ((mp)->u1.s.IOP1AliasForTargetDevice = (id))
-#define get_i2o_exec_setup_IOP2AliasForInitiatorDevice(mp, hdl) \
- (mp)->u1.s.IOP2AliasForInitiatorDevice
-#define put_i2o_exec_setup_IOP2AliasForInitiatortDevice(mp, n, hdl) \
- ((mp)->u1.s.IOP2AliasForInitiatortDevice = (id))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_alias_connect_setup {
- union {
- struct {
- uint32_t reserved:8;
- uint32_t IOP2AliasForInitiatorDevice:12;
- uint32_t IOP1AliasForTargetDevice:12;
- } s;
- uint32_t w;
- } u1;
-} i2o_alias_connect_setup_t;
-
-/* macros to access the bit fields in alias connect setup structure */
-
-#define get_i2o_exec_setup_IOP2ForInitiatorDevice(mp, hdl) \
- ((ddi_get32(hdl, &(mp)->u1.w) >> 12) & 0xFFF)
-#define put_i2o_exec_setup_IOP2ForInitiatorDevice(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, (ddi_get32(hdl, &(mp)->u.w) & \
- ~0xFFF000) | (((id) & 0xFFF) << 12))
-
-#define get_i2o_exec_setup_IOP1AliasForTargetDevice(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u1.w) & 0xFFF)
-#define put_i2o_exec_setup_IOP1AliasForTargetDevice(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, \
- (ddi_get32(hdl, &(mp)->u1.w) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-#define I2O_OPERATION_FLAG_PEER_TO_PEER_BIDIRECTIONAL 0x01
-
-/* ExecConnSetup Object */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_object_connect_setup {
- union {
- struct {
- uint32_t TargetDevice:12;
- uint32_t InitiatorDevice:12;
- uint32_t OperationFlags:8;
- } s;
- uint32_t w;
- } u1;
-} i2o_object_connect_setup_t;
-
-/* macros to access the bit fields in object connect setup structure */
-
-#define get_i2o_exec_setup_TargetDevice(mp, hdl) \
- (mp)->u1.s.TargetDevice
-#define put_i2o_exec_setup_TargetDevice(mp, id, hdl) \
- ((mp)->u1.s.TargetDevice = (id))
-#define get_i2o_exec_setup_InitiatorDevice(mp, hdl) \
- (mp)->u1.s.InitiatorDevice
-#define put_i2o_exec_setup_InitiatorDevice(mp, n, hdl) \
- ((mp)->u1.s.InitiatorDevice = (id))
-#define get_i2o_exec_setup_OperationFlags(mp, hdl) \
- (mp)->u1.s.OpetationFlags
-#define put_i2o_exec_setup_OperationFlags(mp, id, hdl) \
- ((mp)->u1.s.OperationFlags = (id))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_object_connect_setup {
- union {
- struct {
- uint32_t OperationFlags:8;
- uint32_t InitiatorDevice:12;
- uint32_t TargetDevice:12;
- } s;
- uint32_t w;
- } u1;
-} i2o_object_connect_setup_t;
-
-/* macros to access the bit fields in object connect setup structure */
-
-#define get_i2o_exec_setup_OperationFlags(mp, hdl) \
- (mp)->u1.s.OperationFlags
-#define put_i2o_exec_setup_OperationFlags(mp, n, hdl) \
- ((mp)->u1.s.OperationFlags = (n))
-
-#define get_i2o_exec_setup_InitiatorDevice(mp, hdl) \
- ((ddi_get32(hdl, &(mp)->u1.w) >> 12) & 0xFFF)
-#define put_i2o_exec_setup_InitiatorDevice(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, (ddi_get32(hdl, &(mp)->u.w) & \
- ~0xFFF000) | (((id) & 0xFFF) << 12))
-
-#define get_i2o_exec_setup_TargetDevice(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u1.w) & 0xFFF)
-#define put_i2o_exec_setup_TargetDevice(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, \
- (ddi_get32(hdl, &(mp)->u1.w) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecConnSetup Function Message Frame structure. */
-
-typedef struct i2o_exec_conn_setup_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_object_connect_setup_t ObjectInfo;
- i2o_alias_connect_setup_t AliasInfo;
- uint16_t IOP2InboundMFrameSize;
- uint16_t reserved;
- uint32_t MessageClass;
-} i2o_exec_conn_setup_message_t;
-
-
-/* ExecConnSetup Object Reply */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_object_connect_reply {
- union {
- struct {
- uint32_t TargetDevice:12;
- uint32_t InitiatorDevice:12;
- uint32_t ReplyStatusCode:8;
- } s;
- uint32_t w;
- } u1;
-} i2o_object_connect_reply_t;
-
-/* macros to access the bit fields in object connect reply structure */
-
-#define get_connect_reply_TargetDevice(mp, hdl) \
- (mp)->u1.s.TargetDevice
-#define get_connect_reply_InitiatorDevice(mp, hdl) \
- (mp)->u1.s.InitiatorDevice
-#define get_connect_reply_RepluStatus(mp, hdl) \
- (mp)->u1.s.ReplyStatusCode
-
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_object_connect_reply {
- union {
- struct {
- uint32_t ReplyStatusCode:8;
- uint32_t InitiatorDevice:12;
- uint32_t TargetDevice:12;
- } s;
- uint32_t w;
- } u1;
-} i2o_object_connect_reply_t;
-
-/* macros to access the bit fields in object connect reply structure */
-
-#define get_connect_reply_ReplyStatusCode(mp, hdl) \
- (mp)->u1.s.ReplyStatusCode
-
-#define get_connect_reply_InitiatorDevice(mp, hdl) \
- ((ddi_get32(hdl, &(mp)->u1.w) >> 12) & 0xFFF)
-
-#define get_connect_reply_TargetDevice(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u1.w) & 0xFFF)
-
-#endif
-
-
-/* ExecConnSetup reply structure. */
-
-typedef struct i2o_exec_conn_setup_reply {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_object_connect_reply_t ObjectInfo;
- i2o_alias_connect_setup_t AliasInfo;
- uint16_t IOP2InboundMFrameSize;
- uint16_t reserved;
-} i2o_exec_conn_setup_reply_t;
-
-
-/* ExecDdmDestroy Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_ddm_destroy_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DdmTID:12;
- uint32_t reserved:20;
- } s;
- uint32_t w;
- } u1;
-} i2o_exec_ddm_destroy_message_t;
-
-/* macros to access the bit fields in exec ddm destroy message structure */
-
-#define get_i2o_exec_ddm_destroy_DdmTID(mp, hdl) \
- (mp)->u1.s.DdmTID
-#define put_i2o_exec_ddm_destroy_DdmTID(mp, id, hdl) \
- ((mp)->u1.s.DdmTID = (id))
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_ddm_destroy_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t reserved:20;
- uint32_t DdmTID:12;
- } s;
- uint32_t w;
- } u1;
-} i2o_exec_ddm_destroy_message_t;
-
-/* macros to access the bit fields in exec ddm destroy message structure */
-
-#define get_i2o_exec_ddm_destroy_DdmTID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u1.w) & 0xFFF)
-#define put_i2o_exec_ddm_destroy_DdmTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, \
- (ddi_get32(hdl, &(mp)->u1.w) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecDdmEnable Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_ddm_enable_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DeviceTID:12;
- uint32_t reserved1:20;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_ddm_enable_message_t;
-
-/* macros to access the bit fields in exec ddm enable message structure */
-
-#define get_i2o_exec_ddm_enable_DeviceTID(mp, hdl) \
- (mp)->u2.s2.DeviceTID
-#define put_i2o_exec_ddm_enable_DeviceTID(mp, id, hdl) \
- ((mp)->u2.s2.DeviceTID = (id))
-
-#define get_i2o_exec_ddm_enable_IOP_ID(mp, hdl) \
- (mp)->u3.s3.IOP_ID
-#define put_i2o_exec_ddm_enable_IOP_ID(mp, id, hdl) \
- ((mp)->u3.s3.IOP_ID = (id))
-
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_ddm_enable_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t reserved1:20;
- uint32_t DeviceTID:12;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_ddm_enable_message_t;
-
-/* macros to access the bit fields in exec ddm enable message structure */
-
-#define get_i2o_exec_ddm_enable_DeviceTID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-#define put_i2o_exec_ddm_enable_DeviceTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_ddm_enable_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h1) & 0xFFF)
-
-#define put_i2o_exec_ddm_enable_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u3.h1, \
- (ddi_get16(hdl, &(mp)->u3.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-/* ExecDdmQuiesce Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_ddm_quiesce_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DeviceTID:12;
- uint32_t reserved1:20;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_ddm_quiesce_message_t;
-
-/* macros to access the bit fields in exec ddm quiesce message structure */
-
-#define get_i2o_exec_ddm_quiesce_DeviceTID(mp, hdl) \
- (mp)->u2.s2.DeviceTID
-#define put_i2o_exec_ddm_quiesce_DeviceTID(mp, id, hdl) \
- ((mp)->u2.s2.DeviceTID = (id))
-
-#define get_i2o_exec_ddm_quiesce_IOP_ID(mp, hdl) \
- (mp)->u3.s3.IOP_ID
-#define put_i2o_exec_ddm_quiesce_IOP_ID(mp, id, hdl) \
- ((mp)->u3.s3.IOP_ID = (id))
-
-#endif
-
-
-/* ExecDdmQuiesce Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_ddm_quiesce_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t reserved1:20;
- uint32_t DeviceTID:12;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_ddm_quiesce_message_t;
-
-/* macros to access the bit fields in exec ddm quiesce message structure */
-
-#define get_i2o_exec_ddm_quiesce_DeviceTID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-#define put_i2o_exec_ddm_quiesce_DeviceTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_ddm_quiesce_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h1) & 0xFFF)
-
-#define put_i2o_exec_ddm_quiesce_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u3.h1, \
- (ddi_get16(hdl, &(mp)->u3.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecDdmReset Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_ddm_reset_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DeviceTID:12;
- uint32_t reserved1:20;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_ddm_reset_message_t;
-
-/* macros to access the bit fields in exec ddm reset message structure */
-
-#define get_i2o_exec_ddm_reset_DeviceTID(mp, hdl) \
- (mp)->u2.s2.DeviceTID
-#define put_i2o_exec_ddm_reset_DeviceTID(mp, id, hdl) \
- ((mp)->u2.s2.DeviceTID = (id))
-
-#define get_i2o_exec_ddm_reset_IOP_ID(mp, hdl) \
- (mp)->u3.s3.IOP_ID
-#define put_i2o_exec_ddm_resetquiesce_IOP_ID(mp, id, hdl) \
- ((mp)->u3.s3.IOP_ID = (id))
-
-#endif
-
-
-/* ExecDdmReset Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_ddm_reset_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t reserved1:20;
- uint32_t DeviceTID:12;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_ddm_reset_message_t;
-
-/* macros to access the bit fields in exec ddm reset message structure */
-
-#define get_i2o_exec_ddm_reset_DeviceTID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-#define put_i2o_exec_ddm_reset_DeviceTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_ddm_reset_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h1) & 0xFFF)
-
-#define put_i2o_exec_ddm_reset_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u3.h1, \
- (ddi_get16(hdl, &(mp)->u3.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecDdmSuspend Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_ddm_suspend_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DdmTID:12;
- uint32_t reserved:20;
- } s;
- uint32_t w;
- } u1;
-} i2o_exec_ddm_suspend_message_t;
-
-/* macros to access the bit fields in exec ddm suspend message structure */
-
-#define get_i2o_exec_ddm_suspend_DdmTID(mp, hdl) \
- (mp)->u1.s.DdmTID
-#define put_i2o_exec_ddm_suspend_DdmTID(mp, id, hdl) \
- ((mp)->u1.s.DdmTID = (id))
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_ddm_suspend_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t reserved:20;
- uint32_t DdmTID:12;
- } s;
- uint32_t w;
- } u1;
-} i2o_exec_ddm_suspend_message_t;
-
-/* macros to access the bit fields in exec ddm suspend message structure */
-
-#define get_i2o_exec_ddm_suspend_DdmTID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u1.w) & 0xFFF)
-#define put_i2o_exec_ddm_suspend_DdmTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u1.w, \
- (ddi_get32(hdl, &(mp)->u1.w) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-#define I2O_OPERATION_FLAG_ASSIGN_PERMANENT 0x01
-
-
-/* ExecDeviceAssign Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_device_assign_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DeviceTID:12;
- uint32_t DdmTID:12;
- uint32_t OperationFlags:8;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_device_assign_message_t;
-
-
-/* macros to access the bit fields in device assign message structure */
-
-#define get_i2o_exec_device_assign_DeviceTID(mp, hdl) \
- (mp)->u2.s2.DeviceTID
-#define put_i2o_exec_device_assign_DeviceTID(mp, id, hdl) \
- ((mp)->u2.s2.DeviceTID = (id))
-#define get_i2o_exec_device_assign_DdmTID(mp, hdl) \
- (mp)->u2.s2.DdmTID
-#define put_i2o_exec_device_assign_DdmTID(mp, n, hdl) \
- ((mp)->u2.s2.DdmTID = (id))
-#define get_i2o_exec_device_assign_OperationFlags(mp, hdl) \
- (mp)->u2.s2.OpetationFlags
-#define put_i2o_exec_device_assign_OperationFlags(mp, id, hdl) \
- ((mp)->u2.s2.OperationFlags = (id))
-
-#define get_i2o_exec_device_assign_IOP_ID(mp, hdl) \
- (mp)->u3.s3.IOP_ID
-#define put_i2o_exec_device_assign_IOP_ID(mp, id, hdl) \
- ((mp)->u3.s3.IOP_ID = (id))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-
-typedef struct i2o_exec_device_assign_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t OperationFlags:8;
- uint32_t DdmTID:12;
- uint32_t DeviceTID:12;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_device_assign_message_t;
-
-/* macros to access the bit fields in device assign message structure */
-
-#define get_i2o_exec_device_assign_OperationFlags(mp, hdl) \
- (mp)->u2.s2.OperationFlags
-#define put_i2o_exec_device_assign_OperationFlags(mp, n, hdl) \
- ((mp)->u2.s2.OperationFlags = (n))
-
-#define get_i2o_exec_device_assign_DdmTID(mp, hdl) \
- ((ddi_get32(hdl, &(mp)->u2.w2) >> 12) & 0xFFF)
-#define put_i2o_exec_device_assign_DdmTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, (ddi_get32(hdl, &(mp)->u2.w2) & \
- ~0xFFF000) | (((id) & 0xFFF) << 12))
-
-#define get_i2o_exec_device_assign_DeviceTID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-#define put_i2o_exec_device_assign_DeviceTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_device_assign_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h1) & 0xFFF)
-#define put_i2o_exec_device_assign_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u3.h1, \
- (ddi_get16(hdl, &(mp)->u3.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-#define I2O_OPERATION_FLAG_RELEASE_PERMANENT 0x01
-
-/* ExecDeviceRelease Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_device_release_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t DeviceTID:12;
- uint32_t DdmTID:12;
- uint32_t OperationFlags:8;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_device_release_message_t;
-
-
-/* macros to access the bit fields in device release message structure */
-
-#define get_i2o_exec_device_release_DeviceTID(mp, hdl) \
- (mp)->u2.s2.DeviceTID
-#define put_i2o_exec_device_release_DeviceTID(mp, id, hdl) \
- ((mp)->u2.s2.DeviceTID = (id))
-#define get_i2o_exec_device_release_DdmTID(mp, hdl) \
- (mp)->u2.s2.DdmTID
-#define put_i2o_exec_device_release_DdmTID(mp, n, hdl) \
- ((mp)->u2.s2.DdmTID = (id))
-#define get_i2o_exec_device_release_OperationFlags(mp, hdl) \
- (mp)->u2.s2.OpetationFlags
-#define put_i2o_exec_device_release_OperationFlags(mp, id, hdl) \
- ((mp)->u2.s2.OperationFlags = (id))
-
-#define get_i2o_exec_device_release_IOP_ID(mp, hdl) \
- (mp)->u3.s3.IOP_ID
-#define put_i2o_exec_device_release_IOP_ID(mp, id, hdl) \
- ((mp)->u3.s3.IOP_ID = (id))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-
-typedef struct i2o_exec_device_release_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t OperationFlags:8;
- uint32_t DdmTID:12;
- uint32_t DeviceTID:12;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s3;
- uint16_t h1;
- } u3;
- uint16_t HostUnitID;
-} i2o_exec_device_release_message_t;
-
-/* macros to access the bit fields in device assign message structure */
-
-
-#define get_i2o_exec_device_release_OperationFlags(mp, hdl) \
- (mp)->u2.s2.OperationFlags
-#define put_i2o_exec_device_release_OperationFlags(mp, n, hdl) \
- ((mp)->u2.s2.OperationFlags = (n))
-
-#define get_i2o_exec_device_release_DdmTID(mp, hdl) \
- ((ddi_get32(hdl, &(mp)->u2.w2) >> 12) & 0xFFF)
-#define put_i2o_exec_device_release_DdmTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, (ddi_get32(hdl, &(mp)->u2.w2) & \
- ~0xFFF000) | (((id) & 0xFFF) << 12))
-
-#define get_i2o_exec_device_release_DeviceTID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-#define put_i2o_exec_device_release_DeviceTID(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_device_release_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h1) & 0xFFF)
-
-#define put_i2o_exec_device_release_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u3.h1, \
- (ddi_get16(hdl, &(mp)->u3.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* HRT Entry Structure defined in I2OMSG.H */
-
-/* ExecHrtGet Function Message Frame structure. */
-
-typedef struct i2o_exec_hrt_get_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_sg_element_t SGL;
-} i2o_exec_hrt_get_message_t;
-
-
-
-/* ExecIopClear Function Message Frame structure. */
-
-typedef struct i2o_exec_iop_clear_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_exec_iop_clear_message_t;
-
-
-/* ExecIopConnect Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_iop_connect_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t reserved:24;
- uint32_t IOP1MsgerType:8;
-
- } s2;
- uint32_t w2;
- } u2;
- uint16_t IOP1InboundMFrameSize;
- union {
- struct {
- uint16_t IOP1AliasForIOP2:12;
- uint16_t reserved1:4;
- } s3;
- uint16_t h2;
- } u3;
- union {
- struct {
- uint16_t IOP_ID1:12;
- uint16_t reserved2:4;
- } s4;
- uint16_t h1;
- } u4;
- uint16_t HostUnitID1;
-} i2o_exec_iop_connect_message_t;
-
-
-/* macros to access the bit fields in exec iop connect message structure */
-
-#define get_i2o_exec_iop_connect_IOP1MsgerType(p, hdl) \
- (mp)->u2.s2.IOP1MsgerType
-
-#define put_i2o_exec_iop_connect_IOP1MsgerType(mp, id, hdl) \
- ((mp)->u2.s2.IOP1MsgerType = (id))
-
-
-#define get_i2o_exec_iop_connect_IOP1AliasForIOP2(p, hdl) \
- (mp)->u3.s3.IOP1AliasForIOP2
-
-#define put_i2o_exec_iop_connect_IOP1AliasForIOP2(mp, id, hdl) \
- ((mp)->u3.s3.IOP1AliasForIOP2 = (id))
-
-#define get_i2o_exec_iop_connect_IOP_ID1(p, hdl) \
- (mp)->u4.s4.IOP_ID1
-
-#define put_i2o_exec_iop_connect_IOP_ID1(mp, id, hdl) \
- ((mp)->u4.s4.IOP_ID1 = (id))
-
-
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_iop_connect_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint32_t IOP1MsgerType:8;
- uint32_t reserved:24;
- } s2;
- uint32_t w2;
- } u2;
-
- uint16_t IOP1InboundMFrameSize;
- union {
- struct {
- uint16_t reserved1:8;
- uint16_t IOP1AliasForIOP2:12;
- } s3;
- uint16_t h2;
- } u3;
- union {
- struct {
- uint16_t reserved2:4;
- uint16_t IOP_ID1:12;
- } s4;
- uint16_t h1;
- } u4;
- uint16_t HostUnitID1;
-} i2o_exec_iop_connect_message_t;
-
-/* macros to access the bit fields in exec iop connect message structure */
-
-#define get_i2o_exec_iop_connect_IOP1MsgerType(p, hdl) \
- ((ddi_get32(hdl, &(p)->u2.w2) >> 24) & 0xFF)
-
-#define put_i2o_exec_iop_connect_IOP1MsgerType(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFF) | (((id) & 0xFF) << 24))
-
-
-#define get_i2o_exec_iop_connect_IOP1AliasForIOP2(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h2) & 0xFFF)
-
-#define put_i2o_exec_iop_connect_IOP1AliasForIOP2(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u3.h2, \
- (ddi_get16(hdl, &(mp)->u3.h2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_iop_connect_IOP_ID1(p, hdl) \
- (ddi_get32(hdl, &(p)->u4.h1) & 0xFFF)
-
-#define put_i2o_exec_iop_connect_IOP_ID1(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u4.h1, \
- (ddi_get16(hdl, &(mp)->u4.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecIopConnect reply structure */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_iop_connect_iop_reply {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t DetailedStatusCode;
- uint8_t reserved;
- uint8_t ReqStatus;
- uint16_t IOP2InboundMFrameSize;
- union {
- struct {
- uint16_t IOP2AliasForIOP1:12;
- uint16_t reserved1:4;
- } s3;
- uint16_t h2;
- } u3;
- union {
- struct {
- uint16_t IOP_ID2:12;
- uint16_t reserved2:4;
- } s4;
- uint16_t w4;
- } u4;
- uint16_t HostUnitID2;
-} i2o_exec_iop_connect_reply_t;
-
-/* macros to access the bit fields in exec iop connect reply structure */
-
-#define get_i2o_exec_iop_connect_reply_IOP2AliasForIOP1(p, hdl) \
- (mp)->u3.s3.IOP2AliasForIOP1
-
-#define put_i2o_exec_iop_connect_reply_IOP2AliasForIOP1(mp, id, hdl) \
- ((mp)->u3.s3.IOP2AliasForIOP1 = (id))
-
-#define get_i2o_exec_iop_connect_reply_IOP_ID2(p, hdl) \
- (mp)->u4.s4.IOP_ID2
-
-#define put_i2o_exec_iop_connect_reply_IOP_ID2(mp, id, hdl) \
- ((mp)->u4.s4.IOP_ID2 = (id))
-
-#endif
-
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_iop_connect_iop_reply {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t DetailedStatusCode;
- uint8_t reserved;
- uint8_t ReqStatus;
- uint16_t IOP2InboundMFrameSize;
- union {
- struct {
- uint16_t reserved1:8;
- uint16_t IOP2AliasForIOP1:12;
- } s3;
- uint16_t h2;
- } u3;
- union {
- struct {
- uint16_t reserved2:4;
- uint16_t IOP_ID2:12;
- } s4;
- uint16_t h1;
- } u4;
- uint16_t HostUnitID2;
-} i2o_exec_iop_connect_reply_t;
-
-/* macros to access the bit fields in exec iop connect reply structure */
-
-#define get_i2o_exec_iop_connect_reply_IOP2AliasForIOP1(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h2) & 0xFFF)
-
-#define put_i2o_exec_iop_connect_reply_IOP2AliasForIOP1(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u3.h2, \
- (ddi_get16(hdl, &(mp)->u3.h2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_iop_connect_reply_IOP_ID2(p, hdl) \
- (ddi_get32(hdl, &(p)->u4.h1) & 0xFFF)
-
-#define put_i2o_exec_iop_connect_reply_IOP_ID2(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u4.h1, \
- (ddi_get16(hdl, &(mp)->u4.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-#define I2O_EXEC_IOP_RESET_RESERVED_SZ 16
-
-#define I2O_EXEC_IOP_RESET_IN_PROGRESS 0x01
-#define I2O_EXEC_IOP_RESET_REJECTED 0x02
-
-#define I2O_EXEC_IOP_RESET_STATUS_RESERVED_SZ 3
-
-typedef struct i2o_exec_iop_reset_status {
- volatile uint8_t ResetStatus;
- uint8_t reserved[I2O_EXEC_IOP_RESET_STATUS_RESERVED_SZ];
-} i2o_exec_iop_reset_status_t;
-
-
-/* ExecIopReset Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_iop_reset_message {
- uint8_t VersionOffset;
- uint8_t MsgFlags;
- uint16_t MessageSize;
- union {
- struct {
- uint32_t TargetAddress:12;
- uint32_t InitiatorAddress:12;
- uint32_t Function:8;
- } s2;
- uint32_t w2;
- } u2;
- uint8_t Reserved[I2O_EXEC_IOP_RESET_RESERVED_SZ];
- uint32_t StatusWordLowAddress;
- uint32_t StatusWordHighAddress;
-} i2o_exec_iop_reset_message_t;
-
-/* macros to access the bit fields in iop reset message */
-
-#define get_i2o_exec_reset_TargetAddress(mp, hdl) \
- (mp)->u2.s2.TargetAddress
-#define put_i2o_exec_reset_TargetAddress(mp, id, hdl) \
- ((mp)->u2.s2.TargetAddress = (id))
-#define get_i2o_exec_reset_InitiatorAddress(mp, hdl) \
- (mp)->u2.s2.InitiatorAddress
-#define put_i2o_exec_reset_InitiatorAddress(mp, id, hdl) \
- ((mp)->u2.s2.InitiatorAddress = (id))
-#define get_i2o_exec_reset_Function(mp, hdl) \
- (mp)->u2.s2.Function
-#define put_i2o_exec_reset_Function(mp, n, hdl) \
- ((mp)->u2.s2.Function = (n))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_iop_reset_message {
- uint8_t VersionOffset;
- uint8_t MsgFlags;
- uint16_t MessageSize;
- union {
- struct {
- uint32_t Function:8;
- uint32_t InitiatorAddress:12;
- uint32_t TargetAddress:12;
- } s2;
- uint32_t w2;
- } u2;
-
- uint8_t Reserved[I2O_EXEC_IOP_RESET_RESERVED_SZ];
- uint32_t StatusWordLowAddress;
- uint32_t StatusWordHighAddress;
-} i2o_exec_iop_reset_message_t;
-
-/* macros to access the bit fields in iop reset message */
-
-#define get_i2o_exec_reset_Function(mp, hdl) \
- (mp)->u2.s2.Function
-#define put_i2o_exec_reset_Function(mp, n, hdl) \
- ((mp)->u2.s2.Function = (n))
-
-#define get_i2o_exec_reset_TargetAddress(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-#define put_i2o_exec_reset_TargetAddress(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_reset_InitiatorAddress(mp, hdl) \
- ((ddi_get32(hdl, &(mp)->u2.w2) >> 12) & 0xFFF)
-#define put_i2o_exec_reset_InitiatorAddress(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, (ddi_get32(hdl, &(mp)->u2.w2) & \
- ~0xFFF000) | (((id) & 0xFFF) << 12))
-
-#endif
-
-
-/* LCT Entry Structure defined in I2OMSG.H */
-
-/* ExecLCTNotify Function Message Frame structure. */
-
-typedef struct i2o_exec_lct_notify_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t ClassIdentifier;
- uint32_t LastReportedChangeIndicator;
- i2o_sg_element_t SGL;
-} i2o_exec_lct_notify_message_t;
-
-
-/* ExecOutboundInit Function Message Frame structure. */
-
-typedef struct i2o_exec_outbound_init_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t HostPageFrameSize;
- uint8_t InitCode;
- uint8_t reserved;
- uint16_t OutboundMFrameSize;
- i2o_sg_element_t SGL;
-} i2o_exec_outbound_init_message_t;
-
-
-#define I2O_EXEC_OUTBOUND_INIT_IN_PROGRESS 0x01
-#define I2O_EXEC_OUTBOUND_INIT_REJECTED 0x02
-#define I2O_EXEC_OUTBOUND_INIT_FAILED 0x03
-#define I2O_EXEC_OUTBOUND_INIT_COMPLETE 0x04
-
-#define I2O_EXEC_OUTBOUND_INIT_RESERVED_SZ 3
-
-
-typedef struct i2o_exec_outbound_init_status {
- uint8_t InitStatus;
- uint8_t reserved[I2O_EXEC_OUTBOUND_INIT_RESERVED_SZ];
-} i2o_exec_outbound_init_status_t;
-
-
-typedef struct i2o_exec_outbound_init_reclaim_list {
- uint32_t MFACount;
- uint32_t MFAReleaseCount;
- uint32_t MFAAddress[1];
-} i2o_exec_outbound_init_reclaim_list_t;
-
-
-/* ExecPathEnable Function Message Frame structure. */
-
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_path_enable_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
-} i2o_exec_path_enable_message_t;
-
-/* macros to access the bit fields in exec path enable message structure */
-
-#define get_i2o_exec_path_enable_IOP_ID(mp, hdl) \
- (mp)->u2.s2.IOP_ID
-#define put_i2o_exec_path_enable_IOP_ID(mp, id, hdl) \
- ((mp)->u2.s2.IOP_ID = (id))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_path_enable_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
-} i2o_exec_path_enable_message_t;
-
-/* macros to access the bit fields in exec path enable message structure */
-
-#define get_i2o_exec_path_enable_IOP_ID(p, hdl) \
- (ddi_get32(hdl, &(p)->u2.h1) & 0xFFF)
-
-#define put_i2o_exec_path_enable_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u2.h1, \
- (ddi_get16(hdl, &(mp)->u2.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecPathQuiesce Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_path_quiesce_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
-} i2o_exec_path_quiesce_message_t;
-
-/* macros to access the bit fields in exec path quiesce message structure */
-
-#define get_i2o_exec_path_quiesce_IOP_ID(mp, hdl) \
- (mp)->u2.s2.IOP_ID
-#define put_i2o_exec_path_quiesce_IOP_ID(mp, id, hdl) \
- ((mp)->u2.s2.IOP_ID = (id))
-
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_path_quiesce_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
-} i2o_exec_path_quiesce_message_t;
-
-/* macros to access the bit fields in exec path quiesce message structure */
-
-#define get_i2o_exec_path_quiesce_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u2.h1) & 0xFFF)
-
-#define put_i2o_exec_path_quiesce_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u2.h1, \
- (ddi_get16(hdl, &(mp)->u2.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecPathReset Function Message Frame structure. */
-
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_path_reset_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
-} i2o_exec_path_reset_message_t;
-
-/* macros to access the bit fields in exec path reset message structure */
-
-#define get_i2o_exec_path_reset_IOP_ID(mp, hdl) \
- (mp)->u2.s2.IOP_ID
-#define put_i2o_exec_path_reset_IOP_ID(mp, id, hdl) \
- ((mp)->u2.s2.IOP_ID = (id))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_path_reset_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
-} i2o_exec_path_reset_message_t;
-
-/* macros to access the bit fields in exec path reset message structure */
-
-#define get_i2o_exec_path_reset_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u2.h1) & 0xFFF)
-
-#define put_i2o_exec_path_reset_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u2.h1, \
- (ddi_get16(hdl, &(mp)->u2.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-
-#endif
-
-
-#define I2O_EXEC_STATIC_MF_CREATE_RESERVED_SZ 3
-
-/* ExecStaticMfCreate Message Frame structure */
-
-typedef struct i2o_exec_static_mf_create_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t MaxOutstanding;
- uint8_t reserved[I2O_EXEC_STATIC_MF_CREATE_RESERVED_SZ];
- i2o_message_frame_t StaticMessageFrame;
-} i2o_exec_static_mf_create_message_t;
-
-
-/* ExecStaticMfCreate Message Frame reply */
-
-typedef struct i2o_exec_static_mf_create_reply {
- i2o_single_reply_message_frame_t StdReplyFrame;
- i2o_message_frame_t StaticMFA;
-} i2o_exec_static_mf_create_reply_t;
-
-
-/* ExecStaticMfRelease Message Frame structure */
-
-typedef struct i2o_exec_static_mf_release_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_message_frame_t StaticMFA;
-} i2o_exec_static_mf_release_message_t;
-
-
-
-#define I2O_EXEC_STATUS_GET_RESERVED_SZ 16
-
-/* ExecStatusGet Function Message Frame structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_status_get_message {
- uint8_t VersionOffset;
- uint8_t MsgFlags;
- uint16_t MessageSize;
- union {
- struct {
- uint32_t Function:8;
- uint32_t InitiatorAddress:12;
- uint32_t TargetAddress:12;
- } s2;
- uint32_t w2;
- } u2;
- uint8_t Reserved[I2O_EXEC_STATUS_GET_RESERVED_SZ];
- uint32_t ReplyBufferAddressLow;
- uint32_t ReplyBufferAddressHigh;
- uint32_t ReplyBufferLength;
-} i2o_exec_status_get_message_t;
-
-/* macros to access the bit fields in i2o exec status get message */
-
-#define get_i2o_exec_status_TargetAddress(mp, hdl) \
- (mp)->u2.s2.TargetAddress
-#define put_i2o_exec_status_TargetAddress(mp, id, hdl) \
- ((mp)->u2.s2.TargetAddress = (id))
-#define get_i2o_exec_status_InitiatorAddress(mp, hdl) \
- (mp)->u2.s2.InitiatorAddress
-#define put_i2o_exec_status_InitiatorAddress(mp, id, hdl) \
- ((mp)->u2.s2.InitiatorAddress = (id))
-#define get_i2o_exec_status_Function(mp, hdl) \
- (mp)->u2.s2.Function
-#define put_i2o_exec_status_Function(mp, n, hdl) \
- ((mp)->u2.s2.Function = (n))
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_status_get_message {
- uint8_t VersionOffset;
- uint8_t MsgFlags;
- uint16_t MessageSize;
- union {
- struct {
- uint32_t Function:8;
- uint32_t InitiatorAddress:12;
- uint32_t TargetAddress:12;
- } s2;
- uint32_t w2;
- } u2;
- uint8_t Reserved[I2O_EXEC_STATUS_GET_RESERVED_SZ];
- uint32_t ReplyBufferAddressLow;
- uint32_t ReplyBufferAddressHigh;
- uint32_t ReplyBufferLength;
-} i2o_exec_status_get_message_t;
-
-/* macros to access the bit fields in i2o exec status get message */
-
-#define get_i2o_exec_status_Function(mp, hdl) \
- (mp)->u2.s2.Function
-#define put_i2o_exec_status_Function(mp, n, hdl) \
- ((mp)->u2.s2.Function = (n))
-
-#define get_i2o_exec_status_TargetAddress(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-#define put_i2o_exec_status_TargetAddress(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_status_InitiatorAddress(mp, hdl) \
- ((ddi_get32(hdl, &(mp)->u2.w2) >> 12) & 0xFFF)
-#define put_i2o_exec_status_InitiatorAddress(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, (ddi_get32(hdl, &(mp)->u2.w2) & \
- ~0xFFF000) | (((id) & 0xFFF) << 12))
-
-#endif
-
-
-#define I2O_IOP_STATUS_PROD_ID_STR_SZ 24
-#define I2O_EXEC_STATUS_GET_REPLY_RESERVED_SZ 6
-
-/* ExecStatusGet reply Structure */
-
-#define I2O_IOP_CAP_CONTEXT_32_ONLY 0x00000000
-#define I2O_IOP_CAP_CONTEXT_64_ONLY 0x00000001
-#define I2O_IOP_CAP_CONTEXT_32_64_NOT_CURRENTLY 0x00000002
-#define I2O_IOP_CAP_CONTEXT_32_64_CURRENTLY 0x00000003
-#define I2O_IOP_CAP_CURRENT_CONTEXT_NOT_CONFIG 0x00000000
-#define I2O_IOP_CAP_CURRENT_CONTEXT_32_ONLY 0x00000004
-#define I2O_IOP_CAP_CURRENT_CONTEXT_64_ONLY 0x00000008
-#define I2O_IOP_CAP_CURRENT_CONTEXT_32_64 0x0000000C
-#define I2O_IOP_CAP_INBOUND_PEER_SUPPORT 0x00000010
-#define I2O_IOP_CAP_OUTBOUND_PEER_SUPPORT 0x00000020
-#define I2O_IOP_CAP_PEER_TO_PEER_SUPPORT 0x00000040
-
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_status_get_reply {
- uint16_t OrganizationID;
- uint16_t reserved;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved1:4;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
- union {
- struct {
- uint16_t SegmentNumber:12;
- uint16_t I2oVersion:4;
- } s3;
- uint16_t h1;
- } u3;
- uint8_t IopState;
- uint8_t MessengerType;
- uint16_t InboundMFrameSize;
- uint8_t InitCode;
- uint8_t reserved2;
- uint32_t MaxInboundMFrames;
- uint32_t CurrentInboundMFrames;
- uint32_t MaxOutboundMFrames;
- uint8_t ProductIDString[I2O_IOP_STATUS_PROD_ID_STR_SZ];
- uint32_t ExpectedLCTSize;
- uint32_t IopCapabilities;
- uint32_t DesiredPrivateMemSize;
- uint32_t CurrentPrivateMemSize;
- uint32_t CurrentPrivateMemBase;
- uint32_t DesiredPrivateIOSize;
- uint32_t CurrentPrivateIOSize;
- uint32_t CurrentPrivateIOBase;
- uint8_t reserved3[3];
- volatile uint8_t SyncByte;
-} i2o_exec_status_get_reply_t;
-
-#define get_i2o_exec_status_reply_IOP_ID(p, hdl) (p)->u2.s2.IOP_ID
-#define get_i2o_exec_status_reply_SegmentNumber(p, hdl)(p)->u3.s3.SegmentNumber
-#define get_i2o_exec_status_reply_I2oVersion(p, hdl)(p)->u3.s3.I2oVersion
-
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_status_get_reply {
- uint16_t OrganizationID;
- uint16_t reserved;
- union {
- struct {
- uint16_t reserved1:4;
- uint16_t IOP_ID:12;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
- union {
- struct {
- uint16_t I2oVersion:4;
- uint16_t SegmentNumber:12;
- } s3;
- uint16_t h1;
- } u3;
- uint8_t IopState;
- uint8_t MessengerType;
- uint16_t InboundMFrameSize;
- uint8_t InitCode;
- uint8_t reserved2;
- uint32_t MaxInboundMFrames;
- uint32_t CurrentInboundMFrames;
- uint32_t MaxOutboundMFrames;
- uint8_t ProductIDString[I2O_IOP_STATUS_PROD_ID_STR_SZ];
- uint32_t ExpectedLCTSize;
- uint32_t IopCapabilities;
- uint32_t DesiredPrivateMemSize;
- uint32_t CurrentPrivateMemSize;
- uint32_t CurrentPrivateMemBase;
- uint32_t DesiredPrivateIOSize;
- uint32_t CurrentPrivateIOSize;
- uint32_t CurrentPrivateIOBase;
- uint8_t reserved3[3];
- uint8_t SyncByte;
-} i2o_exec_status_get_reply_t;
-
-#define get_i2o_exec_status_reply_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u2.h1) & 0xFFF)
-
-#define get_i2o_exec_status_reply_I2oVersion(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h1) >> 4)
-#define get_i2o_exec_staus_reply_SegmentNumber(p, hdl) \
- (ddi_get16(hdl, &(p)->u3.h1) & 0xFFF)
-
-#endif
-
-
-#define I2O_EXEC_SW_DOWNLOAD_FLAG_LOAD_MEMORY 0x00
-#define I2O_EXEC_SW_DOWNLOAD_FLAG_PERMANENT_STORE 0x01
-#define I2O_EXEC_SW_DOWNLOAD_FLAG_EXPERIMENTAL 0x00
-#define I2O_EXEC_SW_DOWNLOAD_FLAG_OVERRIDE 0x02
-
-#define I2O_EXEC_SW_TYPE_DDM 0x01
-#define I2O_EXEC_SW_TYPE_DDM_MPB 0x02
-#define I2O_EXEC_SW_TYPE_DDM_CONFIG_TABLE 0x03
-#define I2O_EXEC_SW_TYPE_IRTOS 0x11
-#define I2O_EXEC_SW_TYPE_IRTOS_PRIVATE_MODULE 0x12
-#define I2O_EXEC_SW_TYPE_IRTOS_DIALOG_TABLE 0x13
-#define I2O_EXEC_SW_TYPE_IOP_PRIVATE_MODULE 0x22
-#define I2O_EXEC_SW_TYPE_IOP_DIALOG_TABLE 0x23
-
-
-/* I2O ExecSwDownload/Upload/Remove SwID Structure */
-
-typedef struct i2o_sw_id {
- uint16_t ModuleID;
- uint16_t OrganizationID;
-} i2o_sw_id_t;
-
-
-/* ExecSwDownload Function Message Frame structure. */
-
-typedef struct i2o_exec_sw_donwload_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t CurrentFragment;
- uint8_t TotalFragments;
- uint8_t SwType;
- uint8_t DownloadFlags;
- uint32_t SWSize;
- i2o_sw_id_t SwID;
- i2o_sg_element_t SGL;
-} i2o_exec_sw_download_message_t;
-
-
-
-
-/* ExecSwUpload Function Message Frame structure. */
-
-typedef struct i2o_exec_sw_upload_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t CurrentFragment;
- uint8_t TotalFragments;
- uint8_t SwType;
- uint8_t UploadFlags;
- uint32_t SWSize;
- i2o_sw_id_t SwID;
- i2o_sg_element_t SGL;
-} i2o_exec_sw_upload_message_t;
-
-
-/* ExecSwRemove Function Message Frame structure. */
-
-typedef struct i2o_exec_sw_remove_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t reserved;
- uint8_t SwType;
- uint8_t RemoveFlags;
- uint32_t SWSize;
- i2o_sw_id_t SwID;
-} i2o_exec_sw_remove_message_t;
-
-
-/* ExecSysEnable Function Message Frame structure. */
-
-typedef struct i2o_exec_sys_enable_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_exec_sys_enable_message_t;
-
-
-/* ExecSysModify Function Message Frame structure. */
-
-typedef struct i2o_exec_sys_modify_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_sg_element_t SGL;
-} i2o_exec_sys_modify_message_t;
-
-
-/* ExecSysQuiesce Function Message Frame structure. */
-
-typedef struct i2o_exec_sys_quiesce_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_exec_sys_quiesce_message_t;
-
-
-/* ExecSysTabSet (System Table) Function Message Frame structure. */
-
-#define I2O_EXEC_SYS_TAB_IOP_ID_LOCAL_IOP 0x000
-#define I2O_EXEC_SYS_TAB_IOP_ID_LOCAL_HOST 0x001
-#define I2O_EXEC_SYS_TAB_IOP_ID_UNKNOWN_IOP 0xFFF
-#define I2O_EXEC_SYS_TAB_HOST_UNIT_ID_LOCAL_UNIT 0x0000
-#define I2O_EXEC_SYS_TAB_HOST_UNIT_ID_UNKNOWN_UNIT 0xffff
-#define I2O_EXEC_SYS_TAB_SEG_NUMBER_LOCAL_SEGMENT 0x000
-#define I2O_EXEC_SYS_TAB_SEG_NUMBER_UNKNOWN_SEGMENT 0xfff
-
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_exec_sys_tab_set_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint16_t IOP_ID:12;
- uint16_t reserved:4;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
- union {
- struct {
- uint32_t SegmentNumber:12;
- uint32_t reserved1:20;
- } s3;
- uint32_t w3;
- } u3;
- i2o_sg_element_t SGL;
-} i2o_exec_sys_tab_set_message_t;
-
-/* macros to access the bit fields in exec ddm enable message structure */
-
-#define get_i2o_exec_sys_tab_set_IOP_ID(mp, hdl) \
- (mp)->u2.s2.IOP_ID
-#define put_i2o_exec_sys_tab_set_IOP_ID(mp, id, hdl) \
- ((mp)->u2.s2.IOP_ID = (id))
-
-#define get_i2o_exec_sys_tab_set_SegmentNumber(mp, hdl) \
- (mp)->u3.s3.SegmentNumber
-#define put_i2o_exec_sys_tab_set_SegmentNumber(mp, id, hdl) \
- ((mp)->u3.s3.SegmentNumber = (id))
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_exec_sys_tab_set_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t IOP_ID:12;
- } s2;
- uint16_t h1;
- } u2;
- uint16_t HostUnitID;
- union {
- struct {
- uint32_t reserved1:20;
- uint32_t SegmentNumnber:12;
- } s3;
- uint32_t w3;
- } u3;
- i2o_sg_element_t SGL;
-} i2o_exec_sys_tab_set_message_t;
-
-/* macros to access the bit fields in exec ddm enable message structure */
-
-#define get_i2o_exec_sys_tab_set_IOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u2.h1) & 0xFFF)
-
-#define put_i2o_exec_sys_tab_set_IOP_ID(mp, id, hdl) \
- ddi_put16(hdl, &(mp)->u2.h1, \
- (ddi_get16(hdl, &(mp)->u2.h1) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_i2o_exec_sys_tab_set_SegmentNumber(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u3.w3) & 0xFFF)
-#define put_i2o_exec_sys_tab_set_SegmentNumber(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u3.w3, \
- (ddi_get32(hdl, &(mp)->u3.w3) & ~0xFFF) | ((id) & 0xFFF))
-
-#endif
-
-
-/* ExecSysTabSet (System Table) Header Reply structure. */
-
-#define I2O_SET_SYSTAB_RESERVED_SZ 8
-
-typedef struct i2o_set_systab_header {
- uint8_t NumberEntries;
- uint8_t SysTabVersion;
- uint16_t reserved;
- uint32_t CurrentChangeIndicator;
- uint8_t reserved1[I2O_SET_SYSTAB_RESERVED_SZ];
-/* I2O_SYSTAB_ENTRY SysTabEntry[1]; */
-} i2o_set_systab_header_t;
-
-
-#define I2O_RESOURCE_MANAGER_VERSION 0
-
-typedef struct i2o_messenger_info {
- uint32_t InboundMessagePortAddressLow;
- uint32_t InboundMessagePortAddressHigh;
-} i2o_messenger_info_t;
-
-/* ExecSysTabSet IOP Descriptor Entry structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_iop_entry {
- uint16_t OrganizationID;
- uint16_t reserved;
- union {
- struct {
- uint32_t IOP_ID:12;
- uint32_t reserved1:20;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t SegmentNumber:12;
- uint16_t I2oVersion:4;
- } s3;
- uint16_t h1;
- } u3;
- uint8_t IopState;
- uint8_t MessengerType;
- uint16_t InboundMessageFrameSize;
- uint16_t reserved2;
- uint32_t LastChanged;
- uint32_t IopCapabilities;
- i2o_messenger_info_t MessengerInfo;
-} i2o_iop_entry_t;
-
-
-#define get_i2o_iop_entry_IOP_ID(mp, hdl) \
- ((mp)->u2.s2.IOP_ID)
-
-#define put_i2o_iop_entry_IOP_ID(mp, v, hdl) \
- ((mp)->u2.s2.IOP_ID) = (v)
-
-#define get_i2o_iop_entry_SegmentNumber(mp, hdl) \
- ((mp)->u3.s3.SegmentNumber)
-
-#define put_i2o_iop_entry_SegmentNumber(mp, v, hdl) \
- ((mp)->u3.s3.SegmentNumber) = (v)
-
-#define get_i2o_iop_entry_I2oVersion(mp, hdl) \
- ((mp)->u3.s3.I2oVersion)
-
-#define put_i2o_iop_entry_I2oVersion(mp, v, hdl) \
- ((mp)->u3.s3.I2oVersion) = (v)
-
-#endif
-
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_iop_entry {
- uint16_t OrganizationID;
- uint16_t reserved;
- union {
- struct {
- uint32_t reserved1:20;
- uint32_t IOP_ID:12;
- } s2;
- uint32_t w2;
- } u2;
- union {
- struct {
- uint16_t I2oVersion:4;
- uint16_t SegmentNumber:12;
- } s3;
- uint16_t h1;
- } u3;
- uint8_t IopState;
- uint8_t MessengerType;
- uint16_t InboundMessageFrameSize;
- uint16_t reserved2;
- uint32_t LastChanged;
- uint32_t IopCapabilities;
- i2o_messenger_info_t MessengerInfo;
-} i2o_iop_entry_t;
-
-
-#define get_i2o_iop_entry_IOP_ID(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-
-#define put_i2o_iop_entry_IOP_ID(mp, v, hdl) \
- (ddi_put32(hdl, &(mp)->u2.w2) & 0xFFF, (v))
-
-#define get_i2o_iop_entry_SegmentNumber(mp, hdl) \
- (ddi_get16(hdl, &(mp)->u3.h1) & 0xFFF)
-
-#define put_i2o_iop_entry_SegmentNumber(mp, v, hdl) \
- (ddi_put16(hdl, &(mp)->u3.h1) & 0xFFF, (v))
-
-#define get_i2o_iop_entry_I2oVersion(mp, hdl) \
- ((ddi_get16(hdl, &(mp)->u3.h1) >> 12) & 0xF)
-
-#define put_i2o_iop_entry_I2oVersion(mp, v, hdl) \
- ((ddi_put16(hdl, &(mp)->u3.h1) >> 12) & 0xF, (v))
-
-#endif
-
-
-/* ************************************************************************** */
-/* Executive Parameter Groups */
-/* ************************************************************************** */
-
-
-#define I2O_EXEC_IOP_HARDWARE_GROUP_NO 0x0000
-#define I2O_EXEC_IOP_MESSAGE_IF_GROUP_NO 0x0001
-#define I2O_EXEC_EXECUTING_ENVIRONMENT_GROUP_NO 0x0002
-#define I2O_EXEC_EXECUTING_DDM_LIST_GROUP_NO 0x0003
-#define I2O_EXEC_DRIVER_STORE_GROUP_NO 0x0004
-#define I2O_EXEC_DRIVER_STORE_TABLE_GROUP_NO 0x0005
-#define I2O_EXEC_IOP_BUS_ATTRIBUTES_GROUP_NO 0x0006
-#define I2O_EXEC_IOP_SW_ATTRIBUTES_GROUP_NO 0x0007
-#define I2O_EXEC_HARDWARE_RESOURCE_TABLE_GROUP_NO 0x0100
-#define I2O_EXEC_LCT_SCALAR_GROUP_NO 0x0101
-#define I2O_EXEC_LCT_TABLE_GROUP_NO 0x0102
-#define I2O_EXEC_SYSTEM_TABLE_GROUP_NO 0x0103
-#define I2O_EXEC_EXTERNAL_CONN_TABLE_GROUP_NO 0x0104
-
-
-/* EXEC Group 0000h - IOP Hardware Parameter Group */
-
-/* IOP HardWare Capabilities defines */
-
-#define I2O_IOP_HW_CAP_SELF_BOOT 0x00000001
-#define I2O_IOP_HW_CAP_IRTOS_UPGRADEABLE 0x00000002
-#define I2O_IOP_HW_CAP_DOWNLOADABLE_DDM 0x00000004
-#define I2O_IOP_HW_CAP_INSTALLABLE_DDM 0x00000008
-#define I2O_IOP_HW_CAP_BATTERY_BACKUP_RAM 0x00000010
-
-/* IOP Processor Type defines */
-
-#define I2O_IOP_PROC_TYPE_INTEL_80960 0x00
-#define I2O_IOP_PROC_TYPE_AMD_29000 0x01
-#define I2O_IOP_PROC_TYPE_MOTOROLA_68000 0x02
-#define I2O_IOP_PROC_TYPE_ARM 0x03
-#define I2O_IOP_PROC_TYPE_MIPS 0x04
-#define I2O_IOP_PROC_TYPE_SPARC 0x05
-#define I2O_IOP_PROC_TYPE_POWER_PC 0x06
-#define I2O_IOP_PROC_TYPE_ALPHA 0x07
-#define I2O_IOP_PROC_TYPE_INTEL_X86 0x08
-#define I2O_IOP_PROC_TYPE_OTHER 0xFF
-
-
-typedef struct i2o_exec_iop_hardware_scalar {
- uint16_t I2oVendorID;
- uint16_t ProductID;
- uint32_t ProcessorMemory;
- uint32_t PermMemory;
- uint32_t HWCapabilities;
- uint8_t ProcessorType;
- uint8_t ProcessorVersion;
-} i2o_exec_iop_hardware_scalar_t;
-
-
-/* EXEC Group 0001h - IOP Message Interface Parameter Group */
-
-/* InitCode defines */
-#define I2O_MESSAGE_IF_INIT_CODE_NO_OWNER 0x00
-#define I2O_MESSAGE_IF_INIT_CODE_BIOS 0x10
-#define I2O_MESSAGE_IF_INIT_CODE_OEM_BIOS_EXTENSION 0x20
-#define I2O_MESSAGE_IF_INIT_CODE_ROM_BIOS_EXTENSION 0x30
-#define I2O_MESSAGE_IF_INIT_CODE_OS 0x80
-
-typedef struct i2o_exec_iop_message_if_scalar {
- uint32_t InboundFrameSize;
- uint32_t InboundSizeTarget;
- uint32_t InboundMax;
- uint32_t InboundTarget;
- uint32_t InboundPoolCount;
- uint32_t InboundCurrentFree;
- uint32_t InboundCurrentPost;
- uint16_t StaticCount;
- uint16_t StaticInstanceCount;
- uint16_t StaticLimit;
- uint16_t StaticInstanceLimit;
- uint32_t OutboundFrameSize;
- uint32_t OutboundMax;
- uint32_t OutboundMaxTarget;
- uint32_t OutboundCurrentFree;
- uint32_t OutboundCurrentPost;
- uint8_t InitCode;
-} i2o_exec_iop_message_if_scalar_t;
-
-
-/* EXEC Group 0002h - Executing Environment Parameter Group */
-
-typedef struct i2o_exec_execute_environment_scalar {
- uint32_t MemTotal;
- uint32_t MemFree;
- uint32_t PageSize;
- uint32_t EventQMax;
- uint32_t EventQCurrent;
- uint32_t DDMLoadMax;
-} i2o_exec_execute_environment_scalar_t;
-
-
-/* EXEC Group 0003h - Executing DDM's Parameter Group */
-
-/* ModuleType Defines */
-
-#define I2O_EXEC_DDM_MODULE_TYPE_OTHER 0x00
-#define I2O_EXEC_DDM_MODULE_TYPE_DOWNLOAD 0x01
-#define I2O_EXEC_DDM_MODULE_TYPE_EMBEDDED 0x22
-
-
-typedef struct i2o_exec_execute_ddm_table {
- uint16_t DdmTID;
- uint8_t ModuleType;
- uint8_t reserved;
- uint16_t I2oVendorID;
- uint16_t ModuleID;
- uint8_t ModuleName[I2O_MODULE_NAME_SZ];
- uint32_t ModuleVersion;
- uint32_t DataSize;
- uint32_t CodeSize;
-} i2o_exec_execute_ddm_table_t;
-
-
-/* EXEC Group 0004h - Driver Store Environment Parameter Group */
-
-
-typedef struct i2o_exec_driver_store_scalar {
- uint32_t ModuleLimit;
- uint32_t ModuleCount;
- uint32_t CurrentSpace;
- uint32_t FreeSpace;
-} i2o_exec_driver_store_scalar_t;
-
-
-/* EXEC Group 0005h - Driver Store Parameter Group */
-
-
-typedef struct i2o_exec_driver_store_table {
- uint16_t StoredDdmIndex;
- uint8_t ModuleType;
- uint8_t reserved;
- uint16_t I2oVendorID;
- uint16_t ModuleID;
- uint8_t ModuleName[I2O_MODULE_NAME_SZ];
- uint32_t ModuleVersion;
- uint16_t DateDay;
- uint16_t DateMonth;
- uint32_t DateYear;
- uint32_t ModuleSize;
- uint32_t MpbSize;
- uint32_t ModuleFlags;
-} i2o_exec_driver_store_table_t;
-
-
-/* EXEC Group 0006h - IOP's Bus Attributes Parameter Group */
-
-#define I2O_EXEC_IOP_BUS_ATTRIB_SYSTEM_BUS 0x00
-#define I2O_EXEC_IOP_BUS_ATTRIB_BRIDGED_SYSTEM_BUS 0x01
-#define I2O_EXEC_IOP_BUS_ATTRIB_PRIVATE 0x02
-
-typedef struct i2o_exec_iop_bus_attribute_table {
- uint32_t BusID;
- uint8_t BusType;
- uint8_t MaxAdapters;
- uint8_t AdapterCount;
- uint8_t BusAttributes;
-} i2o_exec_iop_bus_attribute_table_t;
-
-
-/* EXEC Group 0007h - IOP's Bus Attributes Parameter Group */
-
-#define I2O_EXEC_IOP_SW_CAP_IRTOS_I2O_COMPLIANT 0x00000001
-#define I2O_EXEC_IOP_SW_CAP_IRTOS_UPGRADEABLE 0x00000002
-#define I2O_EXEC_IOP_SW_CAP_DOWNLOADABLE_DDM 0x00000004
-#define I2O_EXEC_IOP_SW_CAP_INSTALLABLE_DDM 0x00000008
-
-typedef struct i2o_exec_iop_sw_attributes_scalar {
- uint16_t I2oVendorID;
- uint16_t ProductID;
- uint32_t CodeSize;
- uint32_t SWCapabilities;
-} i2o_exec_iop_sw_attributes_scalar_t;
-
-
-/* EXEC Group 0100h - Hardware Resource Table Parameter Group */
-
-typedef struct i2o_exec_hardware_resource_table {
- uint32_t AdapterID;
- uint16_t StateInfo; /* AdapterState plus Local TID */
- uint8_t BusNumber;
- uint8_t BusType;
- u_longlong_t PhysicalLocation;
- uint32_t MemorySpace;
- uint32_t IoSpace;
-} i2o_exec_hardware_resource_table_t;
-
-/* EXEC Group 0101h - Logical Configuration Table Scalar Parameter Group */
-
-typedef struct i2o_exec_lct_scalar {
- uint16_t BootDevice;
- uint32_t IopFlags;
- uint32_t CurrentChangeIndicator;
-} i2o_exec_lct_scalar_t;
-
-/* EXEC Group 0102h - Logical Configuration Table Parameter Group */
-
-typedef struct i2o_exec_lct_table {
- uint16_t LocalTID;
- uint16_t UserTID;
- uint16_t ParentTID;
- uint16_t DdmTID;
- uint32_t ChangeIndicator;
- uint32_t DeviceFlags;
- uint32_t ClassID;
- uint32_t SubClass;
- uint8_t IdentityTag[I2O_IDENTITY_TAG_SZ];
- uint32_t EventCapabilities;
- uint8_t BiosInfo;
-} i2o_exec_lct_table_t;
-
-/* EXEC Group 0103h - System Table Parameter Group */
-
-#define I2O_MESSENGER_TYPE_MEMORY_MAPPED_MESSAGE_UNIT 0x0
-
-typedef struct i2o_exec_system_table {
- uint16_t IOP_ID;
- uint16_t OrganizationID;
- uint16_t SegmentNumber;
- uint8_t Version;
- uint8_t IopState;
- uint8_t MessengerType;
- uint8_t reserved;
- uint32_t InboundMessagePortAddress;
- uint16_t InboundMessageFrameSize;
- uint32_t IopCapabilities;
- i2o_messenger_info_t MessengerInfo;
-} i2o_exec_system_table_t;
-
-
-/* EXEC Group 0104h - External Connection Table Parameter Group */
-
-#define I2O_EXEC_XCT_FLAGS_REMOTE_IOP_CREATED_CONNECTION 0x00
-#define I2O_EXEC_XCT_FLAGS_THIS_IOP_CREATED_CONNECTION 0x01
-
-typedef struct i2o_exec_external_connection_table {
- uint16_t LocalAliasTID;
- uint16_t RemoteTID;
- uint16_t RemoteIOP;
- uint16_t RemoteUnitID;
- uint8_t Flags;
- uint8_t reserved;
-} i2o_exec_external_connection_table_t;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_I2OEXEC_H */