summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys
diff options
context:
space:
mode:
authordp <none@none>2007-04-18 11:32:14 -0700
committerdp <none@none>2007-04-18 11:32:14 -0700
commit91e1058474884b4b6f1d3665a96ddeb9a30cd489 (patch)
treef58835740092640c8577b577c0e0edcedb013a95 /usr/src/uts/common/sys
parent231ecbdf6cfa117492d49356673032a7cdbd4030 (diff)
downloadillumos-joyent-91e1058474884b4b6f1d3665a96ddeb9a30cd489.tar.gz
PSARC/2007/045 I2O EOL and EOF
4863632 Hey Hey! Ho Ho! I2O Has Got to Go! --HG-- rename : usr/src/uts/common/io/i2o/i2o_bs.c => deleted_files/usr/src/uts/common/io/i2o/i2o_bs.c rename : usr/src/uts/common/io/i2o/i2o_bs.conf => deleted_files/usr/src/uts/common/io/i2o/i2o_bs.conf rename : usr/src/uts/common/io/i2o/i2o_bs.h => deleted_files/usr/src/uts/common/io/i2o/i2o_bs.h rename : usr/src/uts/common/io/i2o/i2o_impl.h => deleted_files/usr/src/uts/common/io/i2o/i2o_impl.h rename : usr/src/uts/common/io/i2o/i2o_msg.c => deleted_files/usr/src/uts/common/io/i2o/i2o_msg.c rename : usr/src/uts/common/io/i2o/i2o_scsi.c => deleted_files/usr/src/uts/common/io/i2o/i2o_scsi.c rename : usr/src/uts/common/io/i2o/i2o_scsi.conf => deleted_files/usr/src/uts/common/io/i2o/i2o_scsi.conf rename : usr/src/uts/common/io/i2o/i2o_scsi_cmd.h => deleted_files/usr/src/uts/common/io/i2o/i2o_scsi_cmd.h rename : usr/src/uts/common/io/i2o/i2o_scsi_util.h => deleted_files/usr/src/uts/common/io/i2o/i2o_scsi_util.h rename : usr/src/uts/common/io/i2o/i2o_scsi_var.h => deleted_files/usr/src/uts/common/io/i2o/i2o_scsi_var.h rename : usr/src/uts/common/io/i2o/label.c => deleted_files/usr/src/uts/common/io/i2o/label.c rename : usr/src/uts/common/io/i2o/pci_to_i2o.c => deleted_files/usr/src/uts/common/io/i2o/pci_to_i2o.c rename : usr/src/uts/common/io/i2o/pci_to_i2o.conf => deleted_files/usr/src/uts/common/io/i2o/pci_to_i2o.conf rename : usr/src/uts/common/sys/i2o/i2oadptr.h => deleted_files/usr/src/uts/common/sys/i2o/i2oadptr.h rename : usr/src/uts/common/sys/i2o/i2obscsi.h => deleted_files/usr/src/uts/common/sys/i2o/i2obscsi.h rename : usr/src/uts/common/sys/i2o/i2oexec.h => deleted_files/usr/src/uts/common/sys/i2o/i2oexec.h rename : usr/src/uts/common/sys/i2o/i2omsg.h => deleted_files/usr/src/uts/common/sys/i2o/i2omsg.h rename : usr/src/uts/common/sys/i2o/i2omstr.h => deleted_files/usr/src/uts/common/sys/i2o/i2omstr.h rename : usr/src/uts/common/sys/i2o/i2outil.h => deleted_files/usr/src/uts/common/sys/i2o/i2outil.h rename : usr/src/uts/intel/i2o_bs/Makefile => deleted_files/usr/src/uts/intel/i2o_bs/Makefile rename : usr/src/uts/intel/i2o_msg/Makefile => deleted_files/usr/src/uts/intel/i2o_msg/Makefile rename : usr/src/uts/intel/i2o_scsi/Makefile => deleted_files/usr/src/uts/intel/i2o_scsi/Makefile rename : usr/src/uts/intel/pci_to_i2o/Makefile => deleted_files/usr/src/uts/intel/pci_to_i2o/Makefile
Diffstat (limited to 'usr/src/uts/common/sys')
-rw-r--r--usr/src/uts/common/sys/Makefile9
-rw-r--r--usr/src/uts/common/sys/Makefile.syshdrs26
-rw-r--r--usr/src/uts/common/sys/i2o/i2oadptr.h323
-rw-r--r--usr/src/uts/common/sys/i2o/i2obscsi.h400
-rw-r--r--usr/src/uts/common/sys/i2o/i2oexec.h2478
-rw-r--r--usr/src/uts/common/sys/i2o/i2omsg.h1570
-rw-r--r--usr/src/uts/common/sys/i2o/i2omstr.h920
-rw-r--r--usr/src/uts/common/sys/i2o/i2outil.h391
8 files changed, 22 insertions, 6095 deletions
diff --git a/usr/src/uts/common/sys/Makefile b/usr/src/uts/common/sys/Makefile
index c00a178991..6b1b5bb8c3 100644
--- a/usr/src/uts/common/sys/Makefile
+++ b/usr/src/uts/common/sys/Makefile
@@ -934,15 +934,6 @@ PCHDRS= \
pit.h \
rtc.h
-# I2O header files (currently used only on i386)
-I2OHDRS= \
- i2oadptr.h \
- i2obscsi.h \
- i2oexec.h \
- i2omsg.h \
- i2omstr.h \
- i2outil.h
-
NXGEHDRS= \
nxge.h \
nxge_common.h \
diff --git a/usr/src/uts/common/sys/Makefile.syshdrs b/usr/src/uts/common/sys/Makefile.syshdrs
index 6aa0c8e295..26970f5219 100644
--- a/usr/src/uts/common/sys/Makefile.syshdrs
+++ b/usr/src/uts/common/sys/Makefile.syshdrs
@@ -1,5 +1,24 @@
#
-# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "%Z%%M% %I% %E% SMI"
@@ -129,7 +148,7 @@ sparc_ROOTDIRS= $(ROOTDKTPDIR) $(ROOTDIR)/scsi/adapters \
$(ROOTDIR)/av
i386_ROOTDIRS= $(ROOTDKTPDIR) $(ROOTDIR)/scsi/adapters $(ROOTDIR)/scsi/targets \
- $(ROOTDIR)/i2o $(ROOTDIR)/agp $(ROOTDIR)/sata
+ $(ROOTDIR)/agp $(ROOTDIR)/sata
ROOTDIRS= \
$(ROOTDIR) \
@@ -244,7 +263,6 @@ ROOTRSMHDRS= $(RSMHDRS:%=$(ROOTDIR)/rsm/%)
ROOTSDKTPHDRS= $(SDKTPHDRS:%=$(ROOTDIR)/dktp/%)
ROOTDKTPHDRS= $(DKTPHDRS:%=$(ROOTDIR)/dktp/%)
ROOTPCHDRS= $(PCHDRS:%=$(ROOTDIR)/%)
-ROOTI2OHDRS= $(I2OHDRS:%=$(ROOTDIR)/i2o/%)
ROOTHOTPLUGHDRS= $(HOTPLUGHDRS:%=$(ROOTDIR)/hotplug/%)
ROOTHOTPLUGPCIHDRS= $(HOTPLUGPCIHDRS:%=$(ROOTDIR)/hotplug/pci/%)
@@ -258,7 +276,7 @@ sparc_ROOTHDRS= $(ROOTSDKTPHDRS) $(ROOTSCSICADHDRS) $(ROOTSCSITARGETSHDRS) \
i386_ROOTHDRS= $(ROOTDKTPHDRS) $(ROOTPCHDRS) $(ROOTSCSITARGETSHDRS) \
$(ROOTSCSIVHCIHDRS) $(ROOTFCHDRS) \
- $(ROOTI2OHDRS) $(ROOTPCMCIAHDRS) $(ROOTHOTPLUGHDRS) \
+ $(ROOTPCMCIAHDRS) $(ROOTHOTPLUGHDRS) \
$(ROOTHOTPLUGPCIHDRS) $(ROOTSATAGENHDRS)
# install rules
diff --git a/usr/src/uts/common/sys/i2o/i2oadptr.h b/usr/src/uts/common/sys/i2o/i2oadptr.h
deleted file mode 100644
index 0dd0f70801..0000000000
--- a/usr/src/uts/common/sys/i2o/i2oadptr.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * ****************************************************************************
- * 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.
- *
- * ****************************************************************************
- */
-
-/*
- * **************************************************************************
- *
- * i2oadptr.h -- I2O Adapter Class Message defintion file
- *
- * This file contains information presented in Chapter 6 of
- * the I2o Specification.
- *
- * ***************************************************************************
- */
-
-/*
- * Copyright (c) 1998 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-#ifndef _SYS_I2OADPTR_H
-#define _SYS_I2OADPTR_H
-
-#pragma ident "%W% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define I2OADPTR_REV 1_5_1 /* Header file revision string */
-
-/*
- * NOTES: See i2omsg.h for more info
- */
-
-#include <sys/i2o/i2omsg.h> /* Include the Base Message file */
-#include <sys/types.h> /* For system types defines */
-
-
-
-/*
- * BUS ADAPTER CLASS SPECIFIC FUNCTIONS
- */
-
-#define I2O_HBA_ADAPTER_RESET 0x85
-#define I2O_HBA_BUS_QUIESCE 0x8b
-#define I2O_HBA_BUS_RESET 0x87
-#define I2O_HBA_BUS_SCAN 0x89
-
-
-/*
- * Detailed Status Codes for HBA operations
- *
- * Note:
- * The 16-bit Detailed Status Code field for HBA operations is divided
- * into two separate 8-bit fields. The lower 8 bits are reserved. The
- * upper 8 bits are used to report Adapter Status information. The
- * definitions for these two fields, however, will be consistent with
- * the standard reply message frame structure declaration, which treats
- * this as a single 16-bit field. In addition, the values used will be
- * consistent with the Adapter Status codes defined for the SCSI
- * Peripheral class. Theses codes are based on CAM-1. In other words,
- * these definitions are a subset of the SCSI peripheral class codes.
- * Where applicable, "SCSI" has been removed from the definition.
- *
- */
-
-#define I2O_HBA_DSC_MASK 0xFF00
-
-#define I2O_HBA_DSC_SUCCESS 0x0000
-#define I2O_HBA_DSC_ADAPTER_BUSY 0x0500
-#define I2O_HBA_DSC_COMMAND_TIMEOUT 0x0B00
-#define I2O_HBA_DSC_COMPLETE_WITH_ERROR 0x0400
-#define I2O_HBA_DSC_FUNCTION_UNAVAILABLE 0x3A00
-#define I2O_HBA_DSC_NO_ADAPTER 0x1100
-#define I2O_HBA_DSC_PARITY_ERROR_FAILURE 0x0F00
-#define I2O_HBA_DSC_PATH_INVALID 0x0700
-#define I2O_HBA_DSC_PROVIDE_FAILURE 0x1600
-#define I2O_HBA_DSC_QUEUE_FROZEN 0x4000
-#define I2O_HBA_DSC_REQUEST_ABORTED 0x0200
-#define I2O_HBA_DSC_REQUEST_INVALID 0x0600
-#define I2O_HBA_DSC_REQUEST_LENGTH_ERROR 0x1500
-#define I2O_HBA_DSC_REQUEST_TERMINATED 0x1800
-#define I2O_HBA_DSC_RESOURCE_UNAVAILABLE 0x3400
-#define I2O_HBA_DSC_BUS_BUSY 0x3F00
-#define I2O_HBA_DSC_BUS_RESET 0x0E00
-#define I2O_HBA_DSC_ID_INVALID 0x3900
-#define I2O_HBA_DSC_SEQUENCE_FAILURE 0x1400
-#define I2O_HBA_DSC_UNABLE_TO_ABORT 0x0300
-#define I2O_HBA_DSC_UNABLE_TO_TERMINATE 0x0900
-#define I2O_HBA_DSC_UNACKNOWLEDGED_EVENT 0x3500
-#define I2O_HBA_DSC_UNEXPECTED_BUS_FREE 0x1300
-
-/*
- * Bus Adapter Parameter Groups
- */
-
-#define I2O_HBA_CONTROLLER_INFO_GROUP_NO 0x0000
-#define I2O_HBA_HISTORICAL_STATS_GROUP_NO 0x0100
-#define I2O_HBA_SCSI_CONTROLLER_INFO_GROUP_NO 0x0200
-#define I2O_HBA_SCSI_BUS_PORT_INFO_GROUP_NO 0x0201
-#define I2O_HBA_FCA_CONTROLLER_INFO_GROUP_NO 0x0300
-#define I2O_HBA_FCA_PORT_INFO_GROUP_NO 0x0301
-
-/*
- * - 0000h - HBA Controller Information Parameter Group
- */
-
-/*
- * Bus Type
- */
-
-#define I2O_HBA_BUS_TYPE_GENERIC 0x00
-#define I2O_HBA_BUS_TYPE_SCSI 0x01
-#define I2O_HBA_BUS_TYPE_FCA 0x10
-
-typedef struct i2o_hba_controller_info_scalar {
- uint8_t BusType;
- uint8_t BusState;
- uint16_t Reserved2;
- uint8_t BusName[12];
-} i2o_hba_controller_info_scalar_t;
-
-/*
- * - 0100h - HBA Historical Stats Parameter Group
- */
-
-typedef struct i2o_hba_hist_stats_scalar {
- uint32_t TimeLastPoweredUp;
- uint32_t TimeLastReset;
-} i2o_hba_hist_stats_scalar_t;
-
-/*
- * - 0200h - HBA SCSI Controller Information Parameter Group
- */
-
-/*
- * SCSI Type
- */
-
-#define I2O_SCSI_TYPE_UNKNOWN 0x00
-#define I2O_SCSI_TYPE_SCSI_1 0x01
-#define I2O_SCSI_TYPE_SCSI_2 0x02
-#define I2O_SCSI_TYPE_SCSI_3 0x03
-
-/*
- * Protection Management
- */
-
-#define I2O_SCSI_PORT_PROT_OTHER 0x00
-#define I2O_SCSI_PORT_PROT_UNKNOWN 0x01
-#define I2O_SCSI_PORT_PROT_UNPROTECTED 0x02
-#define I2O_SCSI_PORT_PROT_PROTECTED 0x03
-#define I2O_SCSI_PORT_PROT_SCC 0x04
-
-/*
- * Settings
- */
-
-#define I2O_SCSI_PORT_PARITY_FLAG 0x01
-#define I2O_SCSI_PORT_PARITY_DISABLED 0x00
-#define I2O_SCSI_PORT_PARITY_ENABLED 0x01
-
-#define I2O_SCSI_PORT_SCAN_ORDER_FLAG 0x02
-#define I2O_SCSI_PORT_SCAN_LOW_TO_HIGH 0x00
-#define I2O_SCSI_PORT_SCAN_HIGH_TO_LOW 0x02
-
-#define I2O_SCSI_PORT_IID_FLAG 0x04
-#define I2O_SCSI_PORT_IID_DEFAULT 0x00
-#define I2O_SCSI_PORT_IID_SPECIFIED 0x04
-
-#define I2O_SCSI_PORT_SCAM_FLAG 0x08
-#define I2O_SCSI_PORT_SCAM_DISABLED 0x00
-#define I2O_SCSI_PORT_SCAM_ENABLED 0x08
-
-#define I2O_SCSI_PORT_TYPE_FLAG 0x80
-#define I2O_SCSI_PORT_TYPE_PARALLEL 0x00
-#define I2O_SCSI_PORT_TYPE_SERIAL 0x80
-
-typedef struct i2o_hba_scsi_controller_info_scalar {
- uint8_t SCSIType;
- uint8_t ProtectionManagement;
- uint8_t Settings;
- uint8_t Reserved1;
- uint32_t InitiatorID;
- uint64_t ScanLun0Only;
- uint16_t DisableDevice;
- uint8_t MaxOffset;
- uint8_t MaxDataWidth;
- uint64_t MaxSyncRate;
-} i2o_hba_scsi_controller_info_scalar_t;
-
-/*
- * - 0201h - HBA SCSI Bus Port Information Parameter Group
- */
-
-/*
- * NOTE: Refer to the SCSI Peripheral Class Bus Port Information
- * Parameter Group field definitions for HBA SCSI Bus Port
- * field definitions.
- */
-
-typedef struct i2o_hba_scsi_bus_port_info_scalar {
- uint8_t PhysicalInterface;
- uint8_t ElectricalInterface;
- uint8_t Isochronous;
- uint8_t ConnectorType;
- uint8_t ConnectorGender;
- uint8_t Reserved1;
- uint16_t Reserved2;
- uint32_t MaxNumberDevices;
- uint32_t DeviceIdBegin;
- uint32_t DeviceIdEnd;
- uint8_t LunBegin[8];
- uint8_t LunEnd[8];
-} i2o_hba_scsi_bus_port_info_scalar_t;
-
-/*
- * - 0300h - HBA FCA Controller Information Parameters Group defines
- */
-
-/*
- * SCSI Type
- */
-
-#define I2O_FCA_TYPE_UNKNOWN 0x00
-#define I2O_FCA_TYPE_FCAL 0x01
-
-typedef struct i2o_hba_fca_controller_info_scalar {
- uint8_t FcaType;
- uint8_t Reserved1;
- uint16_t Reserved2;
-} i2o_hba_fca_controller_info_scalar_t;
-
-/*
- * - 0301h - HBA FCA Port Information Parameters Group defines
- */
-
-typedef struct i2o_hba_fca_port_info_scalar {
- uint32_t Reserved4;
-} i2o_hba_fca_port_info_scalar_t;
-
-/*
- * I2O BUS ADAPTER CLASS SPECIFIC MESSAGE DEFINITIONS
- */
-
-/*
- * I2O Bus Adapter Class Reply Message Frame
- */
-
-typedef struct i2o_hba_reply_message_frame {
- i2o_single_reply_message_frame_t StdReplyFrame;
-} i2o_hba_reply_message_frame_t;
-
-/*
- * I2O HBA Adapter Reset Message Frame
- */
-
-typedef struct i2o_hba_adapter_reset_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_hba_adapter_reset_message_t;
-
-/*
- * I2O HBA Bus Quiesce Message Frame
- */
-
-typedef uint32_t i2o_hbq_flags_t;
-
-#define I2O_HBQ_FLAG_NORMAL 0x0000
-#define I2O_HBQ_FLAG_QUIESCE 0x0001
-
-typedef struct i2o_hba_bus_quiesce_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_hbq_flags_t Flags;
-} i2o_hba_bus_quiesce_message_t;
-
-/*
- * I2O HBA Bus Reset Message Frame
- */
-
-typedef struct i2o_hba_bus_reset_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_hba_bus_reset_message_t;
-
-/*
- * I2O HBA Bus Scan Message Frame
- */
-
-/*
- * NOTE: SCSI-2 8-bit scalar LUN goes into offset 1 of Lun arrays
- */
-
-typedef struct i2o_hba_bus_scan_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_hba_bus_scan_message_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_I2OADPTR_H */
diff --git a/usr/src/uts/common/sys/i2o/i2obscsi.h b/usr/src/uts/common/sys/i2o/i2obscsi.h
deleted file mode 100644
index 8cb3d33338..0000000000
--- a/usr/src/uts/common/sys/i2o/i2obscsi.h
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * *****************************************************************************
- * 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.
- *
- * *****************************************************************************
- */
-
-/*
- * ***************************************************************************
- *
- * I2OBSCSI.h -- I2O Base SCSI Device Class Message defintion file
- *
- * This file contains information presented in Chapter 6, Section 6 & 7 of
- * the I2O Specification.
- *
- * ***************************************************************************
- */
-
-/*
- * Copyright (c) 1998 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-#ifndef _SYS_I2OBSCSI_H
-#define _SYS_I2OBSCSI_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define I2OBSCSI_REV 1_5_1 /* Header file revision string */
-
-/*
- * NOTES: See i2omsg.h for more info
- */
-
-#include <sys/i2o/i2omsg.h> /* Include the Base Message file */
-#include <sys/types.h> /* For system types defined */
-
-/*
- * SCSI Peripheral Class specific functions
- *
- * Although the names are SCSI Peripheral class specific, the values
- * assigned are common with other classes when applicable.
- */
-
-#define I2O_SCSI_DEVICE_RESET 0x27
-#define I2O_SCSI_SCB_ABORT 0x83
-#define I2O_SCSI_SCB_EXEC 0x81
-
-/*
- * Detailed Status Codes for SCSI operations
- *
- * The 16-bit Detailed Status Code field for SCSI operations is divided
- * into two separate 8-bit fields. The lower 8 bits are used to report
- * Device Status information. The upper 8 bits are used to report
- * Adapter Status information. The definitions for these two fields,
- * however, will be consistent with the standard reply message frame
- * structure declaration, which treats this as a single 16-bit field.
- */
-
-
-/*
- * SCSI Device Completion Status Codes (defined by SCSI-2/3)
- */
-
-#define I2O_SCSI_DEVICE_DSC_MASK 0x00FF
-
-#define I2O_SCSI_DSC_SUCCESS 0x0000
-#define I2O_SCSI_DSC_CHECK_CONDITION 0x0002
-#define I2O_SCSI_DSC_BUSY 0x0008
-#define I2O_SCSI_DSC_RESERVATION_CONFLICT 0x0018
-#define I2O_SCSI_DSC_COMMAND_TERMINATED 0x0022
-#define I2O_SCSI_DSC_TASK_SET_FULL 0x0028
-#define I2O_SCSI_DSC_ACA_ACTIVE 0x0030
-
-/*
- * SCSI Adapter Status Codes (based on CAM-1)
- */
-
-#define I2O_SCSI_HBA_DSC_MASK 0xFF00
-
-#define I2O_SCSI_HBA_DSC_SUCCESS 0x0000
-
-#define I2O_SCSI_HBA_DSC_REQUEST_ABORTED 0x0200
-#define I2O_SCSI_HBA_DSC_UNABLE_TO_ABORT 0x0300
-#define I2O_SCSI_HBA_DSC_COMPLETE_WITH_ERROR 0x0400
-#define I2O_SCSI_HBA_DSC_ADAPTER_BUSY 0x0500
-#define I2O_SCSI_HBA_DSC_REQUEST_INVALID 0x0600
-#define I2O_SCSI_HBA_DSC_PATH_INVALID 0x0700
-#define I2O_SCSI_HBA_DSC_DEVICE_NOT_PRESENT 0x0800
-#define I2O_SCSI_HBA_DSC_UNABLE_TO_TERMINATE 0x0900
-#define I2O_SCSI_HBA_DSC_SELECTION_TIMEOUT 0x0A00
-#define I2O_SCSI_HBA_DSC_COMMAND_TIMEOUT 0x0B00
-
-#define I2O_SCSI_HBA_DSC_MR_MESSAGE_RECEIVED 0x0D00
-#define I2O_SCSI_HBA_DSC_SCSI_BUS_RESET 0x0E00
-#define I2O_SCSI_HBA_DSC_PARITY_ERROR_FAILURE 0x0F00
-#define I2O_SCSI_HBA_DSC_AUTOSENSE_FAILED 0x1000
-#define I2O_SCSI_HBA_DSC_NO_ADAPTER 0x1100
-#define I2O_SCSI_HBA_DSC_DATA_OVERRUN 0x1200
-#define I2O_SCSI_HBA_DSC_UNEXPECTED_BUS_FREE 0x1300
-#define I2O_SCSI_HBA_DSC_SEQUENCE_FAILURE 0x1400
-#define I2O_SCSI_HBA_DSC_REQUEST_LENGTH_ERROR 0x1500
-#define I2O_SCSI_HBA_DSC_PROVIDE_FAILURE 0x1600
-#define I2O_SCSI_HBA_DSC_BDR_MESSAGE_SENT 0x1700
-#define I2O_SCSI_HBA_DSC_REQUEST_TERMINATED 0x1800
-
-#define I2O_SCSI_HBA_DSC_IDE_MESSAGE_SENT 0x3300
-#define I2O_SCSI_HBA_DSC_RESOURCE_UNAVAILABLE 0x3400
-#define I2O_SCSI_HBA_DSC_UNACKNOWLEDGED_EVENT 0x3500
-#define I2O_SCSI_HBA_DSC_MESSAGE_RECEIVED 0x3600
-#define I2O_SCSI_HBA_DSC_INVALID_CDB 0x3700
-#define I2O_SCSI_HBA_DSC_LUN_INVALID 0x3800
-#define I2O_SCSI_HBA_DSC_SCSI_TID_INVALID 0x3900
-#define I2O_SCSI_HBA_DSC_FUNCTION_UNAVAILABLE 0x3A00
-#define I2O_SCSI_HBA_DSC_NO_NEXUS 0x3B00
-#define I2O_SCSI_HBA_DSC_SCSI_IID_INVALID 0x3C00
-#define I2O_SCSI_HBA_DSC_CDB_RECEIVED 0x3D00
-#define I2O_SCSI_HBA_DSC_LUN_ALREADY_ENABLED 0x3E00
-#define I2O_SCSI_HBA_DSC_BUS_BUSY 0x3F00
-
-#define I2O_SCSI_HBA_DSC_QUEUE_FROZEN 0x4000
-
-/*
- * SCSI Peripheral Device Parameter Groups
- */
-
-/*
- * SCSI Configuration and Operating Structures and Defines
- */
-
-#define I2O_SCSI_DEVICE_INFO_GROUP_NO 0x0000
-#define I2O_SCSI_DEVICE_BUS_PORT_INFO_GROUP_NO 0x0001
-
-/*
- * - 0000h - SCSI Device Information Parameters Group defines
- */
-
-/*
- * Device Type
- */
-
-#define I2O_SCSI_DEVICE_TYPE_DIRECT 0x00
-#define I2O_SCSI_DEVICE_TYPE_SEQUENTIAL 0x01
-#define I2O_SCSI_DEVICE_TYPE_PRINTER 0x02
-#define I2O_SCSI_DEVICE_TYPE_PROCESSOR 0x03
-#define I2O_SCSI_DEVICE_TYPE_WORM 0x04
-#define I2O_SCSI_DEVICE_TYPE_CDROM 0x05
-#define I2O_SCSI_DEVICE_TYPE_SCANNER 0x06
-#define I2O_SCSI_DEVICE_TYPE_OPTICAL 0x07
-#define I2O_SCSI_DEVICE_TYPE_MEDIA_CHANGER 0x08
-#define I2O_SCSI_DEVICE_TYPE_COMM 0x09
-#define I2O_SCSI_DEVICE_GRAPHICS_1 0x0A
-#define I2O_SCSI_DEVICE_GRAPHICS_2 0x0B
-#define I2O_SCSI_DEVICE_TYPE_ARRAY_CONT 0x0C
-#define I2O_SCSI_DEVICE_TYPE_UNKNOWN 0x1F
-
-/*
- * Flags
- */
-
-#define I2O_SCSI_PERIPHERAL_TYPE_FLAG 0x01
-#define I2O_SCSI_PERIPHERAL_TYPE_PARALLEL 0x00
-#define I2O_SCSI_PERIPHERAL_TYPE_SERIAL 0x01
-
-#define I2O_SCSI_RESERVED_FLAG 0x02
-
-#define I2O_SCSI_DISCONNECT_FLAG 0x04
-#define I2O_SCSI_DISABLE_DISCONNECT 0x00
-#define I2O_SCSI_ENABLE_DISCONNECT 0x04
-
-#define I2O_SCSI_MODE_MASK 0x18
-#define I2O_SCSI_MODE_SET_DATA 0x00
-#define I2O_SCSI_MODE_SET_DEFAULT 0x08
-#define I2O_SCSI_MODE_SET_SAFEST 0x10
-
-#define I2O_SCSI_DATA_WIDTH_MASK 0x60
-#define I2O_SCSI_DATA_WIDTH_8 0x00
-#define I2O_SCSI_DATA_WIDTH_16 0x20
-#define I2O_SCSI_DATA_WIDTH_32 0x40
-
-#define I2O_SCSI_SYNC_NEGOTIATION_FLAG 0x80
-#define I2O_SCSI_DISABLE_SYNC_NEGOTIATION 0x00
-#define I2O_SCSI_ENABLE_SYNC_NEGOTIATION 0x80
-
-/*
- * - 0001h - SCSI Device Bus Port Info Parameters Group defines
- */
-
-/*
- * Physical
- */
-
-#define I2O_SCSI_PORT_PHYS_OTHER 0x01
-#define I2O_SCSI_PORT_PHYS_UNKNOWN 0x02
-#define I2O_SCSI_PORT_PHYS_PARALLEL 0x03
-#define I2O_SCSI_PORT_PHYS_FIBRE_CHANNEL 0x04
-#define I2O_SCSI_PORT_PHYS_SERIAL_P1394 0x05
-#define I2O_SCSI_PORT_PHYS_SERIAL_SSA 0x06
-
-/*
- * Electrical
- */
-
-#define I2O_SCSI_PORT_ELEC_OTHER 0x01
-#define I2O_SCSI_PORT_ELEC_UNKNOWN 0x02
-#define I2O_SCSI_PORT_ELEC_SINGLE_ENDED 0x03
-#define I2O_SCSI_PORT_ELEC_DIFFERENTIAL 0x04
-#define I2O_SCSI_PORT_ELEC_LOW_VOLT_DIFF 0x05
-#define I2O_SCSI_PORT_ELEC_OPTICAL 0x06
-
-/*
- * Isochronous
- */
-
-#define I2O_SCSI_PORT_ISOC_NO 0x00
-#define I2O_SCSI_PORT_ISOC_YES 0x01
-#define I2O_SCSI_PORT_ISOC_UNKNOWN 0x02
-
-/*
- * Connector Type
- */
-
-#define I2O_SCSI_PORT_CONN_OTHER 0x01
-#define I2O_SCSI_PORT_CONN_UNKNOWN 0x02
-#define I2O_SCSI_PORT_CONN_NONE 0x03
-#define I2O_SCSI_PORT_CONN_SHIELDED_A_HD 0x04
-#define I2O_SCSI_PORT_CONN_UNSHIELDED_A_HD 0x05
-#define I2O_SCSI_PORT_CONN_SHIELDED_A_LD 0x06
-#define I2O_SCSI_PORT_CONN_UNSHIELDED_A_LD 0x07
-#define I2O_SCSI_PORT_CONN_SHIELDED_P_HD 0x08
-#define I2O_SCSI_PORT_CONN_UNSHIELDED_P_HD 0x09
-#define I2O_SCSI_PORT_CONN_SCA_I 0x0A
-#define I2O_SCSI_PORT_CONN_SCA_II 0x0B
-#define I2O_SCSI_PORT_CONN_FC_DB9 0x0C
-#define I2O_SCSI_PORT_CONN_FC_FIBRE 0x0D
-#define I2O_SCSI_PORT_CONN_FC_SCA_II_40 0x0E
-#define I2O_SCSI_PORT_CONN_FC_SCA_II_20 0x0F
-#define I2O_SCSI_PORT_CONN_FC_BNC 0x10
-
-/*
- * Connector Gender
- */
-
-#define I2O_SCSI_PORT_CONN_GENDER_OTHER 0x01
-#define I2O_SCSI_PORT_CONN_GENDER_UNKOWN 0x02
-#define I2O_SCSI_PORT_CONN_GENDER_FEMALE 0x03
-#define I2O_SCSI_PORT_CONN_GENDER_MALE 0x04
-
-
-/*
- * SCSI Device Group 0000h - Device Information Parameter Group
- */
-
-typedef struct i2o_scsi_device_info_scalar {
- uint8_t DeviceType;
- uint8_t Flags;
- uint16_t Reserved2;
- uint32_t Identifier;
- uint8_t LunInfo[8]; /* SCSI2 8-bit scalar LUN goes into */
- /* offset 1 */
- uint32_t QueueDepth;
- uint8_t Reserved1a;
- uint8_t NegOffset;
- uint8_t NegDataWidth;
- uint8_t Reserved1b;
- uint64_t NegSyncRate;
-} i2o_scsi_device_info_scalar_t;
-
-/*
- * SCSI Device Group 0001h - Bus Port Information Parameter Group
- */
-
-typedef struct i2o_scsi_bus_port_info_scalar {
- uint8_t PhysicalInterface;
- uint8_t ElectricalInterface;
- uint8_t Isochronous;
- uint8_t ConnectorType;
- uint8_t ConnectorGender;
- uint8_t Reserved1;
- uint16_t Reserved2;
- uint32_t MaxNumberDevices;
-} i2o_scsi_bus_port_info_scalar_t;
-
-/*
- * I2O SCSI Peripheral Event Indicator Assignment
- */
-
-#define I2O_SCSI_EVENT_SCSI_SMART 0x00000010
-
-/*
- * SCSI Peripheral Class Specific Message Definitions
- */
-
-/*
- * I2O SCSI Peripheral Successful Completion Reply Message Frame
- */
-
-typedef struct i2o_scsi_success_reply_message_frame {
- i2o_single_reply_message_frame_t StdReplyFrame;
- uint32_t TransferCount;
-} i2o_scsi_success_reply_message_frame_t;
-
-
-
-/*
- * I2O SCSI Peripheral Error Report Reply Message Frame
- */
-
-#define I2O_SCSI_SENSE_DATA_SZ 40
-
-typedef struct i2o_scsi_error_reply_message_frame {
- i2o_single_reply_message_frame_t StdReplyFrame;
- uint32_t TransferCount;
- uint32_t AutoSenseTransferCount;
- uint8_t SenseData[I2O_SCSI_SENSE_DATA_SZ];
-} i2o_scsi_error_reply_message_frame_t;
-
-
-
-/*
- * I2O SCSI Device Reset Message Frame
- */
-
-typedef struct i2o_scsi_device_reset_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_scsi_device_reset_message_t;
-
-
-
-/*
- * I2O SCSI Control Block Abort Message Frame
- */
-
-typedef struct i2o_scsi_scb_abort_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_transaction_context_t TransactionContextToAbort;
-} i2o_scsi_scb_abort_message_t;
-
-/*
- * I2O SCSI Control Block Execute Message Frame
- */
-
-#define I2O_SCSI_CDB_LENGTH 16
-
-#define I2O_SCB_FLAG_XFER_DIR_MASK 0xC000
-#define I2O_SCB_FLAG_NO_DATA_XFER 0x0000
-#define I2O_SCB_FLAG_XFER_FROM_DEVICE 0x4000
-#define I2O_SCB_FLAG_XFER_TO_DEVICE 0x8000
-
-#define I2O_SCB_FLAG_ENABLE_DISCONNECT 0x2000
-
-#define I2O_SCB_FLAG_TAG_TYPE_MASK 0x0380
-#define I2O_SCB_FLAG_NO_TAG_QUEUEING 0x0000
-#define I2O_SCB_FLAG_SIMPLE_QUEUE_TAG 0x0080
-#define I2O_SCB_FLAG_HEAD_QUEUE_TAG 0x0100
-#define I2O_SCB_FLAG_ORDERED_QUEUE_TAG 0x0180
-#define I2O_SCB_FLAG_ACA_QUEUE_TAG 0x0200
-
-#define I2O_SCB_FLAG_AUTOSENSE_MASK 0x0060
-#define I2O_SCB_FLAG_DISABLE_AUTOSENSE 0x0000
-#define I2O_SCB_FLAG_SENSE_DATA_IN_MESSAGE 0x0020
-#define I2O_SCB_FLAG_SENSE_DATA_IN_BUFFER 0x0060
-
-typedef struct i2o_scsi_scb_execute_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t CDBLength;
- uint8_t Reserved;
- uint16_t SCBFlags;
- uint8_t CDB[I2O_SCSI_CDB_LENGTH];
- uint32_t ByteCount;
- i2o_sg_element_t SGL;
-} i2o_scsi_scb_execute_message_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_I2OBSCSI_H */
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 */
diff --git a/usr/src/uts/common/sys/i2o/i2omsg.h b/usr/src/uts/common/sys/i2o/i2omsg.h
deleted file mode 100644
index bad40e2733..0000000000
--- a/usr/src/uts/common/sys/i2o/i2omsg.h
+++ /dev/null
@@ -1,1570 +0,0 @@
-/*
- * Copyright (c) 1998-1999 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/*
- * *************************************************************************
- * 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 deriavative works to this header-file
- * program. However, all copies of the program and its derivative
- * works must contain the I2O SIG copyright notice.
- * *************************************************************************
- */
-
-/*
- * *************************************************************************
- * i2omsg.h -- I2O Message defintion file
- *
- * This file contains information presented in Chapter 3, 4 and 6 of
- * the I2O(tm) Specification and most of the I2O Global defines and
- * Typedefs.
- * *************************************************************************
- */
-
-#ifndef _SYS_I2OMSG_H
-#define _SYS_I2OMSG_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define I2OMSG_REV 1_5_4 /* I2OMsg 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.
- * *************************************************************************
- */
-
-#include <sys/types.h>
-#include <sys/dditypes.h>
-
-/* Set to 1 for 64 bit Context Fields */
-#define I2O_64BIT_CONTEXT 0
-
-/* ************************************************************************** */
-
-/* Common functions accross all classes. */
-
-#define I2O_PRIVATE_MESSAGE 0xFF
-
-/* ************************************************************************** */
-/* Class ID and Code Assignments */
-
-
-#define I2O_CLASS_VERSION_10 0x00
-#define I2O_CLASS_VERSION_11 0x01
-
-/* Class Code Names: Table 6-1 Class Code Assignments. */
-
-#define I2O_CLASS_EXECUTIVE 0x000
-#define I2O_CLASS_DDM 0x001
-#define I2O_CLASS_RANDOM_BLOCK_STORAGE 0x010
-#define I2O_CLASS_SEQUENTIAL_STORAGE 0x011
-#define I2O_CLASS_LAN 0x020
-#define I2O_CLASS_WAN 0x030
-#define I2O_CLASS_FIBRE_CHANNEL_PORT 0x040
-#define I2O_CLASS_FIBRE_CHANNEL_PERIPHERAL 0x041
-#define I2O_CLASS_SCSI_PERIPHERAL 0x051
-#define I2O_CLASS_ATE_PORT 0x060
-#define I2O_CLASS_ATE_PERIPHERAL 0x061
-#define I2O_CLASS_FLOPPY_CONTROLLER 0x070
-#define I2O_CLASS_FLOPPY_DEVICE 0x071
-#define I2O_CLASS_BUS_ADAPTER_PORT 0x080
-/* Class Codes 0x090 - 0x09f are reserved for Peer-to-Peer classes */
-#define I2O_CLASS_MATCH_ANYCLASS 0xffffffff
-
-#define I2O_SUBCLASS_i960 0x001
-#define I2O_SUBCLASS_HDM 0x020
-#define I2O_SUBCLASS_ISM 0x021
-
-/* ************************************************************************** */
-/* Message Frame defines and structures */
-
-/* Defines for the Version_Status field. */
-
-#define I2O_VERSION_10 0x00
-#define I2O_VERSION_11 0x01
-
-#define I2O_VERSION_OFFSET_NUMBER_MASK 0x07
-#define I2O_VERSION_OFFSET_SGL_TRL_OFFSET_MASK 0xF0
-
-/*
- * Defines for the Message Flags Field.
- * Please Note that the FAIL bit is only set in the Transport Fail Message.
- */
-#define I2O_MESSAGE_FLAGS_STATIC 0x01
-#define I2O_MESSAGE_FLAGS_64BIT_CONTEXT 0x02
-#define I2O_MESSAGE_FLAGS_MULTIPLE 0x10
-#define I2O_MESSAGE_FLAGS_FAIL 0x20
-#define I2O_MESSAGE_FLAGS_LAST 0x40
-#define I2O_MESSAGE_FLAGS_REPLY 0x80
-
-/* Defines for Request Status Codes: Table 3-1 Reply Status Codes. */
-
-#define I2O_REPLY_STATUS_SUCCESS 0x00
-#define I2O_REPLY_STATUS_ABORT_DIRTY 0x01
-#define I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER 0x02
-#define I2O_REPLY_STATUS_ABORT_PARTIAL_TRANSFER 0x03
-#define I2O_REPLY_STATUS_ERROR_DIRTY 0x04
-#define I2O_REPLY_STATUS_ERROR_NO_DATA_TRANSFER 0x05
-#define I2O_REPLY_STATUS_ERROR_PARTIAL_TRANSFER 0x06
-#define I2O_REPLY_STATUS_PROCESS_ABORT_DIRTY 0x08
-#define I2O_REPLY_STATUS_PROCESS_ABORT_NO_DATA_TRANSFER 0x09
-#define I2O_REPLY_STATUS_PROCESS_ABORT_PARTIAL_TRANSFER 0x0A
-#define I2O_REPLY_STATUS_TRANSACTION_ERROR 0x0B
-#define I2O_REPLY_STATUS_PROGRESS_REPORT 0x80
-
-/*
- * DetailedStatusCode defines for ALL messages: Table 3-2 Detailed Status Codes.
- */
-
-#define I2O_DETAIL_STATUS_SUCCESS 0x0000
-#define I2O_DETAIL_STATUS_BAD_KEY 0x0002
-#define I2O_DETAIL_STATUS_TCL_ERROR 0x0003
-#define I2O_DETAIL_STATUS_REPLY_BUFFER_FULL 0x0004
-#define I2O_DETAIL_STATUS_NO_SUCH_PAGE 0x0005
-#define I2O_DETAIL_STATUS_INSUFFICIENT_RESOURCE_SOFT 0x0006
-#define I2O_DETAIL_STATUS_INSUFFICIENT_RESOURCE_HARD 0x0007
-#define I2O_DETAIL_STATUS_CHAIN_BUFFER_TOO_LARGE 0x0009
-#define I2O_DETAIL_STATUS_UNSUPPORTED_FUNCTION 0x000A
-#define I2O_DETAIL_STATUS_DEVICE_LOCKED 0x000B
-#define I2O_DETAIL_STATUS_DEVICE_RESET 0x000C
-#define I2O_DETAIL_STATUS_INAPPROPRIATE_FUNCTION 0x000D
-#define I2O_DETAIL_STATUS_INVALID_INITIATOR_ADDRESS 0x000E
-#define I2O_DETAIL_STATUS_INVALID_MESSAGE_FLAGS 0x000F
-#define I2O_DETAIL_STATUS_INVALID_OFFSET 0x0010
-#define I2O_DETAIL_STATUS_INVALID_PARAMETER 0x0011
-#define I2O_DETAIL_STATUS_INVALID_REQUEST 0x0012
-#define I2O_DETAIL_STATUS_INVALID_TARGET_ADDRESS 0x0013
-#define I2O_DETAIL_STATUS_MESSAGE_TOO_LARGE 0x0014
-#define I2O_DETAIL_STATUS_MESSAGE_TOO_SMALL 0x0015
-#define I2O_DETAIL_STATUS_MISSING_PARAMETER 0x0016
-#define I2O_DETAIL_STATUS_TIMEOUT 0x0017
-#define I2O_DETAIL_STATUS_UNKNOWN_ERROR 0x0018
-#define I2O_DETAIL_STATUS_UNKNOWN_FUNCTION 0x0019
-#define I2O_DETAIL_STATUS_UNSUPPORTED_VERSION 0x001A
-#define I2O_DEATIL_STATUS_DEVICE_BUSY 0x001B
-#define I2O_DETAIL_STATUS_DEVICE_NOT_AVAILABLE 0x001C
-
-/* Common I2O Field sizes */
-
-#define I2O_TID_SZ 12
-#define I2O_FUNCTION_SZ 8
-#define I2O_UNIT_ID_SZ 16
-#define I2O_SEGMENT_NUMBER_SZ 12
-
-#define I2O_IOP_ID_SZ 12
-#define I2O_GROUP_ID_SZ 16
-#define I2O_IOP_STATE_SZ 8
-#define I2O_MESSENGER_TYPE_SZ 8
-
-#define I2O_CLASS_ID_SZ 12
-#define I2O_CLASS_ORGANIZATION_ID_SZ 16
-
-#define I2O_4BIT_VERSION_SZ 4
-#define I2O_8BIT_FLAGS_SZ 8
-#define I2O_COMMON_LENGTH_FIELD_SZ 16
-
-#define I2O_DEVID_DESCRIPTION_SZ 16
-#define I2O_DEVID_VENDOR_INFO_SZ 16
-#define I2O_DEVID_PRODUCT_INFO_SZ 16
-#define I2O_DEVID_REV_LEVEL_SZ 8
-#define I2O_MODULE_NAME_SZ 24
-
-#define I2O_BIOS_INFO_SZ 8
-
-#define I2O_RESERVED_4BITS 4
-#define I2O_RESERVED_8BITS 8
-#define I2O_RESERVED_12BITS 12
-#define I2O_RESERVED_16BITS 16
-#define I2O_RESERVED_20BITS 20
-#define I2O_RESERVED_24BITS 24
-#define I2O_RESERVED_28BITS 28
-
-typedef uint32_t I2O_PARAMETER_TID;
-
-#if I2O_64BIT_CONTEXT
-
-typedef union {
- void (* i2o_msg_complete)(void *, ddi_acc_handle_t);
- uint64_t initiator_context_64bits;
-} i2o_initiator_context_t;
-
-typedef uint64_t i2o_transaction_context_t;
-
-#else
-
-typedef union {
- void (* i2o_msg_complete)(void *, ddi_acc_handle_t);
- uint32_t initiator_context_32bits;
-} i2o_initiator_context_t;
-
-typedef uint32_t i2o_transaction_context_t;
-
-#endif
-
-/* Serial Number format defines */
-
-#define I2O_SERIAL_FORMAT_UNKNOWN 0
-#define I2O_SERIAL_FORMAT_BINARY 1
-#define I2O_SERIAL_FORMAT_ASCII 2
-#define I2O_SERIAL_FORMAT_UNICODE 3
-#define I2O_SERIAL_FORMAT_LAN_MAC 4
-#define I2O_SERIAL_FORMAT_WAN 5
-
-/* Special TID Assignments */
-
-#define I2O_IOP_TID 0
-#define I2O_HOST_TID 1
-
-
-/* ************************************************************************** */
-
-/* I2O Message Frame common for all messages */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_message_frame {
- 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;
- i2o_initiator_context_t InitiatorContext;
-} i2o_message_frame_t;
-
-/* macros to access the bit fields in Message Frame */
-
-#define get_msg_TargetAddress(mp, hdl) \
- (mp)->u2.s2.TargetAddress
-#define put_msg_TargetAddress(mp, id, hdl) \
- ((mp)->u2.s2.TargetAddress = (id))
-#define get_msg_InitiatorAddress(mp, hdl) \
- (mp)->u2.s2.InitiatorAddress
-#define put_msg_InitiatorAddress(mp, id, hdl) \
- ((mp)->u2.s2.InitiatorAddress = (id))
-#define get_msg_Function(mp, hdl) \
- (mp)->u2.s2.Function
-#define put_msg_Function(mp, n, hdl) \
- ((mp)->u2.s2.Function = (n))
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_message_frame {
- 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;
- i2o_initiator_context_t InitiatorContext;
-} i2o_message_frame_t;
-
-/* macros to access the bit fields in Message Frame */
-
-#define get_msg_Function(mp, hdl) \
- (mp)->u2.s2.Function
-#define put_msg_Function(mp, n, hdl) \
- ((mp)->u2.s2.Function = (n))
-
-#define get_msg_TargetAddress(mp, hdl) \
- (ddi_get32(hdl, &(mp)->u2.w2) & 0xFFF)
-#define put_msg_TargetAddress(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, \
- (ddi_get32(hdl, &(mp)->u2.w2) & ~0xFFF) | ((id) & 0xFFF))
-
-#define get_msg_InitiatorAddress(mp, hdl) \
- ((ddi_get32(hdl, &(mp)->u2.w2) >> 12) & 0xFFF)
-#define put_msg_InitiatorAddress(mp, id, hdl) \
- ddi_put32(hdl, &(mp)->u2.w2, (ddi_get32(hdl, &(mp)->u2.w2) & \
- ~0xFFF000) | (((id) & 0xFFF) << 12))
-#endif
-
-
-/* ************************************************************************** */
-
-/* Transaction Reply Lists (TRL) Control Word structure */
-
-#define I2O_TRL_FLAGS_SINGLE_FIXED_LENGTH 0x00
-#define I2O_TRL_FLAGS_SINGLE_VARIABLE_LENGTH 0x40
-#define I2O_TRL_FLAGS_MULTIPLE_FIXED_LENGTH 0x80
-
-typedef struct i2o_trl_control_word {
- uint8_t TrlCount;
- uint8_t TrlElementSize;
- uint8_t reserved;
- uint8_t TrlFlags;
-#if I2O_64BIT_CONTEXT
- uint32_t Padding; /* Padding for 64 bit */
-#endif
-} i2o_trl_control_word_t;
-
-/* ************************************************************************** */
-
-/* I2O Successful Single Transaction Reply Message Frame structure. */
-
-typedef struct i2o_single_reply_message_frame {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t DetailedStatusCode;
- uint8_t reserved;
- uint8_t ReqStatus;
- /* ReplyPayload */
-} i2o_single_reply_message_frame_t;
-
-/* ************************************************************************** */
-
-/* I2O Successful Multiple Transaction Reply Message Frame structure. */
-
-typedef struct i2o_multiple_reply_message_frame {
- i2o_message_frame_t StdMessageFrame;
- i2o_trl_control_word_t TrlControlWord;
- uint16_t DetailedStatusCode;
- uint8_t reserved;
- uint8_t ReqStatus;
- /* TransactionDetails[] */
-} i2o_multiple_reply_message_frame_t;
-
-/* ************************************************************************** */
-
-/* I2O Private Message Frame structure. */
-
-typedef struct i2o_private_message_frame {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t XFunctionCode;
- uint16_t OrganizationID;
- /* PrivatePayload[] */
-} i2o_private_message_frame_t;
-
-/* ************************************************************************** */
-
-/* Message Failure Severity Codes */
-
-#define I2O_SEVERITY_FORMAT_ERROR 0x1
-#define I2O_SEVERITY_PATH_ERROR 0x2
-#define I2O_SEVERITY_PATH_STATE 0x4
-#define I2O_SEVERITY_CONGESTION 0x8
-
-/* Transport Failure Codes: Table 3-3 Mesasge Failure Codes */
-
-#define I2O_FAILURE_CODE_TRANSPORT_SERVICE_SUSPENDED 0x81
-#define I2O_FAILURE_CODE_TRANSPORT_SERVICE_TERMINATED 0x82
-#define I2O_FAILURE_CODE_TRANSPORT_CONGESTION 0x83
-#define I2O_FAILURE_CODE_TRANSPORT_FAIL 0x84
-#define I2O_FAILURE_CODE_TRANSPORT_STATE_ERROR 0x85
-#define I2O_FAILURE_CODE_TRANSPORT_TIME_OUT 0x86
-#define I2O_FAILURE_CODE_TRANSPORT_ROUTING_FAILURE 0x87
-#define I2O_FAILURE_CODE_TRANSPORT_INVALID_VERSION 0x88
-#define I2O_FAILURE_CODE_TRANSPORT_INVALID_OFFSET 0x89
-#define I2O_FAILURE_CODE_TRANSPORT_INVALID_MSG_FLAGS 0x8A
-#define I2O_FAILURE_CODE_TRANSPORT_FRAME_TOO_SMALL 0x8B
-#define I2O_FAILURE_CODE_TRANSPORT_FRAME_TOO_LARGE 0x8C
-#define I2O_FAILURE_CODE_TRANSPORT_INVALID_TARGET_ID 0x8D
-#define I2O_FAILURE_CODE_TRANSPORT_INVALID_INITIATOR_ID 0x8E
-#define I2O_FAILURE_CODE_TRANSPORT_INVALID_INITIATOR_CONTEXT 0x8F
-#define I2O_FAILURE_CODE_TRANSPORT_UNKNOWN_FAILURE 0xFF
-
-/* IOP_ID and Severity sizes */
-
-#define I2O_FAILCODE_SEVERITY_SZ 8
-#define I2O_FAILCODE_CODE_SZ 8
-
-/* I2O Transport Message Reply for Message Failure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_failure_reply_message_frame {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t LowestVersion;
- uint8_t HighestVersion;
- uint8_t Severity;
- uint8_t FailureCode;
- union {
- struct {
- uint16_t FailingIOP_ID:12;
- uint16_t reserved:4;
- } s;
- uint16_t h;
- } u1;
- uint16_t FailingHostUnitID;
- uint32_t AgeLimit;
- i2o_message_frame_t *PreservedMFA;
-} i2o_failure_reply_message_frame_t;
-
-/* macros to access the bit field(s) */
-
-#define get_reply_msg_FailingIOP_ID(p, hdl) \
- ((p)->u1.s.FailingIOP_ID)
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_failure_reply_message_frame {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t LowestVersion;
- uint8_t HighestVersion;
- uint8_t Severity;
- uint8_t FailureCode;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t FailingIOP_ID:12;
- } s;
- uint16_t h;
- } u1;
- uint16_t FailingHostUnitID;
- uint32_t AgeLimit;
- i2o_message_frame_t *PreservedMFA;
-} i2o_failure_reply_message_frame_t;
-
-/* macros to access the bit field(s) */
-
-#define get_reply_msg_FailingIOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u1.h) & 0xFFF)
-#endif
-
-/* I2O Transport Message Reply for Transaction Error. */
-
-typedef struct i2o_transaction_error_reply_message_frame {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t DetailedStatusCode;
- uint8_t reserved;
- uint8_t ReqStatus; /* Should Transaction Error */
- uint32_t ErrorOffset;
- uint8_t BitOffset;
- uint8_t reserved1;
- uint16_t reserved2;
-} i2o_transaction_error_reply_message_frame_t;
-
-/* ************************************************************************** */
-
-/* Misc. commonly used structures */
-
-#define I2O_MAX_SERIAL_NUMBER_SZ 256
-
-typedef struct i2o_serial_info {
- uint8_t SerialNumberLength;
- uint8_t SerialNumberFormat;
- uint8_t SerialNumber[I2O_MAX_SERIAL_NUMBER_SZ];
-} i2o_serial_info_t;
-
-
-/* ************************************************************************** */
-/* Hardware Resource Table (HRT) and Logical Configuration Table (LCT) */
-/* ************************************************************************** */
-
-/* Bus Type Code defines */
-
-#define I2O_LOCAL_BUS 0
-#define I2O_ISA_BUS 1
-#define I2O_EISA_BUS 2
-#define I2O_PCI_BUS 4
-#define I2O_PCMCIA_BUS 5
-#define I2O_NUBUS_BUS 6
-#define I2O_CARDBUS_BUS 7
-#define I2O_OTHER_BUS 0x80
-
-#define I2O_HRT_STATE_SZ 4
-#define I2O_HRT_BUS_NUMBER_SZ 8
-#define I2O_HRT_BUS_TYPE_SZ 8
-
-
-/* Bus Structures */
-
-/* PCI Bus */
-typedef struct i2o_pci_bus_info {
- uint8_t PciFunctionNumber;
- uint8_t PciDeviceNumber;
- uint8_t PciBusNumber;
- uint8_t reserved;
- uint16_t PciVendorID;
- uint16_t PciDeviceID;
-} i2o_pci_bus_info_t;
-
-/* Local Bus */
-typedef struct i2o_local_bus_info {
- uint16_t LbBaseIOPort;
- uint16_t reserved;
- uint32_t LbBaseMemoryAddress;
-} i2o_local_bus_info_t;
-
-/* ISA Bus */
-typedef struct i2o_isa_bus_info {
- uint16_t IsaBaseIOPort;
- uint8_t CSN;
- uint8_t reserved;
- uint32_t IsaBaseMemoryAddress;
-} i2o_isa_bus_info_t;
-
-/* EISA Bus */
-typedef struct i2o_eisa_bus_info {
- uint16_t EisaBaseIOPort;
- uint8_t reserved;
- uint8_t EisaSlotNumber;
- uint32_t EisaBaseMemoryAddress;
-} i2o_eisa_bus_info_t;
-
-/* Other Bus */
-typedef struct i2o_other_bus_info {
- uint16_t BaseIOPort;
- uint16_t reserved;
- uint32_t BaseMemoryAddress;
-} i2o_other_bus_info_t;
-
-
-/* HRT Entry Block */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_hrt_entry {
- uint32_t AdapterID;
- union {
- struct {
- uint16_t ControllingTID:12;
- uint16_t AdapterState:4;
- } s2;
- uint16_t h2;
- } u2;
- uint8_t BusNumber;
- uint8_t BusType;
- union {
- /* PCI Bus */
- i2o_pci_bus_info_t PCIBus;
-
- /* Local Bus */
- i2o_local_bus_info_t LocalBus;
-
- /* ISA Bus */
- i2o_isa_bus_info_t ISABus;
-
- /* EISA Bus */
- i2o_eisa_bus_info_t EISABus;
-
- /* Other. */
- i2o_other_bus_info_t OtherBus;
- } uBus;
-} i2o_hrt_entry_t;
-
-/* macros to access the bit fields */
-
-#define get_hrt_entry_ControllingTID(p, hdl) (p)->u2.s2.ControllingTID
-#define get_hrt_entry_AdapterState(p, hdl) (p)->u2.s2.AdapterState
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_hrt_entry {
- uint32_t AdapterID;
- union {
- struct {
- uint16_t AdapterState:4;
- uint16_t ControllingTID:12;
- } s2;
- uint16_t h2;
- } u2;
- uint8_t BusNumber;
- uint8_t BusType;
- union {
- /* PCI Bus */
- i2o_pci_bus_info_t PCIBus;
-
- /* Local Bus */
- i2o_local_bus_info_t LocalBus;
-
- /* ISA Bus */
- i2o_isa_bus_info_t ISABus;
-
- /* EISA Bus */
- i2o_eisa_bus_info_t EISABus;
-
- /* Other. */
- i2o_other_bus_info_t OtherBus;
- } uBus;
-} i2o_hrt_entry_t;
-
-/* macros to access the bit fields */
-
-#define get_hrt_entry_ControllingTID(p, hdl) \
- (ddi_get16(hdl, &(p)->u2.h2) & 0xFFF)
-#define get_hrt_entry_AdapterState(p, hdl) \
- ((ddi_get16(hdl, &(p)->u2.h2) >> 12) & 0xF)
-#endif
-
-/* I2O Hardware Resource Table structure. */
-
-typedef struct i2o_hrt {
- uint16_t NumberEntries;
- uint8_t EntryLength;
- uint8_t HRTVersion;
- uint32_t CurrentChangeIndicator;
- i2o_hrt_entry_t HRTEntry[1];
-} i2o_hrt_t;
-
-
-/* ************************************************************************** */
-/* Logical Configuration Table */
-/* ************************************************************************** */
-
-/* I2O Logical Configuration Table structures. */
-
-#define I2O_IDENTITY_TAG_SZ 8
-
-/* I2O Logical Configuration Table Device Flags */
-
-#define I2O_LCT_DEVICE_FLAGS_CONF_DIALOG_REQUEST 0x01
-#define I2O_LCT_DEVICE_FLAGS_MORE_THAN_1_USER 0x02
-#define I2O_LCT_DEVICE_FLAGS_PEER_SERVICE_DISABLED 0x10
-#define I2O_LCT_DEVICE_FLAGS_MANAGEMENT_SERVICE_DISABLED 0x20
-
-/* LCT Entry Block */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_lct_entry {
- union {
- struct {
- uint32_t TableEntrySize:16;
- uint32_t LocalTID:12;
- uint32_t reserved:4;
- } s1;
- uint32_t w1;
- } u1;
- uint32_t ChangeIndicator;
- uint32_t DeviceFlags;
- union {
- struct i2o_class_id {
- uint32_t Class:12;
- uint32_t Version:4;
- uint32_t OrganizationID:16;
- } s4;
- uint32_t w4;
- } u4;
- uint32_t SubClassInfo;
- union {
- struct {
- uint32_t UserTID:12;
- uint32_t ParentTID:12;
- uint32_t BiosInfo:8;
- } s6;
- uint32_t w6;
- } u6;
- uint8_t IdentityTag[I2O_IDENTITY_TAG_SZ];
- uint32_t EventCapabilities;
-} i2o_lct_entry_t;
-
-/* macros to access the bit fields */
-
-#define get_lct_entry_LocalTID(p, hdl) (p)->u1.s1.LocalTID
-#define get_lct_entry_TableEntrySize(p, hdl) (p)->u1.s1.TableEntrySize
-
-#define get_lct_entry_Class(p, hdl) (p)->u4.s4.Class
-#define get_lct_entry_Version(p, hdl) (p)->u4.s4.Version
-#define get_lct_entry_OrganizationID(p, hdl) (p)->u4.s4.OrganizationID
-
-#define get_lct_entry_BiosInfo(p, hdl) (p)->u6.s6.BiosInfo
-#define get_lct_entry_ParentTID(p, hdl) (p)->u6.s6.ParentTID
-#define get_lct_entry_UserTID(p, hdl) (p)->u6.s6.UserTID
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_lct_entry {
- union {
- struct {
- uint32_t reserved:4;
- uint32_t LocalTID:12;
- uint32_t TableEntrySize:16;
- } s1;
- uint32_t w1;
- } u1;
- uint32_t ChangeIndicator;
- uint32_t DeviceFlags;
- union {
- struct i2o_class_id {
- uint32_t OrganizationID:16;
- uint32_t Version:4;
- uint32_t Class:12;
- } s4;
- uint32_t w4;
- } u4;
- uint32_t SubClassInfo;
- union {
- struct {
- uint32_t BiosInfo:8;
- uint32_t ParentTID:12;
- uint32_t UserTID:12;
- } s6;
- uint32_t w6;
- } u6;
- uint8_t IdentityTag[I2O_IDENTITY_TAG_SZ];
- uint32_t EventCapabilities;
-} i2o_lct_entry_t;
-
-/* macros to access the bit fields */
-
-#define get_lct_entry_TableEntrySize(p, hdl) \
- (ddi_get32(hdl, &(p)->u1.w1) & 0xFFFF)
-#define get_lct_entry_LocalTID(p, hdl) \
- ((ddi_get32(hdl, (p)->u1.w1) >> 16) & 0xFFF)
-
-#define get_lct_entry_OrganizationID(p, hdl) \
- ((ddi_get16(hdl, (p)->u4.w4) >> 16) & 0xFFFF)
-#define get_lct_entry_Version(p, hdl) \
- ((ddi_get32(hdl, &(p)->u4.w4) >> 12) & 0xF)
-#define get_lct_entry_Class(p, hdl) \
- (ddi_get32(hdl, &(p)->u4.w4) & 0xFFF)
-
-#define get_lct_entry_BiosInfo(p, hdl) (p)->u6.s6.BiosInfo
-#define get_lct_entry_ParentTID(p, hdl) \
- ((ddi_get32(hdtl, &(p)->u6.w6) >> 12) & 0xFFF)
-#define get_lct_entry_UserTID(p, hdl) \
- (ddi_get32(hdtl, &(p)->u6.w6) & 0xFFF)
-
-#endif
-
-/* I2O Logical Configuration Table structure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_lct {
- uint16_t TableSize;
- union {
- struct {
- uint16_t BootDeviceTID:12;
- uint16_t LctVer:4;
- } s1;
- uint16_t h1;
- } u1;
- uint32_t IopFlags;
- uint32_t CurrentChangeIndicator;
- i2o_lct_entry_t LCTEntry[1];
-} i2o_lct_t;
-
-/* macros to access the bit fields */
-
-#define get_lct_BootDeviceTID(p, hdl) (p)->u1.s1.BootDeviceTID
-#define get_lct_LctVer(p, hdl) (p)->u1.s1.LctVer
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_lct {
- uint16_t TableSize;
- union {
- struct {
- uint16_t LctVer:4;
- uint16_t BootDeviceTID:12;
- } s1;
- uint16_t h1;
- } u1;
- uint32_t IopFlags;
- uint32_t CurrentChangeIndicator;
- i2o_lct_entry_t LCTEntry[1];
-} i2o_lct_t;
-
-/* macros to access the bit fields */
-
-#define get_lct_BootDeviceTID(p, hdl) \
- ((ddi_get32(hdl, &(p)->u1.w1) >> 16) & 0xFFF)
-#define get_lct_LctVer(p, hdl) \
- ((ddi_get32(hdl, &(p)->u1.w1) >> 28) & 0xF)
-
-#endif
-
-/* ************************************************************************** */
-
-/* Memory Addressing structures and defines. */
-
-/* SglFlags defines. */
-
-#define I2O_SGL_FLAGS_LAST_ELEMENT 0x80
-#define I2O_SGL_FLAGS_END_OF_BUFFER 0x40
-
-#define I2O_SGL_FLAGS_IGNORE_ELEMENT 0x00
-#define I2O_SGL_FLAGS_TRANSPORT_ELEMENT 0x04
-#define I2O_SGL_FLAGS_BIT_BUCKET_ELEMENT 0x08
-#define I2O_SGL_FLAGS_IMMEDIATE_DATA_ELEMENT 0x0C
-#define I2O_SGL_FLAGS_SIMPLE_ADDRESS_ELEMENT 0x10
-#define I2O_SGL_FLAGS_PAGE_LIST_ADDRESS_ELEMENT 0x20
-#define I2O_SGL_FLAGS_CHAIN_POINTER_ELEMENT 0x30
-#define I2O_SGL_FLAGS_LONG_TRANSACTION_ELEMENT 0x40
-#define I2O_SGL_FLAGS_SHORT_TRANSACTION_ELEMENT 0x70
-#define I2O_SGL_FLAGS_SGL_ATTRIBUTES_ELEMENT 0x7C
-
-#define I2O_SGL_FLAGS_BC0 0x01
-#define I2O_SGL_FLAGS_BC1 0x02
-#define I2O_SGL_FLAGS_DIR 0x04
-#define I2O_SGL_FLAGS_LOCAL_ADDRESS 0x08
-
-#define I2O_SGL_FLAGS_CONTEXT_COUNT_MASK 0x03
-#define I2O_SGL_FLAGS_ADDRESS_MODE_MASK 0x3C
-#define I2O_SGL_FLAGS_NO_CONTEXT 0x00
-
-/* Scatter/Gather Truth Table */
-
-/*
- *
- * typedef enum _SG_TYPE {
- * INVALID,
- * Ignore,
- * TransportDetails,
- * BitBucket,
- * ImmediateData,
- * Simple,
- * PageList,
- * ChainPointer,
- * ShortTransaction,
- * LongTransaction,
- * SGLAttributes,
- * INVALID/ReservedLongFormat,
- * INVALID/ReservedShortFormat
- * } SG_TYPE, *PSG_TYPE;
- *
- *
- * 0x00 Ignore;
- * 0x04 TransportDetails;
- * 0x08 BitBucket;
- * 0x0C ImmediateData;
- * 0x10 Simple;
- * 0x14 Simple;
- * 0x18 Simple;
- * 0x1C Simple;
- * 0x20 PageList;
- * 0x24 PageList;
- * 0x28 PageList;
- * 0x2C PageList;
- * 0x30 ChainPointer;
- * 0x34 INVALID;
- * 0x38 ChainPointer;
- * 0x3C INVALID;
- * 0x40 LongTransaction;
- * 0x44 INVALID/ReservedLongFormat;
- * 0x48 BitBucket;
- * 0x4C ImmediateData;
- * 0x50 Simple;
- * 0x54 Simple;
- * 0x58 Simple;
- * 0x5C Simple;
- * 0x60 PageList;
- * 0x64 PageList;
- * 0x68 PageList;
- * 0x6C PageList;
- * 0x70 ShortTransaction;
- * 0x74 INVALID/ReservedShortFormat;
- * 0x78 INVALID/ReservedShortFormat;
- * 0X7C SGLATTRIBUTES;
- */
-
-
-/* 32 Bit Context Field defines */
-
-#define I2O_SGL_FLAGS_CONTEXT32_NULL 0x00
-#define I2O_SGL_FLAGS_CONTEXT32_U32 0x01
-#define I2O_SGL_FLAGS_CONTEXT32_U64 0x02
-#define I2O_SGL_FLAGS_CONTEXT32_U96 0x03
-
-#define I2O_SGL_FLAGS_CONTEXT32_NULL_SZ 0x00
-#define I2O_SGL_FLAGS_CONTEXT32_U32_SZ 0x04
-#define I2O_SGL_FLAGS_CONTEXT32_U64_SZ 0x08
-#define I2O_SGL_FLAGS_CONTEXT32_U96_SZ 0x0C
-
-/* 64 Bit Context Field defines */
-
-#define I2O_SGL_FLAGS_CONTEXT64_NULL 0x00
-#define I2O_SGL_FLAGS_CONTEXT64_U64 0x01
-#define I2O_SGL_FLAGS_CONTEXT64_U128 0x02
-#define I2O_SGL_FLAGS_CONTEXT64_U192 0x03
-
-#define I2O_SGL_FLAGS_CONTEXT64_NULL_SZ 0x00
-#define I2O_SGL_FLAGS_CONTEXT64_U64_SZ 0x08
-#define I2O_SGL_FLAGS_CONTEXT64_U128_SZ 0x10
-#define I2O_SGL_FLAGS_CONTEXT64_U192_SZ 0x18
-
-/* SGL Attribute Element defines */
-
-#define I2O_SGL_ATTRIBUTE_FLAGS_BIT_BUCKET_HINT 0x0400
-#define I2O_SGL_ATTRIBUTE_FLAGS_IMMEDIATE_DATA_HINT 0x0200
-#define I2O_SGL_ATTRIBUTE_FLAGS_LOCAL_ADDRESS_HINT 0x0100
-#define I2O_SGL_ATTRIBUTE_FLAGS_32BIT_TRANSACTION 0x0000
-#define I2O_SGL_ATTRIBUTE_FLAGS_64BIT_TRANSACTION 0x0004
-#define I2O_SGL_ATTRIBUTE_FLAGS_32BIT_LOCAL_ADDRESS 0x0000
-
-/* SG Size defines */
-
-#define I2O_SG_COUNT_SZ 24
-#define I2O_SG_FLAGS_SZ 8
-
-/* Standard Flags and Count fields for SG Elements */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef union i2o_flags_count {
- struct {
- uint32_t Count:24;
- uint32_t Flags:8;
- } flags_count;
- uint32_t cword;
-} i2o_flags_count_t;
-
-#define get_flags_count_Count(p, hdl) (p)->flags_count.Count
-#define put_flags_count_Count(p, v, hdl) ((p)->flags_count.Count = (v))
-#define get_flags_count_Flags(p, hdl) (p)->flags_count.Flags
-#define put_flags_count_Flags(p, v, hdl) ((p)->flags_count.Flags = (v))
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef union i2o_flags_count {
- struct {
- uint32_t Flags:8;
- uint32_t Count:24;
- } flags_count;
- uint32_t cword;
-} i2o_flags_count_t;
-
-#define get_flags_count_Count(p, hdl) \
- (ddi_get32(hdl, &(p)->cword) & 0xFFFFFF)
-#define put_flags_count_Count(p, v, hdl) \
- ddi_put32(hdl, &(p)->cword, \
- (ddi_get32(hdl, &(p)->cword) & ~0xFFFFFF) | \
- ((uint32_t)(v) & 0xFFFFFF))
-#define get_flags_count_Flags(p, hdl) \
- ((ddi_get32(hdl, &(p)->cword) >> 24) & 0xFF)
-#define put_flags_count_Flags(p, v, hdl) \
- ddi_put32(hdl, &(p)->cword, \
- (ddi_get32(hdl, &(p)->cword) & ~0xFF000000) | ((uint32_t)(v) << 24))
-#endif
-
-/* Bit Bucket Element */
-
-typedef struct i2o_sge_bit_bucket_element {
- i2o_flags_count_t FlagsCount;
- uint32_t BufferContext;
-} i2o_sge_bit_bucket_element_t;
-
-/* Chain Addressing Scatter-Gather Element */
-
-typedef struct i2o_sge_chain_element {
- i2o_flags_count_t FlagsCount;
- uint32_t PhysicalAddress;
-} i2o_sge_chain_element_t;
-
-/* Chain Addressing with Context Scatter-Gather Element */
-
-typedef struct i2o_sge_chain_context_element {
- i2o_flags_count_t FlagsCount;
- uint32_t Context[1];
- uint32_t PhysicalAddress;
-} i2o_sge_chain_context_element_t;
-
-/* Ignore Scatter-Gather Element */
-
-typedef struct i2o_sge_ignore_element {
- i2o_flags_count_t FlagsCount;
-} i2o_sge_ignore_element_t;
-
-/* Immediate Data Element */
-
-typedef struct i2o_sge_immediate_data_element {
- i2o_flags_count_t FlagsCount;
-} i2o_sge_immediate_data_element_t;
-
-/* Immediate Data with Context Element */
-
-typedef struct i2o_sge_immediate_data_context_element {
- i2o_flags_count_t FlagsCount;
- uint32_t BufferContext;
-} i2o_sge_immediate_data_context_element_t;
-
-/* Long Transaction Parameters Element */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_sge_long_transaction_element {
- union {
- struct {
- uint32_t LongElementLength:24;
- uint32_t Flags:8;
- } s1;
- uint32_t w1;
- } u1;
- uint32_t BufferContext;
-} i2o_sge_long_transaction_element_t;
-
-#define get_sge_long_LongElementLength(p, hdl) \
- (p)->u1.s1.LongElementLength
-#define put_sge_long_LongElementLength(p, v, hdl) \
- ((p)->u1.s1.LongElementLength = (v))
-#define get_sge_long_Flags(p, hdl) \
- (p)->u1.s1.Flags
-#define put_sge_long_Flags(p, v, hdl) \
- ((p)->u1.s1.Flags = (v))
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_sge_long_transaction_element {
- union {
- struct {
- uint32_t Flags:8;
- uint32_t LongElementLength:24;
- } s1;
- uint32_t w1;
- } u1;
- uint32_t BufferContext;
-} i2o_sge_long_transaction_element_t;
-
-#define get_sge_long_LongElementLength(p, hdl) \
- (ddi_get32(hdl, &(p)->u1.w1) & 0xFFFFFF)
-#define put_sge_long_LongElementLength(p, v, hdl) \
- ddi_put32(hdl, &(p)->u1.w1, \
- (ddi_get32(hdl, &(p)->u1.w1) & ~0xFFFFFF) | \
- ((uint32_t)(v) & 0xFFFFFF))
-#define get_sge_long_Flags(p, hdl) \
- (ddi_get32(hdl, &(p)->u1.w1) >> 24)
-#define put_sge_long_Flags(p, v, hdl) \
- ddi_put32(hdl, &(p)->u1.w1, \
- (ddi_get32(hdl, &(p)->u1.w1) & ~0xFF000000) | \
- ((uint32_t)(v) << 24))
-#endif
-
-/* Page List Scatter-Gather Element */
-
-typedef struct i2o_sge_page_element {
- i2o_flags_count_t FlagsCount;
- uint32_t PhysicalAddress[1];
-} i2o_sge_page_element_t;
-
-/* Page List with Context Scatter-Gather Element */
-
-typedef struct i2o_sge_page_context_element {
- i2o_flags_count_t FlagsCount;
- uint32_t BufferContext[1];
- uint32_t PhysicalAddress[1];
-} i2o_sge_page_context_element_t;
-
-/* SGL Attribute Element */
-
-typedef struct i2o_sge_sgl_attributes_element {
- uint16_t SglAttributeFlags;
- uint8_t ElementLength;
- uint8_t Flags;
- uint32_t PageFrameSize;
-} i2o_sge_sgl_attributes_element_t;
-
-/* Short Transaction Parameters Element */
-
-typedef struct i2o_sge_short_transaction_element {
- uint16_t ClassFields;
- uint8_t ElementLength;
- uint8_t Flags;
- uint32_t BufferContext;
-} i2o_sge_short_transaction_element_t;
-
-/* Simple Addressing Scatter-Gather Element */
-
-typedef struct i2o_sge_simple_element {
- i2o_flags_count_t FlagsCount;
- uint32_t PhysicalAddress;
-} i2o_sge_simple_element_t;
-
-/* Simple Addressing with Context Scatter-Gather Element */
-
-typedef struct i2o_sge_simple_context_element {
- i2o_flags_count_t FlagsCount;
- uint32_t BufferContext[1];
- uint32_t PhysicalAddress;
-} i2o_sge_simple_context_element_t;
-
-/* Transport Detail Element */
-
-typedef struct i2o_sge_transport_element {
- uint_t LongElementLength:24;
- uint_t Flags:8;
-} i2o_sge_transport_element_t;
-
-typedef struct i2o_sg_element {
- union {
- /* Bit Bucket Element */
- i2o_sge_bit_bucket_element_t BitBucket;
-
- /* Chain Addressing Element */
- i2o_sge_chain_element_t Chain;
-
- /* Chain Addressing with Context Element */
- i2o_sge_chain_context_element_t ChainContext;
-
- /* Ignore Scatter-Gather Element */
- i2o_sge_ignore_element_t Ignore;
-
- /* Immediate Data Element */
- i2o_sge_immediate_data_element_t ImmediateData;
-
- /* Immediate Data with Context Element */
- i2o_sge_immediate_data_context_element_t ImmediateDataContext;
-
- /* Long Transaction Parameters Element */
- i2o_sge_long_transaction_element_t LongTransaction;
-
- /* Page List Element */
- i2o_sge_page_element_t Page;
-
- /* Page List with Context Element */
- i2o_sge_page_context_element_t PageContext;
-
- /* SGL Attribute Element */
- i2o_sge_sgl_attributes_element_t SGLAttribute;
-
- /* Short Transaction Parameters Element */
- i2o_sge_short_transaction_element_t ShortTransaction;
-
- /* Simple Addressing Element */
- i2o_sge_simple_element_t Simple[1];
-
- /* Simple Addressing with Context Element */
- i2o_sge_simple_context_element_t SimpleContext[1];
-
- /* Transport Detail Element */
- i2o_sge_transport_element_t Transport;
- } u1;
-} i2o_sg_element_t;
-
-/* ************************************************************************** */
-/* Basic Parameter Group Access */
-/* ************************************************************************** */
-
-/* Operation Function Numbers */
-
-#define I2O_PARAMS_OPERATION_FIELD_GET 0x0001
-#define I2O_PARAMS_OPERATION_LIST_GET 0x0002
-#define I2O_PARAMS_OPERATION_MORE_GET 0x0003
-#define I2O_PARAMS_OPERATION_SIZE_GET 0x0004
-#define I2O_PARAMS_OPERATION_TABLE_GET 0x0005
-#define I2O_PARAMS_OPERATION_FIELD_SET 0x0006
-#define I2O_PARAMS_OPERATION_LIST_SET 0x0007
-#define I2O_PARAMS_OPERATION_ROW_ADD 0x0008
-#define I2O_PARAMS_OPERATION_ROW_DELETE 0x0009
-#define I2O_PARAMS_OPERATION_TABLE_CLEAR 0x000A
-
-/* Operations List Header */
-
-typedef struct i2o_param_operations_list_header {
- uint16_t OperationCount;
- uint16_t Reserved;
-} i2o_param_operations_list_header_t;
-
-/* Results List Header */
-
-typedef struct i2o_param_results_list_header {
- uint16_t ResultCount;
- uint16_t Reserved;
-} i2o_param_results_list_header_t;
-
-/* Read Operation Result Block Template Structure */
-
-typedef struct i2o_param_read_operation_result {
- uint16_t BlockSize;
- uint8_t BlockStatus;
- uint8_t ErrorInfoSize;
- /* Operations Results */
- /* Pad (if any) */
- /* ErrorInformation (if any) */
-} i2o_param_read_operation_result_t;
-
-typedef struct i2o_table_read_operation_result {
- uint16_t BlockSize;
- uint8_t BlockStatus;
- uint8_t ErrorInfoSize;
- uint16_t RowCount;
- uint16_t MoreFlag;
- /* Operations Results */
- /* Pad (if any) */
- /* ErrorInformation (if any) */
-} i2o_table_read_operation_result_t;
-
-/* Error Information Template Structure */
-
-typedef struct i2o_param_error_info_template {
- uint16_t OperationCode;
- uint16_t GroupNumber;
- uint16_t FieldIdx;
- uint8_t AdditionalStatus;
- uint8_t NumberKeys;
- /* List of Key Values (variable) */
- /* Pad (if any) */
-} i2o_param_error_info_template_t;
-
-/* Operation Template for Specific Fields */
-
-typedef struct i2o_param_operation_specific_template {
- uint16_t Operation;
- uint16_t GroupNumber;
- uint16_t FieldCount;
- uint16_t FieldIdx[1];
- /* Pad (if any) */
-} i2o_param_operation_specific_template_t;
-
-/* Operation Template for All Fields */
-
-typedef struct i2o_param_operation_all_template {
- uint16_t Operation;
- uint16_t GroupNumber;
- uint16_t FieldCount;
- /* Pad (if any) */
-} i2o_param_operation_all_template_t;
-
-/* Operation Template for All List Fields */
-
-typedef struct i2o_param_operation_all_list_template {
- uint16_t Operation;
- uint16_t GroupNumber;
- uint16_t FieldCount;
- uint16_t KeyCount;
- uint8_t KeyValue;
- /* Pad (if any) */
-} i2o_param_operation_all_list_template_t;
-
-/* Modify Operation Result Block Template Structure */
-
-typedef struct i2o_param_modify_operation_result {
- uint16_t BlockSize;
- uint8_t BlockStatus;
- uint8_t ErrorInfoSize;
- /* ErrorInformation (if any) */
-} i2o_param_modify_operation_result_t;
-
-/* Operation Template for Row Delete */
-
-typedef struct i2o_param_operation_row_delete_template {
- uint16_t Operation;
- uint16_t GroupNumber;
- uint16_t RowCount;
- uint8_t KeyValue;
-} i2o_param_operation_row_delete_template_t;
-
-/* Operation Template for Table Clear */
-
-typedef struct i2o_param_operation_table_clear_template {
- uint16_t Operation;
- uint16_t GroupNumber;
-} i2o_param_operation_table_clear_template_t;
-
-/* Status codes and Error Information for Parameter functions */
-
-#define I2O_PARAMS_STATUS_SUCCESS 0x00
-#define I2O_PARAMS_STATUS_BAD_KEY_ABORT 0x01
-#define I2O_PARAMS_STATUS_BAD_KEY_CONTINUE 0x02
-#define I2O_PARAMS_STATUS_BUFFER_FULL 0x03
-#define I2O_PARAMS_STATUS_BUFFER_TOO_SMALL 0x04
-#define I2O_PARAMS_STATUS_FIELD_UNREADABLE 0x05
-#define I2O_PARAMS_STATUS_FIELD_UNWRITEABLE 0x06
-#define I2O_PARAMS_STATUS_INSUFFICIENT_FIELDS 0x07
-#define I2O_PARAMS_STATUS_INVALID_GROUP_ID 0x08
-#define I2O_PARAMS_STATUS_INVALID_OPERATION 0x09
-#define I2O_PARAMS_STATUS_NO_KEY_FIELD 0x0A
-#define I2O_PARAMS_STATUS_NO_SUCH_FIELD 0x0B
-#define I2O_PARAMS_STATUS_NON_DYNAMIC_GROUP 0x0C
-#define I2O_PARAMS_STATUS_OPERATION_ERROR 0x0D
-#define I2O_PARAMS_STATUS_SCALAR_ERROR 0x0E
-#define I2O_PARAMS_STATUS_TABLE_ERROR 0x0F
-#define I2O_PARAMS_STATUS_WRONG_GROUP_TYPE 0x10
-
-
-/* ************************************************************************** */
-/* GROUP Parameter Groups */
-/* ************************************************************************** */
-
-/* GROUP Configuration and Operating Structures and Defines */
-
-/* Groups Numbers */
-
-#define I2O_UTIL_PARAMS_DESCRIPTOR_GROUP_NO 0xF000
-#define I2O_UTIL_PHYSICAL_DEVICE_TABLE_GROUP_NO 0xF001
-#define I2O_UTIL_CLAIMED_TABLE_GROUP_NO 0xF002
-#define I2O_UTIL_USER_TABLE_GROUP_NO 0xF003
-#define I2O_UTIL_PRIVATE_MESSAGE_EXTENSIONS_GROUP_NO 0xF005
-#define I2O_UTIL_AUTHORIZED_USER_TABLE_GROUP_NO 0xF006
-#define I2O_UTIL_DEVICE_IDENTITY_GROUP_NO 0xF100
-#define I2O_UTIL_DDM_IDENTITY_GROUP_NO 0xF101
-#define I2O_UTIL_USER_INFORMATION_GROUP_NO 0xF102
-#define I2O_UTIL_SGL_OPERATING_LIMITS_GROUP_NO 0xF103
-#define I2O_UTIL_SENSORS_GROUP_NO 0xF200
-
-/* UTIL Group F000h - GROUP DESCRIPTORS Parameter Group */
-
-#define I2O_UTIL_GROUP_PROPERTIES_GROUP_TABLE 0x01
-#define I2O_UTIL_GROUP_PROPERTIES_ROW_ADDITION 0x02
-#define I2O_UTIL_GROUP_PROPERTIES_ROW_DELETION 0x04
-#define I2O_UTIL_GROUP_PROPERTIES_CLEAR_OPERATION 0x08
-
-typedef struct i2o_util_group_descriptor_table {
- uint16_t GroupNumber;
- uint16_t FieldCount;
- uint16_t RowCount;
- uint8_t Properties;
- uint8_t reserved;
-} i2o_util_group_descriptor_table_t;
-
-/* UTIL Group F001h - Physical Device Table Parameter Group */
-
-typedef struct i2o_util_physical_device_table {
- uint32_t AdapterID;
-} i2o_util_physical_device_table_t;
-
-/* UTIL Group F002h - Claimed Table Parameter Group */
-
-typedef struct i2o_util_claimed_table {
- uint16_t ClaimedTID;
-} i2o_util_claimed_table_t;
-
-/* UTIL Group F003h - User Table Parameter Group */
-
-typedef struct i2o_util_user_table {
- uint16_t Instance;
- uint16_t UserTID;
- uint8_t ClaimType;
- uint8_t reserved1;
- uint16_t reserved2;
-} i2o_util_user_table_t;
-
-/* UTIL Group F005h - Private Message Extensions Parameter Group */
-
-typedef struct i2o_util_private_message_extensions_table {
- uint16_t ExtInstance;
- uint16_t OrganizationID;
- uint16_t XFunctionCode;
-} i2o_util_private_message_extensions_table_t;
-
-/* UTIL Group F006h - Authorized User Table Parameter Group */
-
-typedef struct i2o_util_authorized_user_table {
- uint16_t AlternateTID;
-} i2o_util_authorized_user_table_t;
-
-/* UTIL Group F100h - Device Identity Parameter Group */
-
-typedef struct i2o_util_device_identity_scalar {
- uint32_t ClassID;
- uint16_t OwnerTID;
- uint16_t ParentTID;
- uint8_t VendorInfo[I2O_DEVID_VENDOR_INFO_SZ];
- uint8_t ProductInfo[I2O_DEVID_PRODUCT_INFO_SZ];
- uint8_t Description[I2O_DEVID_DESCRIPTION_SZ];
- uint8_t ProductRevLevel[I2O_DEVID_REV_LEVEL_SZ];
- uint8_t SNFormat;
- uint8_t SerialNumber[I2O_MAX_SERIAL_NUMBER_SZ];
-} i2o_util_device_identity_scalar_t;
-
-/* UTIL Group F101h - DDM Identity Parameter Group */
-
-typedef struct i2o_util_ddm_identity_scalar {
- uint16_t DdmTID;
- uint8_t ModuleName[I2O_MODULE_NAME_SZ];
- uint8_t ModuleRevLevel[I2O_DEVID_REV_LEVEL_SZ];
- uint8_t SNFormat;
- uint8_t SerialNumber[I2O_MAX_SERIAL_NUMBER_SZ];
-} i2o_util_ddm_identity_scalar_t;
-
-/* UTIL Group F102h - User Information Parameter Group */
-
-#define I2O_USER_DEVICE_NAME_SZ 64
-#define I2O_USER_SERVICE_NAME_SZ 64
-#define I2O_USER_PHYSICAL_LOCATION_SZ 64
-
-typedef struct i2o_util_user_information_scalar {
- uint8_t DeviceName[I2O_USER_DEVICE_NAME_SZ];
- uint8_t ServiceName[I2O_USER_SERVICE_NAME_SZ];
- uint8_t PhysicalLocation[I2O_USER_PHYSICAL_LOCATION_SZ];
- uint32_t InstanceNumber;
-} i2o_util_user_information_scalar_t;
-
-/* UTIL Group F103h - SGL Operating Limits Parameter Group */
-
-typedef struct i2o_util_sgl_operating_limits_scalar {
- uint32_t SglChainSize;
- uint32_t SglChainSizeMax;
- uint32_t SglChainSizeTarget;
- uint16_t SglFragCount;
- uint16_t SglFragCountMax;
- uint16_t SglFragCountTarget;
-} i2o_util_sgl_operating_limits_scalar_t;
-
-/* UTIL Group F200h - Sensors Parameter Group */
-
-#define I2O_SENSOR_COMPONENT_OTHER 0x00
-#define I2O_SENSOR_COMPONENT_PLANAR_LOGIC_BOARD 0x01
-#define I2O_SENSOR_COMPONENT_CPU 0x02
-#define I2O_SENSOR_COMPONENT_CHASSIS 0x03
-#define I2O_SENSOR_COMPONENT_POWER_SUPPLY 0x04
-#define I2O_SENSOR_COMPONENT_STORAGE 0x05
-#define I2O_SENSOR_COMPONENT_EXTERNAL 0x06
-
-#define I2O_SENSOR_SENSOR_CLASS_ANALOG 0x00
-#define I2O_SENSOR_SENSOR_CLASS_DIGITAL 0x01
-
-#define I2O_SENSOR_SENSOR_TYPE_OTHER 0x00
-#define I2O_SENSOR_SENSOR_TYPE_THERMAL 0x01
-#define I2O_SENSOR_SENSOR_TYPE_DC_VOLTAGE 0x02
-#define I2O_SENSOR_SENSOR_TYPE_AC_VOLTAGE 0x03
-#define I2O_SENSOR_SENSOR_TYPE_DC_CURRENT 0x04
-#define I2O_SENSOR_SENSOR_TYPE_AC_CURRENT 0x05
-#define I2O_SENSOR_SENSOR_TYPE_DOOR_OPEN 0x06
-#define I2O_SENSOR_SENSOR_TYPE_FAN_OPERATIONAL 0x07
-
-#define I2O_SENSOR_SENSOR_STATE_NORMAL 0x00
-#define I2O_SENSOR_SENSOR_STATE_ABNORMAL 0x01
-#define I2O_SENSOR_SENSOR_STATE_UNKNOWN 0x02
-#define I2O_SENSOR_SENSOR_STATE_LOW_CAT 0x03
-#define I2O_SENSOR_SENSOR_STATE_LOW 0x04
-#define I2O_SENSOR_SENSOR_STATE_LOW_WARNING 0x05
-#define I2O_SENSOR_SENSOR_STATE_HIGH_WARNING 0x06
-#define I2O_SENSOR_SENSOR_STATE_HIGH 0x07
-#define I2O_SENSOR_SENSOR_STATE_HIGH_CAT 0x08
-
-#define I2O_SENSOR_EVENT_ENABLE_STATE_CHANGE 0x0001
-#define I2O_SENSOR_EVENT_ENABLE_LOW_CATASTROPHIC 0x0002
-#define I2O_SENSOR_EVENT_ENABLE_LOW_READING 0x0004
-#define I2O_SENSOR_EVENT_ENABLE_LOW_WARNING 0x0008
-#define I2O_SENSOR_EVENT_ENABLE_CHANGE_TO_NORMAL 0x0010
-#define I2O_SENSOR_EVENT_ENABLE_HIGH_WARNING 0x0020
-#define I2O_SENSOR_EVENT_ENABLE_HIGH_READING 0x0040
-#define I2O_SENSOR_EVENT_ENABLE_HIGH_CATASTROPHIC 0x0080
-
-typedef struct i2o_util_sensors_table {
- uint16_t SensorInstance;
- uint8_t Component;
- uint16_t ComponentInstance;
- uint8_t SensorClass;
- uint8_t SensorType;
- int8_t ScalingExponent;
- int32_t ActualReading;
- int32_t MinimumReading;
- int32_t Low2LowCatThreshold;
- int32_t LowCat2LowThreshold;
- int32_t LowWarn2LowThreshold;
- int32_t Low2LowWarnThreshold;
- int32_t Norm2LowWarnThreshold;
- int32_t LowWarn2NormThreshold;
- int32_t NominalReading;
- int32_t HiWarn2NormThreshold;
- int32_t Norm2HiWarnThreshold;
- int32_t High2HiWarnThreshold;
- int32_t HiWarn2HighThreshold;
- int32_t HiCat2HighThreshold;
- int32_t Hi2HiCatThreshold;
- int32_t MaximumReading;
- uint8_t SensorState;
- uint16_t EventEnable;
-} i2o_util_sensors_table_t;
-
-/*
- * *************************************************************************
- * Definitions used in Solaris for I2O Framework support.
- *
- * (NOTE: Current commitment level is PROJECT PRIVATE.)
- * *************************************************************************
- */
-
-#define I2O_MSG_SLEEP DDI_DMA_SLEEP
-#define I2O_MSG_DONTWAIT DDI_DMA_DONTWAIT
-
-typedef void *i2o_iop_handle_t;
-typedef void *i2o_msg_handle_t;
-
-int i2o_msg_osm_register(dev_info_t *dip, i2o_iop_handle_t *handlep);
-int i2o_msg_get_lct(i2o_iop_handle_t iop, void *buf,
- size_t buf_size, size_t *lct_sizep, size_t *real_sizep);
-int i2o_msg_alloc(i2o_iop_handle_t iop, int (*waitfp)(caddr_t), caddr_t arg,
- void **msgp, i2o_msg_handle_t *msg_handlep,
- ddi_acc_handle_t *acc_handlep);
-int i2o_msg_send(i2o_iop_handle_t iop, void *msg, i2o_msg_handle_t handle);
-void i2o_msg_osm_unregister(i2o_iop_handle_t *iop);
-
-/*
- * PCI Extensions to I2O Spec 1.5.
- *
- * (Note: Should these definitons go into pci.h?)
- */
-#define PCI_I2O_BASE_CLASS 0x0E
-#define PCI_I2O_SUB_CLASS 0x00
-#define PCI_I2O_PROG_CLASS0 0x00 /* no IOP interrupt */
-#define PCI_I2O_PROG_CLASS1 0x01 /* IOP interrupt supported */
-
-/* Offset definitions for FIFO registers in IOP's shared memory */
-
-#define PCI_IOP_INBOUND_FREELIST_FIFO 0x40
-#define PCI_IOP_INBOUND_POSTLIST_FIFO 0x40
-#define PCI_IOP_OUTBOUND_FREELIST_FIFO 0x44
-#define PCI_IOP_OUTBOUND_POSTLIST_FIFO 0x44
-
-/* Offset definitions for Interrupt Control registers in IOP's shared memory */
-
-#define PCI_IOP_INTR_MASK_REG 0x34
-#define PCI_IOP_INTR_STATUS_REG 0x30
-
-/* Bit definitions in Interrupt Mask Register */
-#define I2O_OUTBOUND_POSTLIST_SERVICE_INTR_MASK 0x08
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_I2OMSG_H */
diff --git a/usr/src/uts/common/sys/i2o/i2omstr.h b/usr/src/uts/common/sys/i2o/i2omstr.h
deleted file mode 100644
index 3065c8c2f5..0000000000
--- a/usr/src/uts/common/sys/i2o/i2omstr.h
+++ /dev/null
@@ -1,920 +0,0 @@
-/*
- * Copyright (c) 1998-1999 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-/*
- * *****************************************************************************
- *
- * 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.
- *
- * *****************************************************************************
- */
-
-#ifndef _SYS_I2OMSTOR_H
-#define _SYS_I2OMSTOR_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/i2o/i2omsg.h> /* the Base Message file */
-#include <sys/types.h>
-
-
-
-#define I2OMSTOR_REV 1_5_1 /* Header file revision string */
-
-
-/*
- * ****************************************************************************
- *
- * I2OMStor.h -- I2O Random Block Storage Devices Class Message defintion
- * file
- *
- * This file contains information presented in Chapter 6, Section 4 of
- * the I2O Specification.
- *
- * Revision History: (Revision History tracks the revision number of the I2O
- * specification)
- *
- * .92 - First marked revsion used for Proof of Concept.
- * .93 - Change to match the rev .93 of the spec.
- * .95 - Updated to Rev .95 of 2/5/96.
- * 1.00 - Checked and Updated against spec version 1.00 4/9/96.
- * 1.xx - Updated to the 1.x version of the I2O Specification (11/04/96).
- * (RAID disk parameter group definition is not complete.)
- * 1.xx - 11/06/96 1) Changed to new SGL addressing nomenclature.
- * 2) Changed I2O_BSA_FLAGS reference to i2o_bsa_ctl_flags_t.
- * 3) Added BSA request message definitions.
- * 4) Commented out subclass and RAID request message definitions.
- * 1.xx - 11/11/96
- * 1) Updated BSA Cache Control parameters group definitions.
- * 1.xx - 11/13/96
- * 1) Changed messages definitions from "I20" to "I2O".
- * 2) Fixed I2O_BSA_MEDIA_EJECT references.
- * 3) Added "DSC" to Detailed Status Code definitions.
- * 1.xx 11/15/96 - Added #pragma statments for i960.
- * 1.5d 03/05/97 - Update for spec. draft version 1.5d.
- * 1) Added "_BSA" designation to the three reply messages.
- * 2) Added BSA_TIMEOUT DSC.
- * 1.5d 04/11/97 - Corrections from review cycle:
- * 1) Added reserved1 field to OPERATIONAL_CONTROL parameter group.
- * 2) Added reserved2 field to ERROR_LOG parameter group.
- * 3) Added reserved1 field to HIST_STATS parameter group.
- * 4) Added reserved2 field to HIST_STATS parameter group.
- * 5) Added reserved1 field to STORAGE_HIST_STATS parameter group.
- * 6) Added reserved2 field to STORAGE_HIST_STATS parameter group.
- * 7) Removed double underscore from MEDIA_INFO parameter group.
- * 1.5.1 05/02/97 - Corrections from review cycle:
- * 1) Change reply templates to include RetryCount field.
- * 2) Add Aborted Operation reply message.
- * 3) Remove #include for i2outil.h.
- * 4) Add field to 32-bit align CACHE_CONTROL parameter group.
- * 5) Add optional RAID parameter group definitions.
- * 6) Add fields to 32-bit align REDUNDANCY parameter group.
- * 7) Add fields to 32-bit align COMPONENT_SPARES parm group.
- * 8) Add fields to 32-bit align ASSOCIATION parameter group.
- * 9) Add revision string.
- * 10) Convert tabs to spaces.
- * 11) New disclaimer.
- *
- * ****************************************************************************
- */
-
-/*
- * ****************************************************************************
- * 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.
- * *****************************************************************************
- */
-
-
-
-
-/*
- * Random Block Storage Class specific functions
- *
- * Although the names are block storage class specific, the values
- * assigned are common with other classes when applicable.
- */
-
-#define I2O_BSA_BLOCK_READ 0x30
-#define I2O_BSA_BLOCK_REASSIGN 0x71
-#define I2O_BSA_BLOCK_WRITE 0x31
-#define I2O_BSA_BLOCK_WRITE_VERIFY 0x33
-#define I2O_BSA_CACHE_FLUSH 0x37
-#define I2O_BSA_DEVICE_RESET 0x27
-#define I2O_BSA_MEDIA_EJECT 0x43
-#define I2O_BSA_MEDIA_FORMAT 0x45
-#define I2O_BSA_MEDIA_LOCK 0x49
-#define I2O_BSA_MEDIA_MOUNT 0x41
-#define I2O_BSA_MEDIA_UNLOCK 0x4B
-#define I2O_BSA_MEDIA_VERIFY 0x35
-#define I2O_BSA_POWER_MANAGEMENT 0x70
-#define I2O_BSA_STATUS_CHECK 0x25
-
-/* RAID Additions. */
-/*
- * #define I2O_MANAGEMENT 0x81
- * #define I2O_DIAGNOSTICS 0x83
- * #define I2O_INSTRUMENTATION 0x85
- */
-
-/* Detailed Status Codes for Random Block Storage operations */
-
-#define I2O_BSA_DSC_SUCCESS 0x0000
-#define I2O_BSA_DSC_MEDIA_ERROR 0x0001
-#define I2O_BSA_DSC_ACCESS_ERROR 0x0002
-#define I2O_BSA_DSC_DEVICE_FAILURE 0x0003
-#define I2O_BSA_DSC_DEVICE_NOT_READY 0x0004
-#define I2O_BSA_DSC_MEDIA_NOT_PRESENT 0x0005
-#define I2O_BSA_DSC_MEDIA_LOCKED 0x0006
-#define I2O_BSA_DSC_MEDIA_FAILURE 0x0007
-#define I2O_BSA_DSC_PROTOCOL_FAILURE 0x0008
-#define I2O_BSA_DSC_BUS_FAILURE 0x0009
-#define I2O_BSA_DSC_ACCESS_VIOLATION 0x000A
-#define I2O_BSA_DSC_WRITE_PROTECTED 0x000B
-#define I2O_BSA_DSC_DEVICE_RESET 0x000C
-#define I2O_BSA_DSC_VOLUME_CHANGED 0x000D
-#define I2O_BSA_DSC_TIMEOUT 0x000E
-
-
-/* ************************************************************************** */
-
-/* Block Storage Parameter Groups */
-
-/* ************************************************************************* */
-
-/* Block Storage Configuration and Operating Structures and Defines */
-
-/* Block Storage Parameter Groups */
-
-#define I2O_BSA_DEVICE_INFO_GROUP_NO 0x0000
-#define I2O_BSA_OPERATIONAL_CONTROL_GROUP_NO 0x0001
-#define I2O_BSA_POWER_CONTROL_GROUP_NO 0x0002
-#define I2O_BSA_CACHE_CONTROL_GROUP_NO 0x0003
-#define I2O_BSA_MEDIA_INFO_GROUP_NO 0x0004
-#define I2O_BSA_ERROR_LOG_GROUP_NO 0x0005
-
-/* Block Storage Optional Historical Statistics Parameter Groups */
-
-#define I2O_BSA_HISTORICAL_STATS_CONTROL_GROUP_NO 0x0180
-#define I2O_BSA_STORAGE_HISTORICAL_STATS_GROUP_NO 0x0181
-#define I2O_BSA_CACHE_HISTORICAL_STATS_GROUP_NO 0x0182
-
-/* Block Storage Optional RAID Disk Parameter Groups */
-
-#define I2O_BSA_VOLUME_SET_INFORMATION_GROUP_NO 0x0200
-#define I2O_BSA_PROTECTED_SPACE_EXTENT_GROUP_NO 0x0201
-#define I2O_BSA_AGGREGATE_PROT_SPACE_EXT_GROUP_NO 0x0202
-#define I2O_BSA_PHYSICAL_EXTENT_GROUP_NO 0x0203
-#define I2O_BSA_AGGREGATE_PHYSICAL_EXT_GROUP_NO 0x0204
-#define I2O_BSA_REDUNDANCY_GROUP_NO 0x0205
-#define I2O_BSA_COMPONENT_SPARES_GROUP_NO 0x0206
-#define I2O_BSA_ASSOCIATION_TABLE_GROUP_NO 0x0207
-
-
-/* - 0000h - Device Information Parameters Group defines */
-
-/* Device Type */
-
-#define I2O_BSA_DEVICE_TYPE_DIRECT 0x00
-#define I2O_BSA_DEVICE_TYPE_WORM 0x04
-#define I2O_BSA_DEVICE_TYPE_CDROM 0x05
-#define I2O_BSA_DEVICE_TYPE_OPTICAL 0x07
-
-/* Device Capability Support */
-
-#define I2O_BSA_DEV_CAP_CACHING 0x00000001
-#define I2O_BSA_DEV_CAP_MULTI_PATH 0x00000002
-#define I2O_BSA_DEV_CAP_DYNAMIC_CAPACITY 0x00000004
-#define I2O_BSA_DEV_CAP_REMOVABLE_MEDIA 0x00000008
-#define I2O_BSA_DEV_CAP_REMOVEABLE_DEVICE 0x00000010
-#define I2O_BSA_DEV_CAP_READ_ONLY 0x00000020
-#define I2O_BSA_DEV_CAP_LOCKOUT 0x00000040
-#define I2O_BSA_DEV_CAP_BOOT_BYPASS 0x00000080
-#define I2O_BSA_DEV_CAP_COMPRESSION 0x00000100
-#define I2O_BSA_DEV_CAP_DATA_SECURITY 0x00000200
-#define I2O_BSA_DEV_CAP_RAID 0x00000400
-
-/* Device States */
-
-#define I2O_BSA_DEV_STATE_CACHING 0x00000001
-#define I2O_BSA_DEV_STATE_POWERED_ON 0x00000002
-#define I2O_BSA_DEV_STATE_READY 0x00000004
-#define I2O_BSA_DEV_STATE_MEDIA_LOADED 0x00000008
-#define I2O_BSA_DEV_STATE_DEVICE_LOADED 0x00000010
-#define I2O_BSA_DEV_STATE_READ_ONLY 0x00000020
-#define I2O_BSA_DEV_STATE_LOCKOUT 0x00000040
-#define I2O_BSA_DEV_STATE_BOOT_BYPASS 0x00000080
-#define I2O_BSA_DEV_STATE_COMPRESSION 0x00000100
-#define I2O_BSA_DEV_STATE_DATA_SECURITY 0x00000200
-#define I2O_BSA_DEV_STATE_RAID 0x00000400
-
-
-/* - 0001h - Operational Control Parameters Group defines */
-
-/* No definition required */
-
-
-/* - 0002h - Power Control Parameters Group defines */
-
-/* On Access */
-
-#define I2O_BSA_POWERED_UP_ON_ACCESS 0x00000001
-#define I2O_BSA_LOAD_ON_ACCESS 0x00000002
-
-
-/* - 0003h - Cache Control Parameters Group defines */
-
-/* Write Policy */
-
-#define I2O_BSA_NO_WRITE_CACHE 0x00
-#define I2O_BSA_WRITE_TO_CACHE 0x01
-#define I2O_BSA_WRITE_THRU_CACHE 0x02
-
-/* Read Policy */
-
-#define I2O_BSA_NO_READ_CACHE 0x00
-#define I2O_BSA_READ_CACHE 0x01
-#define I2O_BSA_READ_AHEAD_CACHE 0x02
-#define I2O_BSA_READ_READ_AHEAD_CACHE 0x03
-
-/* Error Correction */
-
-#define I2O_BSA_ERR_COR_NONE 0x00
-#define I2O_BSA_ERR_COR_UNKNOWN 0x01
-#define I2O_BSA_ERR_COR_OTHER 0x02
-#define I2O_BSA_ERR_COR_PARITY 0x03
-#define I2O_BSA_ERR_COR_SINGLE_BIT_ECC 0x04
-#define I2O_BSA_ERR_COR_MULTI_BIT_ECC 0x05
-
-
-/* - 0004h - Media Information Parameters Group defines */
-
-/* No definition required */
-
-
-/* - 0005h - Error Log Parameters Group defines */
-
-/* No definition required */
-
-
-/* - 0180h - Historical Statistics Control Parameters Group defines */
-
-/* Statistis Control */
-
-#define I2O_BSA_STAT_CTL_STORAGE_ENABLE 0x01
-#define I2O_BSA_STAT_CTL_CACHE_ENABLE 0x02
-
-
-/* - 0181h - Storage Historical Statistics Parameter Group defines */
-
-/* No definition required */
-
-
-/* - 0182h - Cache Historical Statistics Parameter Group defines */
-
-/* No definition required */
-
-
-/* - 0200H - Volume Set Information Parameter Group defines */
-
-/* No definition required */
-
-
-/* - 0201h - Protected Space Extent Parameter Group defines */
-
-/* Data Stripe Granularity */
-
-#define I2O_BSA_DATA_STRIPE_OTHER 0x00
-#define I2O_BSA_DATA_STRIPE_UNKNOWN 0x01
-#define I2O_BSA_DATA_STRIPE_BITS 0x02
-#define I2O_BSA_DATA_STRIPE_BYTES 0x03
-#define I2O_BSA_DATA_STRIPE_16BIT_WORDS 0x04
-#define I2O_BSA_DATA_STRIPE_32BIT_DWORDS 0x05
-#define I2O_BSA_DATA_STRIPE_BLOCKS 0x06
-
-/* - 0202h - Aggregate Protected Space Extent Parameter Group defines */
-
-/* No definition required */
-
-
-/* - 0203h - Physical Extent Parameter Group defines */
-
-/* Granularity Unit */
-
-#define I2O_BSA_GRANULARITY_OTHER 0x00
-#define I2O_BSA_GRANULARITY_UNKNOWN 0x01
-#define I2O_BSA_GRANULARITY_BITS 0x02
-#define I2O_BSA_GRANULARITY_BYTES 0x03
-#define I2O_BSA_GRANULARITY_16BIT_WORDS 0x04
-#define I2O_BSA_GRANULARITY_32BIT_DWORDS 0x05
-#define I2O_BSA_GRANULARITY_BLOCKS 0x06
-
-
-/* - 0204h - Aggregate Physical Extent Parameter Group defines */
-
-/* No definition required */
-
-
-/* - 0205h - Redundancy Parameter Group defines */
-
-/* Redundancy Type */
-
-#define I2O_BSA_REDUNDANCY_OTHER 0x00
-#define I2O_BSA_REDUNDANCY_UNKNOWN 0x01
-#define I2O_BSA_REDUNDANCY_NONE 0x02
-#define I2O_BSA_REDUNDANCY_COPY 0x03
-#define I2O_BSA_REDUNDANCY_XOR 0x04
-#define I2O_BSA_REDUNDANCY_P_Q 0x05
-#define I2O_BSA_REDUNDANCY_S 0x06
-#define I2O_BSA_REDUNDANCY_P_S 0x07
-
-
-/* - 0206h - Component Spares Parameter Group defines */
-
-/* Spare Functioning State */
-
-#define I2O_BSA_SPARE_STATE_OTHER 0x00
-#define I2O_BSA_SPARE_STATE_UNKNOWN 0x01
-#define I2O_BSA_SPARE_STATE_INACTIVE 0x02
-#define I2O_BSA_SPARE_STATE_ACTIVE 0x03
-#define I2O_BSA_SPARE_STATE_LOAD_BALANCE 0x04
-
-
-/* - 0207h - Association Table Parameter Group defines */
-
-/* Type */
-
-#define I2O_BSA_ASSOC_TYPE_PHYSICAL 0x00
-#define I2O_BSA_ASSOC_TYPE_LOGICAL 0x01
-#define I2O_BSA_ASSOC_TYPE_LOG_TO_PHYS 0x02
-#define I2O_BSA_ASSOC_TYPE_PROTECTION 0x03
-#define I2O_BSA_ASSOC_TYPE_SPARE 0x04
-#define I2O_BSA_ASSOC_TYPE_CACHE 0x05
-#define I2O_BSA_ASSOC_TYPE_SOFTWARE 0x06
-
-/* Object 1 Type */
-
-#define I2O_BSA_OBJECT_1_CONTROLLER 0x00
-#define I2O_BSA_OBJECT_1_DEVICE 0x01
-#define I2O_BSA_OBJECT_1_BUS_PORT 0x02
-#define I2O_BSA_OBJECT_1_VOLUME_SET 0x03
-#define I2O_BSA_OBJECT_1_PROT_SPACE_EXT 0x04
-#define I2O_BSA_OBJECT_1_AGG_PROT_SPACE_EXT 0x05
-#define I2O_BSA_OBJECT_1_PHYSICAL_EXT 0x06
-#define I2O_BSA_OBJECT_1_AGG_PHYSICAL_EXT 0x07
-#define I2O_BSA_OBJECT_1_REDUNDANCY 0x08
-#define I2O_BSA_OBJECT_1_CACHE 0x09
-#define I2O_BSA_OBJECT_1_SOFTWARE 0x0A
-
-/* Object 2 Type */
-
-#define I2O_BSA_OBJECT_2_CONTROLLER 0x00
-#define I2O_BSA_OBJECT_2_DEVICE 0x01
-#define I2O_BSA_OBJECT_2_BUS_PORT 0x02
-#define I2O_BSA_OBJECT_2_VOLUME_SET 0x03
-#define I2O_BSA_OBJECT_2_PROT_SPACE_EXT 0x04
-#define I2O_BSA_OBJECT_2_AGG_PROT_SPACE_EXT 0x05
-#define I2O_BSA_OBJECT_2_PHYSICAL_EXT 0x06
-#define I2O_BSA_OBJECT_2_AGG_PHYSICAL_EXT 0x07
-#define I2O_BSA_OBJECT_2_REDUNDANCY 0x08
-#define I2O_BSA_OBJECT_2_CACHE 0x09
-#define I2O_BSA_OBJECT_2_SOFTWARE 0x0A
-
-
-
-
-/* Block Storage Group 0000h - Device Information Parameter Group */
-
-typedef struct i2o_bsa_device_info_scalar {
- uint8_t DeviceType;
- uint8_t NumberOfPaths;
- uint16_t PowerState;
- uint32_t BlockSize;
- uint64_t DeviceCapacity;
- uint32_t DeviceCapabilitySupport;
- uint32_t DeviceState;
-} i2o_bsa_device_info_scalar_t;
-
-
-/* Block Storage Group 0001h - Operational Control Parameter Group */
-
-typedef struct i2o_bsa_operational_control_scalar {
- uint8_t AutoReassign;
- uint8_t ReassignTolerance;
- uint8_t RetryAttempts;
- uint8_t reserved1;
- uint32_t ReassignSize;
- uint32_t ExpectedTimeout;
- uint32_t RWVTimeout;
- uint32_t RWVTimeoutBase;
- uint32_t TimeoutBase;
- uint32_t OrderedRequestDepth;
- uint32_t AtomicWriteSize;
-} i2o_bsa_operational_control_scalar_t;
-
-
-/* Block Storage Group 0002h - Power Control Parameter Group */
-
-typedef struct i2o_bsa_power_control_scalar {
- uint32_t PowerdownTimeout;
- uint32_t OnAccess;
-} i2o_bsa_power_control_scalar_t;
-
-
-/* Block Storage Group 0003h - Cache Control Parameter Group */
-
-typedef struct i2o_bsa_cache_control_scalar {
- uint32_t TotalCacheSize;
- uint32_t ReadCacheSize;
- uint32_t WriteCacheSize;
- uint8_t WritePolicy;
- uint8_t ReadPolicy;
- uint8_t ErrorCorrection;
- uint8_t reserved1; /* Note: not in 1.5 spec. */
-} i2o_bsa_cache_control_scalar_t;
-
-
-/* Block Storage Group 0004h - Media Information Parameter Group */
-
-typedef struct i2o_bsa_media_info_scalar {
- uint64_t Capacity;
- uint32_t BlockSize;
-} i2o_bsa_media_info_scalar_t;
-
-
-/* Block Storage Group 0005h - Error Log Parameter Group */
-
-typedef struct i2o_bsa_error_log_table {
- uint16_t ErrorDataIndex;
- uint8_t Function;
- uint8_t RetryCount;
- uint16_t DetailedErrorCode;
- uint16_t reserved2;
- uint64_t TimeStamp;
- uint32_t UserInfo;
-} i2o_bsa_error_log_table_t;
-
-
-/* Block Storage Group 0180h - Optional Historical STATS Support/Control */
-
-typedef struct i2o_bsa_hist_stats_scalar {
- uint8_t StatisticsControl;
- uint8_t reserved1;
- uint16_t reserved2;
- uint32_t StorageStatistics;
- uint32_t CacheStatistics;
-} i2o_bsa_hist_stats_scalar_t;
-
-
-/* Block Storage Group 0181h - Optional Storage Historical STATS */
-
-typedef struct i2o_bsa_storage_hist_stats_scalar {
- uint64_t ReadCommands;
- uint64_t WriteCommands;
- uint8_t DataUnit;
- uint8_t reserved1;
- uint16_t reserved2;
- uint64_t IORange1Read;
- uint64_t IORange2Read;
- uint64_t IORange3Read;
- uint64_t IORange4Read;
- uint64_t IORange1Write;
- uint64_t IORange2Write;
- uint64_t IORange3Write;
- uint64_t IORange4Write;
- uint64_t NumberSeeks;
-} i2o_bsa_storage_hist_stats_scalar_t;
-
-
-/* Block Storage Group 0182h - Optional Cache Historical STATS */
-
-typedef struct i2o_bsa_cache_hist_stats_scalar {
- uint64_t CacheAccess;
- uint64_t CacheHit;
- uint64_t PartialCacheHit;
- uint64_t HitDataSize;
- uint32_t ValidUsage;
- uint32_t DirtyUsage;
- uint32_t TimeLastFault;
- uint32_t LastFaultFailure;
-} i2o_bsa_cache_hist_stats_scalar_t;
-
-
-/* Block Storage Group 0200h - Optional Volume Set Information */
-
-typedef struct i2o_bsa_volume_info_scalar {
- uint8_t Name[64];
- uint64_t TotalStorageCapacity;
- uint64_t StripeLength;
- uint64_t InterleaveDepth;
-} i2o_bsa_volume_info_scalar_t;
-
-
-/* Block Storage Group 0201h - Optional Protected Space Extent */
-
-typedef struct i2o_bsa_pro_space_ext_scalar {
- uint64_t StartAddress;
- uint64_t NumberBlocks;
- uint32_t BlockSize;
- uint32_t DataStripeGranularity;
- uint32_t DataStripeLength;
-} i2o_bsa_pro_space_ext_scalar_t;
-
-
-/* Block Storage Group 0202h - Optional Aggregate Protected Space Extent */
-
-typedef struct i2o_bsa_agg_prot_space_ext_scalar {
- uint64_t NumberBlocks;
-} i2o_bsa_agg_prot_space_ext_scalar_t;
-
-
-/* Block Storage Group 0203h - Optional Physical Extent */
-
-typedef struct i2o_bsa_phys_ext_scalar {
- uint64_t StartAddress;
- uint64_t NumberBlocks;
- uint32_t BlockSize;
- uint32_t GranularityUnit;
- uint64_t CheckDataInterleave;
- uint64_t CheckData;
- uint64_t UserData;
-} i2o_bsa_phys_ext_scalar_t;
-
-
-/* Block Storage Group 0204h - Optional Aggregate Physical Extent */
-
-typedef struct i2o_bsa_agg_phys_ext_scalar {
- uint64_t NumberBlocks;
- uint64_t CheckData;
-} i2o_bsa_agg_phys_ext_scalar_t;
-
-
-/* Block Storage Group 0205h - Optional Redundancy Table */
-
-typedef struct i2o_bsa_redundancy_scalar {
- uint8_t RedundancyType;
- uint8_t reserved1; /* Note: not in 1.5 spec. */
- uint16_t reserved2; /* Note: not in 1.5 spec. */
-} i2o_bsa_redundancy_scalar_t;
-
-
-/* Block Storage Group 0206h - Optional Component Spares */
-
-typedef struct i2o_bsa_component_spares_table {
- uint8_t RowNumber;
- uint8_t SpareType;
- uint8_t ToBeSparedIndex;
- uint8_t SparedIndex;
- uint8_t SpareFunctioningState;
- uint8_t reserved1; /* Note: not in 1.5 spec. */
- uint16_t reserved2; /* Note: not in 1.5 spec. */
-} i2o_bsa_component_spares_table_t;
-
-
-/* Block Storage Group 0207h - Optional Association Table */
-
-typedef struct i2o_bsa_association_table {
- uint8_t RowNumber;
- uint8_t Type;
- uint8_t Object1Type;
- uint8_t Object1Index;
- uint8_t Object2Type;
- uint8_t Object2Index;
- uint16_t reserved2; /* Note: not in 1.5 spec. */
-} i2o_bsa_association_table_t;
-
-
-
-/* I2O BSA Block Storage Event Indicator Assignment */
-
-#define I2O_BSA_EVENT_VOLUME_LOAD 0x00000001
-#define I2O_BSA_EVENT_VOLUME_UNLOAD 0x00000002
-#define I2O_BSA_EVENT_VOLUME_UNLOAD_REQUEST 0x00000004
-#define I2O_BSA_EVENT_CAPACITY_CHANGE 0x00000008
-#define I2O_BSA_EVENT_SCSI_SMART 0x00000010
-
-
-
-
-/* Block Storage Class Specific Message Definitions */
-
-
-/* I2O Block Storage Reply Message Frame Template */
-
-typedef struct i2o_bsa_reply_message_frame {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t DetailedStatusCode;
- uint8_t RetryCount;
- uint8_t ReqStatus;
-/* ReplyPayload */
-} i2o_bsa_reply_message_frame_t;
-
-
-
-/* I2O Block Storage Successful Completion Reply Message Frame */
-
-typedef struct i2o_bsa_success_reply_message_frame {
- i2o_bsa_reply_message_frame_t BsaReplyFrame;
- uint32_t TransferCount;
-} i2o_bsa_success_reply_message_frame_t;
-
-
-
-/* I2O Block Storage Aborted Operation Reply Message Frame */
-
-typedef struct i2o_bsa_abort_reply_message_frame {
- i2o_bsa_reply_message_frame_t BsaReplyFrame;
-} i2o_bsa_abort_reply_message_frame_t;
-
-
-
-/* I2O Block Storage Progress Report Reply Message Frame */
-
-typedef struct i2o_bsa_progress_reply_message_frame {
- i2o_bsa_reply_message_frame_t BsaReplyFrame;
- uint8_t PercentComplete;
- uint8_t Reserved[3];
-} i2o_bsa_progress_reply_message_frame_t;
-
-
-/* I2O Block Storage Error Report Reply Message Frame */
-
-typedef struct i2o_bsa_error_reply_message_frame {
- i2o_bsa_reply_message_frame_t BsaReplyFrame;
- uint32_t TransferCount;
- uint64_t LogicalByteAddress;
-} i2o_bsa_error_reply_message_frame_t;
-
-
-
-
-/* I2O BSA request message flag definitions */
-
-/* I2O BSA Control Flags */
-
-typedef uint16_t i2o_bsa_ctl_flags_t;
-
-#define I2O_BSA_FLAG_PROGRESS_REPORT 0x0080
-
-/* I2O BSA Block Read Message Control Flags */
-
-typedef uint16_t i2o_bsa_read_flags_t;
-#define I2O_BSA_RD_FLAG_DONT_RETRY 0x0001
-#define I2O_BSA_RD_FLAG_SOLO 0x0002
-#define I2O_BSA_RD_FLAG_CACHE_READ 0x0004
-#define I2O_BSA_RD_FLAG_READ_PREFETCH 0x0008
-#define I2O_BSA_RD_FLAG_CACHE_DATA 0x0010
-
-/* I2O BSA Block Write Message Control Flags */
-
-typedef uint16_t i2o_bsa_write_flags_t;
-#define I2O_BSA_WR_FLAG_DONT_RETRY 0x0001
-#define I2O_BSA_WR_FLAG_SOLO 0x0002
-#define I2O_BSA_WR_FLAG_DONT_CACHE 0x0004
-#define I2O_BSA_WR_FLAG_WRITE_THRU 0x0008
-#define I2O_BSA_WR_FLAG_WRITE_TO 0x0010
-
-/* I2O BSA Device Reset Message Control Flags */
-
-typedef uint16_t i2o_bsa_reset_flags_t;
-#define I2O_BSA_FLAG_HARD_RESET 0x0001
-
-/* I2O BSA Media Verify Message Control Flags */
-
-typedef uint16_t i2o_bsa_verify_flags_t;
-/* Progress Report flag definition is valid */
-#define I2O_BSA_ERROR_CORRECTION 0x0040
-
-
-/* I2O BSA Removeable Media Identifier values */
-
-typedef uint32_t i2o_bsa_media_id_t;
-#define I2O_BSA_MEDIA_ID_CURRENT_MOUNTED 0xFFFFFFFF
-
-
-/* I2O BSA Removeable Media Load Flags */
-
-typedef uint8_t i2o_bsa_load_flags_t;
-#define I2O_BSA_LOAD_FLAG_MEDIA_LOCK 0x80
-
-
-/* I2O BSA Power Management Operation values */
-
-typedef uint8_t i2o_bsa_operation_t;
-#define I2O_BSA_POWER_MGT_PARTIAL_POWER_UP 0x01
-#define I2O_BSA_POWER_MGT_POWER_UP 0x02
-#define I2O_BSA_POWER_MGT_POWER_UP_LOAD 0x03
-#define I2O_BSA_POWER_MGT_QUIESCE_DEVICE 0x20
-#define I2O_BSA_POWER_MGT_PARTIAL_POWER_DOWN 0x21
-#define I2O_BSA_POWER_MGT_PARTIAL_POWER_DOWN_UNLOAD 0x22
-#define I2O_BSA_POWER_MGT_POWER_DOWN_UNLOAD 0x23
-#define I2O_BSA_POWER_MGT_POWER_DOWN_RETAIN 0x24
-
-
-
-/* I2O BSA Block Read Message Frame */
-
-typedef struct i2o_bsa_read_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_read_flags_t ControlFlags;
- uint8_t TimeMultiplier;
- uint8_t FetchAhead;
- uint32_t TransferByteCount;
- uint64_t LogicalByteAddress;
- i2o_sg_element_t SGL;
-} i2o_bsa_read_message_t;
-
-
-
-/* I2O BSA Block Reassign Message Frame */
-
-typedef struct i2o_bsa_block_reassign_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t Reserved1;
- uint8_t TimeMultiplier;
- uint8_t Reserved2;
- i2o_sg_element_t SGL;
-} i2o_bsa_block_reassign_message_t;
-
-
-
-/* I2O BSA Block Write Message Frame */
-
-typedef struct i2o_bsa_write_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_write_flags_t ControlFlags;
- uint8_t TimeMultiplier;
- uint8_t Reserved;
- uint32_t TransferByteCount;
- uint64_t LogicalByteAddress;
- i2o_sg_element_t SGL;
-} i2o_bsa_write_message_t;
-
-
-
-/* I2O BSA Block Write and Verify Message Frame */
-
-typedef struct i2o_bsa_write_verify_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_write_flags_t ControlFlags;
- uint8_t TimeMultiplier;
- uint8_t Reserved;
- uint32_t TransferByteCount;
- uint64_t LogicalByteAddress;
- i2o_sg_element_t SGL;
-} i2o_bsa_write_verify_message_t;
-
-
-
-/* I2O BSA Cache Flush Message Frame */
-
-typedef struct i2o_bsa_cache_flush_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_ctl_flags_t ControlFlags;
- uint8_t TimeMultiplier;
- uint8_t Reserved;
-} i2o_bsa_cache_flush_message_t;
-
-
-
-/* I2O BSA Device Reset Message Frame */
-
-typedef struct _12o_bsa_device_reset_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_reset_flags_t ControlFlags;
- uint8_t TimeMultiplier;
- uint8_t Reserved;
-} i2o_bsa_device_reset_message_t;
-
-
-
-/* I2O BSA Media Eject for Removeable Media Message Frame */
-
-typedef struct i2o_bsa_media_eject_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_media_id_t MediaIdentifier;
-} i2o_bsa_media_eject_message_t;
-
-
-
-/* I2O BSA Media Lock Message Frame */
-
-typedef struct i2o_bsa_media_lock_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_media_id_t MediaIdentifier;
-} i2o_bsa_media_lock_message_t;
-
-
-
-/* I2O BSA Media Mount for Removeable Media Message Frame */
-
-typedef struct i2o_bsa_media_mount_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_media_id_t MediaIdentifier;
- i2o_bsa_load_flags_t LoadFlags;
- uint8_t Reserved[3];
-} i2o_bsa_media_mount_message_t;
-
-
-
-/* I2O BSA Media Unlock Message Frame */
-
-typedef struct i2o_bsa_media_unlock_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_media_id_t MediaIdentifier;
-} i2o_bsa_media_unlock_message_t;
-
-
-
-/* I2O BSA Media Verify Message Frame */
-
-typedef struct i2o_bsa_media_verify_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_verify_flags_t ControlFlags;
- uint8_t TimeMultiplier;
- uint8_t Reserved;
- uint32_t ByteCount;
- uint64_t LogicalByteAddress;
-} i2o_bsa_media_verify_message_t;
-
-
-
-/* I2O BSA Power Management Message Frame */
-
-typedef struct i2o_bsa_power_management_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- i2o_bsa_ctl_flags_t ControlFlags;
- uint8_t TimeMultiplier;
- uint8_t ReplyType;
- i2o_bsa_operation_t Operation;
-} i2o_bsa_power_management_message_t;
-
-
-
-/* I2O BSA Status Check Message Frame */
-
-typedef struct i2o_bsa_status_check_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_bsa_status_check_message_t;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_I2OMSTOR_H */
diff --git a/usr/src/uts/common/sys/i2o/i2outil.h b/usr/src/uts/common/sys/i2o/i2outil.h
deleted file mode 100644
index a3bbd40267..0000000000
--- a/usr/src/uts/common/sys/i2o/i2outil.h
+++ /dev/null
@@ -1,391 +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 deriavative works to this header-file
- * program. However, all copies of the program and its derivative
- * works must contain the I2O SIG copyright notice.
- * ********************************************************************
- */
-
-/*
- * ********************************************************************
- * I2OUtil.h -- I2O Utility Class Message defintion file
- *
- * This file contains information presented in Chapter 6 of the I2O
- * Specification.
- * ********************************************************************
- */
-
-/*
- * Copyright (c) 1998 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-#ifndef _SYS_I2OUTIL_H
-#define _SYS_I2OUTIL_H
-
-#pragma ident "%W% %E% SMI"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define I2OUTIL_REV 1_5_4 /* I2OUtil header file revision string */
-
-#include <sys/i2o/i2omsg.h> /* Include the Base Message file */
-
-/*
- * ********************************************************************
- * 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.
- * ********************************************************************
- */
-
-/* Utility Message class functions. */
-
-#define I2O_UTIL_NOP 0x00
-#define I2O_UTIL_ABORT 0x01
-#define I2O_UTIL_CLAIM 0x09
-#define I2O_UTIL_CLAIM_RELEASE 0x0B
-#define I2O_UTIL_CONFIG_DIALOG 0x10
-#define I2O_UTIL_DEVICE_RESERVE 0x0D
-#define I2O_UTIL_DEVICE_RELEASE 0x0F
-#define I2O_UTIL_EVENT_ACKNOWLEDGE 0x14
-#define I2O_UTIL_EVENT_REGISTER 0x13
-#define I2O_UTIL_LOCK 0x17
-#define I2O_UTIL_LOCK_RELEASE 0x19
-#define I2O_UTIL_PARAMS_GET 0x06
-#define I2O_UTIL_PARAMS_SET 0x05
-#define I2O_UTIL_REPLY_FAULT_NOTIFY 0x15
-
-/* ************************************************************************** */
-
-/* ABORT Abort type defines. */
-
-#define I2O_ABORT_TYPE_EXACT_ABORT 0x00
-#define I2O_ABORT_TYPE_FUNCTION_ABORT 0x01
-#define I2O_ABORT_TYPE_TRANSACTION_ABORT 0x02
-#define I2O_ABORT_TYPE_WILD_ABORT 0x03
-#define I2O_ABORT_TYPE_CLEAN_EXACT_ABORT 0x04
-#define I2O_ABORT_TYPE_CLEAN_FUNCTION_ABORT 0x05
-#define I2O_ABORT_TYPE_CLEAN_TRANSACTION_ABORT 0x06
-#define I2O_ABORT_TYPE_CLEAN_WILD_ABORT 0x07
-
-/* UtilAbort Function Message Frame structure. */
-
-typedef struct i2o_util_abort_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t reserved;
- uint8_t AbortType;
- uint8_t FunctionToAbort;
- i2o_transaction_context_t TransactionContextToAbort;
-} i2o_util_abort_message_t;
-
-typedef struct i2o_util_abort_reply {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t CountOfAbortedMessages;
-} i2o_util_abort_reply_t;
-
-/* ************************************************************************** */
-
-/* Claim Flag defines */
-
-#define I2O_CLAIM_FLAGS_EXCLUSIVE 0x0001 /* Reserved */
-#define I2O_CLAIM_FLAGS_RESET_SENSITIVE 0x0002
-#define I2O_CLAIM_FLAGS_STATE_SENSITIVE 0x0004
-#define I2O_CLAIM_FLAGS_CAPACITY_SENSITIVE 0x0008
-#define I2O_CLAIM_FLAGS_PEER_SERVICE_DISABLED 0x0010
-#define I2O_CLAIM_FLAGS_MGMT_SERVICE_DISABLED 0x0020
-
-/* Claim Type defines */
-
-#define I2O_CLAIM_TYPE_PRIMARY_USER 0x01
-#define I2O_CLAIM_TYPE_AUTHORIZED_USER 0x02
-#define I2O_CLAIM_TYPE_SECONDARY_USER 0x03
-#define I2O_CLAIM_TYPE_MANAGEMENT_USER 0x04
-
-/* UtilClaim Function Message Frame structure. */
-
-typedef struct i2o_util_claim_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t ClaimFlags;
- uint8_t reserved;
- uint8_t ClaimType;
-} i2o_util_claim_message_t;
-
-/* ************************************************************************** */
-
-/* Claim Release Flag defines */
-
-#define I2O_RELEASE_FLAGS_CONDITIONAL 0x0001
-
-/* UtilClaimRelease Function Message Frame structure. */
-
-typedef struct i2o_util_claim_release_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint16_t ReleaseFlags;
- uint8_t reserved;
- uint8_t ClaimType;
-} i2o_util_claim_release_message_t;
-
-/* ************************************************************************** */
-
-/* UtilConfigDialog Function Message Frame structure */
-
-typedef struct i2o_util_config_dialog_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t PageNumber;
- i2o_sg_element_t SGL;
-} i2o_util_config_dialog_message_t;
-
-/* ************************************************************************** */
-
-/* Event Acknowledge Function Message Frame structure */
-
-typedef struct i2o_util_event_ack_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t EventIndicator;
- uint32_t EventData[1];
-} i2o_util_event_ack_message_t;
-
-/* Event Ack Reply structure */
-
-typedef struct i2o_util_event_ack_reply {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t EventIndicator;
- uint32_t EventData[1];
-} i2o_util_event_ack_reply_t;
-
-/* ************************************************************************** */
-
-/* Event Indicator Mask Flags */
-
-#define I2O_EVENT_IND_STATE_CHANGE 0x80000000
-#define I2O_EVENT_IND_GENERAL_WARNING 0x40000000
-#define I2O_EVENT_IND_CONFIGURATION_FLAG 0x20000000
-/* #define I2O_EVENT_IND_RESERVE_RELEASE 0x10000000 */
-#define I2O_EVENT_IND_LOCK_RELEASE 0x10000000
-#define I2O_EVENT_IND_CAPABILITY_CHANGE 0x08000000
-#define I2O_EVENT_IND_DEVICE_RESET 0x04000000
-#define I2O_EVENT_IND_EVENT_MASK_MODIFIED 0x02000000
-#define I2O_EVENT_IND_FIELD_MODIFIED 0x01000000
-#define I2O_EVENT_IND_VENDOR_EVENT 0x00800000
-#define I2O_EVENT_IND_DEVICE_STATE 0x00400000
-
-/* Event Data for generic Events */
-
-#define I2O_EVENT_STATE_CHANGE_NORMAL 0x00
-#define I2O_EVENT_STATE_CHANGE_SUSPENDED 0x01
-#define I2O_EVENT_STATE_CHANGE_RESTART 0x02
-#define I2O_EVENT_STATE_CHANGE_NA_RECOVER 0x03
-#define I2O_EVENT_STATE_CHANGE_NA_NO_RECOVER 0x04
-#define I2O_EVENT_STATE_CHANGE_QUIESCE_REQUEST 0x05
-#define I2O_EVENT_STATE_CHANGE_FAILED 0x10
-#define I2O_EVENT_STATE_CHANGE_FAULTED 0x11
-
-#define I2O_EVENT_GEN_WARNING_NORMAL 0x00
-#define I2O_EVENT_GEN_WARNING_ERROR_THRESHOLD 0x01
-#define I2O_EVENT_GEN_WARNING_MEDIA_FAULT 0x02
-
-#define I2O_EVENT_CAPABILITY_OTHER 0x01
-#define I2O_EVENT_CAPABILITY_CHANGED 0x02
-
-#define I2O_EVENT_SENSOR_STATE_CHANGED 0x01
-
-/* UtilEventRegister Function Message Frame structure */
-
-typedef struct i2o_util_event_register_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t EventMask;
-} i2o_util_event_register_message_t;
-
-/* UtilEventRegister Reply structure */
-
-typedef struct i2o_util_event_register_reply {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t EventIndicator;
- uint32_t EventData[1];
-} i2o_util_event_register_reply_t;
-
-/* ************************************************************************** */
-
-/* UtilLock Function Message Frame structure. */
-
-typedef struct i2o_util_lock_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_util_lock_message_t;
-
-/* ************************************************************************** */
-
-/* UtilLockRelease Function Message Frame structure. */
-
-typedef struct i2o_util_lock_release_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_util_lock_release_message_t;
-
-/* ************************************************************************** */
-
-/* UtilNOP Function Message Frame structure. */
-
-typedef struct i2o_util_nop_message {
- i2o_message_frame_t StdMessageFrame;
-} i2o_util_nop_message_t;
-
-/* ************************************************************************** */
-
-/* UtilParamsGet Message Frame structure. */
-
-typedef struct i2o_util_params_get_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t OperationFlags;
- i2o_sg_element_t SGL;
-} i2o_util_params_get_message_t;
-
-/* ************************************************************************** */
-
-/* UtilParamsSet Message Frame structure. */
-
-typedef struct i2o_util_params_set_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint32_t OperationFlags;
- i2o_sg_element_t SGL;
-} i2o_util_params_set_message_t;
-
-
-/* ************************************************************************** */
-
-/* UtilReplyFaultNotify Message for Message Failure. */
-
-#if defined(_BIT_FIELDS_LTOH) && defined(_LITTLE_ENDIAN)
-
-typedef struct i2o_util_reply_fault_notify_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t LowestVersion;
- uint8_t HighestVersion;
- uint8_t Severity;
- uint8_t FailureCode;
- union {
- struct {
- uint16_t FailingIOP_ID:12;
- uint16_t reserved:4;
- } s;
- uint16_t h1;
- } u1;
- uint16_t FailingHostUnitID;
- uint32_t AgeLimit;
-#if I2O_64BIT_CONTEXT
- i2o_message_frame_t *OriginalMFA;
-#else
- i2o_message_frame_t *OriginalMFALowPart;
- uint32_t OriginalMFAHighPart; /* Always 0000 */
-#endif
-} i2o_util_reply_fault_notify_message_t;
-
-#define get_i2o_util_FailingIOP_ID(p, hdl) (p)->u1.s.FailingIOP_ID
-
-#endif
-
-#if defined(_BIT_FIELDS_HTOL) && defined(_BIG_ENDIAN)
-
-typedef struct i2o_util_reply_fault_notify_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
- uint8_t LowestVersion;
- uint8_t HighestVersion;
- uint8_t Severity;
- uint8_t FailureCode;
- union {
- struct {
- uint16_t reserved:4;
- uint16_t FailingIOP_ID:12;
- } s;
- uint32_t h1;
- } u1;
- uint16_t FailingHostUnitID;
- uint32_t AgeLimit;
-#if I2O_64BIT_CONTEXT
- i2o_message_frame_t *OriginalMFA;
-#else
- i2o_message_frame_t *OriginalMFALowPart;
- uint32_t OriginalMFAHighPart; /* Always 0000 */
-#endif
-} i2o_util_reply_fault_notify_message_t;
-
-#define get_i2o_util_FailingIOP_ID(p, hdl) \
- (ddi_get16(hdl, &(p)->u1.h1) & 0xFFF)
-
-#endif
-
-/* ************************************************************************** */
-
-/* Device Reserve Function Message Frame structure. */
-/* NOTE: This was previously called the Reserve Message */
-
-typedef struct i2o_util_device_reserve_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_util_device_reserve_message_t;
-
-/* ************************************************************************** */
-
-/* Device Release Function Message Frame structure. */
-/* NOTE: This was previously called the ReserveRelease Message */
-
-typedef struct i2o_util_device_release_message {
- i2o_message_frame_t StdMessageFrame;
- i2o_transaction_context_t TransactionContext;
-} i2o_util_device_release_message_t;
-
-/* ************************************************************************** */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_I2OUTIL_H */