1*7836SJohn.Forte@Sun.COM /* 2*7836SJohn.Forte@Sun.COM * CDDL HEADER START 3*7836SJohn.Forte@Sun.COM * 4*7836SJohn.Forte@Sun.COM * The contents of this file are subject to the terms of the 5*7836SJohn.Forte@Sun.COM * Common Development and Distribution License (the "License"). 6*7836SJohn.Forte@Sun.COM * You may not use this file except in compliance with the License. 7*7836SJohn.Forte@Sun.COM * 8*7836SJohn.Forte@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*7836SJohn.Forte@Sun.COM * or http://www.opensolaris.org/os/licensing. 10*7836SJohn.Forte@Sun.COM * See the License for the specific language governing permissions 11*7836SJohn.Forte@Sun.COM * and limitations under the License. 12*7836SJohn.Forte@Sun.COM * 13*7836SJohn.Forte@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 14*7836SJohn.Forte@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*7836SJohn.Forte@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 16*7836SJohn.Forte@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 17*7836SJohn.Forte@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 18*7836SJohn.Forte@Sun.COM * 19*7836SJohn.Forte@Sun.COM * CDDL HEADER END 20*7836SJohn.Forte@Sun.COM */ 21*7836SJohn.Forte@Sun.COM /* 22*7836SJohn.Forte@Sun.COM * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*7836SJohn.Forte@Sun.COM * Use is subject to license terms. 24*7836SJohn.Forte@Sun.COM */ 25*7836SJohn.Forte@Sun.COM 26*7836SJohn.Forte@Sun.COM /****************************************************************************** 27*7836SJohn.Forte@Sun.COM * 28*7836SJohn.Forte@Sun.COM * Description 29*7836SJohn.Forte@Sun.COM * Ima.h - general header file for client 30*7836SJohn.Forte@Sun.COM * and library developers 31*7836SJohn.Forte@Sun.COM * 32*7836SJohn.Forte@Sun.COM * License: 33*7836SJohn.Forte@Sun.COM * The contents of this file are subject to the SNIA Public License 34*7836SJohn.Forte@Sun.COM * Version 1.0 (the "License"); you may not use this file except in 35*7836SJohn.Forte@Sun.COM * compliance with the License. You may obtain a copy of the License at 36*7836SJohn.Forte@Sun.COM * 37*7836SJohn.Forte@Sun.COM * /http://www.snia.org/English/Resources/Code/OpenSource.html 38*7836SJohn.Forte@Sun.COM * 39*7836SJohn.Forte@Sun.COM * Software distributed under the License is distributed on an "AS IS" 40*7836SJohn.Forte@Sun.COM * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 41*7836SJohn.Forte@Sun.COM * the License for the specific language governing rights and limitations 42*7836SJohn.Forte@Sun.COM * under the License. 43*7836SJohn.Forte@Sun.COM * 44*7836SJohn.Forte@Sun.COM * The Original Code is SNIA HBA API and IMA general header file 45*7836SJohn.Forte@Sun.COM * 46*7836SJohn.Forte@Sun.COM * The Initial Developer of the Original Code is: 47*7836SJohn.Forte@Sun.COM * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com) 48*7836SJohn.Forte@Sun.COM * David Dillard VERITAS Software david.dillard@veritas.com 49*7836SJohn.Forte@Sun.COM * 50*7836SJohn.Forte@Sun.COM * Contributor(s): 51*7836SJohn.Forte@Sun.COM * Jeff Ding, Adaptec, Inc. (jding@corp.adaptec.com) 52*7836SJohn.Forte@Sun.COM * Dave Wysochanski, Network Appliance, Inc. (davidw@netapp.com) 53*7836SJohn.Forte@Sun.COM * 54*7836SJohn.Forte@Sun.COM ****************************************************************************** 55*7836SJohn.Forte@Sun.COM * 56*7836SJohn.Forte@Sun.COM * Changes: 57*7836SJohn.Forte@Sun.COM * 09/24/2003 Initial Draft 58*7836SJohn.Forte@Sun.COM * (for other changes... see the CVS logs) 59*7836SJohn.Forte@Sun.COM * 12/15/2003 corrected the defined parameter in IMA_SetPhbaIsnsDiscovery(). 60*7836SJohn.Forte@Sun.COM * lower case the computer name as iscsi name in 61*7836SJohn.Forte@Sun.COM * IMA_GenerateNodeName(). 62*7836SJohn.Forte@Sun.COM * 03/01/2004 Brought up to date with respect to IMA v1.0.1; made formatting 63*7836SJohn.Forte@Sun.COM * changes - lines to 80 cols - for readability. 64*7836SJohn.Forte@Sun.COM * 65*7836SJohn.Forte@Sun.COM * 01/21/2005 Updated to support IMA 1.1.3. 66*7836SJohn.Forte@Sun.COM *****************************************************************************/ 67*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 68*7836SJohn.Forte@Sun.COM extern "C" { 69*7836SJohn.Forte@Sun.COM #endif 70*7836SJohn.Forte@Sun.COM 71*7836SJohn.Forte@Sun.COM #ifndef IMA_H 72*7836SJohn.Forte@Sun.COM #define IMA_H 73*7836SJohn.Forte@Sun.COM 74*7836SJohn.Forte@Sun.COM #include <time.h> 75*7836SJohn.Forte@Sun.COM #include <wchar.h> 76*7836SJohn.Forte@Sun.COM 77*7836SJohn.Forte@Sun.COM 78*7836SJohn.Forte@Sun.COM /* Library version string */ 79*7836SJohn.Forte@Sun.COM #define HBA_LIBVERSION 2 80*7836SJohn.Forte@Sun.COM 81*7836SJohn.Forte@Sun.COM /* DLL imports for WIN32 operation */ 82*7836SJohn.Forte@Sun.COM #ifdef WIN32 83*7836SJohn.Forte@Sun.COM #ifdef IMA_EXPORTS 84*7836SJohn.Forte@Sun.COM #define IMA_API __declspec(dllexport) 85*7836SJohn.Forte@Sun.COM #else 86*7836SJohn.Forte@Sun.COM #define IMA_API __declspec(dllimport) 87*7836SJohn.Forte@Sun.COM #endif 88*7836SJohn.Forte@Sun.COM #else 89*7836SJohn.Forte@Sun.COM #define IMA_API 90*7836SJohn.Forte@Sun.COM #endif 91*7836SJohn.Forte@Sun.COM 92*7836SJohn.Forte@Sun.COM /* OS specific definitions */ 93*7836SJohn.Forte@Sun.COM 94*7836SJohn.Forte@Sun.COM #ifdef WIN32 95*7836SJohn.Forte@Sun.COM typedef unsigned char IMA_UINT8; // Unsigned 8 bits 96*7836SJohn.Forte@Sun.COM typedef char IMA_INT8; // Signed 8 bits 97*7836SJohn.Forte@Sun.COM typedef unsigned short IMA_UINT16; // Unsigned 16 bits 98*7836SJohn.Forte@Sun.COM typedef short IMA_INT16; // Signed 16 bits 99*7836SJohn.Forte@Sun.COM typedef unsigned int IMA_UINT32; // Unsigned 32 bits 100*7836SJohn.Forte@Sun.COM typedef int IMA_INT32; // Signed 32 bits 101*7836SJohn.Forte@Sun.COM typedef void* IMA_PVOID; // Pointer to void 102*7836SJohn.Forte@Sun.COM typedef IMA_UINT32 IMA_VOID32; // Opaque 32 bits 103*7836SJohn.Forte@Sun.COM 104*7836SJohn.Forte@Sun.COM 105*7836SJohn.Forte@Sun.COM /* Don't confuse, _WIN32 with WIN32... OK, how do you accompish that */ 106*7836SJohn.Forte@Sun.COM #ifdef _WIN32 107*7836SJohn.Forte@Sun.COM typedef __int64 IMA_INT64; 108*7836SJohn.Forte@Sun.COM typedef unsigned __int64 IMA_UINT64; 109*7836SJohn.Forte@Sun.COM #else 110*7836SJohn.Forte@Sun.COM typedef struct { 111*7836SJohn.Forte@Sun.COM TN_UINT32 lo_val; 112*7836SJohn.Forte@Sun.COM TN_UINT32 hi_val; 113*7836SJohn.Forte@Sun.COM } IMA_INT64; 114*7836SJohn.Forte@Sun.COM 115*7836SJohn.Forte@Sun.COM typedef struct { 116*7836SJohn.Forte@Sun.COM TN_UINT32 lo_val; 117*7836SJohn.Forte@Sun.COM TN_UINT32 hi_val; 118*7836SJohn.Forte@Sun.COM } IMA_UINT64; 119*7836SJohn.Forte@Sun.COM #endif /* #ifdef _WIN32 */ 120*7836SJohn.Forte@Sun.COM 121*7836SJohn.Forte@Sun.COM 122*7836SJohn.Forte@Sun.COM #else 123*7836SJohn.Forte@Sun.COM 124*7836SJohn.Forte@Sun.COM /* Note this section needs to be cleaned up for various Unix platforms */ 125*7836SJohn.Forte@Sun.COM typedef unsigned char IMA_UINT8; /* Unsigned 8 bits */ 126*7836SJohn.Forte@Sun.COM typedef char IMA_INT8; /* Signed 8 bits */ 127*7836SJohn.Forte@Sun.COM typedef unsigned short IMA_UINT16; /* Unsigned 16 bits */ 128*7836SJohn.Forte@Sun.COM typedef short IMA_INT16; /* Signed 16 bits */ 129*7836SJohn.Forte@Sun.COM typedef unsigned int IMA_UINT32; /* Unsigned 32 bits */ 130*7836SJohn.Forte@Sun.COM typedef int IMA_INT32; /* Signed 32 bits */ 131*7836SJohn.Forte@Sun.COM typedef void* IMA_PVOID; /* Pointer to void */ 132*7836SJohn.Forte@Sun.COM typedef IMA_UINT32 IMA_VOID32; /* Opaque 32 bits */ 133*7836SJohn.Forte@Sun.COM typedef long long IMA_INT64; 134*7836SJohn.Forte@Sun.COM typedef long long IMA_UINT64; 135*7836SJohn.Forte@Sun.COM 136*7836SJohn.Forte@Sun.COM #endif /* #ifdef WIN32 */ 137*7836SJohn.Forte@Sun.COM 138*7836SJohn.Forte@Sun.COM 139*7836SJohn.Forte@Sun.COM 140*7836SJohn.Forte@Sun.COM /** 141*7836SJohn.Forte@Sun.COM ******************************************************************************* 142*7836SJohn.Forte@Sun.COM * 143*7836SJohn.Forte@Sun.COM * Generic IMA Constant Definitions 144*7836SJohn.Forte@Sun.COM * 145*7836SJohn.Forte@Sun.COM ******************************************************************************* 146*7836SJohn.Forte@Sun.COM */ 147*7836SJohn.Forte@Sun.COM #define RL_LIBRARY_SEQNUM 0 148*7836SJohn.Forte@Sun.COM #define RL_SHARED_NODE_SEQNUM 0 149*7836SJohn.Forte@Sun.COM 150*7836SJohn.Forte@Sun.COM /** 151*7836SJohn.Forte@Sun.COM * Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL. 152*7836SJohn.Forte@Sun.COM */ 153*7836SJohn.Forte@Sun.COM #define IMA_TRUE 1 154*7836SJohn.Forte@Sun.COM 155*7836SJohn.Forte@Sun.COM /** 156*7836SJohn.Forte@Sun.COM * Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL. 157*7836SJohn.Forte@Sun.COM */ 158*7836SJohn.Forte@Sun.COM #define IMA_FALSE 0 159*7836SJohn.Forte@Sun.COM 160*7836SJohn.Forte@Sun.COM /** 161*7836SJohn.Forte@Sun.COM * Value which can be assigned to an IMA_XBOOL. 162*7836SJohn.Forte@Sun.COM */ 163*7836SJohn.Forte@Sun.COM #define IMA_UNKNOWN 0xFFFFFFFF 164*7836SJohn.Forte@Sun.COM 165*7836SJohn.Forte@Sun.COM 166*7836SJohn.Forte@Sun.COM 167*7836SJohn.Forte@Sun.COM /** 168*7836SJohn.Forte@Sun.COM ******************************************************************************* 169*7836SJohn.Forte@Sun.COM * 170*7836SJohn.Forte@Sun.COM * Base IMA Type Definitions 171*7836SJohn.Forte@Sun.COM * 172*7836SJohn.Forte@Sun.COM * @note Types that have a specific size must be defined ImaOsTypes.h which is 173*7836SJohn.Forte@Sun.COM * an OS specific include file which is included by this file. 174*7836SJohn.Forte@Sun.COM * 175*7836SJohn.Forte@Sun.COM ******************************************************************************* 176*7836SJohn.Forte@Sun.COM */ 177*7836SJohn.Forte@Sun.COM 178*7836SJohn.Forte@Sun.COM /** 179*7836SJohn.Forte@Sun.COM * A character. 180*7836SJohn.Forte@Sun.COM */ 181*7836SJohn.Forte@Sun.COM typedef char IMA_CHAR; 182*7836SJohn.Forte@Sun.COM 183*7836SJohn.Forte@Sun.COM /** 184*7836SJohn.Forte@Sun.COM * A wide character. 185*7836SJohn.Forte@Sun.COM */ 186*7836SJohn.Forte@Sun.COM typedef wchar_t IMA_WCHAR; 187*7836SJohn.Forte@Sun.COM 188*7836SJohn.Forte@Sun.COM /** 189*7836SJohn.Forte@Sun.COM * An integer. Spec states this is 32 bits on 32-bit systems, and 64-bit 190*7836SJohn.Forte@Sun.COM * on 64-bit systems. 191*7836SJohn.Forte@Sun.COM */ 192*7836SJohn.Forte@Sun.COM typedef unsigned long IMA_UINT; 193*7836SJohn.Forte@Sun.COM 194*7836SJohn.Forte@Sun.COM /** 195*7836SJohn.Forte@Sun.COM * A boolean. 196*7836SJohn.Forte@Sun.COM */ 197*7836SJohn.Forte@Sun.COM typedef IMA_UINT32 IMA_BOOL; 198*7836SJohn.Forte@Sun.COM 199*7836SJohn.Forte@Sun.COM /** 200*7836SJohn.Forte@Sun.COM * An extended boolean: can have the values @ref IMA_TRUE, @ref IMA_FALSE, and 201*7836SJohn.Forte@Sun.COM * @ref IMA_UNKNOWN. 202*7836SJohn.Forte@Sun.COM */ 203*7836SJohn.Forte@Sun.COM typedef IMA_UINT32 IMA_XBOOL; 204*7836SJohn.Forte@Sun.COM 205*7836SJohn.Forte@Sun.COM /** 206*7836SJohn.Forte@Sun.COM * A date and time. 207*7836SJohn.Forte@Sun.COM */ 208*7836SJohn.Forte@Sun.COM typedef struct tm IMA_DATETIME; 209*7836SJohn.Forte@Sun.COM 210*7836SJohn.Forte@Sun.COM typedef unsigned char IMA_BYTE; 211*7836SJohn.Forte@Sun.COM 212*7836SJohn.Forte@Sun.COM /** 213*7836SJohn.Forte@Sun.COM ******************************************************************************* 214*7836SJohn.Forte@Sun.COM * 215*7836SJohn.Forte@Sun.COM * Constants and macros declarations related to IMA_STATUS 216*7836SJohn.Forte@Sun.COM * 217*7836SJohn.Forte@Sun.COM ******************************************************************************* 218*7836SJohn.Forte@Sun.COM */ 219*7836SJohn.Forte@Sun.COM #ifdef SOLARIS 220*7836SJohn.Forte@Sun.COM typedef IMA_UINT IMA_STATUS; 221*7836SJohn.Forte@Sun.COM 222*7836SJohn.Forte@Sun.COM #define IMA_STATUS_SUCCESS 0x00000000 223*7836SJohn.Forte@Sun.COM #define IMA_STATUS_ERROR 0x80000000 224*7836SJohn.Forte@Sun.COM 225*7836SJohn.Forte@Sun.COM #define IMA_SUCCESS(status) (((IMA_STATUS)(status) & \ 226*7836SJohn.Forte@Sun.COM (IMA_STATUS)IMA_STATUS_ERROR) == 0 ? IMA_TRUE : IMA_FALSE) 227*7836SJohn.Forte@Sun.COM #define IMA_ERROR(status) (((IMA_STATUS)(status) & \ 228*7836SJohn.Forte@Sun.COM (IMA_STATUS)IMA_STATUS_ERROR) == 0x8000000 ? IMA_TRUE : IMA_FALSE) 229*7836SJohn.Forte@Sun.COM 230*7836SJohn.Forte@Sun.COM #define MAKE_IMA_STATUS(x) ((IMA_STATUS)(x)) 231*7836SJohn.Forte@Sun.COM #define MAKE_IMA_ERROR(x) ((IMA_STATUS)(IMA_STATUS_ERROR | (x))) 232*7836SJohn.Forte@Sun.COM #define GET_SYSTEM_ERROR(x) (((IMA_STATUS)(x) & 0x0000FFFF)) 233*7836SJohn.Forte@Sun.COM 234*7836SJohn.Forte@Sun.COM #define IMA_STATUS_REBOOT_NECESSARY MAKE_IMA_STATUS(0x01) 235*7836SJohn.Forte@Sun.COM #define IMA_STATUS_INCONSISTENT_NODE_PROPERTIES MAKE_IMA_STATUS(0x02) 236*7836SJohn.Forte@Sun.COM #define IMA_STATUS_SCSI_STATUS_CONDITION_MET MAKE_IMA_STATUS(0x100) 237*7836SJohn.Forte@Sun.COM 238*7836SJohn.Forte@Sun.COM #define IMA_ERROR_NOT_SUPPORTED MAKE_IMA_ERROR(0x01) 239*7836SJohn.Forte@Sun.COM #define IMA_ERROR_INSUFFICIENT_MEMORY MAKE_IMA_ERROR(0x02) 240*7836SJohn.Forte@Sun.COM #define IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD MAKE_IMA_ERROR(0x03) 241*7836SJohn.Forte@Sun.COM #define IMA_ERROR_UNEXPECTED_OS_ERROR MAKE_IMA_ERROR(0x04) 242*7836SJohn.Forte@Sun.COM #define IMA_ERROR_SYNC_TIMEOUT MAKE_IMA_ERROR(0x05) 243*7836SJohn.Forte@Sun.COM #define IMA_ERROR_LU_EXPOSED MAKE_IMA_ERROR(0x06) 244*7836SJohn.Forte@Sun.COM #define IMA_ERROR_LU_NOT_EXPOSED MAKE_IMA_ERROR(0x07) 245*7836SJohn.Forte@Sun.COM #define IMA_ERROR_LU_IN_USE MAKE_IMA_ERROR(0x08) 246*7836SJohn.Forte@Sun.COM #define IMA_ERROR_TARGET_TIMEOUT MAKE_IMA_ERROR(0x09) 247*7836SJohn.Forte@Sun.COM #define IMA_ERROR_LOGIN_REJECTED MAKE_IMA_ERROR(0x0A) 248*7836SJohn.Forte@Sun.COM #define IMA_ERROR_STATS_COLLECTION_NOT_ENABLED MAKE_IMA_ERROR(0x0B) 249*7836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_CHECK_CONDITION MAKE_IMA_ERROR(0x100) 250*7836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_BUSY MAKE_IMA_ERROR(0x101) 251*7836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT MAKE_IMA_ERROR(0x102) 252*7836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_TASK_SET_FULL MAKE_IMA_ERROR(0x103) 253*7836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_ACA_ACTIVE MAKE_IMA_ERROR(0x104) 254*7836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_TASK_ABORTED MAKE_IMA_ERROR(0x105) 255*7836SJohn.Forte@Sun.COM #define IMA_ERROR_INVALID_PARAMETER MAKE_IMA_ERROR(0x40000000) 256*7836SJohn.Forte@Sun.COM #define IMA_ERROR_INVALID_OBJECT_TYPE MAKE_IMA_ERROR(0x40000001) 257*7836SJohn.Forte@Sun.COM #define IMA_ERROR_INCORRECT_OBJECT_TYPE MAKE_IMA_ERROR(0x40000002) 258*7836SJohn.Forte@Sun.COM #define IMA_ERROR_OBJECT_NOT_FOUND MAKE_IMA_ERROR(0x40000003) 259*7836SJohn.Forte@Sun.COM #define IMA_ERROR_NAME_TOO_LONG MAKE_IMA_ERROR(0x40000004) 260*7836SJohn.Forte@Sun.COM #define IMA_ERROR_UNKNOWN_ERROR MAKE_IMA_ERROR(0x0fffffff) 261*7836SJohn.Forte@Sun.COM 262*7836SJohn.Forte@Sun.COM #else 263*7836SJohn.Forte@Sun.COM 264*7836SJohn.Forte@Sun.COM typedef enum { 265*7836SJohn.Forte@Sun.COM IMA_STATUS_SUCCESS = 0x00000000, 266*7836SJohn.Forte@Sun.COM IMA_STATUS_REBOOT_NECESSARY = 0x00000001, 267*7836SJohn.Forte@Sun.COM IMA_STATUS_INCONSISTENT_NODE_PROPERTIES = 0x00000002, 268*7836SJohn.Forte@Sun.COM IMA_STATUS_SCSI_STATUS_CONDITION_MET = 0x00000100, 269*7836SJohn.Forte@Sun.COM 270*7836SJohn.Forte@Sun.COM IMA_STATUS_ERROR = 0x80000000, 271*7836SJohn.Forte@Sun.COM IMA_ERROR_NOT_SUPPORTED = 0x80000001, 272*7836SJohn.Forte@Sun.COM IMA_ERROR_INSUFFICIENT_MEMORY = 0x80000002, 273*7836SJohn.Forte@Sun.COM IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD = 0x80000003, 274*7836SJohn.Forte@Sun.COM IMA_ERROR_UNEXPECTED_OS_ERROR = 0x80000004, 275*7836SJohn.Forte@Sun.COM IMA_ERROR_SYNC_TIMEOUT = 0x80000005, 276*7836SJohn.Forte@Sun.COM IMA_ERROR_LU_EXPOSED = 0x80000006, 277*7836SJohn.Forte@Sun.COM IMA_ERROR_LU_NOT_EXPOSED = 0x80000007, 278*7836SJohn.Forte@Sun.COM IMA_ERROR_LU_IN_USE = 0x80000008, 279*7836SJohn.Forte@Sun.COM IMA_ERROR_TARGET_TIMEOUT = 0x80000009, 280*7836SJohn.Forte@Sun.COM IMA_ERROR_LOGIN_REJECTED = 0x8000000A, 281*7836SJohn.Forte@Sun.COM IMA_ERROR_STATS_COLLECTION_NOT_ENABLED = 0x8000000B, 282*7836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_CHECK_CONDITION = 0x80000100, 283*7836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_BUSY = 0x80000101, 284*7836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT = 0x80000102, 285*7836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_TASK_SET_FULL = 0x80000103, 286*7836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_ACA_ACTIVE = 0x80000104, 287*7836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_TASK_ABORTED = 0x80000105, 288*7836SJohn.Forte@Sun.COM IMA_ERROR_INVALID_PARAMETER = 0xC0000000, 289*7836SJohn.Forte@Sun.COM IMA_ERROR_INVALID_OBJECT_TYPE = 0xC0000001, 290*7836SJohn.Forte@Sun.COM IMA_ERROR_INCORRECT_OBJECT_TYPE = 0xC0000002, 291*7836SJohn.Forte@Sun.COM IMA_ERROR_OBJECT_NOT_FOUND = 0xC0000003, 292*7836SJohn.Forte@Sun.COM IMA_ERROR_NAME_TOO_LONG = 0xC0000004, 293*7836SJohn.Forte@Sun.COM IMA_ERROR_UNKNOWN_ERROR = 0x8FFFFFFF 294*7836SJohn.Forte@Sun.COM } IMA_STATUS; 295*7836SJohn.Forte@Sun.COM 296*7836SJohn.Forte@Sun.COM /* 297*7836SJohn.Forte@Sun.COM #define IMA_SUCCESS(status) ( (IMA_UINT32)(status) & \ 298*7836SJohn.Forte@Sun.COM (IMA_UINT32)IMA_STATUS_ERROR == 0 ? \ 299*7836SJohn.Forte@Sun.COM IMA_TRUE : IMA_FALSE ) 300*7836SJohn.Forte@Sun.COM #define IMA_ERROR(status) ( (IMA_UINT32)(status) & \ 301*7836SJohn.Forte@Sun.COM (IMA_UINT32)IMA_STATUS_ERROR == 0x8000000 ? \ 302*7836SJohn.Forte@Sun.COM IMA_TRUE : IMA_FALSE ) 303*7836SJohn.Forte@Sun.COM */ 304*7836SJohn.Forte@Sun.COM 305*7836SJohn.Forte@Sun.COM #define IMA_SUCCESS(status) !((status) & IMA_STATUS_ERROR) 306*7836SJohn.Forte@Sun.COM #define IMA_ERROR(status) ((status) & IMA_STATUS_ERROR) 307*7836SJohn.Forte@Sun.COM 308*7836SJohn.Forte@Sun.COM #endif 309*7836SJohn.Forte@Sun.COM 310*7836SJohn.Forte@Sun.COM /** 311*7836SJohn.Forte@Sun.COM ******************************************************************************* 312*7836SJohn.Forte@Sun.COM * 313*7836SJohn.Forte@Sun.COM * Declaration of the IMA_OBJECT_TYPE enumeration 314*7836SJohn.Forte@Sun.COM * 315*7836SJohn.Forte@Sun.COM ******************************************************************************* 316*7836SJohn.Forte@Sun.COM */ 317*7836SJohn.Forte@Sun.COM typedef enum 318*7836SJohn.Forte@Sun.COM { 319*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_UNKNOWN = 0, 320*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_PLUGIN = 1, 321*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_NODE = 2, 322*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_LHBA = 3, 323*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_PHBA = 4, 324*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_NETWORK_PORTAL = 5, 325*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_PORTAL_GROUP = 6, 326*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_LNP = 7, 327*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_PNP = 8, 328*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_TARGET = 9, 329*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_LU = 10, 330*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_DISCOVERY_ADDRESS = 11, 331*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_STATIC_DISCOVERY_TARGET = 12, 332*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_CONNECTION = 13, 333*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_SESSION = 14 334*7836SJohn.Forte@Sun.COM } IMA_OBJECT_TYPE; 335*7836SJohn.Forte@Sun.COM 336*7836SJohn.Forte@Sun.COM typedef enum 337*7836SJohn.Forte@Sun.COM { 338*7836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD_STATIC = 0, 339*7836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD_DHCP = 1, 340*7836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD_SLP = 2 341*7836SJohn.Forte@Sun.COM } IMA_ISNS_DISCOVERY_METHOD; 342*7836SJohn.Forte@Sun.COM 343*7836SJohn.Forte@Sun.COM typedef enum 344*7836SJohn.Forte@Sun.COM { 345*7836SJohn.Forte@Sun.COM IMA_DOWNLOAD_IMAGE_TYPE_FIRMWARE = 0, 346*7836SJohn.Forte@Sun.COM IMA_DOWNLOAD_IMAGE_TYPE_OPTION_ROM = 1, 347*7836SJohn.Forte@Sun.COM IMA_DOWNLOAD_IMAGE_TYPE_ALL = 2, 348*7836SJohn.Forte@Sun.COM IMA_DOWNLOAD_IMAGE_TYPE_BOOTCODE = 3 349*7836SJohn.Forte@Sun.COM } IMA_PHBA_DOWNLOAD_IMAGE_TYPE; 350*7836SJohn.Forte@Sun.COM 351*7836SJohn.Forte@Sun.COM typedef enum 352*7836SJohn.Forte@Sun.COM { 353*7836SJohn.Forte@Sun.COM IMA_PHBA_STATUS_WORKING = 0, 354*7836SJohn.Forte@Sun.COM IMA_PHBA_STATUS_FAILED = 1 355*7836SJohn.Forte@Sun.COM } IMA_PHBA_STATUS; 356*7836SJohn.Forte@Sun.COM 357*7836SJohn.Forte@Sun.COM typedef enum 358*7836SJohn.Forte@Sun.COM { 359*7836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_WORKING = 0, 360*7836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_DEGRADED = 1, 361*7836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_CRITICAL = 2, 362*7836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_FAILED = 3, 363*7836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_DISCONNECTED = 4 364*7836SJohn.Forte@Sun.COM } IMA_NETWORK_PORT_STATUS; 365*7836SJohn.Forte@Sun.COM 366*7836SJohn.Forte@Sun.COM typedef enum 367*7836SJohn.Forte@Sun.COM { 368*7836SJohn.Forte@Sun.COM IMA_TARGET_DISCOVERY_METHOD_STATIC = 1, 369*7836SJohn.Forte@Sun.COM IMA_TARGET_DISCOVERY_METHOD_SLP = 2, 370*7836SJohn.Forte@Sun.COM IMA_TARGET_DISCOVERY_METHOD_ISNS = 4, 371*7836SJohn.Forte@Sun.COM IMA_TARGET_DISCOVERY_METHOD_SENDTARGETS = 8 372*7836SJohn.Forte@Sun.COM } IMA_TARGET_DISCOVERY_METHOD; 373*7836SJohn.Forte@Sun.COM 374*7836SJohn.Forte@Sun.COM typedef enum 375*7836SJohn.Forte@Sun.COM { 376*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_NONE = 0, 377*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_CHAP = 1, 378*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_SRP = 2, 379*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_KRB5 = 3, 380*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_SPKM1 = 4, 381*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_SPKM2 = 5 382*7836SJohn.Forte@Sun.COM } IMA_AUTHMETHOD; 383*7836SJohn.Forte@Sun.COM 384*7836SJohn.Forte@Sun.COM typedef enum 385*7836SJohn.Forte@Sun.COM { 386*7836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_AUTO = 0, 387*7836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_ACTIVE, 388*7836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_PERSISTENT, 389*7836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_ACTIVE_AND_PERSISTENT, 390*7836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_ALL_WITH_RESET 391*7836SJohn.Forte@Sun.COM } IMA_COMMIT_LEVEL; 392*7836SJohn.Forte@Sun.COM 393*7836SJohn.Forte@Sun.COM typedef enum 394*7836SJohn.Forte@Sun.COM { 395*7836SJohn.Forte@Sun.COM IMA_DIGEST_NONE = 0, 396*7836SJohn.Forte@Sun.COM IMA_DIGEST_CRC32C = 1 397*7836SJohn.Forte@Sun.COM } IMA_DIGEST_TYPE; 398*7836SJohn.Forte@Sun.COM 399*7836SJohn.Forte@Sun.COM 400*7836SJohn.Forte@Sun.COM /** 401*7836SJohn.Forte@Sun.COM ******************************************************************************* 402*7836SJohn.Forte@Sun.COM * 403*7836SJohn.Forte@Sun.COM * Declaration of the IMA_OID structure 404*7836SJohn.Forte@Sun.COM * 405*7836SJohn.Forte@Sun.COM * This structure should be treated as opaque by clients of the API. 406*7836SJohn.Forte@Sun.COM * Appropriate APIs should be used to extract information from the structure. 407*7836SJohn.Forte@Sun.COM * 408*7836SJohn.Forte@Sun.COM ******************************************************************************* 409*7836SJohn.Forte@Sun.COM */ 410*7836SJohn.Forte@Sun.COM typedef struct _IMA_OID 411*7836SJohn.Forte@Sun.COM { 412*7836SJohn.Forte@Sun.COM /** 413*7836SJohn.Forte@Sun.COM * The type of the object. When an object ID is supplied as a parameter 414*7836SJohn.Forte@Sun.COM * to an API the library uses this value to insure that the supplied 415*7836SJohn.Forte@Sun.COM * object's type is appropriate for the API. 416*7836SJohn.Forte@Sun.COM */ 417*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE objectType; 418*7836SJohn.Forte@Sun.COM 419*7836SJohn.Forte@Sun.COM /** 420*7836SJohn.Forte@Sun.COM * A value determined by the library which it uses to uniquely identify the 421*7836SJohn.Forte@Sun.COM * owner of an object. The owner of an object is either the library itself 422*7836SJohn.Forte@Sun.COM * or a plugin. When an object ID is supplied as a parameter to an API the 423*7836SJohn.Forte@Sun.COM * library uses this value to determine if it should handle the call itself 424*7836SJohn.Forte@Sun.COM * or direct the call to one or more plugins. 425*7836SJohn.Forte@Sun.COM */ 426*7836SJohn.Forte@Sun.COM IMA_UINT32 ownerId; 427*7836SJohn.Forte@Sun.COM 428*7836SJohn.Forte@Sun.COM /** 429*7836SJohn.Forte@Sun.COM * A value determined by a plugin which a plugin uses, perhaps in 430*7836SJohn.Forte@Sun.COM * combination with the object type, to uniquely identify one of its 431*7836SJohn.Forte@Sun.COM * objects. 432*7836SJohn.Forte@Sun.COM */ 433*7836SJohn.Forte@Sun.COM IMA_UINT64 objectSequenceNumber; 434*7836SJohn.Forte@Sun.COM 435*7836SJohn.Forte@Sun.COM } IMA_OID; 436*7836SJohn.Forte@Sun.COM 437*7836SJohn.Forte@Sun.COM 438*7836SJohn.Forte@Sun.COM 439*7836SJohn.Forte@Sun.COM /** 440*7836SJohn.Forte@Sun.COM ******************************************************************************* 441*7836SJohn.Forte@Sun.COM * 442*7836SJohn.Forte@Sun.COM * Declaration of the IMA_OID_LIST structure 443*7836SJohn.Forte@Sun.COM * 444*7836SJohn.Forte@Sun.COM * This structure is used by a number of APIs to return lists of objects. Any 445*7836SJohn.Forte@Sun.COM * instance of this structure returned by an API must be freed by a client 446*7836SJohn.Forte@Sun.COM * using the IMA_FreeObjectIdList API. Although oids is declared to be an 447*7836SJohn.Forte@Sun.COM * array of one 448*7836SJohn.Forte@Sun.COM * @ref IMA_OID structure it can in fact contain any number of 449*7836SJohn.Forte@Sun.COM * @ref IMA_OID structures. 450*7836SJohn.Forte@Sun.COM * 451*7836SJohn.Forte@Sun.COM * @note The @a oids array is a variable length array, despite its declaration 452*7836SJohn.Forte@Sun.COM * below it can be of any length. 453*7836SJohn.Forte@Sun.COM * 454*7836SJohn.Forte@Sun.COM ******************************************************************************* 455*7836SJohn.Forte@Sun.COM */ 456*7836SJohn.Forte@Sun.COM typedef struct _IMA_OID_LIST 457*7836SJohn.Forte@Sun.COM { 458*7836SJohn.Forte@Sun.COM /** 459*7836SJohn.Forte@Sun.COM * The number of object IDs in the @a oids array. 460*7836SJohn.Forte@Sun.COM */ 461*7836SJohn.Forte@Sun.COM IMA_UINT oidCount; 462*7836SJohn.Forte@Sun.COM 463*7836SJohn.Forte@Sun.COM /** 464*7836SJohn.Forte@Sun.COM * A variable length array of zero or more object IDs. There are 465*7836SJohn.Forte@Sun.COM * 'oidCount' object IDs in this array. 466*7836SJohn.Forte@Sun.COM */ 467*7836SJohn.Forte@Sun.COM IMA_OID oids[1]; 468*7836SJohn.Forte@Sun.COM 469*7836SJohn.Forte@Sun.COM } IMA_OID_LIST; 470*7836SJohn.Forte@Sun.COM 471*7836SJohn.Forte@Sun.COM #define IMA_HOST_NAME_LEN 256 472*7836SJohn.Forte@Sun.COM typedef IMA_WCHAR IMA_HOST_NAME[IMA_HOST_NAME_LEN]; 473*7836SJohn.Forte@Sun.COM typedef IMA_BYTE IMA_MAC_ADDRESS[6]; 474*7836SJohn.Forte@Sun.COM 475*7836SJohn.Forte@Sun.COM /** 476*7836SJohn.Forte@Sun.COM ******************************************************************************* 477*7836SJohn.Forte@Sun.COM * 478*7836SJohn.Forte@Sun.COM * Declaration of the IMA_LIBRARY_PROPERTIES structure 479*7836SJohn.Forte@Sun.COM * 480*7836SJohn.Forte@Sun.COM ******************************************************************************* 481*7836SJohn.Forte@Sun.COM */ 482*7836SJohn.Forte@Sun.COM typedef struct _IMA_LIBRARY_PROPERTIES 483*7836SJohn.Forte@Sun.COM { 484*7836SJohn.Forte@Sun.COM /** 485*7836SJohn.Forte@Sun.COM * The version of the iSCSI Management API implemented by the library. 486*7836SJohn.Forte@Sun.COM * The value returned by a library for the API as described in this 487*7836SJohn.Forte@Sun.COM * document is one. 488*7836SJohn.Forte@Sun.COM */ 489*7836SJohn.Forte@Sun.COM IMA_UINT supportedImaVersion; 490*7836SJohn.Forte@Sun.COM 491*7836SJohn.Forte@Sun.COM /** 492*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string containing the name of the vendor that 493*7836SJohn.Forte@Sun.COM * created the binary version of the library. 494*7836SJohn.Forte@Sun.COM */ 495*7836SJohn.Forte@Sun.COM IMA_WCHAR vendor[256]; 496*7836SJohn.Forte@Sun.COM 497*7836SJohn.Forte@Sun.COM /** 498*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string containing the implementation version 499*7836SJohn.Forte@Sun.COM * of the library from the vendor specified in the 'vendor' field. 500*7836SJohn.Forte@Sun.COM */ 501*7836SJohn.Forte@Sun.COM IMA_WCHAR implementationVersion[256]; 502*7836SJohn.Forte@Sun.COM 503*7836SJohn.Forte@Sun.COM /** 504*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string ideally containing the path and file 505*7836SJohn.Forte@Sun.COM * name of the library that is being used by the currently executing 506*7836SJohn.Forte@Sun.COM * process can be found. If the path cannot be determined then it is 507*7836SJohn.Forte@Sun.COM * acceptable to fill this field with only the name (and extension if 508*7836SJohn.Forte@Sun.COM * applicable) of the file of the library. If this cannot be determined 509*7836SJohn.Forte@Sun.COM * then this field should be an empty string. 510*7836SJohn.Forte@Sun.COM */ 511*7836SJohn.Forte@Sun.COM IMA_WCHAR fileName[256]; 512*7836SJohn.Forte@Sun.COM 513*7836SJohn.Forte@Sun.COM /** 514*7836SJohn.Forte@Sun.COM * The time and date that the library that is executing was built. 515*7836SJohn.Forte@Sun.COM */ 516*7836SJohn.Forte@Sun.COM IMA_DATETIME buildTime; 517*7836SJohn.Forte@Sun.COM 518*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 519*7836SJohn.Forte@Sun.COM } IMA_LIBRARY_PROPERTIES; 520*7836SJohn.Forte@Sun.COM 521*7836SJohn.Forte@Sun.COM 522*7836SJohn.Forte@Sun.COM 523*7836SJohn.Forte@Sun.COM /** 524*7836SJohn.Forte@Sun.COM ******************************************************************************* 525*7836SJohn.Forte@Sun.COM * 526*7836SJohn.Forte@Sun.COM * Declaration of the IMA_PLUGIN_PROPERTIES structure 527*7836SJohn.Forte@Sun.COM * 528*7836SJohn.Forte@Sun.COM ******************************************************************************* 529*7836SJohn.Forte@Sun.COM */ 530*7836SJohn.Forte@Sun.COM typedef struct _IMA_PLUGIN_PROPERTIES 531*7836SJohn.Forte@Sun.COM { 532*7836SJohn.Forte@Sun.COM IMA_UINT supportedImaVersion; 533*7836SJohn.Forte@Sun.COM IMA_WCHAR vendor[256]; 534*7836SJohn.Forte@Sun.COM IMA_WCHAR implementationVersion[256]; 535*7836SJohn.Forte@Sun.COM IMA_WCHAR fileName[256]; 536*7836SJohn.Forte@Sun.COM IMA_DATETIME buildTime; 537*7836SJohn.Forte@Sun.COM 538*7836SJohn.Forte@Sun.COM IMA_BOOL lhbasCanBeCreatedAndDestroyed; 539*7836SJohn.Forte@Sun.COM 540*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 541*7836SJohn.Forte@Sun.COM 542*7836SJohn.Forte@Sun.COM } IMA_PLUGIN_PROPERTIES; 543*7836SJohn.Forte@Sun.COM 544*7836SJohn.Forte@Sun.COM 545*7836SJohn.Forte@Sun.COM typedef struct _IMA_IP_ADDRESS 546*7836SJohn.Forte@Sun.COM { 547*7836SJohn.Forte@Sun.COM IMA_BOOL ipv4Address; 548*7836SJohn.Forte@Sun.COM IMA_BYTE ipAddress[16]; 549*7836SJohn.Forte@Sun.COM 550*7836SJohn.Forte@Sun.COM } IMA_IP_ADDRESS; 551*7836SJohn.Forte@Sun.COM 552*7836SJohn.Forte@Sun.COM typedef struct _IMA_ADDRESS_KEY 553*7836SJohn.Forte@Sun.COM { 554*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS ipAddress; 555*7836SJohn.Forte@Sun.COM IMA_UINT16 portNumber; 556*7836SJohn.Forte@Sun.COM 557*7836SJohn.Forte@Sun.COM } IMA_ADDRESS_KEY; 558*7836SJohn.Forte@Sun.COM 559*7836SJohn.Forte@Sun.COM typedef struct _IMA_ADDRESS_KEYS 560*7836SJohn.Forte@Sun.COM { 561*7836SJohn.Forte@Sun.COM IMA_UINT addressKeyCount; 562*7836SJohn.Forte@Sun.COM IMA_ADDRESS_KEY addressKeys[1]; 563*7836SJohn.Forte@Sun.COM 564*7836SJohn.Forte@Sun.COM } IMA_ADDRESS_KEYS; 565*7836SJohn.Forte@Sun.COM 566*7836SJohn.Forte@Sun.COM typedef struct _IMA_ADDRESS_KEY_PROPERTIES 567*7836SJohn.Forte@Sun.COM { 568*7836SJohn.Forte@Sun.COM IMA_UINT addressKeyCount; 569*7836SJohn.Forte@Sun.COM IMA_ADDRESS_KEY addressKeys[1]; 570*7836SJohn.Forte@Sun.COM 571*7836SJohn.Forte@Sun.COM } IMA_ADDRESS_KEY_PROPERTIES; 572*7836SJohn.Forte@Sun.COM 573*7836SJohn.Forte@Sun.COM typedef struct _IMA_IP_PROPERTIES 574*7836SJohn.Forte@Sun.COM { 575*7836SJohn.Forte@Sun.COM IMA_BOOL ipConfigurationMethodSettable; 576*7836SJohn.Forte@Sun.COM IMA_BOOL dhcpConfigurationEnabled; 577*7836SJohn.Forte@Sun.COM 578*7836SJohn.Forte@Sun.COM IMA_BOOL subnetMaskSettable; 579*7836SJohn.Forte@Sun.COM IMA_BOOL subnetMaskValid; 580*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS subnetMask; 581*7836SJohn.Forte@Sun.COM 582*7836SJohn.Forte@Sun.COM IMA_BOOL defaultGatewaySettable; 583*7836SJohn.Forte@Sun.COM IMA_BOOL defaultGatewayValid; 584*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS defaultGateway; 585*7836SJohn.Forte@Sun.COM 586*7836SJohn.Forte@Sun.COM IMA_BOOL primaryDnsServerAddressSettable; 587*7836SJohn.Forte@Sun.COM IMA_BOOL primaryDnsServerAddressValid; 588*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS primaryDnsServerAddress; 589*7836SJohn.Forte@Sun.COM 590*7836SJohn.Forte@Sun.COM IMA_BOOL alternateDnsServerAddressSettable; 591*7836SJohn.Forte@Sun.COM IMA_BOOL alternateDnsServerAddressValid; 592*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS alternateDnsServerAddress; 593*7836SJohn.Forte@Sun.COM 594*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 595*7836SJohn.Forte@Sun.COM 596*7836SJohn.Forte@Sun.COM } IMA_IP_PROPERTIES; 597*7836SJohn.Forte@Sun.COM 598*7836SJohn.Forte@Sun.COM typedef struct _IMA_HOST_ID 599*7836SJohn.Forte@Sun.COM { 600*7836SJohn.Forte@Sun.COM IMA_BOOL hostnameInUse; 601*7836SJohn.Forte@Sun.COM union { 602*7836SJohn.Forte@Sun.COM 603*7836SJohn.Forte@Sun.COM IMA_HOST_NAME hostname; 604*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS ipAddress; 605*7836SJohn.Forte@Sun.COM 606*7836SJohn.Forte@Sun.COM } id; 607*7836SJohn.Forte@Sun.COM 608*7836SJohn.Forte@Sun.COM } IMA_HOST_ID; 609*7836SJohn.Forte@Sun.COM 610*7836SJohn.Forte@Sun.COM typedef struct _IMA_TARGET_ADDRESS 611*7836SJohn.Forte@Sun.COM { 612*7836SJohn.Forte@Sun.COM IMA_HOST_ID hostnameIpAddress; 613*7836SJohn.Forte@Sun.COM IMA_UINT16 portNumber; 614*7836SJohn.Forte@Sun.COM 615*7836SJohn.Forte@Sun.COM } IMA_TARGET_ADDRESS; 616*7836SJohn.Forte@Sun.COM 617*7836SJohn.Forte@Sun.COM /** 618*7836SJohn.Forte@Sun.COM ******************************************************************************* 619*7836SJohn.Forte@Sun.COM * 620*7836SJohn.Forte@Sun.COM * Declaration of the IMA_NODE_NAME type 621*7836SJohn.Forte@Sun.COM * 622*7836SJohn.Forte@Sun.COM ******************************************************************************* 623*7836SJohn.Forte@Sun.COM */ 624*7836SJohn.Forte@Sun.COM #define IMA_NODE_NAME_LEN 224 625*7836SJohn.Forte@Sun.COM typedef IMA_WCHAR IMA_NODE_NAME[IMA_NODE_NAME_LEN]; 626*7836SJohn.Forte@Sun.COM 627*7836SJohn.Forte@Sun.COM 628*7836SJohn.Forte@Sun.COM 629*7836SJohn.Forte@Sun.COM /** 630*7836SJohn.Forte@Sun.COM ******************************************************************************* 631*7836SJohn.Forte@Sun.COM * 632*7836SJohn.Forte@Sun.COM * Declaration of the IMA_NODE_ALIAS type 633*7836SJohn.Forte@Sun.COM * 634*7836SJohn.Forte@Sun.COM ******************************************************************************* 635*7836SJohn.Forte@Sun.COM */ 636*7836SJohn.Forte@Sun.COM #define IMA_NODE_ALIAS_LEN 256 637*7836SJohn.Forte@Sun.COM typedef IMA_WCHAR IMA_NODE_ALIAS[IMA_NODE_ALIAS_LEN]; 638*7836SJohn.Forte@Sun.COM 639*7836SJohn.Forte@Sun.COM 640*7836SJohn.Forte@Sun.COM 641*7836SJohn.Forte@Sun.COM /** 642*7836SJohn.Forte@Sun.COM ******************************************************************************* 643*7836SJohn.Forte@Sun.COM * 644*7836SJohn.Forte@Sun.COM * Declaration of the IMA_DOMAIN_NAME type 645*7836SJohn.Forte@Sun.COM * 646*7836SJohn.Forte@Sun.COM * A variable of this type may be formatted in any of the following four ways: 647*7836SJohn.Forte@Sun.COM * 1. An empty string, which indicates that no host or IP address is 648*7836SJohn.Forte@Sun.COM * specified 649*7836SJohn.Forte@Sun.COM * 2. A DNS host name 650*7836SJohn.Forte@Sun.COM * 3. A dotted-decimal IPv4 address 651*7836SJohn.Forte@Sun.COM * 4. A bracketed IPv6 address as specified in RFC 2732 652*7836SJohn.Forte@Sun.COM * 653*7836SJohn.Forte@Sun.COM * In all cases a domain name is terminated by a nul character. 654*7836SJohn.Forte@Sun.COM * This type is used by several APIs: IMA_SetPhbaSnsDiscovery(), 655*7836SJohn.Forte@Sun.COM * IMA_SetNetworkPortalIpAddress(), and indirectly by 656*7836SJohn.Forte@Sun.COM * IMA_GetPhbaDiscoveryProperties(). 657*7836SJohn.Forte@Sun.COM * 658*7836SJohn.Forte@Sun.COM ******************************************************************************* 659*7836SJohn.Forte@Sun.COM */ 660*7836SJohn.Forte@Sun.COM typedef wchar_t IMA_DOMAIN_NAME[256]; 661*7836SJohn.Forte@Sun.COM 662*7836SJohn.Forte@Sun.COM typedef struct _IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES 663*7836SJohn.Forte@Sun.COM { 664*7836SJohn.Forte@Sun.COM IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType; 665*7836SJohn.Forte@Sun.COM IMA_WCHAR version[32]; 666*7836SJohn.Forte@Sun.COM IMA_WCHAR description[512]; 667*7836SJohn.Forte@Sun.COM IMA_XBOOL upgrade; 668*7836SJohn.Forte@Sun.COM } IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES; 669*7836SJohn.Forte@Sun.COM 670*7836SJohn.Forte@Sun.COM 671*7836SJohn.Forte@Sun.COM /** 672*7836SJohn.Forte@Sun.COM ******************************************************************************* 673*7836SJohn.Forte@Sun.COM * 674*7836SJohn.Forte@Sun.COM * Declaration of the IMA_NODE_PROPERTIES structure 675*7836SJohn.Forte@Sun.COM * 676*7836SJohn.Forte@Sun.COM * This structure is returned by the IMA_GetNodeProperties() API. 677*7836SJohn.Forte@Sun.COM * 678*7836SJohn.Forte@Sun.COM * NOTE: It is possible for both 'runningInInitiatorMode' and 679*7836SJohn.Forte@Sun.COM * 'runningInTargetMode' to be set to @c IMA_TRUE. This means that 680*7836SJohn.Forte@Sun.COM * the node is operating both as an initiator and as a target. 681*7836SJohn.Forte@Sun.COM * 682*7836SJohn.Forte@Sun.COM ******************************************************************************* 683*7836SJohn.Forte@Sun.COM */ 684*7836SJohn.Forte@Sun.COM typedef struct _IMA_NODE_PROPERTIES 685*7836SJohn.Forte@Sun.COM { 686*7836SJohn.Forte@Sun.COM /** 687*7836SJohn.Forte@Sun.COM * A boolean indicating if the node is running as initiator or not. 688*7836SJohn.Forte@Sun.COM */ 689*7836SJohn.Forte@Sun.COM IMA_BOOL runningInInitiatorMode; 690*7836SJohn.Forte@Sun.COM 691*7836SJohn.Forte@Sun.COM /** 692*7836SJohn.Forte@Sun.COM * A boolean indicating if the node is running as a target or not. 693*7836SJohn.Forte@Sun.COM */ 694*7836SJohn.Forte@Sun.COM IMA_BOOL runningInTargetMode; 695*7836SJohn.Forte@Sun.COM 696*7836SJohn.Forte@Sun.COM /** 697*7836SJohn.Forte@Sun.COM * A boolean which indicates if the node's name is set or not. 698*7836SJohn.Forte@Sun.COM */ 699*7836SJohn.Forte@Sun.COM IMA_BOOL nameValid; 700*7836SJohn.Forte@Sun.COM 701*7836SJohn.Forte@Sun.COM /** 702*7836SJohn.Forte@Sun.COM * A nul terminated Unicode string which contains the name of the node. 703*7836SJohn.Forte@Sun.COM * The value in this field is only valid if 'nameValid' is set to 704*7836SJohn.Forte@Sun.COM * IMA_TRUE, in which case it will be Unicode NULL terminated. If 705*7836SJohn.Forte@Sun.COM * 'nameValid' is set to IMA_FALSE then this field will contain an 706*7836SJohn.Forte@Sun.COM * empty string. 707*7836SJohn.Forte@Sun.COM */ 708*7836SJohn.Forte@Sun.COM IMA_NODE_NAME name; 709*7836SJohn.Forte@Sun.COM 710*7836SJohn.Forte@Sun.COM /** 711*7836SJohn.Forte@Sun.COM * A boolean which indicates if the node's alias is set or not. 712*7836SJohn.Forte@Sun.COM */ 713*7836SJohn.Forte@Sun.COM IMA_BOOL aliasValid; 714*7836SJohn.Forte@Sun.COM 715*7836SJohn.Forte@Sun.COM /** 716*7836SJohn.Forte@Sun.COM * A nul terminated Unicode string which contains the alias of the node. 717*7836SJohn.Forte@Sun.COM * This field is only valid if 'aliasValid' is set to IMA_TRUE, in which 718*7836SJohn.Forte@Sun.COM * case it will be Unicode NULL terminated. If 'aliasValid' is set to 719*7836SJohn.Forte@Sun.COM * IMA_FALSE then this field will contain an empty string. 720*7836SJohn.Forte@Sun.COM */ 721*7836SJohn.Forte@Sun.COM IMA_NODE_ALIAS alias; 722*7836SJohn.Forte@Sun.COM 723*7836SJohn.Forte@Sun.COM /* 724*7836SJohn.Forte@Sun.COM * Boolean indicating if both the name and alias are settable using 725*7836SJohn.Forte@Sun.COM * IMA_SetNodeName() and IMA_SetNodeAlias(). 726*7836SJohn.Forte@Sun.COM */ 727*7836SJohn.Forte@Sun.COM IMA_BOOL nameAndAliasSettable; 728*7836SJohn.Forte@Sun.COM 729*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 730*7836SJohn.Forte@Sun.COM 731*7836SJohn.Forte@Sun.COM } IMA_NODE_PROPERTIES; 732*7836SJohn.Forte@Sun.COM 733*7836SJohn.Forte@Sun.COM 734*7836SJohn.Forte@Sun.COM 735*7836SJohn.Forte@Sun.COM /** 736*7836SJohn.Forte@Sun.COM ******************************************************************************* 737*7836SJohn.Forte@Sun.COM * 738*7836SJohn.Forte@Sun.COM * Declaration of the IMA_LHBA_PROPERTIES structure 739*7836SJohn.Forte@Sun.COM * 740*7836SJohn.Forte@Sun.COM * This structure is returned by the IMA_GetLhbaProperties() API. 741*7836SJohn.Forte@Sun.COM * 742*7836SJohn.Forte@Sun.COM ******************************************************************************* 743*7836SJohn.Forte@Sun.COM */ 744*7836SJohn.Forte@Sun.COM typedef struct _IMA_LHBA_PROPERTIES 745*7836SJohn.Forte@Sun.COM { 746*7836SJohn.Forte@Sun.COM IMA_WCHAR osDeviceName[256]; 747*7836SJohn.Forte@Sun.COM IMA_BOOL luExposingSupported; 748*7836SJohn.Forte@Sun.COM IMA_BOOL isDestroyable; 749*7836SJohn.Forte@Sun.COM 750*7836SJohn.Forte@Sun.COM IMA_BOOL staleDataRemovable; 751*7836SJohn.Forte@Sun.COM IMA_UINT staleDataSize; 752*7836SJohn.Forte@Sun.COM 753*7836SJohn.Forte@Sun.COM IMA_BOOL initiatorAuthMethodsSettable; 754*7836SJohn.Forte@Sun.COM IMA_BOOL targetAuthMethodsSettable; 755*7836SJohn.Forte@Sun.COM 756*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 757*7836SJohn.Forte@Sun.COM } IMA_LHBA_PROPERTIES; 758*7836SJohn.Forte@Sun.COM 759*7836SJohn.Forte@Sun.COM 760*7836SJohn.Forte@Sun.COM 761*7836SJohn.Forte@Sun.COM /** 762*7836SJohn.Forte@Sun.COM ******************************************************************************* 763*7836SJohn.Forte@Sun.COM * 764*7836SJohn.Forte@Sun.COM * Declaration of the IMA_ULP_xxx constants 765*7836SJohn.Forte@Sun.COM * 766*7836SJohn.Forte@Sun.COM ******************************************************************************* 767*7836SJohn.Forte@Sun.COM */ 768*7836SJohn.Forte@Sun.COM #define IMA_ULP_TCP 0x01 769*7836SJohn.Forte@Sun.COM #define IMA_ULP_SCTP 0x02 770*7836SJohn.Forte@Sun.COM #define IMA_ULP_UDP 0x04 771*7836SJohn.Forte@Sun.COM 772*7836SJohn.Forte@Sun.COM 773*7836SJohn.Forte@Sun.COM 774*7836SJohn.Forte@Sun.COM /** 775*7836SJohn.Forte@Sun.COM ******************************************************************************* 776*7836SJohn.Forte@Sun.COM * 777*7836SJohn.Forte@Sun.COM * Declaration of the IMA_MIN_MAX_VALUE structure 778*7836SJohn.Forte@Sun.COM * 779*7836SJohn.Forte@Sun.COM * Note: If the 'currentValueValid' field is IMA_FALSE then the value of 780*7836SJohn.Forte@Sun.COM * 'settable' must also be set to IMA_FALSE. 781*7836SJohn.Forte@Sun.COM * 782*7836SJohn.Forte@Sun.COM * Note: The fields in this structure contain values which are defined by the 783*7836SJohn.Forte@Sun.COM * implementation and not by the iSCSI specification. It is possible 784*7836SJohn.Forte@Sun.COM * that an implementation may be more or less restrictive in the values 785*7836SJohn.Forte@Sun.COM * that it can accept than the iSCSI specification allows. 786*7836SJohn.Forte@Sun.COM * 787*7836SJohn.Forte@Sun.COM * Note: An example of how to use 'incrementValue': Suppose that a structure is 788*7836SJohn.Forte@Sun.COM * obtained where 'currentValueValid' is IMA_TRUE, 'settable' is 789*7836SJohn.Forte@Sun.COM * IMA_TRUE, 'currentValue' is 50, 'defaultValue' is 50, 'minimumValue' 790*7836SJohn.Forte@Sun.COM * is 30, 'maximumValue' is 70 and 'incrementValue' is 10. In this case, 791*7836SJohn.Forte@Sun.COM * the possible values that the property can be set to are 30, 40, 50, 792*7836SJohn.Forte@Sun.COM * 60, and 70. The new value must be the current value plus or minus 793*7836SJohn.Forte@Sun.COM * some multiple of 'incrementValue'. 794*7836SJohn.Forte@Sun.COM * 795*7836SJohn.Forte@Sun.COM ******************************************************************************* 796*7836SJohn.Forte@Sun.COM */ 797*7836SJohn.Forte@Sun.COM typedef struct _IMA_MIN_MAX_VALUE 798*7836SJohn.Forte@Sun.COM { 799*7836SJohn.Forte@Sun.COM /** 800*7836SJohn.Forte@Sun.COM * A boolean indicating if the @a currentValue field contains a valid value. 801*7836SJohn.Forte@Sun.COM */ 802*7836SJohn.Forte@Sun.COM IMA_BOOL currentValueValid; 803*7836SJohn.Forte@Sun.COM 804*7836SJohn.Forte@Sun.COM /** 805*7836SJohn.Forte@Sun.COM * Indicates if the corresponding property is settable. If this field 806*7836SJohn.Forte@Sun.COM * has the value IMA_TRUE then the 'defaultValue', 'minimumValue', 807*7836SJohn.Forte@Sun.COM * 'maximumValue', and 'incrementValue' fields shall contain valid 808*7836SJohn.Forte@Sun.COM * values. If this field has the value IMA_FALSE then these fields 809*7836SJohn.Forte@Sun.COM * have undefined values. 810*7836SJohn.Forte@Sun.COM */ 811*7836SJohn.Forte@Sun.COM IMA_BOOL settable; 812*7836SJohn.Forte@Sun.COM 813*7836SJohn.Forte@Sun.COM /** 814*7836SJohn.Forte@Sun.COM * If currentValueValid has the value IMA_TRUE then this field contains 815*7836SJohn.Forte@Sun.COM * the current value of the associated property. If 'currentValueValid' has 816*7836SJohn.Forte@Sun.COM * the value IMA_FALSE then the value of this field is undefined. 817*7836SJohn.Forte@Sun.COM */ 818*7836SJohn.Forte@Sun.COM IMA_UINT32 currentValue; 819*7836SJohn.Forte@Sun.COM 820*7836SJohn.Forte@Sun.COM /** 821*7836SJohn.Forte@Sun.COM * If 'settable' has the value IMA_TRUE then this field contains the 822*7836SJohn.Forte@Sun.COM * implementation's default value of the associated property. If 'settable' 823*7836SJohn.Forte@Sun.COM * has the value IMA_FALSE then the value of this field is undefined. 824*7836SJohn.Forte@Sun.COM */ 825*7836SJohn.Forte@Sun.COM IMA_UINT32 defaultValue; 826*7836SJohn.Forte@Sun.COM 827*7836SJohn.Forte@Sun.COM /** 828*7836SJohn.Forte@Sun.COM * If 'settable' has the value IMA_TRUE then this field contains the 829*7836SJohn.Forte@Sun.COM * implementation's minimum value of the associated property. If 'settable' 830*7836SJohn.Forte@Sun.COM * has the value IMA_FALSE then the value of this field is undefined. 831*7836SJohn.Forte@Sun.COM */ 832*7836SJohn.Forte@Sun.COM IMA_UINT32 minimumValue; 833*7836SJohn.Forte@Sun.COM 834*7836SJohn.Forte@Sun.COM /** 835*7836SJohn.Forte@Sun.COM * If 'settable' has the value IMA_TRUE then this field contains the 836*7836SJohn.Forte@Sun.COM * implementation's maximum value of the associated property. If 'settable' 837*7836SJohn.Forte@Sun.COM * has the value IMA_FALSE then the value of this field is undefined. 838*7836SJohn.Forte@Sun.COM */ 839*7836SJohn.Forte@Sun.COM IMA_UINT32 maximumValue; 840*7836SJohn.Forte@Sun.COM 841*7836SJohn.Forte@Sun.COM /** 842*7836SJohn.Forte@Sun.COM * If 'settable' has the value IMA_TRUE then this field contains a value 843*7836SJohn.Forte@Sun.COM * which can be added to or subtracted from 'currentValue' to obtain other 844*7836SJohn.Forte@Sun.COM * possible values of the associated property. If 'settable' has the value 845*7836SJohn.Forte@Sun.COM * IMA_FALSE then the value of this field is undefined. 846*7836SJohn.Forte@Sun.COM */ 847*7836SJohn.Forte@Sun.COM IMA_UINT32 incrementValue; 848*7836SJohn.Forte@Sun.COM 849*7836SJohn.Forte@Sun.COM } IMA_MIN_MAX_VALUE; 850*7836SJohn.Forte@Sun.COM 851*7836SJohn.Forte@Sun.COM typedef struct _IMA_BOOL_VALUE 852*7836SJohn.Forte@Sun.COM { 853*7836SJohn.Forte@Sun.COM IMA_BOOL currentValueValid; 854*7836SJohn.Forte@Sun.COM IMA_BOOL settable; 855*7836SJohn.Forte@Sun.COM IMA_BOOL currentValue; 856*7836SJohn.Forte@Sun.COM IMA_BOOL defaultValue; 857*7836SJohn.Forte@Sun.COM } IMA_BOOL_VALUE; 858*7836SJohn.Forte@Sun.COM 859*7836SJohn.Forte@Sun.COM /** 860*7836SJohn.Forte@Sun.COM ******************************************************************************* 861*7836SJohn.Forte@Sun.COM * 862*7836SJohn.Forte@Sun.COM * Declaration of the IMA_PHBA_PROPERTIES structure 863*7836SJohn.Forte@Sun.COM * 864*7836SJohn.Forte@Sun.COM * This structure is returned by the IMA_GetPhbaProperties() API. 865*7836SJohn.Forte@Sun.COM * 866*7836SJohn.Forte@Sun.COM * Note: Both 'isInitiator' and 'isTarget' cannot be set to IMA_FALSE as this 867*7836SJohn.Forte@Sun.COM * would mean that the PHBA was not functioning as either an initiator or 868*7836SJohn.Forte@Sun.COM * target, which means that its not functioning at all. 869*7836SJohn.Forte@Sun.COM * 870*7836SJohn.Forte@Sun.COM ******************************************************************************* 871*7836SJohn.Forte@Sun.COM */ 872*7836SJohn.Forte@Sun.COM typedef struct _IMA_PHBA_PROPERTIES 873*7836SJohn.Forte@Sun.COM { 874*7836SJohn.Forte@Sun.COM /** 875*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the name of the vendor 876*7836SJohn.Forte@Sun.COM * of a PHBA. If the first character in this field is nul then the 877*7836SJohn.Forte@Sun.COM * vendor is unknown. 878*7836SJohn.Forte@Sun.COM */ 879*7836SJohn.Forte@Sun.COM IMA_WCHAR vendor[64]; 880*7836SJohn.Forte@Sun.COM 881*7836SJohn.Forte@Sun.COM /** 882*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the name of the model of 883*7836SJohn.Forte@Sun.COM * a PHBA. If the first character in this field is nul then the model is 884*7836SJohn.Forte@Sun.COM * unknown. 885*7836SJohn.Forte@Sun.COM */ 886*7836SJohn.Forte@Sun.COM IMA_WCHAR model[256]; 887*7836SJohn.Forte@Sun.COM 888*7836SJohn.Forte@Sun.COM /** 889*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains a description of a PHBA. 890*7836SJohn.Forte@Sun.COM * This is a user friendly description of the PHBA. If the first character 891*7836SJohn.Forte@Sun.COM * in this field is nul then there is no description. 892*7836SJohn.Forte@Sun.COM */ 893*7836SJohn.Forte@Sun.COM IMA_WCHAR description[256]; 894*7836SJohn.Forte@Sun.COM 895*7836SJohn.Forte@Sun.COM /** 896*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the serial number of a 897*7836SJohn.Forte@Sun.COM * PHBA. If the first character in this field is nul then the serial 898*7836SJohn.Forte@Sun.COM * number is unknown. 899*7836SJohn.Forte@Sun.COM */ 900*7836SJohn.Forte@Sun.COM IMA_WCHAR serialNumber[64]; 901*7836SJohn.Forte@Sun.COM 902*7836SJohn.Forte@Sun.COM /** 903*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the hardware version of 904*7836SJohn.Forte@Sun.COM * a PHBA. If the first character in this field is nul then the hardware 905*7836SJohn.Forte@Sun.COM * version is unknown. 906*7836SJohn.Forte@Sun.COM */ 907*7836SJohn.Forte@Sun.COM IMA_WCHAR hardwareVersion[256]; 908*7836SJohn.Forte@Sun.COM 909*7836SJohn.Forte@Sun.COM /** 910*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the ASIC version of a 911*7836SJohn.Forte@Sun.COM * PHBA. If the first character in this field is nul then the ASIC 912*7836SJohn.Forte@Sun.COM * version is unknown or is not applicable. 913*7836SJohn.Forte@Sun.COM */ 914*7836SJohn.Forte@Sun.COM IMA_WCHAR asicVersion[256]; 915*7836SJohn.Forte@Sun.COM 916*7836SJohn.Forte@Sun.COM /** 917*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the firmware version of 918*7836SJohn.Forte@Sun.COM * a PHBA. If the first character in this field is nul then the firmware 919*7836SJohn.Forte@Sun.COM * version is unknown or is not applicable. 920*7836SJohn.Forte@Sun.COM */ 921*7836SJohn.Forte@Sun.COM IMA_WCHAR firmwareVersion[256]; 922*7836SJohn.Forte@Sun.COM 923*7836SJohn.Forte@Sun.COM /** 924*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the option ROM version 925*7836SJohn.Forte@Sun.COM * of a PHBA. If the first character in this field is nul then the option 926*7836SJohn.Forte@Sun.COM * ROM version is unknown or is not applicable. 927*7836SJohn.Forte@Sun.COM */ 928*7836SJohn.Forte@Sun.COM IMA_WCHAR optionRomVersion[256]; 929*7836SJohn.Forte@Sun.COM 930*7836SJohn.Forte@Sun.COM /** 931*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the name of the driver 932*7836SJohn.Forte@Sun.COM * controlling a PHBA. If the first character in this field is nul then 933*7836SJohn.Forte@Sun.COM * the name of the driver is unknown. 934*7836SJohn.Forte@Sun.COM */ 935*7836SJohn.Forte@Sun.COM IMA_WCHAR driverName[256]; 936*7836SJohn.Forte@Sun.COM 937*7836SJohn.Forte@Sun.COM /** 938*7836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the version of the driver 939*7836SJohn.Forte@Sun.COM * specified in 'driverName'. If the first character in this field is nul 940*7836SJohn.Forte@Sun.COM * then the version of the driver is unknown. 941*7836SJohn.Forte@Sun.COM * 942*7836SJohn.Forte@Sun.COM * This field can have a known value only if @a driverName has a known 943*7836SJohn.Forte@Sun.COM * value as well. 944*7836SJohn.Forte@Sun.COM */ 945*7836SJohn.Forte@Sun.COM IMA_WCHAR driverVersion[256]; 946*7836SJohn.Forte@Sun.COM 947*7836SJohn.Forte@Sun.COM /** 948*7836SJohn.Forte@Sun.COM * A field containing flags which indicate what upper level protocols 949*7836SJohn.Forte@Sun.COM * are supported by a PHBA. Examples of upper level protocols include: 950*7836SJohn.Forte@Sun.COM * 951*7836SJohn.Forte@Sun.COM * - TCP, represented by IMA_ULP_TCP 952*7836SJohn.Forte@Sun.COM * - SCTP, represented by IMA_ULP_SCTP 953*7836SJohn.Forte@Sun.COM * - UDP, represented by IMA_ULP_UDP 954*7836SJohn.Forte@Sun.COM */ 955*7836SJohn.Forte@Sun.COM IMA_UINT supportedUlps; 956*7836SJohn.Forte@Sun.COM 957*7836SJohn.Forte@Sun.COM /** 958*7836SJohn.Forte@Sun.COM * A extended boolean which indicates if a PHBA supports executing SCSI 959*7836SJohn.Forte@Sun.COM * commands which cause bidirectional transfers. 960*7836SJohn.Forte@Sun.COM * 961*7836SJohn.Forte@Sun.COM * Note: The value of this field applies to the entire stack: 962*7836SJohn.Forte@Sun.COM * the hardware, ASIC, firmware, driver, etc. All must support SCSI 963*7836SJohn.Forte@Sun.COM * commands which cause bidirectional transfers for this field to be 964*7836SJohn.Forte@Sun.COM * set to IMA_TRUE. 965*7836SJohn.Forte@Sun.COM */ 966*7836SJohn.Forte@Sun.COM IMA_XBOOL bidirectionalTransfersSupported; 967*7836SJohn.Forte@Sun.COM 968*7836SJohn.Forte@Sun.COM /** 969*7836SJohn.Forte@Sun.COM * The maximum length, in bytes, of a CDB that can be transferred by 970*7836SJohn.Forte@Sun.COM * this PHBA. If this field has a value of zero that indicates that 971*7836SJohn.Forte@Sun.COM * this value is unknown. 972*7836SJohn.Forte@Sun.COM * 973*7836SJohn.Forte@Sun.COM * Note: The value of this field applies to the entire stack: 974*7836SJohn.Forte@Sun.COM * the hardware, ASIC, firmware, driver, etc. All must support the 975*7836SJohn.Forte@Sun.COM * maximum CDB length returned in this field. 976*7836SJohn.Forte@Sun.COM */ 977*7836SJohn.Forte@Sun.COM IMA_UINT maximumCdbLength; 978*7836SJohn.Forte@Sun.COM 979*7836SJohn.Forte@Sun.COM /** 980*7836SJohn.Forte@Sun.COM * An extended boolean which indicates if a PHBA can also function as 981*7836SJohn.Forte@Sun.COM * a standard NIC concurrently with functioning as an iSCSI PHBA. 982*7836SJohn.Forte@Sun.COM */ 983*7836SJohn.Forte@Sun.COM IMA_XBOOL canBeNic; 984*7836SJohn.Forte@Sun.COM 985*7836SJohn.Forte@Sun.COM /** 986*7836SJohn.Forte@Sun.COM * A extended boolean which indicates if a PHBA is functioning as a 987*7836SJohn.Forte@Sun.COM * standard NIC concurrently with functioning as an iSCSI PHBA. 988*7836SJohn.Forte@Sun.COM */ 989*7836SJohn.Forte@Sun.COM IMA_XBOOL isNic; 990*7836SJohn.Forte@Sun.COM 991*7836SJohn.Forte@Sun.COM /** 992*7836SJohn.Forte@Sun.COM * An extended boolean indicating if the PHBA is functioning as an 993*7836SJohn.Forte@Sun.COM * initiator. 994*7836SJohn.Forte@Sun.COM */ 995*7836SJohn.Forte@Sun.COM IMA_XBOOL isInitiator; 996*7836SJohn.Forte@Sun.COM 997*7836SJohn.Forte@Sun.COM /** 998*7836SJohn.Forte@Sun.COM * An extended boolean indicating if the PHBA is functioning as a target. 999*7836SJohn.Forte@Sun.COM */ 1000*7836SJohn.Forte@Sun.COM IMA_XBOOL isTarget; 1001*7836SJohn.Forte@Sun.COM 1002*7836SJohn.Forte@Sun.COM /** 1003*7836SJohn.Forte@Sun.COM * An extended boolean indicating if the PHBA is using a TCP offload engine. 1004*7836SJohn.Forte@Sun.COM * 1005*7836SJohn.Forte@Sun.COM * Note: This value should only be set to @c IMA_TRUE if a TCP offload 1006*7836SJohn.Forte@Sun.COM * engine is present and is being used. If it can be determined that a 1007*7836SJohn.Forte@Sun.COM * TCP offload engine is present, but it cannot be determined if that 1008*7836SJohn.Forte@Sun.COM * offload engine is being used then this value should be set to 1009*7836SJohn.Forte@Sun.COM * IMA_UNKNOWN. 1010*7836SJohn.Forte@Sun.COM */ 1011*7836SJohn.Forte@Sun.COM IMA_XBOOL usingTcpOffloadEngine; 1012*7836SJohn.Forte@Sun.COM 1013*7836SJohn.Forte@Sun.COM /** 1014*7836SJohn.Forte@Sun.COM * An extended boolean indicating if the PHBA is using a iSCSI offload 1015*7836SJohn.Forte@Sun.COM * engine. 1016*7836SJohn.Forte@Sun.COM * 1017*7836SJohn.Forte@Sun.COM * Note: This value should only be set to @c IMA_TRUE if a iSCSI offload 1018*7836SJohn.Forte@Sun.COM * engine is present and is being used. If it can be determined that an 1019*7836SJohn.Forte@Sun.COM * iSCSI offload engine is present, but it cannot be determined if that 1020*7836SJohn.Forte@Sun.COM * offload engine is being used then this value should be set to 1021*7836SJohn.Forte@Sun.COM * IMA_UNKNOWN. 1022*7836SJohn.Forte@Sun.COM */ 1023*7836SJohn.Forte@Sun.COM IMA_XBOOL usingIscsiOffloadEngine; 1024*7836SJohn.Forte@Sun.COM 1025*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 1026*7836SJohn.Forte@Sun.COM 1027*7836SJohn.Forte@Sun.COM } IMA_PHBA_PROPERTIES; 1028*7836SJohn.Forte@Sun.COM 1029*7836SJohn.Forte@Sun.COM /** 1030*7836SJohn.Forte@Sun.COM ******************************************************************************* 1031*7836SJohn.Forte@Sun.COM * 1032*7836SJohn.Forte@Sun.COM * Declaration of the IMA_DISCOVERY_PROPERTIES structure 1033*7836SJohn.Forte@Sun.COM * 1034*7836SJohn.Forte@Sun.COM ******************************************************************************* 1035*7836SJohn.Forte@Sun.COM */ 1036*7836SJohn.Forte@Sun.COM typedef struct _IMA_DISCOVERY_PROPERTIES 1037*7836SJohn.Forte@Sun.COM { 1038*7836SJohn.Forte@Sun.COM IMA_BOOL iSnsDiscoverySettable; 1039*7836SJohn.Forte@Sun.COM IMA_XBOOL iSnsDiscoveryEnabled; 1040*7836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD iSnsDiscoveryMethod; 1041*7836SJohn.Forte@Sun.COM IMA_HOST_ID iSnsHost; 1042*7836SJohn.Forte@Sun.COM 1043*7836SJohn.Forte@Sun.COM IMA_BOOL slpDiscoverySettable; 1044*7836SJohn.Forte@Sun.COM IMA_XBOOL slpDiscoveryEnabled; 1045*7836SJohn.Forte@Sun.COM 1046*7836SJohn.Forte@Sun.COM IMA_BOOL staticDiscoverySettable; 1047*7836SJohn.Forte@Sun.COM IMA_XBOOL staticDiscoveryEnabled; 1048*7836SJohn.Forte@Sun.COM 1049*7836SJohn.Forte@Sun.COM IMA_BOOL sendTargetsDiscoverySettable; 1050*7836SJohn.Forte@Sun.COM IMA_XBOOL sendTargetsDiscoveryEnabled; 1051*7836SJohn.Forte@Sun.COM 1052*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 1053*7836SJohn.Forte@Sun.COM } IMA_DISCOVERY_PROPERTIES; 1054*7836SJohn.Forte@Sun.COM 1055*7836SJohn.Forte@Sun.COM 1056*7836SJohn.Forte@Sun.COM typedef struct _IMA_PHBA_DOWNLOAD_PROPERTIES 1057*7836SJohn.Forte@Sun.COM { 1058*7836SJohn.Forte@Sun.COM IMA_BOOL isPhbaDownloadFileSupported; 1059*7836SJohn.Forte@Sun.COM IMA_BOOL optionRomDownloadSupported; 1060*7836SJohn.Forte@Sun.COM IMA_BOOL firmwareDownloadSupported; 1061*7836SJohn.Forte@Sun.COM 1062*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[32]; 1063*7836SJohn.Forte@Sun.COM } IMA_PHBA_DOWNLOAD_PROPERTIES; 1064*7836SJohn.Forte@Sun.COM 1065*7836SJohn.Forte@Sun.COM typedef struct _IMA_IPSEC_PROPERTIES 1066*7836SJohn.Forte@Sun.COM { 1067*7836SJohn.Forte@Sun.COM IMA_BOOL ipsecSupported; 1068*7836SJohn.Forte@Sun.COM IMA_BOOL implementedInHardware; 1069*7836SJohn.Forte@Sun.COM IMA_BOOL implementedInSoftware; 1070*7836SJohn.Forte@Sun.COM 1071*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[32]; 1072*7836SJohn.Forte@Sun.COM 1073*7836SJohn.Forte@Sun.COM } IMA_IPSEC_PROPERTIES; 1074*7836SJohn.Forte@Sun.COM 1075*7836SJohn.Forte@Sun.COM typedef struct _IMA_LNP_PROPERTIES 1076*7836SJohn.Forte@Sun.COM { 1077*7836SJohn.Forte@Sun.COM IMA_MAC_ADDRESS macAddress; 1078*7836SJohn.Forte@Sun.COM IMA_BOOL macAddressSettable; 1079*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[32]; 1080*7836SJohn.Forte@Sun.COM 1081*7836SJohn.Forte@Sun.COM } IMA_LNP_PROPERTIES; 1082*7836SJohn.Forte@Sun.COM 1083*7836SJohn.Forte@Sun.COM typedef struct _IMA_PNP_PROPERTIES 1084*7836SJohn.Forte@Sun.COM { 1085*7836SJohn.Forte@Sun.COM IMA_OID associatedPhbaOid; 1086*7836SJohn.Forte@Sun.COM 1087*7836SJohn.Forte@Sun.COM IMA_MAC_ADDRESS macAddress; 1088*7836SJohn.Forte@Sun.COM IMA_BOOL macAddressSettable; 1089*7836SJohn.Forte@Sun.COM 1090*7836SJohn.Forte@Sun.COM IMA_UINT maximumTransferRate; 1091*7836SJohn.Forte@Sun.COM IMA_UINT currentTransferRate; 1092*7836SJohn.Forte@Sun.COM 1093*7836SJohn.Forte@Sun.COM IMA_UINT maximumFrameSize; 1094*7836SJohn.Forte@Sun.COM 1095*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 1096*7836SJohn.Forte@Sun.COM } IMA_PNP_PROPERTIES; 1097*7836SJohn.Forte@Sun.COM 1098*7836SJohn.Forte@Sun.COM typedef struct _IMA_PNP_STATISTICS 1099*7836SJohn.Forte@Sun.COM { 1100*7836SJohn.Forte@Sun.COM IMA_UINT64 bytesSent; 1101*7836SJohn.Forte@Sun.COM IMA_UINT32 pdusSent; 1102*7836SJohn.Forte@Sun.COM IMA_UINT64 bytesReceived; 1103*7836SJohn.Forte@Sun.COM IMA_UINT32 pdusReceived; 1104*7836SJohn.Forte@Sun.COM 1105*7836SJohn.Forte@Sun.COM } IMA_PNP_STATISTICS; 1106*7836SJohn.Forte@Sun.COM 1107*7836SJohn.Forte@Sun.COM typedef struct _IMA_TARGET_PROPERTIES 1108*7836SJohn.Forte@Sun.COM { 1109*7836SJohn.Forte@Sun.COM IMA_OID associatedNodeOid; 1110*7836SJohn.Forte@Sun.COM IMA_OID associatedLhbaOid; 1111*7836SJohn.Forte@Sun.COM 1112*7836SJohn.Forte@Sun.COM IMA_NODE_NAME name; 1113*7836SJohn.Forte@Sun.COM IMA_NODE_ALIAS alias; 1114*7836SJohn.Forte@Sun.COM IMA_UINT32 discoveryMethodFlags; 1115*7836SJohn.Forte@Sun.COM 1116*7836SJohn.Forte@Sun.COM IMA_BOOL sendTargetsDiscoverySettable; 1117*7836SJohn.Forte@Sun.COM IMA_BOOL sendTargetsDiscoveryEnabled; 1118*7836SJohn.Forte@Sun.COM 1119*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 1120*7836SJohn.Forte@Sun.COM 1121*7836SJohn.Forte@Sun.COM } IMA_TARGET_PROPERTIES; 1122*7836SJohn.Forte@Sun.COM 1123*7836SJohn.Forte@Sun.COM typedef struct _IMA_CONNECTION_PROPERTIES 1124*7836SJohn.Forte@Sun.COM { 1125*7836SJohn.Forte@Sun.COM IMA_OID associatedSessionOid; 1126*7836SJohn.Forte@Sun.COM IMA_UINT16 connectionId; 1127*7836SJohn.Forte@Sun.COM IMA_DIGEST_TYPE dataDigest; 1128*7836SJohn.Forte@Sun.COM IMA_DIGEST_TYPE headerDigest; 1129*7836SJohn.Forte@Sun.COM IMA_BOOL ifMarker; 1130*7836SJohn.Forte@Sun.COM IMA_UINT32 ifMarkInt; 1131*7836SJohn.Forte@Sun.COM IMA_UINT32 maxRecvDataSegmentLength; 1132*7836SJohn.Forte@Sun.COM IMA_UINT32 maxTransmitDataSegmentLength; 1133*7836SJohn.Forte@Sun.COM IMA_BOOL ofMarker; 1134*7836SJohn.Forte@Sun.COM IMA_UINT32 ofMarkInt; 1135*7836SJohn.Forte@Sun.COM } IMA_CONNECTION_PROPERTIES; 1136*7836SJohn.Forte@Sun.COM 1137*7836SJohn.Forte@Sun.COM 1138*7836SJohn.Forte@Sun.COM typedef struct _IMA_SESSION_PROPERTIES 1139*7836SJohn.Forte@Sun.COM { 1140*7836SJohn.Forte@Sun.COM IMA_OID associatedLhbaOid; 1141*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD authMethod; 1142*7836SJohn.Forte@Sun.COM IMA_BOOL dataPduInOrder; 1143*7836SJohn.Forte@Sun.COM IMA_BOOL dataSequenceInOrder; 1144*7836SJohn.Forte@Sun.COM IMA_UINT16 defaultTime2Retain; 1145*7836SJohn.Forte@Sun.COM IMA_UINT16 defaultTime2Wait; 1146*7836SJohn.Forte@Sun.COM IMA_UINT16 errorRecoveryLevel; 1147*7836SJohn.Forte@Sun.COM IMA_UINT32 firstBurstLength; 1148*7836SJohn.Forte@Sun.COM IMA_BOOL immediateData; 1149*7836SJohn.Forte@Sun.COM IMA_BOOL initialR2T; 1150*7836SJohn.Forte@Sun.COM IMA_BYTE isid[6]; 1151*7836SJohn.Forte@Sun.COM IMA_UINT32 maxBurstLength; 1152*7836SJohn.Forte@Sun.COM IMA_UINT16 maxConnections; 1153*7836SJohn.Forte@Sun.COM IMA_UINT16 maxOutstandingR2T; 1154*7836SJohn.Forte@Sun.COM IMA_UINT16 targetPortalGroupTag; 1155*7836SJohn.Forte@Sun.COM IMA_UINT16 tsih; 1156*7836SJohn.Forte@Sun.COM } IMA_SESSION_PROPERTIES; 1157*7836SJohn.Forte@Sun.COM 1158*7836SJohn.Forte@Sun.COM 1159*7836SJohn.Forte@Sun.COM typedef struct _IMA_TARGET_ERROR_STATISTICS 1160*7836SJohn.Forte@Sun.COM { 1161*7836SJohn.Forte@Sun.COM IMA_BOOL loginFailedCountValid; 1162*7836SJohn.Forte@Sun.COM IMA_UINT32 loginFailedCount; 1163*7836SJohn.Forte@Sun.COM 1164*7836SJohn.Forte@Sun.COM IMA_BOOL sessionFailedCountValid; 1165*7836SJohn.Forte@Sun.COM IMA_UINT32 sessionFailedCount; 1166*7836SJohn.Forte@Sun.COM 1167*7836SJohn.Forte@Sun.COM IMA_BOOL headerOrDigestSessionFailedCountValid; 1168*7836SJohn.Forte@Sun.COM IMA_UINT32 headerOrDigestSessionFailedCount; 1169*7836SJohn.Forte@Sun.COM 1170*7836SJohn.Forte@Sun.COM IMA_BOOL timeLimitExceededSessionFailedCountValid; 1171*7836SJohn.Forte@Sun.COM IMA_UINT32 timeLimitExceededSessionFailedCount; 1172*7836SJohn.Forte@Sun.COM 1173*7836SJohn.Forte@Sun.COM IMA_BOOL formatErrorSessionFailedCountValid; 1174*7836SJohn.Forte@Sun.COM IMA_UINT32 formatErrorSessionFailedCount; 1175*7836SJohn.Forte@Sun.COM 1176*7836SJohn.Forte@Sun.COM IMA_BOOL closedConnectionDueToTimeoutCountValid; 1177*7836SJohn.Forte@Sun.COM IMA_UINT32 closedConnectionDueToTimeoutCount; 1178*7836SJohn.Forte@Sun.COM 1179*7836SJohn.Forte@Sun.COM IMA_BOOL lastLoginFailureTimeValid; 1180*7836SJohn.Forte@Sun.COM IMA_DATETIME lastLoginFailureTime; 1181*7836SJohn.Forte@Sun.COM 1182*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 1183*7836SJohn.Forte@Sun.COM 1184*7836SJohn.Forte@Sun.COM } IMA_TARGET_ERROR_STATISTICS; 1185*7836SJohn.Forte@Sun.COM 1186*7836SJohn.Forte@Sun.COM typedef struct _IMA_LU_PROPERTIES 1187*7836SJohn.Forte@Sun.COM { 1188*7836SJohn.Forte@Sun.COM IMA_OID associatedTargetOid; 1189*7836SJohn.Forte@Sun.COM IMA_UINT64 targetLun; 1190*7836SJohn.Forte@Sun.COM 1191*7836SJohn.Forte@Sun.COM IMA_BOOL exposedToOs; 1192*7836SJohn.Forte@Sun.COM IMA_DATETIME timeExposedToOs; 1193*7836SJohn.Forte@Sun.COM 1194*7836SJohn.Forte@Sun.COM IMA_BOOL osDeviceNameValid; 1195*7836SJohn.Forte@Sun.COM IMA_WCHAR osDeviceName[64]; 1196*7836SJohn.Forte@Sun.COM 1197*7836SJohn.Forte@Sun.COM IMA_BOOL osParallelIdsValid; 1198*7836SJohn.Forte@Sun.COM IMA_UINT32 osBusNumber; 1199*7836SJohn.Forte@Sun.COM IMA_UINT32 osTargetId; 1200*7836SJohn.Forte@Sun.COM IMA_UINT32 osLun; 1201*7836SJohn.Forte@Sun.COM 1202*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 1203*7836SJohn.Forte@Sun.COM 1204*7836SJohn.Forte@Sun.COM } IMA_LU_PROPERTIES; 1205*7836SJohn.Forte@Sun.COM 1206*7836SJohn.Forte@Sun.COM typedef struct _IMA_STATISTICS_PROPERTIES 1207*7836SJohn.Forte@Sun.COM { 1208*7836SJohn.Forte@Sun.COM IMA_BOOL statisticsCollectionSettable; 1209*7836SJohn.Forte@Sun.COM IMA_BOOL statisticsCollectionEnabled; 1210*7836SJohn.Forte@Sun.COM 1211*7836SJohn.Forte@Sun.COM } IMA_STATISTICS_PROPERTIES; 1212*7836SJohn.Forte@Sun.COM 1213*7836SJohn.Forte@Sun.COM typedef struct _IMA_DEVICE_STATISTICS 1214*7836SJohn.Forte@Sun.COM { 1215*7836SJohn.Forte@Sun.COM IMA_UINT64 scsiPayloadBytesSent; 1216*7836SJohn.Forte@Sun.COM IMA_UINT64 scsiPayloadBytesReceived; 1217*7836SJohn.Forte@Sun.COM 1218*7836SJohn.Forte@Sun.COM IMA_UINT64 iScsiPduBytesSent; 1219*7836SJohn.Forte@Sun.COM IMA_UINT64 iScsiPduBytesReceived; 1220*7836SJohn.Forte@Sun.COM 1221*7836SJohn.Forte@Sun.COM IMA_UINT64 iScsiPdusSent; 1222*7836SJohn.Forte@Sun.COM IMA_UINT64 iScsiPdusReceived; 1223*7836SJohn.Forte@Sun.COM 1224*7836SJohn.Forte@Sun.COM IMA_UINT64 millisecondsSpentSending; 1225*7836SJohn.Forte@Sun.COM IMA_UINT64 millisecondsSpentReceiving; 1226*7836SJohn.Forte@Sun.COM 1227*7836SJohn.Forte@Sun.COM } IMA_DEVICE_STATISTICS; 1228*7836SJohn.Forte@Sun.COM 1229*7836SJohn.Forte@Sun.COM typedef struct _IMA_NETWORK_PORTAL_PROPERTIES 1230*7836SJohn.Forte@Sun.COM { 1231*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS ipAddress; 1232*7836SJohn.Forte@Sun.COM IMA_OID associatedLnp; 1233*7836SJohn.Forte@Sun.COM 1234*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[32]; 1235*7836SJohn.Forte@Sun.COM } IMA_NETWORK_PORTAL_PROPERTIES; 1236*7836SJohn.Forte@Sun.COM 1237*7836SJohn.Forte@Sun.COM typedef void (* IMA_OBJECT_VISIBILITY_FN)( 1238*7836SJohn.Forte@Sun.COM IMA_BOOL becomingVisible, 1239*7836SJohn.Forte@Sun.COM IMA_OID oid 1240*7836SJohn.Forte@Sun.COM ); 1241*7836SJohn.Forte@Sun.COM 1242*7836SJohn.Forte@Sun.COM typedef void (* IMA_OBJECT_PROPERTY_FN)( 1243*7836SJohn.Forte@Sun.COM IMA_OID oid 1244*7836SJohn.Forte@Sun.COM ); 1245*7836SJohn.Forte@Sun.COM 1246*7836SJohn.Forte@Sun.COM typedef struct _IMA_CHAP_INITIATOR_AUTHPARMS 1247*7836SJohn.Forte@Sun.COM { 1248*7836SJohn.Forte@Sun.COM 1249*7836SJohn.Forte@Sun.COM IMA_UINT retries; 1250*7836SJohn.Forte@Sun.COM 1251*7836SJohn.Forte@Sun.COM IMA_BYTE name[512]; 1252*7836SJohn.Forte@Sun.COM IMA_UINT nameLength; 1253*7836SJohn.Forte@Sun.COM 1254*7836SJohn.Forte@Sun.COM IMA_UINT minValueLength; 1255*7836SJohn.Forte@Sun.COM IMA_UINT maxValueLength; 1256*7836SJohn.Forte@Sun.COM 1257*7836SJohn.Forte@Sun.COM IMA_BYTE challengeSecret[256]; 1258*7836SJohn.Forte@Sun.COM IMA_UINT challengeSecretLength; 1259*7836SJohn.Forte@Sun.COM 1260*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[512]; 1261*7836SJohn.Forte@Sun.COM 1262*7836SJohn.Forte@Sun.COM } IMA_CHAP_INITIATOR_AUTHPARMS; 1263*7836SJohn.Forte@Sun.COM 1264*7836SJohn.Forte@Sun.COM typedef struct _IMA_SRP_INITIATOR_AUTHPARMS 1265*7836SJohn.Forte@Sun.COM { 1266*7836SJohn.Forte@Sun.COM 1267*7836SJohn.Forte@Sun.COM IMA_BYTE userName[512]; 1268*7836SJohn.Forte@Sun.COM IMA_UINT userNameLength; 1269*7836SJohn.Forte@Sun.COM 1270*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[512]; 1271*7836SJohn.Forte@Sun.COM 1272*7836SJohn.Forte@Sun.COM } IMA_SRP_INITIATOR_AUTHPARMS; 1273*7836SJohn.Forte@Sun.COM 1274*7836SJohn.Forte@Sun.COM typedef struct _IMA_KRB5_INITIATOR_AUTHPARMS 1275*7836SJohn.Forte@Sun.COM { 1276*7836SJohn.Forte@Sun.COM 1277*7836SJohn.Forte@Sun.COM IMA_BYTE clientKey[1024]; 1278*7836SJohn.Forte@Sun.COM IMA_UINT clientKeyLength; 1279*7836SJohn.Forte@Sun.COM 1280*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[2048]; 1281*7836SJohn.Forte@Sun.COM 1282*7836SJohn.Forte@Sun.COM } IMA_KRB5_INITIATOR_AUTHPARMS; 1283*7836SJohn.Forte@Sun.COM 1284*7836SJohn.Forte@Sun.COM typedef struct _IMA_SPKM_INITIATOR_AUTHPARMS 1285*7836SJohn.Forte@Sun.COM { 1286*7836SJohn.Forte@Sun.COM 1287*7836SJohn.Forte@Sun.COM IMA_BYTE privateKey[4096]; 1288*7836SJohn.Forte@Sun.COM IMA_UINT privateKeyLength; 1289*7836SJohn.Forte@Sun.COM 1290*7836SJohn.Forte@Sun.COM IMA_BYTE publicKey[4096]; 1291*7836SJohn.Forte@Sun.COM IMA_UINT publicKeyLength; 1292*7836SJohn.Forte@Sun.COM 1293*7836SJohn.Forte@Sun.COM IMA_BYTE reserved[4096]; 1294*7836SJohn.Forte@Sun.COM 1295*7836SJohn.Forte@Sun.COM } IMA_SPKM_INITIATOR_AUTHPARMS; 1296*7836SJohn.Forte@Sun.COM 1297*7836SJohn.Forte@Sun.COM typedef union _IMA_INITIATOR_AUTHPARMS 1298*7836SJohn.Forte@Sun.COM { 1299*7836SJohn.Forte@Sun.COM 1300*7836SJohn.Forte@Sun.COM IMA_CHAP_INITIATOR_AUTHPARMS chapParms; 1301*7836SJohn.Forte@Sun.COM IMA_SRP_INITIATOR_AUTHPARMS srpParms; 1302*7836SJohn.Forte@Sun.COM IMA_KRB5_INITIATOR_AUTHPARMS kerberosParms; 1303*7836SJohn.Forte@Sun.COM IMA_SPKM_INITIATOR_AUTHPARMS spkmParms; 1304*7836SJohn.Forte@Sun.COM 1305*7836SJohn.Forte@Sun.COM } IMA_INITIATOR_AUTHPARMS; 1306*7836SJohn.Forte@Sun.COM 1307*7836SJohn.Forte@Sun.COM 1308*7836SJohn.Forte@Sun.COM typedef struct _IMA_STATIC_DISCOVERY_TARGET 1309*7836SJohn.Forte@Sun.COM { 1310*7836SJohn.Forte@Sun.COM IMA_NODE_NAME targetName; 1311*7836SJohn.Forte@Sun.COM IMA_TARGET_ADDRESS targetAddress; 1312*7836SJohn.Forte@Sun.COM 1313*7836SJohn.Forte@Sun.COM } IMA_STATIC_DISCOVERY_TARGET; 1314*7836SJohn.Forte@Sun.COM 1315*7836SJohn.Forte@Sun.COM typedef struct _IMA_DISCOVERY_ADDRESS_PROPERTIES 1316*7836SJohn.Forte@Sun.COM { 1317*7836SJohn.Forte@Sun.COM IMA_OID associatedNodeOid; 1318*7836SJohn.Forte@Sun.COM IMA_OID associatedLhbaOid; 1319*7836SJohn.Forte@Sun.COM IMA_TARGET_ADDRESS discoveryAddress; 1320*7836SJohn.Forte@Sun.COM 1321*7836SJohn.Forte@Sun.COM } IMA_DISCOVERY_ADDRESS_PROPERTIES; 1322*7836SJohn.Forte@Sun.COM 1323*7836SJohn.Forte@Sun.COM typedef struct _IMA_STATIC_TGT_PROPERTIES 1324*7836SJohn.Forte@Sun.COM { 1325*7836SJohn.Forte@Sun.COM IMA_OID associatedNodeOid; 1326*7836SJohn.Forte@Sun.COM IMA_OID associatedLhbaOid; 1327*7836SJohn.Forte@Sun.COM IMA_STATIC_DISCOVERY_TARGET staticTarget; 1328*7836SJohn.Forte@Sun.COM 1329*7836SJohn.Forte@Sun.COM } IMA_STATIC_DISCOVERY_TARGET_PROPERTIES; 1330*7836SJohn.Forte@Sun.COM 1331*7836SJohn.Forte@Sun.COM 1332*7836SJohn.Forte@Sun.COM /** 1333*7836SJohn.Forte@Sun.COM ******************************************************************************* 1334*7836SJohn.Forte@Sun.COM * 1335*7836SJohn.Forte@Sun.COM * The individual APIs of the IMA are declared below. 1336*7836SJohn.Forte@Sun.COM * 1337*7836SJohn.Forte@Sun.COM ******************************************************************************* 1338*7836SJohn.Forte@Sun.COM */ 1339*7836SJohn.Forte@Sun.COM 1340*7836SJohn.Forte@Sun.COM /** 1341*7836SJohn.Forte@Sun.COM ******************************************************************************* 1342*7836SJohn.Forte@Sun.COM * 1343*7836SJohn.Forte@Sun.COM * Gets the properties of the IMA library that is being used. 1344*7836SJohn.Forte@Sun.COM * 1345*7836SJohn.Forte@Sun.COM * @param pProps 1346*7836SJohn.Forte@Sun.COM * A pointer to an IMA_LIBRARY_PROPERTIES structure allocated by 1347*7836SJohn.Forte@Sun.COM * the caller. On successful return this structure will contain the 1348*7836SJohn.Forte@Sun.COM * properties of the IMA library. 1349*7836SJohn.Forte@Sun.COM * 1350*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 1351*7836SJohn.Forte@Sun.COM * an error occurred. 1352*7836SJohn.Forte@Sun.COM * 1353*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1354*7836SJohn.Forte@Sun.COM * Returned if the library properties were successfully returned. 1355*7836SJohn.Forte@Sun.COM * 1356*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1357*7836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 1358*7836SJohn.Forte@Sun.COM * data cannot be written. 1359*7836SJohn.Forte@Sun.COM * 1360*7836SJohn.Forte@Sun.COM ******************************************************************************* 1361*7836SJohn.Forte@Sun.COM */ 1362*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLibraryProperties( 1363*7836SJohn.Forte@Sun.COM IMA_LIBRARY_PROPERTIES *pProps 1364*7836SJohn.Forte@Sun.COM ); 1365*7836SJohn.Forte@Sun.COM 1366*7836SJohn.Forte@Sun.COM 1367*7836SJohn.Forte@Sun.COM 1368*7836SJohn.Forte@Sun.COM /** 1369*7836SJohn.Forte@Sun.COM ******************************************************************************* 1370*7836SJohn.Forte@Sun.COM * 1371*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all currently loaded plugins. 1372*7836SJohn.Forte@Sun.COM * 1373*7836SJohn.Forte@Sun.COM * @param ppList 1374*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an IMA_OID_LIST. On successful 1375*7836SJohn.Forte@Sun.COM * return this will contain a pointer to an @ref IMA_OID_LIST 1376*7836SJohn.Forte@Sun.COM * which contains the object IDs of all of the plugins currently 1377*7836SJohn.Forte@Sun.COM * loaded by the library. 1378*7836SJohn.Forte@Sun.COM * 1379*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 1380*7836SJohn.Forte@Sun.COM * if an error occurred. 1381*7836SJohn.Forte@Sun.COM * 1382*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1383*7836SJohn.Forte@Sun.COM * Returned if the plugin ID list was successfully returned. 1384*7836SJohn.Forte@Sun.COM * 1385*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1386*7836SJohn.Forte@Sun.COM * Returned if 'ppList' is NULL or specifies a memory area to 1387*7836SJohn.Forte@Sun.COM * which data cannot be written. 1388*7836SJohn.Forte@Sun.COM * 1389*7836SJohn.Forte@Sun.COM ******************************************************************************* 1390*7836SJohn.Forte@Sun.COM */ 1391*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPluginOidList( 1392*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 1393*7836SJohn.Forte@Sun.COM ); 1394*7836SJohn.Forte@Sun.COM 1395*7836SJohn.Forte@Sun.COM 1396*7836SJohn.Forte@Sun.COM 1397*7836SJohn.Forte@Sun.COM /** 1398*7836SJohn.Forte@Sun.COM ******************************************************************************* 1399*7836SJohn.Forte@Sun.COM * 1400*7836SJohn.Forte@Sun.COM * Gets the properties of the specified vendor plugin. 1401*7836SJohn.Forte@Sun.COM * 1402*7836SJohn.Forte@Sun.COM * @param pluginOid 1403*7836SJohn.Forte@Sun.COM * The ID of the plugin whose properties are being retrieved. 1404*7836SJohn.Forte@Sun.COM * 1405*7836SJohn.Forte@Sun.COM * @param pProps 1406*7836SJohn.Forte@Sun.COM * A pointer to an @ref IMA_PLUGIN_PROPERTIES structure allocated by 1407*7836SJohn.Forte@Sun.COM * the caller. On successful return this will contain the properties 1408*7836SJohn.Forte@Sun.COM * of the plugin specified by pluginOid. 1409*7836SJohn.Forte@Sun.COM * 1410*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if an 1411*7836SJohn.Forte@Sun.COM * error occurred. 1412*7836SJohn.Forte@Sun.COM * 1413*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1414*7836SJohn.Forte@Sun.COM * Returned if the plugin properties were successfully returned. 1415*7836SJohn.Forte@Sun.COM * 1416*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1417*7836SJohn.Forte@Sun.COM * Returned if 'pluginOid' does not specify any valid object type. 1418*7836SJohn.Forte@Sun.COM * 1419*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1420*7836SJohn.Forte@Sun.COM * Returned if 'pluginOid' does not specify a plugin object. 1421*7836SJohn.Forte@Sun.COM * 1422*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1423*7836SJohn.Forte@Sun.COM * Returned if 'pluginOid' refers to a plugin, but not one that 1424*7836SJohn.Forte@Sun.COM * is currently loaded. 1425*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1426*7836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to 1427*7836SJohn.Forte@Sun.COM * which data cannot be written. 1428*7836SJohn.Forte@Sun.COM * 1429*7836SJohn.Forte@Sun.COM ******************************************************************************* 1430*7836SJohn.Forte@Sun.COM */ 1431*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPluginProperties( 1432*7836SJohn.Forte@Sun.COM IMA_OID pluginOid, 1433*7836SJohn.Forte@Sun.COM IMA_PLUGIN_PROPERTIES *pProps 1434*7836SJohn.Forte@Sun.COM ); 1435*7836SJohn.Forte@Sun.COM 1436*7836SJohn.Forte@Sun.COM 1437*7836SJohn.Forte@Sun.COM 1438*7836SJohn.Forte@Sun.COM /** 1439*7836SJohn.Forte@Sun.COM ******************************************************************************* 1440*7836SJohn.Forte@Sun.COM * 1441*7836SJohn.Forte@Sun.COM * Gets the object ID for the plugin associated with the specified object ID. 1442*7836SJohn.Forte@Sun.COM * 1443*7836SJohn.Forte@Sun.COM * @param oid 1444*7836SJohn.Forte@Sun.COM * The object ID of an object that has been received from a previous 1445*7836SJohn.Forte@Sun.COM * library call. 1446*7836SJohn.Forte@Sun.COM * 1447*7836SJohn.Forte@Sun.COM * @param pPluginOid 1448*7836SJohn.Forte@Sun.COM * A pointer to an IMA_OID structure allocated by the caller. On 1449*7836SJohn.Forte@Sun.COM * successful return this will contain the object ID of the plugin 1450*7836SJohn.Forte@Sun.COM * associated with the object specified by @a objectId. This 1451*7836SJohn.Forte@Sun.COM * can then be used to work with the plugin, e.g., to get the 1452*7836SJohn.Forte@Sun.COM * properties of the plugin or the send the plugin an IOCtl. 1453*7836SJohn.Forte@Sun.COM * 1454*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 1455*7836SJohn.Forte@Sun.COM * an error occurred. 1456*7836SJohn.Forte@Sun.COM * 1457*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1458*7836SJohn.Forte@Sun.COM * Returned if the associated plugin ID was successfully returned. 1459*7836SJohn.Forte@Sun.COM * 1460*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1461*7836SJohn.Forte@Sun.COM * Returned if 'pPluginOid' is NULL or specifies a memory area to 1462*7836SJohn.Forte@Sun.COM * which data cannot be written. 1463*7836SJohn.Forte@Sun.COM * 1464*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1465*7836SJohn.Forte@Sun.COM * Returned if 'oid' specifies an object not owned by a plugin, but 1466*7836SJohn.Forte@Sun.COM * instead one that is owned by the library. 1467*7836SJohn.Forte@Sun.COM * 1468*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1469*7836SJohn.Forte@Sun.COM * Returned if 'oid' specifies an object with an invalid type. 1470*7836SJohn.Forte@Sun.COM * 1471*7836SJohn.Forte@Sun.COM ******************************************************************************* 1472*7836SJohn.Forte@Sun.COM */ 1473*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetAssociatedPluginOid( 1474*7836SJohn.Forte@Sun.COM IMA_OID oid, 1475*7836SJohn.Forte@Sun.COM IMA_OID *pPluginOid 1476*7836SJohn.Forte@Sun.COM ); 1477*7836SJohn.Forte@Sun.COM 1478*7836SJohn.Forte@Sun.COM 1479*7836SJohn.Forte@Sun.COM 1480*7836SJohn.Forte@Sun.COM /** 1481*7836SJohn.Forte@Sun.COM ******************************************************************************* 1482*7836SJohn.Forte@Sun.COM * 1483*7836SJohn.Forte@Sun.COM * Gets the object ID of the shared node. 1484*7836SJohn.Forte@Sun.COM * 1485*7836SJohn.Forte@Sun.COM * @param pSharedNodeOid 1486*7836SJohn.Forte@Sun.COM * A pointer to an IMA_OID structure allocated by the caller. On 1487*7836SJohn.Forte@Sun.COM * successful return it will contain the object ID of the 1488*7836SJohn.Forte@Sun.COM * shared node of the currently executing system is placed. 1489*7836SJohn.Forte@Sun.COM * 1490*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 1491*7836SJohn.Forte@Sun.COM * if an error occurred. 1492*7836SJohn.Forte@Sun.COM * 1493*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1494*7836SJohn.Forte@Sun.COM * Returned if the shared node ID has been successfully retrieved. 1495*7836SJohn.Forte@Sun.COM * 1496*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1497*7836SJohn.Forte@Sun.COM * Returned if 'pSharedNodeOid' is NULL or specifies a memory area 1498*7836SJohn.Forte@Sun.COM * to which data cannot be written. 1499*7836SJohn.Forte@Sun.COM * 1500*7836SJohn.Forte@Sun.COM ******************************************************************************* 1501*7836SJohn.Forte@Sun.COM */ 1502*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetSharedNodeOid( 1503*7836SJohn.Forte@Sun.COM IMA_OID *pSharedNodeOid 1504*7836SJohn.Forte@Sun.COM ); 1505*7836SJohn.Forte@Sun.COM 1506*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetObjectType( 1507*7836SJohn.Forte@Sun.COM IMA_OID oid, 1508*7836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE *pObjectType 1509*7836SJohn.Forte@Sun.COM ); 1510*7836SJohn.Forte@Sun.COM 1511*7836SJohn.Forte@Sun.COM 1512*7836SJohn.Forte@Sun.COM /** 1513*7836SJohn.Forte@Sun.COM ******************************************************************************* 1514*7836SJohn.Forte@Sun.COM * 1515*7836SJohn.Forte@Sun.COM * Gets the properties of the specified iSCSI node. 1516*7836SJohn.Forte@Sun.COM * 1517*7836SJohn.Forte@Sun.COM * @param nodeOid 1518*7836SJohn.Forte@Sun.COM * The ID of the node to get the properties of. 1519*7836SJohn.Forte@Sun.COM * 1520*7836SJohn.Forte@Sun.COM * @param pProps 1521*7836SJohn.Forte@Sun.COM * A pointer to an @ref IMA_NODE_PROPERTIES structure which on 1522*7836SJohn.Forte@Sun.COM * successful return will contain the properties of the specified node. 1523*7836SJohn.Forte@Sun.COM * 1524*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 1525*7836SJohn.Forte@Sun.COM * an error occurred. 1526*7836SJohn.Forte@Sun.COM * 1527*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1528*7836SJohn.Forte@Sun.COM * Returned if the node properties have been successfully retrieved. 1529*7836SJohn.Forte@Sun.COM * 1530*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1531*7836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 1532*7836SJohn.Forte@Sun.COM * data cannot be written. 1533*7836SJohn.Forte@Sun.COM * 1534*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1535*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify any valid object type. 1536*7836SJohn.Forte@Sun.COM * 1537*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1538*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node object. 1539*7836SJohn.Forte@Sun.COM * 1540*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1541*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node which is currently 1542*7836SJohn.Forte@Sun.COM * known to the system. 1543*7836SJohn.Forte@Sun.COM * 1544*7836SJohn.Forte@Sun.COM ******************************************************************************* 1545*7836SJohn.Forte@Sun.COM */ 1546*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNodeProperties( 1547*7836SJohn.Forte@Sun.COM IMA_OID nodeOid, 1548*7836SJohn.Forte@Sun.COM IMA_NODE_PROPERTIES *pProps 1549*7836SJohn.Forte@Sun.COM ); 1550*7836SJohn.Forte@Sun.COM 1551*7836SJohn.Forte@Sun.COM 1552*7836SJohn.Forte@Sun.COM 1553*7836SJohn.Forte@Sun.COM /** 1554*7836SJohn.Forte@Sun.COM ******************************************************************************* 1555*7836SJohn.Forte@Sun.COM * 1556*7836SJohn.Forte@Sun.COM * Sets the name of the specified node. 1557*7836SJohn.Forte@Sun.COM * 1558*7836SJohn.Forte@Sun.COM * @param nodeOid 1559*7836SJohn.Forte@Sun.COM * The object ID of the node whose name is being set. 1560*7836SJohn.Forte@Sun.COM * 1561*7836SJohn.Forte@Sun.COM * @param newName 1562*7836SJohn.Forte@Sun.COM * The new name of the node. 1563*7836SJohn.Forte@Sun.COM * 1564*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 1565*7836SJohn.Forte@Sun.COM * if an error occurred. 1566*7836SJohn.Forte@Sun.COM * 1567*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1568*7836SJohn.Forte@Sun.COM * Returned if the node name was successfully changed. 1569*7836SJohn.Forte@Sun.COM * 1570*7836SJohn.Forte@Sun.COM * @retval IMA_STATUS_REBOOT_NECESSARY 1571*7836SJohn.Forte@Sun.COM * Returned if a reboot is necessary before the setting of the 1572*7836SJohn.Forte@Sun.COM * name actually takes affect. 1573*7836SJohn.Forte@Sun.COM * 1574*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1575*7836SJohn.Forte@Sun.COM * Returned if 'newName' is NULL, or specifies a memory area 1576*7836SJohn.Forte@Sun.COM * to which data cannot be written, or has a length of 0. 1577*7836SJohn.Forte@Sun.COM * 1578*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1579*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify any valid object type. 1580*7836SJohn.Forte@Sun.COM * 1581*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1582*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node object. 1583*7836SJohn.Forte@Sun.COM * 1584*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1585*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node which is 1586*7836SJohn.Forte@Sun.COM * currently known to the system. 1587*7836SJohn.Forte@Sun.COM * 1588*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_NAME_TOO_LONG 1589*7836SJohn.Forte@Sun.COM * Returned if 'newName' contains too many characters. 1590*7836SJohn.Forte@Sun.COM * 1591*7836SJohn.Forte@Sun.COM ******************************************************************************* 1592*7836SJohn.Forte@Sun.COM */ 1593*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetNodeName( 1594*7836SJohn.Forte@Sun.COM IMA_OID nodeOid, 1595*7836SJohn.Forte@Sun.COM const IMA_NODE_NAME newName 1596*7836SJohn.Forte@Sun.COM ); 1597*7836SJohn.Forte@Sun.COM 1598*7836SJohn.Forte@Sun.COM 1599*7836SJohn.Forte@Sun.COM 1600*7836SJohn.Forte@Sun.COM /** 1601*7836SJohn.Forte@Sun.COM ******************************************************************************* 1602*7836SJohn.Forte@Sun.COM * 1603*7836SJohn.Forte@Sun.COM * Generates a unique node name for the currently running system. 1604*7836SJohn.Forte@Sun.COM * 1605*7836SJohn.Forte@Sun.COM * @param generatedName 1606*7836SJohn.Forte@Sun.COM * On successful return contains the generated node name. 1607*7836SJohn.Forte@Sun.COM * 1608*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if an 1609*7836SJohn.Forte@Sun.COM * error occurred. 1610*7836SJohn.Forte@Sun.COM * 1611*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1612*7836SJohn.Forte@Sun.COM * Returned if 'generatedname is NULL or 1613*7836SJohn.Forte@Sun.COM * specifies a memory area to which data cannot be written. 1614*7836SJohn.Forte@Sun.COM * 1615*7836SJohn.Forte@Sun.COM ******************************************************************************* 1616*7836SJohn.Forte@Sun.COM */ 1617*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GenerateNodeName( 1618*7836SJohn.Forte@Sun.COM IMA_NODE_NAME generatedName 1619*7836SJohn.Forte@Sun.COM ); 1620*7836SJohn.Forte@Sun.COM 1621*7836SJohn.Forte@Sun.COM 1622*7836SJohn.Forte@Sun.COM 1623*7836SJohn.Forte@Sun.COM /** 1624*7836SJohn.Forte@Sun.COM ******************************************************************************* 1625*7836SJohn.Forte@Sun.COM * 1626*7836SJohn.Forte@Sun.COM * Sets the alias of the specified node. 1627*7836SJohn.Forte@Sun.COM * 1628*7836SJohn.Forte@Sun.COM * @param nodeOid 1629*7836SJohn.Forte@Sun.COM * The object ID of the node whose alias is being set. 1630*7836SJohn.Forte@Sun.COM * 1631*7836SJohn.Forte@Sun.COM * @param newAlias 1632*7836SJohn.Forte@Sun.COM * A pointer to a Unicode string which contains the new node alias. 1633*7836SJohn.Forte@Sun.COM * If this parameter is NULL then the current alias is deleted, in which 1634*7836SJohn.Forte@Sun.COM * case the specified node no longer has an alias. 1635*7836SJohn.Forte@Sun.COM * 1636*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 1637*7836SJohn.Forte@Sun.COM * if an error occurred. 1638*7836SJohn.Forte@Sun.COM * 1639*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1640*7836SJohn.Forte@Sun.COM * Returned if the node's alias has been successfully set. 1641*7836SJohn.Forte@Sun.COM * 1642*7836SJohn.Forte@Sun.COM * @retval IMA_STATUS_REBOOT_NECESSARY 1643*7836SJohn.Forte@Sun.COM * A reboot is necessary before the setting of the alias actually 1644*7836SJohn.Forte@Sun.COM * takes effect. 1645*7836SJohn.Forte@Sun.COM * 1646*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1647*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify any valid object type. 1648*7836SJohn.Forte@Sun.COM * 1649*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1650*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node object. 1651*7836SJohn.Forte@Sun.COM * 1652*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1653*7836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node which is currently 1654*7836SJohn.Forte@Sun.COM * known to the system. 1655*7836SJohn.Forte@Sun.COM * 1656*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_NAME_TOO_LONG 1657*7836SJohn.Forte@Sun.COM * Returned if 'newAlias' contains too many characters. 1658*7836SJohn.Forte@Sun.COM * 1659*7836SJohn.Forte@Sun.COM ******************************************************************************* 1660*7836SJohn.Forte@Sun.COM */ 1661*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetNodeAlias( 1662*7836SJohn.Forte@Sun.COM IMA_OID nodeOid, 1663*7836SJohn.Forte@Sun.COM const IMA_NODE_ALIAS newAlias 1664*7836SJohn.Forte@Sun.COM ); 1665*7836SJohn.Forte@Sun.COM 1666*7836SJohn.Forte@Sun.COM 1667*7836SJohn.Forte@Sun.COM 1668*7836SJohn.Forte@Sun.COM /** 1669*7836SJohn.Forte@Sun.COM ******************************************************************************* 1670*7836SJohn.Forte@Sun.COM * 1671*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the logical HBAs in the system. 1672*7836SJohn.Forte@Sun.COM * 1673*7836SJohn.Forte@Sun.COM * @param ppList 1674*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an @ref IMA_OID_LIST structure. On 1675*7836SJohn.Forte@Sun.COM * successful return this will contain a pointer to an 1676*7836SJohn.Forte@Sun.COM * IMA_OID_LIST which contains the object IDs of all of the 1677*7836SJohn.Forte@Sun.COM * LHBAs currently in the system. 1678*7836SJohn.Forte@Sun.COM * 1679*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 1680*7836SJohn.Forte@Sun.COM * an error occurred. 1681*7836SJohn.Forte@Sun.COM * 1682*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1683*7836SJohn.Forte@Sun.COM * Returned if the LHBA ID list has been successfully returned. 1684*7836SJohn.Forte@Sun.COM * 1685*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1686*7836SJohn.Forte@Sun.COM * Returned if 'ppList' is NULL or specifies a memory area to which 1687*7836SJohn.Forte@Sun.COM * data cannot be written. 1688*7836SJohn.Forte@Sun.COM * 1689*7836SJohn.Forte@Sun.COM ******************************************************************************* 1690*7836SJohn.Forte@Sun.COM */ 1691*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLhbaOidList( 1692*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 1693*7836SJohn.Forte@Sun.COM ); 1694*7836SJohn.Forte@Sun.COM 1695*7836SJohn.Forte@Sun.COM 1696*7836SJohn.Forte@Sun.COM 1697*7836SJohn.Forte@Sun.COM /** 1698*7836SJohn.Forte@Sun.COM ******************************************************************************* 1699*7836SJohn.Forte@Sun.COM * 1700*7836SJohn.Forte@Sun.COM * Gets the properties of the specified logical HBA. 1701*7836SJohn.Forte@Sun.COM * 1702*7836SJohn.Forte@Sun.COM * @param lhbaOid 1703*7836SJohn.Forte@Sun.COM * The object ID of the LHBA whose properties are being retrieved. 1704*7836SJohn.Forte@Sun.COM * 1705*7836SJohn.Forte@Sun.COM * @param pProps 1706*7836SJohn.Forte@Sun.COM * A pointer to an IMA_LHBA_PROPERTIES structure. On successful 1707*7836SJohn.Forte@Sun.COM * return this will contain the properties of the LHBA specified by 1708*7836SJohn.Forte@Sun.COM * 'lhbaOid'. 1709*7836SJohn.Forte@Sun.COM * 1710*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 1711*7836SJohn.Forte@Sun.COM * an error occurred. 1712*7836SJohn.Forte@Sun.COM * 1713*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1714*7836SJohn.Forte@Sun.COM * Returned if the properties of the specified LHBA have been 1715*7836SJohn.Forte@Sun.COM * successfully retrieved. 1716*7836SJohn.Forte@Sun.COM * 1717*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1718*7836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 1719*7836SJohn.Forte@Sun.COM * data cannot be written. 1720*7836SJohn.Forte@Sun.COM * 1721*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1722*7836SJohn.Forte@Sun.COM * Returned if 'lhbaOid' does not specify any valid object type. 1723*7836SJohn.Forte@Sun.COM * 1724*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1725*7836SJohn.Forte@Sun.COM * Returned if 'lhbaOid' does not specify a LHBA. 1726*7836SJohn.Forte@Sun.COM * 1727*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1728*7836SJohn.Forte@Sun.COM * Returned if 'lhbaOid' does not specify a LHBA which is currently 1729*7836SJohn.Forte@Sun.COM * known to the system. 1730*7836SJohn.Forte@Sun.COM * 1731*7836SJohn.Forte@Sun.COM ******************************************************************************* 1732*7836SJohn.Forte@Sun.COM */ 1733*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLhbaProperties( 1734*7836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 1735*7836SJohn.Forte@Sun.COM IMA_LHBA_PROPERTIES *pProps 1736*7836SJohn.Forte@Sun.COM ); 1737*7836SJohn.Forte@Sun.COM 1738*7836SJohn.Forte@Sun.COM 1739*7836SJohn.Forte@Sun.COM 1740*7836SJohn.Forte@Sun.COM /** 1741*7836SJohn.Forte@Sun.COM ******************************************************************************* 1742*7836SJohn.Forte@Sun.COM * 1743*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the physical HBAs in the system. 1744*7836SJohn.Forte@Sun.COM * 1745*7836SJohn.Forte@Sun.COM * @param ppList 1746*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an IMA_OID_LIST structure. On successful 1747*7836SJohn.Forte@Sun.COM * return this will contain a pointer to an IMA_OID_LIST which 1748*7836SJohn.Forte@Sun.COM * contains the object IDs of all of the PHBAs currently in the system. 1749*7836SJohn.Forte@Sun.COM * 1750*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 1751*7836SJohn.Forte@Sun.COM * an error occurred. 1752*7836SJohn.Forte@Sun.COM * 1753*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1754*7836SJohn.Forte@Sun.COM * Returned if the PHBA OID list has been successfully returned. 1755*7836SJohn.Forte@Sun.COM * 1756*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1757*7836SJohn.Forte@Sun.COM * Returned if 'ppList' is NULL or specifies a memory area to which 1758*7836SJohn.Forte@Sun.COM * data cannot be written. 1759*7836SJohn.Forte@Sun.COM * 1760*7836SJohn.Forte@Sun.COM ******************************************************************************* 1761*7836SJohn.Forte@Sun.COM */ 1762*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPhbaOidList( 1763*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 1764*7836SJohn.Forte@Sun.COM ); 1765*7836SJohn.Forte@Sun.COM 1766*7836SJohn.Forte@Sun.COM 1767*7836SJohn.Forte@Sun.COM 1768*7836SJohn.Forte@Sun.COM /** 1769*7836SJohn.Forte@Sun.COM ******************************************************************************* 1770*7836SJohn.Forte@Sun.COM * 1771*7836SJohn.Forte@Sun.COM * Gets the general properties of a physical HBA. 1772*7836SJohn.Forte@Sun.COM * 1773*7836SJohn.Forte@Sun.COM * @param phbaOid 1774*7836SJohn.Forte@Sun.COM * The object ID of the PHBA whose properties are being queried. 1775*7836SJohn.Forte@Sun.COM * 1776*7836SJohn.Forte@Sun.COM * @param pProps 1777*7836SJohn.Forte@Sun.COM * A pointer to an @ref IMA_PHBA_PROPERTIES structure. On successful 1778*7836SJohn.Forte@Sun.COM * return this will contain the properties of the PHBA specified by 1779*7836SJohn.Forte@Sun.COM * 'phbaOid'. 1780*7836SJohn.Forte@Sun.COM # 1781*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 1782*7836SJohn.Forte@Sun.COM * if an error occurred. 1783*7836SJohn.Forte@Sun.COM * 1784*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1785*7836SJohn.Forte@Sun.COM * Returned if the properties of the specified PHBA have been 1786*7836SJohn.Forte@Sun.COM * successfully retrieved. 1787*7836SJohn.Forte@Sun.COM * 1788*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1789*7836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 1790*7836SJohn.Forte@Sun.COM * data cannot be written. 1791*7836SJohn.Forte@Sun.COM * 1792*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1793*7836SJohn.Forte@Sun.COM * Returned if 'phbaOid' does not specify any valid object type. 1794*7836SJohn.Forte@Sun.COM * 1795*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1796*7836SJohn.Forte@Sun.COM * Returned if 'phbaOid' does not specify a PHBA. 1797*7836SJohn.Forte@Sun.COM * 1798*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1799*7836SJohn.Forte@Sun.COM * Returned if 'phbaOid' does not specify a PHBA which is currently 1800*7836SJohn.Forte@Sun.COM * known to the system. 1801*7836SJohn.Forte@Sun.COM * 1802*7836SJohn.Forte@Sun.COM ******************************************************************************* 1803*7836SJohn.Forte@Sun.COM */ 1804*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPhbaProperties( 1805*7836SJohn.Forte@Sun.COM IMA_OID phbaOid, 1806*7836SJohn.Forte@Sun.COM IMA_PHBA_PROPERTIES *pProps 1807*7836SJohn.Forte@Sun.COM ); 1808*7836SJohn.Forte@Sun.COM 1809*7836SJohn.Forte@Sun.COM /** 1810*7836SJohn.Forte@Sun.COM ******************************************************************************* 1811*7836SJohn.Forte@Sun.COM * 1812*7836SJohn.Forte@Sun.COM * Frees a previously allocated IMA_OID_LIST structure. 1813*7836SJohn.Forte@Sun.COM * 1814*7836SJohn.Forte@Sun.COM * @param pMemory A pointer to an IMA_OID_LIST structure allocated by the 1815*7836SJohn.Forte@Sun.COM * library. On successful return the memory allocated by the 1816*7836SJohn.Forte@Sun.COM * list is freed. 1817*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if an 1818*7836SJohn.Forte@Sun.COM * error occurred. 1819*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1820*7836SJohn.Forte@Sun.COM * Returned if the specified object ID list was successfully 1821*7836SJohn.Forte@Sun.COM * freed. 1822*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1823*7836SJohn.Forte@Sun.COM * Returned if pMemory is NULL or specifies a memory area from which 1824*7836SJohn.Forte@Sun.COM * data cannot be read. 1825*7836SJohn.Forte@Sun.COM * 1826*7836SJohn.Forte@Sun.COM ******************************************************************************* 1827*7836SJohn.Forte@Sun.COM */ 1828*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_FreeMemory( 1829*7836SJohn.Forte@Sun.COM void *pMemory 1830*7836SJohn.Forte@Sun.COM ); 1831*7836SJohn.Forte@Sun.COM 1832*7836SJohn.Forte@Sun.COM 1833*7836SJohn.Forte@Sun.COM 1834*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNonSharedNodeOidList( 1835*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 1836*7836SJohn.Forte@Sun.COM ); 1837*7836SJohn.Forte@Sun.COM 1838*7836SJohn.Forte@Sun.COM 1839*7836SJohn.Forte@Sun.COM 1840*7836SJohn.Forte@Sun.COM 1841*7836SJohn.Forte@Sun.COM /** 1842*7836SJohn.Forte@Sun.COM ******************************************************************************* 1843*7836SJohn.Forte@Sun.COM * 1844*7836SJohn.Forte@Sun.COM * Gets the first burst length properties of the specified logical HBA. 1845*7836SJohn.Forte@Sun.COM * 1846*7836SJohn.Forte@Sun.COM * @param oid 1847*7836SJohn.Forte@Sun.COM * The object ID of the logical HBA to get the first burst length 1848*7836SJohn.Forte@Sun.COM * properties of. 1849*7836SJohn.Forte@Sun.COM * 1850*7836SJohn.Forte@Sun.COM * @param pProps 1851*7836SJohn.Forte@Sun.COM * A pointer to a min/max values structure. 1852*7836SJohn.Forte@Sun.COM * 1853*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if an 1854*7836SJohn.Forte@Sun.COM * error occurred. 1855*7836SJohn.Forte@Sun.COM * 1856*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1857*7836SJohn.Forte@Sun.COM * Returned if the first burst length properties have been 1858*7836SJohn.Forte@Sun.COM * successfully retrieved. 1859*7836SJohn.Forte@Sun.COM * 1860*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1861*7836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to which 1862*7836SJohn.Forte@Sun.COM * data cannot be written. 1863*7836SJohn.Forte@Sun.COM * 1864*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1865*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify any valid object type. 1866*7836SJohn.Forte@Sun.COM * 1867*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1868*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA. 1869*7836SJohn.Forte@Sun.COM * 1870*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1871*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA which is currently 1872*7836SJohn.Forte@Sun.COM * known to the system. 1873*7836SJohn.Forte@Sun.COM * 1874*7836SJohn.Forte@Sun.COM ******************************************************************************* 1875*7836SJohn.Forte@Sun.COM */ 1876*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetFirstBurstLengthProperties( 1877*7836SJohn.Forte@Sun.COM IMA_OID oid, 1878*7836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 1879*7836SJohn.Forte@Sun.COM ); 1880*7836SJohn.Forte@Sun.COM 1881*7836SJohn.Forte@Sun.COM 1882*7836SJohn.Forte@Sun.COM /** 1883*7836SJohn.Forte@Sun.COM ******************************************************************************* 1884*7836SJohn.Forte@Sun.COM * 1885*7836SJohn.Forte@Sun.COM * Gets the max burst length properties of the specified logical HBA. 1886*7836SJohn.Forte@Sun.COM * 1887*7836SJohn.Forte@Sun.COM * @param oid 1888*7836SJohn.Forte@Sun.COM * The object ID of the logical HBA to get the max burst length 1889*7836SJohn.Forte@Sun.COM * properties of. 1890*7836SJohn.Forte@Sun.COM * 1891*7836SJohn.Forte@Sun.COM * @param pProps 1892*7836SJohn.Forte@Sun.COM * A pointer to an IMA_MIN_MAX_VALUE structure allocated by the 1893*7836SJohn.Forte@Sun.COM * caller. On successful return this structure will contain the max 1894*7836SJohn.Forte@Sun.COM * burst length properties of this LHBA. 1895*7836SJohn.Forte@Sun.COM * 1896*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 1897*7836SJohn.Forte@Sun.COM * an error occurred. 1898*7836SJohn.Forte@Sun.COM * 1899*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1900*7836SJohn.Forte@Sun.COM * Returned if the max burst length properties have been successfully 1901*7836SJohn.Forte@Sun.COM * retrieved. 1902*7836SJohn.Forte@Sun.COM * 1903*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1904*7836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to which 1905*7836SJohn.Forte@Sun.COM * data cannot be written. 1906*7836SJohn.Forte@Sun.COM * 1907*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1908*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify any valid object type. 1909*7836SJohn.Forte@Sun.COM * 1910*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1911*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA. 1912*7836SJohn.Forte@Sun.COM * 1913*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1914*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA which is currently 1915*7836SJohn.Forte@Sun.COM * known to the system. 1916*7836SJohn.Forte@Sun.COM * 1917*7836SJohn.Forte@Sun.COM ******************************************************************************* 1918*7836SJohn.Forte@Sun.COM */ 1919*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetMaxBurstLengthProperties( 1920*7836SJohn.Forte@Sun.COM IMA_OID Oid, 1921*7836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 1922*7836SJohn.Forte@Sun.COM ); 1923*7836SJohn.Forte@Sun.COM 1924*7836SJohn.Forte@Sun.COM /** 1925*7836SJohn.Forte@Sun.COM ******************************************************************************* 1926*7836SJohn.Forte@Sun.COM * 1927*7836SJohn.Forte@Sun.COM * Gets the maximum receive data segment length properties of the specified 1928*7836SJohn.Forte@Sun.COM * logical HBA. 1929*7836SJohn.Forte@Sun.COM * 1930*7836SJohn.Forte@Sun.COM * @param oid 1931*7836SJohn.Forte@Sun.COM * The object ID of the logical HBA to get the max receive data 1932*7836SJohn.Forte@Sun.COM * segment length properties of. 1933*7836SJohn.Forte@Sun.COM * 1934*7836SJohn.Forte@Sun.COM * @param pProps 1935*7836SJohn.Forte@Sun.COM * A pointer to an @ref IMA_MIN_MAX_VALUE structure allocated by the 1936*7836SJohn.Forte@Sun.COM * caller. On successful return this structure will contain the max 1937*7836SJohn.Forte@Sun.COM * receive data segment length properties of this LHBA. 1938*7836SJohn.Forte@Sun.COM * 1939*7836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 1940*7836SJohn.Forte@Sun.COM * an error occurred. 1941*7836SJohn.Forte@Sun.COM * 1942*7836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 1943*7836SJohn.Forte@Sun.COM * Returned if the max receive data segment length properties 1944*7836SJohn.Forte@Sun.COM * have been successfully retrieved. 1945*7836SJohn.Forte@Sun.COM * 1946*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 1947*7836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 1948*7836SJohn.Forte@Sun.COM * data cannot be written. 1949*7836SJohn.Forte@Sun.COM * 1950*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1951*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify any valid object type. 1952*7836SJohn.Forte@Sun.COM * 1953*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1954*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA. 1955*7836SJohn.Forte@Sun.COM * 1956*7836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 1957*7836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA which is currently 1958*7836SJohn.Forte@Sun.COM * known to the system. 1959*7836SJohn.Forte@Sun.COM * 1960*7836SJohn.Forte@Sun.COM ******************************************************************************* 1961*7836SJohn.Forte@Sun.COM */ 1962*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetMaxRecvDataSegmentLengthProperties( 1963*7836SJohn.Forte@Sun.COM IMA_OID oid, 1964*7836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 1965*7836SJohn.Forte@Sun.COM ); 1966*7836SJohn.Forte@Sun.COM 1967*7836SJohn.Forte@Sun.COM 1968*7836SJohn.Forte@Sun.COM /*---------------------------------------------*/ 1969*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_PluginIOCtl( 1970*7836SJohn.Forte@Sun.COM IMA_OID pluginOid, 1971*7836SJohn.Forte@Sun.COM IMA_UINT command, 1972*7836SJohn.Forte@Sun.COM const void *pInputBuffer, 1973*7836SJohn.Forte@Sun.COM IMA_UINT inputBufferLength, 1974*7836SJohn.Forte@Sun.COM void *pOutputBuffer, 1975*7836SJohn.Forte@Sun.COM IMA_UINT *pOutputBufferLength 1976*7836SJohn.Forte@Sun.COM ); 1977*7836SJohn.Forte@Sun.COM 1978*7836SJohn.Forte@Sun.COM 1979*7836SJohn.Forte@Sun.COM 1980*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNetworkPortalOidList( 1981*7836SJohn.Forte@Sun.COM IMA_OID oid, 1982*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 1983*7836SJohn.Forte@Sun.COM ); 1984*7836SJohn.Forte@Sun.COM 1985*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetFirstBurstLength( 1986*7836SJohn.Forte@Sun.COM IMA_OID oid, 1987*7836SJohn.Forte@Sun.COM IMA_UINT firstBurstLength 1988*7836SJohn.Forte@Sun.COM ); 1989*7836SJohn.Forte@Sun.COM 1990*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetMaxBurstLength( 1991*7836SJohn.Forte@Sun.COM IMA_OID oid, 1992*7836SJohn.Forte@Sun.COM IMA_UINT maxBurstLength 1993*7836SJohn.Forte@Sun.COM ); 1994*7836SJohn.Forte@Sun.COM 1995*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetMaxRecvDataSegmentLength( 1996*7836SJohn.Forte@Sun.COM IMA_OID oid, 1997*7836SJohn.Forte@Sun.COM IMA_UINT maxRecvDataSegmentLength 1998*7836SJohn.Forte@Sun.COM ); 1999*7836SJohn.Forte@Sun.COM 2000*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetMaxConnectionsProperties( 2001*7836SJohn.Forte@Sun.COM IMA_OID oid, 2002*7836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 2003*7836SJohn.Forte@Sun.COM ); 2004*7836SJohn.Forte@Sun.COM 2005*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetMaxConnections( 2006*7836SJohn.Forte@Sun.COM IMA_OID oid, 2007*7836SJohn.Forte@Sun.COM IMA_UINT maxConnections 2008*7836SJohn.Forte@Sun.COM ); 2009*7836SJohn.Forte@Sun.COM 2010*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDefaultTime2RetainProperties( 2011*7836SJohn.Forte@Sun.COM IMA_OID oid, 2012*7836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 2013*7836SJohn.Forte@Sun.COM ); 2014*7836SJohn.Forte@Sun.COM 2015*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDefaultTime2Retain( 2016*7836SJohn.Forte@Sun.COM IMA_OID oid, 2017*7836SJohn.Forte@Sun.COM IMA_UINT defaultTime2Retain 2018*7836SJohn.Forte@Sun.COM ); 2019*7836SJohn.Forte@Sun.COM 2020*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDefaultTime2WaitProperties( 2021*7836SJohn.Forte@Sun.COM IMA_OID oid, 2022*7836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 2023*7836SJohn.Forte@Sun.COM ); 2024*7836SJohn.Forte@Sun.COM 2025*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDefaultTime2Wait( 2026*7836SJohn.Forte@Sun.COM IMA_OID oid, 2027*7836SJohn.Forte@Sun.COM IMA_UINT defaultTime2Wait 2028*7836SJohn.Forte@Sun.COM ); 2029*7836SJohn.Forte@Sun.COM 2030*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetMaxOutstandingR2TProperties( 2031*7836SJohn.Forte@Sun.COM IMA_OID oid, 2032*7836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 2033*7836SJohn.Forte@Sun.COM ); 2034*7836SJohn.Forte@Sun.COM 2035*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetMaxOutstandingR2T( 2036*7836SJohn.Forte@Sun.COM IMA_OID oid, 2037*7836SJohn.Forte@Sun.COM IMA_UINT maxOutstandingR2T 2038*7836SJohn.Forte@Sun.COM ); 2039*7836SJohn.Forte@Sun.COM 2040*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetErrorRecoveryLevelProperties( 2041*7836SJohn.Forte@Sun.COM IMA_OID oid, 2042*7836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 2043*7836SJohn.Forte@Sun.COM ); 2044*7836SJohn.Forte@Sun.COM 2045*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetErrorRecoveryLevel( 2046*7836SJohn.Forte@Sun.COM IMA_OID oid, 2047*7836SJohn.Forte@Sun.COM IMA_UINT errorRecoveryLevel 2048*7836SJohn.Forte@Sun.COM ); 2049*7836SJohn.Forte@Sun.COM 2050*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetInitialR2TProperties( 2051*7836SJohn.Forte@Sun.COM IMA_OID oid, 2052*7836SJohn.Forte@Sun.COM IMA_BOOL_VALUE *pProps 2053*7836SJohn.Forte@Sun.COM ); 2054*7836SJohn.Forte@Sun.COM 2055*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetInitialR2T( 2056*7836SJohn.Forte@Sun.COM IMA_OID oid, 2057*7836SJohn.Forte@Sun.COM IMA_BOOL initialR2T 2058*7836SJohn.Forte@Sun.COM ); 2059*7836SJohn.Forte@Sun.COM 2060*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetImmediateDataProperties( 2061*7836SJohn.Forte@Sun.COM IMA_OID oid, 2062*7836SJohn.Forte@Sun.COM IMA_BOOL_VALUE *pProps 2063*7836SJohn.Forte@Sun.COM ); 2064*7836SJohn.Forte@Sun.COM 2065*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetImmediateData( 2066*7836SJohn.Forte@Sun.COM IMA_OID oid, 2067*7836SJohn.Forte@Sun.COM IMA_BOOL immediateData 2068*7836SJohn.Forte@Sun.COM ); 2069*7836SJohn.Forte@Sun.COM 2070*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDataPduInOrderProperties( 2071*7836SJohn.Forte@Sun.COM IMA_OID oid, 2072*7836SJohn.Forte@Sun.COM IMA_BOOL_VALUE *pProps 2073*7836SJohn.Forte@Sun.COM ); 2074*7836SJohn.Forte@Sun.COM 2075*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDataPduInOrder( 2076*7836SJohn.Forte@Sun.COM IMA_OID oid, 2077*7836SJohn.Forte@Sun.COM IMA_BOOL dataPduInOrder 2078*7836SJohn.Forte@Sun.COM ); 2079*7836SJohn.Forte@Sun.COM 2080*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDataSequenceInOrderProperties( 2081*7836SJohn.Forte@Sun.COM IMA_OID oid, 2082*7836SJohn.Forte@Sun.COM IMA_BOOL_VALUE *pProps 2083*7836SJohn.Forte@Sun.COM ); 2084*7836SJohn.Forte@Sun.COM 2085*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDataSequenceInOrder( 2086*7836SJohn.Forte@Sun.COM IMA_OID oid, 2087*7836SJohn.Forte@Sun.COM IMA_BOOL dataSequenceInOrder 2088*7836SJohn.Forte@Sun.COM ); 2089*7836SJohn.Forte@Sun.COM 2090*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetStatisticsCollection( 2091*7836SJohn.Forte@Sun.COM IMA_OID oid, 2092*7836SJohn.Forte@Sun.COM IMA_BOOL enableStatisticsCollection 2093*7836SJohn.Forte@Sun.COM ); 2094*7836SJohn.Forte@Sun.COM 2095*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNetworkPortStatus( 2096*7836SJohn.Forte@Sun.COM IMA_OID portOid, 2097*7836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS *pStatus 2098*7836SJohn.Forte@Sun.COM ); 2099*7836SJohn.Forte@Sun.COM 2100*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetTargetOidList( 2101*7836SJohn.Forte@Sun.COM IMA_OID oid, 2102*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 2103*7836SJohn.Forte@Sun.COM ); 2104*7836SJohn.Forte@Sun.COM 2105*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RemoveStaleData( 2106*7836SJohn.Forte@Sun.COM IMA_OID lhbaOid 2107*7836SJohn.Forte@Sun.COM ); 2108*7836SJohn.Forte@Sun.COM 2109*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetIsnsDiscovery( 2110*7836SJohn.Forte@Sun.COM IMA_OID phbaId, 2111*7836SJohn.Forte@Sun.COM IMA_BOOL enableIsnsDiscovery, 2112*7836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD discoveryMethod, 2113*7836SJohn.Forte@Sun.COM const IMA_HOST_ID *iSnsHost 2114*7836SJohn.Forte@Sun.COM ); 2115*7836SJohn.Forte@Sun.COM 2116*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetSlpDiscovery( 2117*7836SJohn.Forte@Sun.COM IMA_OID phbaOid, 2118*7836SJohn.Forte@Sun.COM IMA_BOOL enableSlpDiscovery 2119*7836SJohn.Forte@Sun.COM ); 2120*7836SJohn.Forte@Sun.COM 2121*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetStaticDiscovery( 2122*7836SJohn.Forte@Sun.COM IMA_OID phbaOid, 2123*7836SJohn.Forte@Sun.COM IMA_BOOL enableStaticDiscovery 2124*7836SJohn.Forte@Sun.COM ); 2125*7836SJohn.Forte@Sun.COM 2126*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetSendTargetsDiscovery( 2127*7836SJohn.Forte@Sun.COM IMA_OID oid, 2128*7836SJohn.Forte@Sun.COM IMA_BOOL enableSendTargetsDiscovery 2129*7836SJohn.Forte@Sun.COM ); 2130*7836SJohn.Forte@Sun.COM 2131*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RemoveStaticDiscoveryTarget( 2132*7836SJohn.Forte@Sun.COM IMA_OID targetOid 2133*7836SJohn.Forte@Sun.COM ); 2134*7836SJohn.Forte@Sun.COM 2135*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetIpsecProperties( 2136*7836SJohn.Forte@Sun.COM IMA_OID phbaOid, 2137*7836SJohn.Forte@Sun.COM IMA_IPSEC_PROPERTIES *pProps 2138*7836SJohn.Forte@Sun.COM ); 2139*7836SJohn.Forte@Sun.COM 2140*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPnpOidList( 2141*7836SJohn.Forte@Sun.COM IMA_OID oid, 2142*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 2143*7836SJohn.Forte@Sun.COM ); 2144*7836SJohn.Forte@Sun.COM 2145*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPhbaDownloadProperties( 2146*7836SJohn.Forte@Sun.COM IMA_OID phbaOid, 2147*7836SJohn.Forte@Sun.COM IMA_PHBA_DOWNLOAD_PROPERTIES *pProps 2148*7836SJohn.Forte@Sun.COM ); 2149*7836SJohn.Forte@Sun.COM 2150*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_IsPhbaDownloadFile( 2151*7836SJohn.Forte@Sun.COM IMA_OID phbaOid, 2152*7836SJohn.Forte@Sun.COM const IMA_WCHAR *pFileName, 2153*7836SJohn.Forte@Sun.COM IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES *pProps 2154*7836SJohn.Forte@Sun.COM ); 2155*7836SJohn.Forte@Sun.COM 2156*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_PhbaDownload( 2157*7836SJohn.Forte@Sun.COM IMA_OID phbaOid, 2158*7836SJohn.Forte@Sun.COM IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType, 2159*7836SJohn.Forte@Sun.COM const IMA_WCHAR *pFileName 2160*7836SJohn.Forte@Sun.COM ); 2161*7836SJohn.Forte@Sun.COM 2162*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNetworkPortalProperties( 2163*7836SJohn.Forte@Sun.COM IMA_OID networkPortalOid, 2164*7836SJohn.Forte@Sun.COM IMA_NETWORK_PORTAL_PROPERTIES *pProps 2165*7836SJohn.Forte@Sun.COM ); 2166*7836SJohn.Forte@Sun.COM 2167*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetNetworkPortalIpAddress( 2168*7836SJohn.Forte@Sun.COM IMA_OID networkPortalOid, 2169*7836SJohn.Forte@Sun.COM const IMA_IP_ADDRESS NewIpAddress 2170*7836SJohn.Forte@Sun.COM ); 2171*7836SJohn.Forte@Sun.COM 2172*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLnpOidList( 2173*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 2174*7836SJohn.Forte@Sun.COM ); 2175*7836SJohn.Forte@Sun.COM 2176*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLnpProperties( 2177*7836SJohn.Forte@Sun.COM IMA_OID lnpOid, 2178*7836SJohn.Forte@Sun.COM IMA_LNP_PROPERTIES *pProps 2179*7836SJohn.Forte@Sun.COM ); 2180*7836SJohn.Forte@Sun.COM 2181*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPnpProperties( 2182*7836SJohn.Forte@Sun.COM IMA_OID pnpOid, 2183*7836SJohn.Forte@Sun.COM IMA_PNP_PROPERTIES *pProps 2184*7836SJohn.Forte@Sun.COM ); 2185*7836SJohn.Forte@Sun.COM 2186*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPnpStatistics( 2187*7836SJohn.Forte@Sun.COM IMA_OID pnpOid, 2188*7836SJohn.Forte@Sun.COM IMA_PNP_STATISTICS *pStats 2189*7836SJohn.Forte@Sun.COM ); 2190*7836SJohn.Forte@Sun.COM 2191*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetTargetProperties( 2192*7836SJohn.Forte@Sun.COM IMA_OID targetOid, 2193*7836SJohn.Forte@Sun.COM IMA_TARGET_PROPERTIES *pProps 2194*7836SJohn.Forte@Sun.COM ); 2195*7836SJohn.Forte@Sun.COM 2196*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetTargetErrorStatistics( 2197*7836SJohn.Forte@Sun.COM IMA_OID targetOid, 2198*7836SJohn.Forte@Sun.COM IMA_TARGET_ERROR_STATISTICS *pStats 2199*7836SJohn.Forte@Sun.COM ); 2200*7836SJohn.Forte@Sun.COM 2201*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLuOidList( 2202*7836SJohn.Forte@Sun.COM IMA_OID oid, 2203*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 2204*7836SJohn.Forte@Sun.COM ); 2205*7836SJohn.Forte@Sun.COM 2206*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLuOid( 2207*7836SJohn.Forte@Sun.COM IMA_OID targetOid, 2208*7836SJohn.Forte@Sun.COM IMA_UINT64 lun, 2209*7836SJohn.Forte@Sun.COM IMA_OID *pluOid 2210*7836SJohn.Forte@Sun.COM ); 2211*7836SJohn.Forte@Sun.COM 2212*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLuProperties( 2213*7836SJohn.Forte@Sun.COM IMA_OID luOid, 2214*7836SJohn.Forte@Sun.COM IMA_LU_PROPERTIES *pProps 2215*7836SJohn.Forte@Sun.COM ); 2216*7836SJohn.Forte@Sun.COM 2217*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetStatisticsProperties( 2218*7836SJohn.Forte@Sun.COM IMA_OID oid, 2219*7836SJohn.Forte@Sun.COM IMA_STATISTICS_PROPERTIES *pProps 2220*7836SJohn.Forte@Sun.COM ); 2221*7836SJohn.Forte@Sun.COM 2222*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDeviceStatistics( 2223*7836SJohn.Forte@Sun.COM IMA_OID oid, 2224*7836SJohn.Forte@Sun.COM IMA_DEVICE_STATISTICS *pStats 2225*7836SJohn.Forte@Sun.COM ); 2226*7836SJohn.Forte@Sun.COM 2227*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_LuInquiry( 2228*7836SJohn.Forte@Sun.COM IMA_OID deviceOid, 2229*7836SJohn.Forte@Sun.COM IMA_BOOL evpd, 2230*7836SJohn.Forte@Sun.COM IMA_BOOL cmddt, 2231*7836SJohn.Forte@Sun.COM IMA_BYTE pageCode, 2232*7836SJohn.Forte@Sun.COM 2233*7836SJohn.Forte@Sun.COM IMA_BYTE *pOutputBuffer, 2234*7836SJohn.Forte@Sun.COM IMA_UINT *pOutputBufferLength, 2235*7836SJohn.Forte@Sun.COM 2236*7836SJohn.Forte@Sun.COM IMA_BYTE *pSenseBuffer, 2237*7836SJohn.Forte@Sun.COM IMA_UINT *pSenseBufferLength 2238*7836SJohn.Forte@Sun.COM ); 2239*7836SJohn.Forte@Sun.COM 2240*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_LuReadCapacity( 2241*7836SJohn.Forte@Sun.COM IMA_OID deviceOid, 2242*7836SJohn.Forte@Sun.COM IMA_UINT cdbLength, 2243*7836SJohn.Forte@Sun.COM IMA_BYTE *pOutputBuffer, 2244*7836SJohn.Forte@Sun.COM IMA_UINT *pOutputBufferLength, 2245*7836SJohn.Forte@Sun.COM 2246*7836SJohn.Forte@Sun.COM IMA_BYTE *pSenseBuffer, 2247*7836SJohn.Forte@Sun.COM IMA_UINT *pSenseBufferLength 2248*7836SJohn.Forte@Sun.COM ); 2249*7836SJohn.Forte@Sun.COM 2250*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_LuReportLuns( 2251*7836SJohn.Forte@Sun.COM IMA_OID deviceOid, 2252*7836SJohn.Forte@Sun.COM IMA_BOOL sendToWellKnownLun, 2253*7836SJohn.Forte@Sun.COM IMA_BYTE selectReport, 2254*7836SJohn.Forte@Sun.COM 2255*7836SJohn.Forte@Sun.COM IMA_BYTE *pOutputBuffer, 2256*7836SJohn.Forte@Sun.COM IMA_UINT *pOutputBufferLength, 2257*7836SJohn.Forte@Sun.COM 2258*7836SJohn.Forte@Sun.COM IMA_BYTE *pSenseBuffer, 2259*7836SJohn.Forte@Sun.COM IMA_UINT *pSenseBufferLength 2260*7836SJohn.Forte@Sun.COM ); 2261*7836SJohn.Forte@Sun.COM 2262*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_ExposeLu( 2263*7836SJohn.Forte@Sun.COM IMA_OID luOid 2264*7836SJohn.Forte@Sun.COM ); 2265*7836SJohn.Forte@Sun.COM 2266*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_UnexposeLu( 2267*7836SJohn.Forte@Sun.COM IMA_OID luOid 2268*7836SJohn.Forte@Sun.COM ); 2269*7836SJohn.Forte@Sun.COM 2270*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPhbaStatus( 2271*7836SJohn.Forte@Sun.COM IMA_OID hbaOid, 2272*7836SJohn.Forte@Sun.COM IMA_PHBA_STATUS *pStatus 2273*7836SJohn.Forte@Sun.COM ); 2274*7836SJohn.Forte@Sun.COM 2275*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RegisterForObjectVisibilityChanges ( 2276*7836SJohn.Forte@Sun.COM IMA_OBJECT_VISIBILITY_FN pClientFn 2277*7836SJohn.Forte@Sun.COM ); 2278*7836SJohn.Forte@Sun.COM 2279*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_DeregisterForObjectVisibilityChanges ( 2280*7836SJohn.Forte@Sun.COM IMA_OBJECT_VISIBILITY_FN pClientFn 2281*7836SJohn.Forte@Sun.COM ); 2282*7836SJohn.Forte@Sun.COM 2283*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RegisterForObjectPropertyChanges ( 2284*7836SJohn.Forte@Sun.COM IMA_OBJECT_PROPERTY_FN pClientFn 2285*7836SJohn.Forte@Sun.COM ); 2286*7836SJohn.Forte@Sun.COM 2287*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_DeregisterForObjectPropertyChanges ( 2288*7836SJohn.Forte@Sun.COM IMA_OBJECT_PROPERTY_FN pClientFn 2289*7836SJohn.Forte@Sun.COM ); 2290*7836SJohn.Forte@Sun.COM 2291*7836SJohn.Forte@Sun.COM 2292*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetAddressKeyProperties( 2293*7836SJohn.Forte@Sun.COM IMA_OID targetOid, 2294*7836SJohn.Forte@Sun.COM IMA_ADDRESS_KEY_PROPERTIES **ppProps 2295*7836SJohn.Forte@Sun.COM ); 2296*7836SJohn.Forte@Sun.COM 2297*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetIpProperties( 2298*7836SJohn.Forte@Sun.COM IMA_OID oid, 2299*7836SJohn.Forte@Sun.COM IMA_IP_PROPERTIES *pProps 2300*7836SJohn.Forte@Sun.COM ); 2301*7836SJohn.Forte@Sun.COM 2302*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetIpConfigMethod( 2303*7836SJohn.Forte@Sun.COM IMA_OID oid, 2304*7836SJohn.Forte@Sun.COM IMA_BOOL enableDhcpIpConfiguration 2305*7836SJohn.Forte@Sun.COM ); 2306*7836SJohn.Forte@Sun.COM 2307*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetIsnsDiscovery( 2308*7836SJohn.Forte@Sun.COM IMA_OID oid, 2309*7836SJohn.Forte@Sun.COM IMA_BOOL enableIsnsDiscovery, 2310*7836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD discoveryMethod, 2311*7836SJohn.Forte@Sun.COM const IMA_HOST_ID *iSnsHost 2312*7836SJohn.Forte@Sun.COM ); 2313*7836SJohn.Forte@Sun.COM 2314*7836SJohn.Forte@Sun.COM 2315*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetSubnetMask( 2316*7836SJohn.Forte@Sun.COM IMA_OID oid, 2317*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS subnetMask 2318*7836SJohn.Forte@Sun.COM ); 2319*7836SJohn.Forte@Sun.COM 2320*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDnsServerAddress( 2321*7836SJohn.Forte@Sun.COM IMA_OID oid, 2322*7836SJohn.Forte@Sun.COM const IMA_IP_ADDRESS *pPrimaryDnsServerAddress, 2323*7836SJohn.Forte@Sun.COM const IMA_IP_ADDRESS *pAlternateDnsServerAddress 2324*7836SJohn.Forte@Sun.COM ); 2325*7836SJohn.Forte@Sun.COM 2326*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDefaultGateway( 2327*7836SJohn.Forte@Sun.COM IMA_OID oid, 2328*7836SJohn.Forte@Sun.COM IMA_IP_ADDRESS defaultGateway 2329*7836SJohn.Forte@Sun.COM ); 2330*7836SJohn.Forte@Sun.COM 2331*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetSupportedAuthMethods( 2332*7836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 2333*7836SJohn.Forte@Sun.COM IMA_BOOL getSettableMethods, 2334*7836SJohn.Forte@Sun.COM IMA_UINT *pMethodCount, 2335*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD *pMethodList 2336*7836SJohn.Forte@Sun.COM ); 2337*7836SJohn.Forte@Sun.COM 2338*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetInUseInitiatorAuthMethods( 2339*7836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 2340*7836SJohn.Forte@Sun.COM IMA_UINT *pMethodCount, 2341*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD *pMethodList 2342*7836SJohn.Forte@Sun.COM ); 2343*7836SJohn.Forte@Sun.COM 2344*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetInitiatorAuthParms( 2345*7836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 2346*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD method, 2347*7836SJohn.Forte@Sun.COM IMA_INITIATOR_AUTHPARMS *pParms 2348*7836SJohn.Forte@Sun.COM ); 2349*7836SJohn.Forte@Sun.COM 2350*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetInitiatorAuthMethods( 2351*7836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 2352*7836SJohn.Forte@Sun.COM IMA_UINT methodCount, 2353*7836SJohn.Forte@Sun.COM const IMA_AUTHMETHOD *pMethodList 2354*7836SJohn.Forte@Sun.COM ); 2355*7836SJohn.Forte@Sun.COM 2356*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetInitiatorAuthParms( 2357*7836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 2358*7836SJohn.Forte@Sun.COM IMA_AUTHMETHOD method, 2359*7836SJohn.Forte@Sun.COM const IMA_INITIATOR_AUTHPARMS *pParms 2360*7836SJohn.Forte@Sun.COM ); 2361*7836SJohn.Forte@Sun.COM 2362*7836SJohn.Forte@Sun.COM 2363*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetOidList ( 2364*7836SJohn.Forte@Sun.COM IMA_OID oid, 2365*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 2366*7836SJohn.Forte@Sun.COM ); 2367*7836SJohn.Forte@Sun.COM 2368*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetProperties( 2369*7836SJohn.Forte@Sun.COM IMA_OID staticDiscoveryTargetOid, 2370*7836SJohn.Forte@Sun.COM IMA_STATIC_DISCOVERY_TARGET_PROPERTIES *pProps 2371*7836SJohn.Forte@Sun.COM ); 2372*7836SJohn.Forte@Sun.COM 2373*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetStaticDiscovery( 2374*7836SJohn.Forte@Sun.COM IMA_OID oid, 2375*7836SJohn.Forte@Sun.COM IMA_BOOL enableStaticDiscovery 2376*7836SJohn.Forte@Sun.COM ); 2377*7836SJohn.Forte@Sun.COM 2378*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDiscoveryProperties( 2379*7836SJohn.Forte@Sun.COM IMA_OID oid, 2380*7836SJohn.Forte@Sun.COM IMA_DISCOVERY_PROPERTIES *pProps 2381*7836SJohn.Forte@Sun.COM ); 2382*7836SJohn.Forte@Sun.COM 2383*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_AddDiscoveryAddress( 2384*7836SJohn.Forte@Sun.COM IMA_OID oid, 2385*7836SJohn.Forte@Sun.COM const IMA_TARGET_ADDRESS discoveryAddress, 2386*7836SJohn.Forte@Sun.COM IMA_OID *pDiscoveryAddressOid 2387*7836SJohn.Forte@Sun.COM ); 2388*7836SJohn.Forte@Sun.COM 2389*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_AddStaticDiscoveryTarget( 2390*7836SJohn.Forte@Sun.COM IMA_OID oid, 2391*7836SJohn.Forte@Sun.COM const IMA_STATIC_DISCOVERY_TARGET staticDiscoveryTarget, 2392*7836SJohn.Forte@Sun.COM IMA_OID *pStaticDiscoveryTargetOid 2393*7836SJohn.Forte@Sun.COM ); 2394*7836SJohn.Forte@Sun.COM 2395*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetAddressKeys( 2396*7836SJohn.Forte@Sun.COM IMA_OID targetOid, 2397*7836SJohn.Forte@Sun.COM IMA_ADDRESS_KEYS **ppKeys 2398*7836SJohn.Forte@Sun.COM ); 2399*7836SJohn.Forte@Sun.COM 2400*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetSessionOidList ( 2401*7836SJohn.Forte@Sun.COM IMA_OID oid, 2402*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 2403*7836SJohn.Forte@Sun.COM ); 2404*7836SJohn.Forte@Sun.COM 2405*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetConnectionOidList ( 2406*7836SJohn.Forte@Sun.COM IMA_OID oid, 2407*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 2408*7836SJohn.Forte@Sun.COM ); 2409*7836SJohn.Forte@Sun.COM 2410*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDiscoveryAddressOidList ( 2411*7836SJohn.Forte@Sun.COM IMA_OID oid, 2412*7836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 2413*7836SJohn.Forte@Sun.COM ); 2414*7836SJohn.Forte@Sun.COM 2415*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDiscoveryAddressProperties ( 2416*7836SJohn.Forte@Sun.COM IMA_OID discoveryAddressOid, 2417*7836SJohn.Forte@Sun.COM IMA_DISCOVERY_ADDRESS_PROPERTIES *pProps 2418*7836SJohn.Forte@Sun.COM ); 2419*7836SJohn.Forte@Sun.COM 2420*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RemoveDiscoveryAddress ( 2421*7836SJohn.Forte@Sun.COM IMA_OID oid 2422*7836SJohn.Forte@Sun.COM ); 2423*7836SJohn.Forte@Sun.COM 2424*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS QIMA_SetUpdateInterval(IMA_OID pluginOid, time_t interval); 2425*7836SJohn.Forte@Sun.COM 2426*7836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_CommitHbaParameters (IMA_OID lhba, IMA_COMMIT_LEVEL commitLevel); 2427*7836SJohn.Forte@Sun.COM 2428*7836SJohn.Forte@Sun.COM #endif 2429*7836SJohn.Forte@Sun.COM 2430*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 2431*7836SJohn.Forte@Sun.COM }; 2432*7836SJohn.Forte@Sun.COM #endif 2433*7836SJohn.Forte@Sun.COM 2434*7836SJohn.Forte@Sun.COM 2435