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  * imaPlugin.h: interface for the iScsiPlugin class.
30fcf3ce44SJohn Forte  *
31fcf3ce44SJohn Forte  * License:
32fcf3ce44SJohn Forte  *	The contents of this file are subject to the SNIA Public License
33fcf3ce44SJohn Forte  *	Version 1.0 (the "License"); you may not use this file except in
34fcf3ce44SJohn Forte  *	compliance with the License. You may obtain a copy of the License at
35fcf3ce44SJohn Forte  *
36fcf3ce44SJohn Forte  *	/http://www.snia.org/English/Resources/Code/OpenSource.html
37fcf3ce44SJohn Forte  *
38fcf3ce44SJohn Forte  *	Software distributed under the License is distributed on an "AS IS"
39fcf3ce44SJohn Forte  *	basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
40fcf3ce44SJohn Forte  *	the License for the specific language governing rights and limitations
41fcf3ce44SJohn Forte  *	under the License.
42fcf3ce44SJohn Forte  *
43fcf3ce44SJohn Forte  * The Original Code is  SNIA HBA API and IMA general header file
44fcf3ce44SJohn Forte  *
45fcf3ce44SJohn Forte  * The Initial Developer of the Original Code is:
46fcf3ce44SJohn Forte  *		Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com)
47fcf3ce44SJohn Forte  *		David Dillard		VERITAS Software		david.dillard@veritas.com
48fcf3ce44SJohn Forte  *
49fcf3ce44SJohn Forte  * Contributor(s):
50fcf3ce44SJohn Forte  *	Jeff Ding, Adaptec, Inc. (jding@corp.adaptec.com)
51fcf3ce44SJohn Forte  *
52fcf3ce44SJohn Forte  *******************************************************************************
53fcf3ce44SJohn Forte  *
54fcf3ce44SJohn Forte  *   Changes:
55fcf3ce44SJohn Forte  *	09/24/2003 Initial Draft
56fcf3ce44SJohn Forte  *	(for other changes... see the CVS logs)
57fcf3ce44SJohn Forte  *  12/15/2003 corrected the defined parameter in IMA_SetPhbaIsnsDiscovery().
58fcf3ce44SJohn Forte  *  lower case the computer name as iscsi name in IMA_GenerateNodeName().
59fcf3ce44SJohn Forte  ******************************************************************************/
60fcf3ce44SJohn Forte 
61fcf3ce44SJohn Forte #ifdef __cplusplus
62fcf3ce44SJohn Forte extern "C" {
63fcf3ce44SJohn Forte #endif
64fcf3ce44SJohn Forte 
65fcf3ce44SJohn Forte #ifndef IMAPLUGIN_H
66fcf3ce44SJohn Forte #define IMAPLUGIN_H
67fcf3ce44SJohn Forte 
68fcf3ce44SJohn Forte typedef IMA_STATUS (* Initialize)(
69fcf3ce44SJohn Forte 		IMA_UINT32 pluginOid
70fcf3ce44SJohn Forte 	);
71fcf3ce44SJohn Forte 
72fcf3ce44SJohn Forte typedef void (* TerminateFn)();
73fcf3ce44SJohn Forte 
74fcf3ce44SJohn Forte 
75fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetPluginPropertiesFn)(
76fcf3ce44SJohn Forte 	IMA_OID pluginOid,
77fcf3ce44SJohn Forte 	IMA_PLUGIN_PROPERTIES *pProps
78fcf3ce44SJohn Forte );
79fcf3ce44SJohn Forte 
80fcf3ce44SJohn Forte 
81fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetSharedNodeOidFn)(
82fcf3ce44SJohn Forte 	IMA_OID *pSharedNodeId
83fcf3ce44SJohn Forte );
84fcf3ce44SJohn Forte 
85fcf3ce44SJohn Forte 
86fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetNodePropertiesFn)(
87fcf3ce44SJohn Forte 	IMA_OID nodeOid,
88fcf3ce44SJohn Forte 	IMA_NODE_PROPERTIES *pProps
89fcf3ce44SJohn Forte );
90fcf3ce44SJohn Forte 
91fcf3ce44SJohn Forte 
92fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetNodeNameFn)(
93fcf3ce44SJohn Forte 	IMA_OID nodeOid,
94fcf3ce44SJohn Forte 	const IMA_NODE_NAME newName
95fcf3ce44SJohn Forte );
96fcf3ce44SJohn Forte 
97fcf3ce44SJohn Forte 
98fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GenerateNodeNameFn)(
99fcf3ce44SJohn Forte 	IMA_NODE_NAME generatedname
100fcf3ce44SJohn Forte );
101fcf3ce44SJohn Forte 
102fcf3ce44SJohn Forte 
103fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetNodeAliasFn)(
104fcf3ce44SJohn Forte 	IMA_OID nodeOid,
105fcf3ce44SJohn Forte 	const IMA_NODE_ALIAS newAlias
106fcf3ce44SJohn Forte );
107fcf3ce44SJohn Forte 
108fcf3ce44SJohn Forte 
109fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetLhbaOidListFn)(
110fcf3ce44SJohn Forte 	IMA_OID_LIST **ppList
111fcf3ce44SJohn Forte );
112fcf3ce44SJohn Forte 
113fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetLhbaPropertiesFn)(
114fcf3ce44SJohn Forte 	IMA_OID lhbaId,
115fcf3ce44SJohn Forte 	IMA_LHBA_PROPERTIES *pProps
116fcf3ce44SJohn Forte );
117fcf3ce44SJohn Forte 
118fcf3ce44SJohn Forte 
119fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetPhbaOidListFn)(
120fcf3ce44SJohn Forte 	IMA_OID_LIST **ppList
121fcf3ce44SJohn Forte );
122fcf3ce44SJohn Forte 
123fcf3ce44SJohn Forte 
124fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetPhbaPropertiesFn)(
125fcf3ce44SJohn Forte 	IMA_OID phbaId,
126fcf3ce44SJohn Forte 	IMA_PHBA_PROPERTIES *pProps
127fcf3ce44SJohn Forte );
128fcf3ce44SJohn Forte 
129fcf3ce44SJohn Forte 
130fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetNonSharedNodeOidListFn)(
131fcf3ce44SJohn Forte 		IMA_OID_LIST **ppList
132fcf3ce44SJohn Forte 	);
133fcf3ce44SJohn Forte 
134fcf3ce44SJohn Forte 
135fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetFirstBurstLengthPropertiesFn)(
136fcf3ce44SJohn Forte 		IMA_OID Oid,
137fcf3ce44SJohn Forte 		IMA_MIN_MAX_VALUE *pProps
138fcf3ce44SJohn Forte 	);
139fcf3ce44SJohn Forte 
140fcf3ce44SJohn Forte 
141fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetMaxBurstLengthPropertiesFn)(
142fcf3ce44SJohn Forte 		IMA_OID Oid,
143fcf3ce44SJohn Forte 		IMA_MIN_MAX_VALUE *pProps
144fcf3ce44SJohn Forte 	);
145fcf3ce44SJohn Forte 
146fcf3ce44SJohn Forte 
147fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetMaxRecvDataSegmentLengthPropertiesFn)(
148fcf3ce44SJohn Forte 		IMA_OID Oid,
149fcf3ce44SJohn Forte 		IMA_MIN_MAX_VALUE *pProps
150fcf3ce44SJohn Forte 	);
151fcf3ce44SJohn Forte 
152fcf3ce44SJohn Forte 
153fcf3ce44SJohn Forte /*---------------------------------------------*/
154fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_PluginIOCtlFn)(
155fcf3ce44SJohn Forte 		IMA_OID pluginOid,
156fcf3ce44SJohn Forte 		IMA_UINT command,
157fcf3ce44SJohn Forte 		const void *pInputBuffer,
158fcf3ce44SJohn Forte 		IMA_UINT inputBufferLength,
159fcf3ce44SJohn Forte 		void *pOutputBuffer,
160fcf3ce44SJohn Forte 		IMA_UINT *pOutputBufferLength
161fcf3ce44SJohn Forte );
162fcf3ce44SJohn Forte 
163fcf3ce44SJohn Forte 
164fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetNetworkPortalOidListFn)(
165fcf3ce44SJohn Forte 		IMA_OID lhbaId,
166fcf3ce44SJohn Forte 		IMA_OID_LIST **ppList
167fcf3ce44SJohn Forte );
168fcf3ce44SJohn Forte 
169fcf3ce44SJohn Forte 
170fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetFirstBurstLengthFn)(
171fcf3ce44SJohn Forte 		IMA_OID lhbaId,
172fcf3ce44SJohn Forte 		IMA_UINT firstBurstLength
173fcf3ce44SJohn Forte );
174fcf3ce44SJohn Forte 
175fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetMaxBurstLengthFn)(
176fcf3ce44SJohn Forte 		IMA_OID lhbaId,
177fcf3ce44SJohn Forte 		IMA_UINT maxBurstLength
178fcf3ce44SJohn Forte );
179fcf3ce44SJohn Forte 
180fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetMaxRecvDataSegmentLengthFn)(
181fcf3ce44SJohn Forte 		IMA_OID lhbaId,
182fcf3ce44SJohn Forte 		IMA_UINT maxRecvDataSegmentLength
183fcf3ce44SJohn Forte );
184fcf3ce44SJohn Forte 
185fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetMaxConnectionsPropertiesFn)(
186fcf3ce44SJohn Forte 		IMA_OID Oid,
187fcf3ce44SJohn Forte 		IMA_MIN_MAX_VALUE *pProps
188fcf3ce44SJohn Forte );
189fcf3ce44SJohn Forte 
190fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetMaxConnectionsFn)(
191fcf3ce44SJohn Forte 		IMA_OID lhbaId,
192fcf3ce44SJohn Forte 		IMA_UINT maxConnections
193fcf3ce44SJohn Forte );
194fcf3ce44SJohn Forte 
195fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetDefaultTime2RetainPropertiesFn)(
196fcf3ce44SJohn Forte 		IMA_OID lhbaId,
197fcf3ce44SJohn Forte 		IMA_MIN_MAX_VALUE *pProps
198fcf3ce44SJohn Forte );
199fcf3ce44SJohn Forte 
200fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetDefaultTime2RetainFn)(
201fcf3ce44SJohn Forte 		IMA_OID lhbaId,
202fcf3ce44SJohn Forte 		IMA_UINT defaultTime2Retain
203fcf3ce44SJohn Forte );
204fcf3ce44SJohn Forte 
205fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetDefaultTime2WaitPropertiesFn)(
206fcf3ce44SJohn Forte 		IMA_OID lhbaId,
207fcf3ce44SJohn Forte 		IMA_MIN_MAX_VALUE *pProps
208fcf3ce44SJohn Forte );
209fcf3ce44SJohn Forte 
210fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetDefaultTime2WaitFn)(
211fcf3ce44SJohn Forte 		IMA_OID lhbaId,
212fcf3ce44SJohn Forte 		IMA_UINT defaultTime2Wait
213fcf3ce44SJohn Forte );
214fcf3ce44SJohn Forte 
215fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetMaxOutstandingR2TPropertiesFn)(
216fcf3ce44SJohn Forte 		IMA_OID Oid,
217fcf3ce44SJohn Forte 		IMA_MIN_MAX_VALUE *pProps
218fcf3ce44SJohn Forte );
219fcf3ce44SJohn Forte 
220fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetMaxOutstandingR2TFn)(
221fcf3ce44SJohn Forte 		IMA_OID lhbaId,
222fcf3ce44SJohn Forte 		IMA_UINT maxOutstandingR2T
223fcf3ce44SJohn Forte );
224fcf3ce44SJohn Forte 
225fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetErrorRecoveryLevelPropertiesFn)(
226fcf3ce44SJohn Forte 		IMA_OID Oid,
227fcf3ce44SJohn Forte 		IMA_MIN_MAX_VALUE *pProps
228fcf3ce44SJohn Forte );
229fcf3ce44SJohn Forte 
230fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetErrorRecoveryLevelFn)(
231fcf3ce44SJohn Forte 		IMA_OID Oid,
232fcf3ce44SJohn Forte 		IMA_UINT errorRecoveryLevel
233fcf3ce44SJohn Forte );
234fcf3ce44SJohn Forte 
235fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetInitialR2TPropertiesFn)(
236fcf3ce44SJohn Forte 		IMA_OID Oid,
237fcf3ce44SJohn Forte 		IMA_BOOL_VALUE *pProps
238fcf3ce44SJohn Forte );
239fcf3ce44SJohn Forte 
240fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetInitialR2TFn)(
241fcf3ce44SJohn Forte 		IMA_OID Oid,
242fcf3ce44SJohn Forte 		IMA_BOOL initialR2T
243fcf3ce44SJohn Forte );
244fcf3ce44SJohn Forte 
245fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetImmediateDataPropertiesFn)(
246fcf3ce44SJohn Forte 		IMA_OID Oid,
247fcf3ce44SJohn Forte 		IMA_BOOL_VALUE *pProps
248fcf3ce44SJohn Forte );
249fcf3ce44SJohn Forte 
250fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetImmediateDataFn)(
251fcf3ce44SJohn Forte 		IMA_OID Oid,
252fcf3ce44SJohn Forte 		IMA_BOOL immediateData
253fcf3ce44SJohn Forte );
254fcf3ce44SJohn Forte 
255fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetDataPduInOrderPropertiesFn)(
256fcf3ce44SJohn Forte 		IMA_OID Oid,
257fcf3ce44SJohn Forte 		IMA_BOOL_VALUE *pProps
258fcf3ce44SJohn Forte );
259fcf3ce44SJohn Forte 
260fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetDataPduInOrderFn)(
261fcf3ce44SJohn Forte 		IMA_OID Oid,
262fcf3ce44SJohn Forte 		IMA_BOOL dataPduInOrder
263fcf3ce44SJohn Forte );
264fcf3ce44SJohn Forte 
265fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetDataSequenceInOrderPropertiesFn)(
266fcf3ce44SJohn Forte 		IMA_OID Oid,
267fcf3ce44SJohn Forte 		IMA_BOOL_VALUE *pProps
268fcf3ce44SJohn Forte );
269fcf3ce44SJohn Forte 
270fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetDataSequenceInOrderFn)(
271fcf3ce44SJohn Forte 		IMA_OID Oid,
272fcf3ce44SJohn Forte 		IMA_BOOL dataSequenceInOrder
273fcf3ce44SJohn Forte );
274fcf3ce44SJohn Forte 
275fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetStatisticsCollectionFn)(
276fcf3ce44SJohn Forte 		IMA_OID Oid,
277fcf3ce44SJohn Forte 		IMA_BOOL enableStatisticsCollection
278fcf3ce44SJohn Forte );
279fcf3ce44SJohn Forte 
280fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetNetworkPortStatusFn)(
281fcf3ce44SJohn Forte 		IMA_OID portOid,
282fcf3ce44SJohn Forte 		IMA_NETWORK_PORT_STATUS *pStatus
283fcf3ce44SJohn Forte );
284fcf3ce44SJohn Forte 
285fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetTargetOidListFn)(
286fcf3ce44SJohn Forte 		IMA_OID Oid,
287fcf3ce44SJohn Forte 		IMA_OID_LIST **ppList
288fcf3ce44SJohn Forte );
289fcf3ce44SJohn Forte 
290fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_RemoveStaleDataFn)(
291fcf3ce44SJohn Forte 		IMA_OID lhbaId
292fcf3ce44SJohn Forte );
293fcf3ce44SJohn Forte 
294fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetIsnsDiscoveryFn)(
295fcf3ce44SJohn Forte 		IMA_OID phbaId,
296fcf3ce44SJohn Forte 		IMA_BOOL enableIsnsDiscovery,
297fcf3ce44SJohn Forte 		IMA_ISNS_DISCOVERY_METHOD discoveryMethod,
298fcf3ce44SJohn Forte 		const IMA_HOST_ID *iSnsHost
299fcf3ce44SJohn Forte );
300fcf3ce44SJohn Forte 
301fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetSlpDiscoveryFn)(
302fcf3ce44SJohn Forte 		IMA_OID phbaId,
303fcf3ce44SJohn Forte 		IMA_BOOL enableSlpDiscovery
304fcf3ce44SJohn Forte );
305fcf3ce44SJohn Forte 
306fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetStaticDiscoveryFn)(
307fcf3ce44SJohn Forte 		IMA_OID phbaId,
308fcf3ce44SJohn Forte 		IMA_BOOL enableStaticDiscovery
309fcf3ce44SJohn Forte );
310fcf3ce44SJohn Forte 
311fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetSendTargetsDiscoveryFn)(
312fcf3ce44SJohn Forte 		IMA_OID phbaId,
313fcf3ce44SJohn Forte 		IMA_BOOL enableSendTargetsDiscovery
314fcf3ce44SJohn Forte );
315fcf3ce44SJohn Forte 
316fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_AddPhbaStaticDiscoveryTargetFn)(
317fcf3ce44SJohn Forte 		IMA_OID phbaOid,
318fcf3ce44SJohn Forte 		const IMA_TARGET_ADDRESS targetAddress,
319fcf3ce44SJohn Forte 		IMA_OID_LIST **pTargetOidList
320fcf3ce44SJohn Forte );
321fcf3ce44SJohn Forte 
322fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_RemovePhbaStaticDiscoveryTargetFn)(
323*55fea89dSDan Cross 		IMA_OID phbaOid,
324*55fea89dSDan Cross 		IMA_OID targetOid
325fcf3ce44SJohn Forte );
326fcf3ce44SJohn Forte 
327fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetPnpOidListFn)(
328fcf3ce44SJohn Forte 		IMA_OID Oid,
329fcf3ce44SJohn Forte 		IMA_OID_LIST **ppList
330fcf3ce44SJohn Forte );
331fcf3ce44SJohn Forte 
332fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetPhbaDownloadPropertiesFn)(
333fcf3ce44SJohn Forte 		IMA_OID phbaId,
334fcf3ce44SJohn Forte 		IMA_PHBA_DOWNLOAD_PROPERTIES *pProps
335fcf3ce44SJohn Forte );
336fcf3ce44SJohn Forte 
337fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_IsPhbaDownloadFileFn)(
338fcf3ce44SJohn Forte 		IMA_OID phbaId,
339fcf3ce44SJohn Forte 		const IMA_WCHAR *pFileName,
340fcf3ce44SJohn Forte 		IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES *pProps
341fcf3ce44SJohn Forte );
342fcf3ce44SJohn Forte 
343fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_PhbaDownloadFn)(
344fcf3ce44SJohn Forte 		IMA_OID phbaId,
345fcf3ce44SJohn Forte 		IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType,
346fcf3ce44SJohn Forte 		const IMA_WCHAR *pFileName
347fcf3ce44SJohn Forte );
348fcf3ce44SJohn Forte 
349fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetNetworkPortalPropertiesFn)(
350fcf3ce44SJohn Forte 		IMA_OID networkPortalId,
351fcf3ce44SJohn Forte 		IMA_NETWORK_PORTAL_PROPERTIES *pProps
352fcf3ce44SJohn Forte );
353fcf3ce44SJohn Forte 
354fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetNetworkPortalIpAddressFn)(
355fcf3ce44SJohn Forte 		IMA_OID networkPortalId,
356fcf3ce44SJohn Forte 		const IMA_IP_ADDRESS NewIpAddress
357fcf3ce44SJohn Forte );
358fcf3ce44SJohn Forte 
359fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetLnpOidListFn)(
360fcf3ce44SJohn Forte 		IMA_OID_LIST **ppList
361fcf3ce44SJohn Forte );
362fcf3ce44SJohn Forte 
363fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetLnpPropertiesFn)(
364fcf3ce44SJohn Forte 		IMA_OID lnpId,
365fcf3ce44SJohn Forte 		IMA_LNP_PROPERTIES *pProps
366fcf3ce44SJohn Forte );
367fcf3ce44SJohn Forte 
368fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetPnpPropertiesFn)(
369fcf3ce44SJohn Forte 		IMA_OID pnpId,
370fcf3ce44SJohn Forte 		IMA_PNP_PROPERTIES *pProps
371fcf3ce44SJohn Forte );
372fcf3ce44SJohn Forte 
373fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetPnpStatisticsFn)(
374fcf3ce44SJohn Forte 		IMA_OID pnpId,
375fcf3ce44SJohn Forte 		IMA_PNP_STATISTICS *pStats
376fcf3ce44SJohn Forte );
377fcf3ce44SJohn Forte 
378fcf3ce44SJohn Forte typedef	IMA_STATUS (* IMA_GetConnectionPropertiesFn)(
379fcf3ce44SJohn Forte 		IMA_OID connectionId,
380fcf3ce44SJohn Forte 		IMA_CONNECTION_PROPERTIES *pProps
381fcf3ce44SJohn Forte );
382fcf3ce44SJohn Forte 
383fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetTargetPropertiesFn)(
384fcf3ce44SJohn Forte 		IMA_OID targetId,
385fcf3ce44SJohn Forte 		IMA_TARGET_PROPERTIES *pProps
386fcf3ce44SJohn Forte );
387fcf3ce44SJohn Forte 
388fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetSessionPropertiesFn)(
389fcf3ce44SJohn Forte 		IMA_OID sessionId,
390fcf3ce44SJohn Forte 		IMA_SESSION_PROPERTIES *pProps
391fcf3ce44SJohn Forte );
392fcf3ce44SJohn Forte 
393fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetTargetErrorStatisticsFn)(
394fcf3ce44SJohn Forte 		IMA_OID targetId,
395fcf3ce44SJohn Forte 		IMA_TARGET_ERROR_STATISTICS *pStats
396fcf3ce44SJohn Forte );
397fcf3ce44SJohn Forte 
398fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetLuOidListFn)(
399fcf3ce44SJohn Forte 		IMA_OID Oid,
400fcf3ce44SJohn Forte 		IMA_OID_LIST **ppList
401fcf3ce44SJohn Forte );
402fcf3ce44SJohn Forte 
403fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetLuOidFn)(
404fcf3ce44SJohn Forte 		IMA_OID targetId,
405fcf3ce44SJohn Forte 		IMA_UINT64 lun,
406fcf3ce44SJohn Forte 		IMA_OID *pluId
407fcf3ce44SJohn Forte );
408fcf3ce44SJohn Forte 
409fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetLuPropertiesFn)(
410fcf3ce44SJohn Forte 		IMA_OID luId,
411fcf3ce44SJohn Forte 		IMA_LU_PROPERTIES *pProps
412fcf3ce44SJohn Forte );
413fcf3ce44SJohn Forte 
414fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetStatisticsPropertiesFn)(
415fcf3ce44SJohn Forte 		IMA_OID oid,
416fcf3ce44SJohn Forte 		IMA_STATISTICS_PROPERTIES *pProps
417fcf3ce44SJohn Forte );
418fcf3ce44SJohn Forte 
419fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetDeviceStatisticsFn)(
420fcf3ce44SJohn Forte 		IMA_OID luId,
421fcf3ce44SJohn Forte 		IMA_DEVICE_STATISTICS *pStats
422fcf3ce44SJohn Forte );
423fcf3ce44SJohn Forte 
424fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_LuInquiryFn)(
425fcf3ce44SJohn Forte 		IMA_OID deviceId,
426fcf3ce44SJohn Forte 		IMA_BOOL evpd,
427fcf3ce44SJohn Forte 		IMA_BOOL cmddt,
428fcf3ce44SJohn Forte 		IMA_BYTE pageCode,
429fcf3ce44SJohn Forte 
430fcf3ce44SJohn Forte 		IMA_BYTE *pOutputBuffer,
431fcf3ce44SJohn Forte 		IMA_UINT *pOutputBufferLength,
432fcf3ce44SJohn Forte 
433fcf3ce44SJohn Forte 		IMA_BYTE *pSenseBuffer,
434fcf3ce44SJohn Forte 		IMA_UINT *pSenseBufferLength
435fcf3ce44SJohn Forte );
436fcf3ce44SJohn Forte 
437fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_LuReadCapacityFn)(
438fcf3ce44SJohn Forte 		IMA_OID deviceId,
439fcf3ce44SJohn Forte 		IMA_UINT cdbLength,
440fcf3ce44SJohn Forte 		IMA_BYTE *pOutputBuffer,
441fcf3ce44SJohn Forte 		IMA_UINT *pOutputBufferLength,
442fcf3ce44SJohn Forte 
443fcf3ce44SJohn Forte 		IMA_BYTE *pSenseBuffer,
444fcf3ce44SJohn Forte 		IMA_UINT *pSenseBufferLength
445fcf3ce44SJohn Forte );
446fcf3ce44SJohn Forte 
447fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_LuReportLunsFn)(
448fcf3ce44SJohn Forte 		IMA_OID deviceId,
449fcf3ce44SJohn Forte 		IMA_BOOL sendToWellKnownLun,
450fcf3ce44SJohn Forte 		IMA_BYTE selectReport,
451fcf3ce44SJohn Forte 
452fcf3ce44SJohn Forte 		IMA_BYTE *pOutputBuffer,
453fcf3ce44SJohn Forte 		IMA_UINT *pOutputBufferLength,
454fcf3ce44SJohn Forte 
455fcf3ce44SJohn Forte 		IMA_BYTE *pSenseBuffer,
456fcf3ce44SJohn Forte 		IMA_UINT *pSenseBufferLength
457fcf3ce44SJohn Forte );
458fcf3ce44SJohn Forte 
459fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_ExposeLuFn)(
460fcf3ce44SJohn Forte 		IMA_OID luId
461fcf3ce44SJohn Forte );
462fcf3ce44SJohn Forte 
463fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_UnexposeLuFn)(
464fcf3ce44SJohn Forte 		IMA_OID luId
465fcf3ce44SJohn Forte );
466fcf3ce44SJohn Forte 
467fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetPhbaStatusFn)(
468fcf3ce44SJohn Forte 		IMA_OID hbaId,
469fcf3ce44SJohn Forte 		IMA_PHBA_STATUS *pStatus
470fcf3ce44SJohn Forte );
471fcf3ce44SJohn Forte 
472fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_RegisterForObjectVisibilityChangesFn) (
473fcf3ce44SJohn Forte 		IMA_OBJECT_VISIBILITY_FN pClientFn
474fcf3ce44SJohn Forte );
475fcf3ce44SJohn Forte 
476fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_DeregisterForObjectVisibilityChangesFn) (
477fcf3ce44SJohn Forte 		IMA_OBJECT_VISIBILITY_FN pClientFn
478fcf3ce44SJohn Forte );
479fcf3ce44SJohn Forte 
480fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_RegisterForObjectPropertyChangesFn) (
481fcf3ce44SJohn Forte 		IMA_OBJECT_PROPERTY_FN pClientFn
482fcf3ce44SJohn Forte );
483fcf3ce44SJohn Forte 
484fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_DeregisterForObjectPropertyChangesFn) (
485fcf3ce44SJohn Forte 		IMA_OBJECT_PROPERTY_FN pClientFn
486fcf3ce44SJohn Forte );
487fcf3ce44SJohn Forte 
488fcf3ce44SJohn Forte 
489fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetAddressKeyPropertiesFn)(
490fcf3ce44SJohn Forte 		IMA_OID targetOid,
491fcf3ce44SJohn Forte 		IMA_ADDRESS_KEY_PROPERTIES **ppProps
492fcf3ce44SJohn Forte );
493fcf3ce44SJohn Forte 
494fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetIpPropertiesFn)(
495fcf3ce44SJohn Forte 		IMA_OID oid,
496fcf3ce44SJohn Forte 		IMA_IP_PROPERTIES *pProps
497fcf3ce44SJohn Forte );
498fcf3ce44SJohn Forte 
499fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetIpConfigMethodFn)(
500fcf3ce44SJohn Forte 		IMA_OID oid,
501fcf3ce44SJohn Forte 		IMA_BOOL enableDhcpIpConfiguration
502fcf3ce44SJohn Forte );
503fcf3ce44SJohn Forte 
504fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetSubnetMaskFn)(
505fcf3ce44SJohn Forte 		IMA_OID oid,
506fcf3ce44SJohn Forte 		IMA_IP_ADDRESS subnetMask
507fcf3ce44SJohn Forte );
508fcf3ce44SJohn Forte 
509fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetDnsServerAddressFn)(
510fcf3ce44SJohn Forte 		IMA_OID oid,
511fcf3ce44SJohn Forte 		const IMA_IP_ADDRESS *primaryDnsServerAddress,
512fcf3ce44SJohn Forte 		const IMA_IP_ADDRESS *alternateDnsServerAddress
513fcf3ce44SJohn Forte );
514fcf3ce44SJohn Forte 
515fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetDefaultGatewayFn)(
516fcf3ce44SJohn Forte 		IMA_OID oid,
517fcf3ce44SJohn Forte 		IMA_IP_ADDRESS defaultGateway
518fcf3ce44SJohn Forte );
519fcf3ce44SJohn Forte 
520fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetSupportedAuthMethodsFn)(
521fcf3ce44SJohn Forte 		IMA_OID lhbaOid,
522fcf3ce44SJohn Forte 		IMA_BOOL getSettableMethods,
523fcf3ce44SJohn Forte 		IMA_UINT *pMethodCount,
524fcf3ce44SJohn Forte 		IMA_AUTHMETHOD *pMethodList
525fcf3ce44SJohn Forte );
526fcf3ce44SJohn Forte 
527fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetInUseInitiatorAuthMethodsFn)(
528fcf3ce44SJohn Forte 		IMA_OID	lhbaOid,
529fcf3ce44SJohn Forte 		IMA_UINT	*pMethodCount,
530fcf3ce44SJohn Forte 		IMA_AUTHMETHOD *pMethodList
531fcf3ce44SJohn Forte );
532fcf3ce44SJohn Forte 
533fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetInitiatorAuthParmsFn)(
534fcf3ce44SJohn Forte 		IMA_OID lhbaOid,
535fcf3ce44SJohn Forte 		IMA_AUTHMETHOD method,
536fcf3ce44SJohn Forte 		IMA_INITIATOR_AUTHPARMS *pParms
537fcf3ce44SJohn Forte );
538fcf3ce44SJohn Forte 
539fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetInitiatorAuthMethodsFn)(
540fcf3ce44SJohn Forte 		IMA_OID lhbaOid,
541fcf3ce44SJohn Forte 		IMA_UINT methodCount,
542fcf3ce44SJohn Forte 		const IMA_AUTHMETHOD *pMethodList
543fcf3ce44SJohn Forte );
544fcf3ce44SJohn Forte 
545fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_SetInitiatorAuthParmsFn)(
546fcf3ce44SJohn Forte 		IMA_OID lhbaOid,
547fcf3ce44SJohn Forte 		IMA_AUTHMETHOD method,
548fcf3ce44SJohn Forte 		const IMA_INITIATOR_AUTHPARMS *pParms
549fcf3ce44SJohn Forte );
550fcf3ce44SJohn Forte 
551fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_FreeMemoryFn)(
552fcf3ce44SJohn Forte 	void *pMemory
553fcf3ce44SJohn Forte );
554fcf3ce44SJohn Forte 
555fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetStaticDiscoveryTargetOidListFn)(
556fcf3ce44SJohn Forte                 IMA_OID oid,
557fcf3ce44SJohn Forte                 IMA_OID_LIST **ppList
558fcf3ce44SJohn Forte );
559fcf3ce44SJohn Forte 
560fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetDiscoveryPropertiesFn)(
561*55fea89dSDan Cross 				IMA_OID oid,
562fcf3ce44SJohn Forte 				IMA_DISCOVERY_PROPERTIES *pProps
563fcf3ce44SJohn Forte );
564fcf3ce44SJohn Forte 
565fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_AddDiscoveryAddressFn)(
566*55fea89dSDan Cross 				IMA_OID oid,
567*55fea89dSDan Cross 				const IMA_TARGET_ADDRESS discoveryAddress,
568*55fea89dSDan Cross 				IMA_OID *pDiscoveryAddressOid
569fcf3ce44SJohn Forte );
570fcf3ce44SJohn Forte 
571fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_AddStaticDiscoveryTargetFn)(
572fcf3ce44SJohn Forte 				IMA_OID oid,
573*55fea89dSDan Cross 				const IMA_STATIC_DISCOVERY_TARGET staticDiscoveryTarget,
574fcf3ce44SJohn Forte 				IMA_OID *pStaticDiscoveryTargetOid
575fcf3ce44SJohn Forte );
576fcf3ce44SJohn Forte 
577fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_RemoveStaticDiscoveryTargetFn)(
578fcf3ce44SJohn Forte 				IMA_OID oid
579fcf3ce44SJohn Forte );
580fcf3ce44SJohn Forte 
581fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetStaticDiscoveryTargetPropertiesFn)(
582fcf3ce44SJohn Forte 				IMA_OID staticDiscoveryTargetOid,
583fcf3ce44SJohn Forte 				IMA_STATIC_DISCOVERY_TARGET_PROPERTIES *pProps
584fcf3ce44SJohn Forte );
585fcf3ce44SJohn Forte 
586fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetDiscoveryAddressOidListFn) (
587fcf3ce44SJohn Forte 				IMA_OID Oid,
588fcf3ce44SJohn Forte 				IMA_OID_LIST **ppList
589fcf3ce44SJohn Forte );
590fcf3ce44SJohn Forte 
591fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetSessionOidListFn) (
592fcf3ce44SJohn Forte 				IMA_OID Oid,
593fcf3ce44SJohn Forte 				IMA_OID_LIST **ppList
594fcf3ce44SJohn Forte );
595fcf3ce44SJohn Forte 
596fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetConnectionOidListFn) (
597fcf3ce44SJohn Forte 				IMA_OID Oid,
598fcf3ce44SJohn Forte 				IMA_OID_LIST **ppList
599fcf3ce44SJohn Forte );
600fcf3ce44SJohn Forte 
601fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetDiscoveryAddressPropertiesFn) (
602fcf3ce44SJohn Forte 		 IMA_OID discoveryAddressOid,
603fcf3ce44SJohn Forte 		 IMA_DISCOVERY_ADDRESS_PROPERTIES *pProps
604fcf3ce44SJohn Forte );
605fcf3ce44SJohn Forte 
606fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_RemoveDiscoveryAddressFn) (
607fcf3ce44SJohn Forte 		IMA_OID	discoveryAddressOid
608fcf3ce44SJohn Forte );
609fcf3ce44SJohn Forte 
610fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetIpsecPropertiesFn) (
611fcf3ce44SJohn Forte 		IMA_OID oid,
612fcf3ce44SJohn Forte 		IMA_IPSEC_PROPERTIES *pProps
613fcf3ce44SJohn Forte );
614fcf3ce44SJohn Forte 
615fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_GetAddressKeysFn) (
616fcf3ce44SJohn Forte 		IMA_OID targetOid,
617fcf3ce44SJohn Forte 		IMA_ADDRESS_KEYS **ppKeys
618fcf3ce44SJohn Forte );
619fcf3ce44SJohn Forte 
620fcf3ce44SJohn Forte typedef IMA_STATUS (* QIMA_SetUpdateIntervalFn)(
621fcf3ce44SJohn Forte         IMA_OID pluginOid,
622fcf3ce44SJohn Forte         time_t interval
623fcf3ce44SJohn Forte );
624fcf3ce44SJohn Forte 
625fcf3ce44SJohn Forte typedef IMA_STATUS (* IMA_CommitHbaParametersFn)(
626fcf3ce44SJohn Forte 				IMA_OID oid, IMA_COMMIT_LEVEL commitLevel
627fcf3ce44SJohn Forte );
628fcf3ce44SJohn Forte 
629aff4bce5Syi zhang - Sun Microsystems - Beijing China typedef IMA_STATUS (* SUN_IMA_GetTunablePropertiesFn) (
630aff4bce5Syi zhang - Sun Microsystems - Beijing China 		IMA_OID oid,
631aff4bce5Syi zhang - Sun Microsystems - Beijing China        		ISCSI_TUNABLE_PARAM *param
632aff4bce5Syi zhang - Sun Microsystems - Beijing China );
633aff4bce5Syi zhang - Sun Microsystems - Beijing China 
634aff4bce5Syi zhang - Sun Microsystems - Beijing China typedef IMA_STATUS (* SUN_IMA_SetTunablePropertiesFn) (
635aff4bce5Syi zhang - Sun Microsystems - Beijing China 		IMA_OID oid,
636aff4bce5Syi zhang - Sun Microsystems - Beijing China        		ISCSI_TUNABLE_PARAM *param
637aff4bce5Syi zhang - Sun Microsystems - Beijing China );
638aff4bce5Syi zhang - Sun Microsystems - Beijing China 
639fcf3ce44SJohn Forte #endif
640fcf3ce44SJohn Forte 
641fcf3ce44SJohn Forte #ifdef __cplusplus
642fcf3ce44SJohn Forte }
643fcf3ce44SJohn Forte #endif
644fcf3ce44SJohn Forte 
645