diff options
Diffstat (limited to 'usr/src/lib/libima/common/ima-plugin.h')
-rw-r--r-- | usr/src/lib/libima/common/ima-plugin.h | 634 |
1 files changed, 634 insertions, 0 deletions
diff --git a/usr/src/lib/libima/common/ima-plugin.h b/usr/src/lib/libima/common/ima-plugin.h new file mode 100644 index 0000000000..c6a052dc3b --- /dev/null +++ b/usr/src/lib/libima/common/ima-plugin.h @@ -0,0 +1,634 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * + * Description + * imaPlugin.h: interface for the iScsiPlugin class. + * + * License: + * The contents of this file are subject to the SNIA Public License + * Version 1.0 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * + * /http://www.snia.org/English/Resources/Code/OpenSource.html + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is SNIA HBA API and IMA general header file + * + * The Initial Developer of the Original Code is: + * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com) + * David Dillard VERITAS Software david.dillard@veritas.com + * + * Contributor(s): + * Jeff Ding, Adaptec, Inc. (jding@corp.adaptec.com) + * + ******************************************************************************* + * + * Changes: + * 09/24/2003 Initial Draft + * (for other changes... see the CVS logs) + * 12/15/2003 corrected the defined parameter in IMA_SetPhbaIsnsDiscovery(). + * lower case the computer name as iscsi name in IMA_GenerateNodeName(). + ******************************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef IMAPLUGIN_H +#define IMAPLUGIN_H + +typedef IMA_STATUS (* Initialize)( + IMA_UINT32 pluginOid + ); + +typedef void (* TerminateFn)(); + + +typedef IMA_STATUS (* IMA_GetPluginPropertiesFn)( + IMA_OID pluginOid, + IMA_PLUGIN_PROPERTIES *pProps +); + + +typedef IMA_STATUS (* IMA_GetSharedNodeOidFn)( + IMA_OID *pSharedNodeId +); + + +typedef IMA_STATUS (* IMA_GetNodePropertiesFn)( + IMA_OID nodeOid, + IMA_NODE_PROPERTIES *pProps +); + + +typedef IMA_STATUS (* IMA_SetNodeNameFn)( + IMA_OID nodeOid, + const IMA_NODE_NAME newName +); + + +typedef IMA_STATUS (* IMA_GenerateNodeNameFn)( + IMA_NODE_NAME generatedname +); + + +typedef IMA_STATUS (* IMA_SetNodeAliasFn)( + IMA_OID nodeOid, + const IMA_NODE_ALIAS newAlias +); + + +typedef IMA_STATUS (* IMA_GetLhbaOidListFn)( + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_GetLhbaPropertiesFn)( + IMA_OID lhbaId, + IMA_LHBA_PROPERTIES *pProps +); + + +typedef IMA_STATUS (* IMA_GetPhbaOidListFn)( + IMA_OID_LIST **ppList +); + + +typedef IMA_STATUS (* IMA_GetPhbaPropertiesFn)( + IMA_OID phbaId, + IMA_PHBA_PROPERTIES *pProps +); + + +typedef IMA_STATUS (* IMA_GetNonSharedNodeOidListFn)( + IMA_OID_LIST **ppList + ); + + +typedef IMA_STATUS (* IMA_GetFirstBurstLengthPropertiesFn)( + IMA_OID Oid, + IMA_MIN_MAX_VALUE *pProps + ); + + +typedef IMA_STATUS (* IMA_GetMaxBurstLengthPropertiesFn)( + IMA_OID Oid, + IMA_MIN_MAX_VALUE *pProps + ); + + +typedef IMA_STATUS (* IMA_GetMaxRecvDataSegmentLengthPropertiesFn)( + IMA_OID Oid, + IMA_MIN_MAX_VALUE *pProps + ); + + +/*---------------------------------------------*/ +typedef IMA_STATUS (* IMA_PluginIOCtlFn)( + IMA_OID pluginOid, + IMA_UINT command, + const void *pInputBuffer, + IMA_UINT inputBufferLength, + void *pOutputBuffer, + IMA_UINT *pOutputBufferLength +); + + +typedef IMA_STATUS (* IMA_GetNetworkPortalOidListFn)( + IMA_OID lhbaId, + IMA_OID_LIST **ppList +); + + +typedef IMA_STATUS (* IMA_SetFirstBurstLengthFn)( + IMA_OID lhbaId, + IMA_UINT firstBurstLength +); + +typedef IMA_STATUS (* IMA_SetMaxBurstLengthFn)( + IMA_OID lhbaId, + IMA_UINT maxBurstLength +); + +typedef IMA_STATUS (* IMA_SetMaxRecvDataSegmentLengthFn)( + IMA_OID lhbaId, + IMA_UINT maxRecvDataSegmentLength +); + +typedef IMA_STATUS (* IMA_GetMaxConnectionsPropertiesFn)( + IMA_OID Oid, + IMA_MIN_MAX_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetMaxConnectionsFn)( + IMA_OID lhbaId, + IMA_UINT maxConnections +); + +typedef IMA_STATUS (* IMA_GetDefaultTime2RetainPropertiesFn)( + IMA_OID lhbaId, + IMA_MIN_MAX_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetDefaultTime2RetainFn)( + IMA_OID lhbaId, + IMA_UINT defaultTime2Retain +); + +typedef IMA_STATUS (* IMA_GetDefaultTime2WaitPropertiesFn)( + IMA_OID lhbaId, + IMA_MIN_MAX_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetDefaultTime2WaitFn)( + IMA_OID lhbaId, + IMA_UINT defaultTime2Wait +); + +typedef IMA_STATUS (* IMA_GetMaxOutstandingR2TPropertiesFn)( + IMA_OID Oid, + IMA_MIN_MAX_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetMaxOutstandingR2TFn)( + IMA_OID lhbaId, + IMA_UINT maxOutstandingR2T +); + +typedef IMA_STATUS (* IMA_GetErrorRecoveryLevelPropertiesFn)( + IMA_OID Oid, + IMA_MIN_MAX_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetErrorRecoveryLevelFn)( + IMA_OID Oid, + IMA_UINT errorRecoveryLevel +); + +typedef IMA_STATUS (* IMA_GetInitialR2TPropertiesFn)( + IMA_OID Oid, + IMA_BOOL_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetInitialR2TFn)( + IMA_OID Oid, + IMA_BOOL initialR2T +); + +typedef IMA_STATUS (* IMA_GetImmediateDataPropertiesFn)( + IMA_OID Oid, + IMA_BOOL_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetImmediateDataFn)( + IMA_OID Oid, + IMA_BOOL immediateData +); + +typedef IMA_STATUS (* IMA_GetDataPduInOrderPropertiesFn)( + IMA_OID Oid, + IMA_BOOL_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetDataPduInOrderFn)( + IMA_OID Oid, + IMA_BOOL dataPduInOrder +); + +typedef IMA_STATUS (* IMA_GetDataSequenceInOrderPropertiesFn)( + IMA_OID Oid, + IMA_BOOL_VALUE *pProps +); + +typedef IMA_STATUS (* IMA_SetDataSequenceInOrderFn)( + IMA_OID Oid, + IMA_BOOL dataSequenceInOrder +); + +typedef IMA_STATUS (* IMA_SetStatisticsCollectionFn)( + IMA_OID Oid, + IMA_BOOL enableStatisticsCollection +); + +typedef IMA_STATUS (* IMA_GetNetworkPortStatusFn)( + IMA_OID portOid, + IMA_NETWORK_PORT_STATUS *pStatus +); + +typedef IMA_STATUS (* IMA_GetTargetOidListFn)( + IMA_OID Oid, + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_RemoveStaleDataFn)( + IMA_OID lhbaId +); + +typedef IMA_STATUS (* IMA_SetIsnsDiscoveryFn)( + IMA_OID phbaId, + IMA_BOOL enableIsnsDiscovery, + IMA_ISNS_DISCOVERY_METHOD discoveryMethod, + const IMA_HOST_ID *iSnsHost +); + +typedef IMA_STATUS (* IMA_SetSlpDiscoveryFn)( + IMA_OID phbaId, + IMA_BOOL enableSlpDiscovery +); + +typedef IMA_STATUS (* IMA_SetStaticDiscoveryFn)( + IMA_OID phbaId, + IMA_BOOL enableStaticDiscovery +); + +typedef IMA_STATUS (* IMA_SetSendTargetsDiscoveryFn)( + IMA_OID phbaId, + IMA_BOOL enableSendTargetsDiscovery +); + +typedef IMA_STATUS (* IMA_AddPhbaStaticDiscoveryTargetFn)( + IMA_OID phbaOid, + const IMA_TARGET_ADDRESS targetAddress, + IMA_OID_LIST **pTargetOidList +); + +typedef IMA_STATUS (* IMA_RemovePhbaStaticDiscoveryTargetFn)( + IMA_OID phbaOid, + IMA_OID targetOid +); + +typedef IMA_STATUS (* IMA_GetPnpOidListFn)( + IMA_OID Oid, + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_GetPhbaDownloadPropertiesFn)( + IMA_OID phbaId, + IMA_PHBA_DOWNLOAD_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_IsPhbaDownloadFileFn)( + IMA_OID phbaId, + const IMA_WCHAR *pFileName, + IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_PhbaDownloadFn)( + IMA_OID phbaId, + IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType, + const IMA_WCHAR *pFileName +); + +typedef IMA_STATUS (* IMA_GetNetworkPortalPropertiesFn)( + IMA_OID networkPortalId, + IMA_NETWORK_PORTAL_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_SetNetworkPortalIpAddressFn)( + IMA_OID networkPortalId, + const IMA_IP_ADDRESS NewIpAddress +); + +typedef IMA_STATUS (* IMA_GetLnpOidListFn)( + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_GetLnpPropertiesFn)( + IMA_OID lnpId, + IMA_LNP_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetPnpPropertiesFn)( + IMA_OID pnpId, + IMA_PNP_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetPnpStatisticsFn)( + IMA_OID pnpId, + IMA_PNP_STATISTICS *pStats +); + +typedef IMA_STATUS (* IMA_GetConnectionPropertiesFn)( + IMA_OID connectionId, + IMA_CONNECTION_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetTargetPropertiesFn)( + IMA_OID targetId, + IMA_TARGET_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetSessionPropertiesFn)( + IMA_OID sessionId, + IMA_SESSION_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetTargetErrorStatisticsFn)( + IMA_OID targetId, + IMA_TARGET_ERROR_STATISTICS *pStats +); + +typedef IMA_STATUS (* IMA_GetLuOidListFn)( + IMA_OID Oid, + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_GetLuOidFn)( + IMA_OID targetId, + IMA_UINT64 lun, + IMA_OID *pluId +); + +typedef IMA_STATUS (* IMA_GetLuPropertiesFn)( + IMA_OID luId, + IMA_LU_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetStatisticsPropertiesFn)( + IMA_OID oid, + IMA_STATISTICS_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetDeviceStatisticsFn)( + IMA_OID luId, + IMA_DEVICE_STATISTICS *pStats +); + +typedef IMA_STATUS (* IMA_LuInquiryFn)( + IMA_OID deviceId, + IMA_BOOL evpd, + IMA_BOOL cmddt, + IMA_BYTE pageCode, + + IMA_BYTE *pOutputBuffer, + IMA_UINT *pOutputBufferLength, + + IMA_BYTE *pSenseBuffer, + IMA_UINT *pSenseBufferLength +); + +typedef IMA_STATUS (* IMA_LuReadCapacityFn)( + IMA_OID deviceId, + IMA_UINT cdbLength, + IMA_BYTE *pOutputBuffer, + IMA_UINT *pOutputBufferLength, + + IMA_BYTE *pSenseBuffer, + IMA_UINT *pSenseBufferLength +); + +typedef IMA_STATUS (* IMA_LuReportLunsFn)( + IMA_OID deviceId, + IMA_BOOL sendToWellKnownLun, + IMA_BYTE selectReport, + + IMA_BYTE *pOutputBuffer, + IMA_UINT *pOutputBufferLength, + + IMA_BYTE *pSenseBuffer, + IMA_UINT *pSenseBufferLength +); + +typedef IMA_STATUS (* IMA_ExposeLuFn)( + IMA_OID luId +); + +typedef IMA_STATUS (* IMA_UnexposeLuFn)( + IMA_OID luId +); + +typedef IMA_STATUS (* IMA_GetPhbaStatusFn)( + IMA_OID hbaId, + IMA_PHBA_STATUS *pStatus +); + +typedef IMA_STATUS (* IMA_RegisterForObjectVisibilityChangesFn) ( + IMA_OBJECT_VISIBILITY_FN pClientFn +); + +typedef IMA_STATUS (* IMA_DeregisterForObjectVisibilityChangesFn) ( + IMA_OBJECT_VISIBILITY_FN pClientFn +); + +typedef IMA_STATUS (* IMA_RegisterForObjectPropertyChangesFn) ( + IMA_OBJECT_PROPERTY_FN pClientFn +); + +typedef IMA_STATUS (* IMA_DeregisterForObjectPropertyChangesFn) ( + IMA_OBJECT_PROPERTY_FN pClientFn +); + + +typedef IMA_STATUS (* IMA_GetAddressKeyPropertiesFn)( + IMA_OID targetOid, + IMA_ADDRESS_KEY_PROPERTIES **ppProps +); + +typedef IMA_STATUS (* IMA_GetIpPropertiesFn)( + IMA_OID oid, + IMA_IP_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_SetIpConfigMethodFn)( + IMA_OID oid, + IMA_BOOL enableDhcpIpConfiguration +); + +typedef IMA_STATUS (* IMA_SetSubnetMaskFn)( + IMA_OID oid, + IMA_IP_ADDRESS subnetMask +); + +typedef IMA_STATUS (* IMA_SetDnsServerAddressFn)( + IMA_OID oid, + const IMA_IP_ADDRESS *primaryDnsServerAddress, + const IMA_IP_ADDRESS *alternateDnsServerAddress +); + +typedef IMA_STATUS (* IMA_SetDefaultGatewayFn)( + IMA_OID oid, + IMA_IP_ADDRESS defaultGateway +); + +typedef IMA_STATUS (* IMA_GetSupportedAuthMethodsFn)( + IMA_OID lhbaOid, + IMA_BOOL getSettableMethods, + IMA_UINT *pMethodCount, + IMA_AUTHMETHOD *pMethodList +); + +typedef IMA_STATUS (* IMA_GetInUseInitiatorAuthMethodsFn)( + IMA_OID lhbaOid, + IMA_UINT *pMethodCount, + IMA_AUTHMETHOD *pMethodList +); + +typedef IMA_STATUS (* IMA_GetInitiatorAuthParmsFn)( + IMA_OID lhbaOid, + IMA_AUTHMETHOD method, + IMA_INITIATOR_AUTHPARMS *pParms +); + +typedef IMA_STATUS (* IMA_SetInitiatorAuthMethodsFn)( + IMA_OID lhbaOid, + IMA_UINT methodCount, + const IMA_AUTHMETHOD *pMethodList +); + +typedef IMA_STATUS (* IMA_SetInitiatorAuthParmsFn)( + IMA_OID lhbaOid, + IMA_AUTHMETHOD method, + const IMA_INITIATOR_AUTHPARMS *pParms +); + +typedef IMA_STATUS (* IMA_FreeMemoryFn)( + void *pMemory +); + +typedef IMA_STATUS (* IMA_GetStaticDiscoveryTargetOidListFn)( + IMA_OID oid, + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_GetDiscoveryPropertiesFn)( + IMA_OID oid, + IMA_DISCOVERY_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_AddDiscoveryAddressFn)( + IMA_OID oid, + const IMA_TARGET_ADDRESS discoveryAddress, + IMA_OID *pDiscoveryAddressOid +); + +typedef IMA_STATUS (* IMA_AddStaticDiscoveryTargetFn)( + IMA_OID oid, + const IMA_STATIC_DISCOVERY_TARGET staticDiscoveryTarget, + IMA_OID *pStaticDiscoveryTargetOid +); + +typedef IMA_STATUS (* IMA_RemoveStaticDiscoveryTargetFn)( + IMA_OID oid +); + +typedef IMA_STATUS (* IMA_GetStaticDiscoveryTargetPropertiesFn)( + IMA_OID staticDiscoveryTargetOid, + IMA_STATIC_DISCOVERY_TARGET_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetDiscoveryAddressOidListFn) ( + IMA_OID Oid, + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_GetSessionOidListFn) ( + IMA_OID Oid, + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_GetConnectionOidListFn) ( + IMA_OID Oid, + IMA_OID_LIST **ppList +); + +typedef IMA_STATUS (* IMA_GetDiscoveryAddressPropertiesFn) ( + IMA_OID discoveryAddressOid, + IMA_DISCOVERY_ADDRESS_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_RemoveDiscoveryAddressFn) ( + IMA_OID discoveryAddressOid +); + +typedef IMA_STATUS (* IMA_GetIpsecPropertiesFn) ( + IMA_OID oid, + IMA_IPSEC_PROPERTIES *pProps +); + +typedef IMA_STATUS (* IMA_GetAddressKeysFn) ( + IMA_OID targetOid, + IMA_ADDRESS_KEYS **ppKeys +); + +typedef IMA_STATUS (* QIMA_SetUpdateIntervalFn)( + IMA_OID pluginOid, + time_t interval +); + +typedef IMA_STATUS (* IMA_CommitHbaParametersFn)( + IMA_OID oid, IMA_COMMIT_LEVEL commitLevel +); + +#endif + +#ifdef __cplusplus +} +#endif + |