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