xref: /onnv-gate/usr/src/lib/libima/common/ima.h (revision 7836)
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