mpapi-plugin.h revision fcf3ce441efd61da9bb2884968af01cb7c1452cc
/******************************************************************************
*
* Description
* mpapi-plugin.h - interfaces for the MP API Version 1.0 plugin library.
* A compliant plugin library should implement interfaces with name without Fn
* suffix from function definitions below.
*
* License:
* The contents of this file are subject to the SNIA Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
* TBD
*
* 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 iSCSI Management API and Multipath Management API
* plugin 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)
* Jeff Ding Adaptec, Inc. (jding@corp.adaptec.com)
* Hyon Kim Sun Microsystems(hyon.kim@sun.com)
*
* Contributor(s):
* Paul von Behren Sun Microsystems(paul.vonbehren@sun.com)
*
******************************************************************************
*
* Changes:
* 1/15/2005 Implemented SNIA MP API specification 1.0
*****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifndef MPPLUGIN_H
#define MPPLUGIN_H
/*
* MP API common library calls InitaizeFn as part of dynamically loading
* the plugins. For this version of implementation the common library
* passes the sequence number of the plugin oid through InitializeFn. The
* sequnece number will be used as the ownerId for the plugin generated OIDs.
*/
typedef MP_STATUS (* InitializeFn) (
);
/*
* MP API common library calls TerminateFn as part of dynamically unloading
* the plugins.
*/
typedef MP_STATUS (* TerminateFn) (void);
/**
******************************************************************************
*
* Function table for OID and properties discovery API
*
******************************************************************************
*/
typedef MP_STATUS (* MP_GetPluginPropertiesPluginFn)(
);
typedef MP_STATUS (* MP_GetDeviceProductOidListPluginFn)(
);
typedef MP_STATUS (* MP_GetDeviceProductPropertiesFn)(
);
typedef MP_STATUS (* MP_GetInitiatorPortOidListPluginFn)(
);
typedef MP_STATUS (* MP_GetInitiatorPortPropertiesFn)(
);
typedef MP_STATUS (* MP_GetMultipathLusPluginFn)(
);
typedef MP_STATUS (* MP_GetMultipathLusDevProdFn)(
);
typedef MP_STATUS (* MP_GetMPLogicalUnitPropertiesFn)(
);
typedef MP_STATUS (* MP_GetAssociatedPathOidListFn)(
);
typedef MP_STATUS (* MP_GetPathLogicalUnitPropertiesFn)(
);
typedef MP_STATUS (* MP_GetAssociatedTPGOidListFn)(
);
typedef MP_STATUS (* MP_GetTargetPortGroupPropertiesFn)(
);
typedef MP_STATUS (* MP_GetMPLuOidListFromTPGFn)(
);
typedef MP_STATUS (* MP_GetProprietaryLoadBalanceOidListPluginFn)(
);
typedef MP_STATUS (* MP_GetProprietaryLoadBalancePropertiesFn)(
);
typedef MP_STATUS (* MP_GetTargetPortOidListFn)(
);
typedef MP_STATUS (* MP_GetTargetPortPropertiesFn)(
);
/**
******************************************************************************
*
* Function table for path management API
*
******************************************************************************
*/
typedef MP_STATUS (* MP_AssignLogicalUnitToTPGFn)(
);
typedef MP_STATUS (* MP_SetOverridePathFn)(
);
typedef MP_STATUS (* MP_CancelOverridePathFn)(
);
typedef MP_STATUS (* MP_EnableAutoFailbackPluginFn)(
);
typedef MP_STATUS (* MP_EnableAutoFailbackLuFn)(
);
typedef MP_STATUS (* MP_EnableAutoProbingPluginFn)(
);
typedef MP_STATUS (* MP_EnableAutoProbingLuFn)(
);
typedef MP_STATUS (* MP_DisableAutoFailbackPluginFn)(
);
typedef MP_STATUS (* MP_DisableAutoFailbackLuFn)(
);
typedef MP_STATUS (* MP_DisableAutoProbingPluginFn)(
);
typedef MP_STATUS (* MP_DisableAutoProbingLuFn)(
);
typedef MP_STATUS (* MP_EnablePathFn)(
);
typedef MP_STATUS (* MP_DisablePathFn)(
);
typedef MP_STATUS (* MP_SetLogicalUnitLoadBalanceTypeFn)(
);
typedef MP_STATUS (* MP_SetPathWeightFn)(
);
typedef MP_STATUS (* MP_SetPluginLoadBalanceTypePluginFn)(
);
typedef MP_STATUS (* MP_SetFailbackPollingRatePluginFn)(
);
typedef MP_STATUS (* MP_SetFailbackPollingRateLuFn)(
);
typedef MP_STATUS (* MP_SetProbingPollingRatePluginFn)(
);
typedef MP_STATUS (* MP_SetProbingPollingRateLuFn)(
);
typedef MP_STATUS (* MP_SetProprietaryPropertiesFn)(
);
typedef MP_STATUS (* MP_SetTPGAccessFn)(
);
/**
******************************************************************************
*
* Function table for event support API
*
******************************************************************************
*/
typedef MP_STATUS (* MP_RegisterForObjectPropertyChangesPluginFn)(
void *pCallerData
);
typedef MP_STATUS (* MP_DeregisterForObjectPropertyChangesPluginFn)(
);
typedef MP_STATUS (* MP_RegisterForObjectVisibilityChangesPluginFn)(
void *pCallerData
);
typedef MP_STATUS (* MP_DeregisterForObjectVisibilityChangesPluginFn)(
);
typedef MP_STATUS (* Sun_MP_SendScsiCmdFn)(
);
#endif
#ifdef __cplusplus
};
#endif