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