Copyright (c) 2004-2006 Storage Networking Industry Association. All Rights Reserved.
Copyright (c) 2006, Sun Microsystems, Inc. All Rights Reserved.
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]
cc [ flag... ] file... -lMPAPI [ library... ] #include <mpapi.h> #include <mpapi-sun.h>
MP_AssignLogicalUnitToTPG
MP_CancelOverridePath
MP_CompareOIDs
MP_DeregisterForObjectPropertyChanges
MP_DeregisterForObjectVisibilityChanges
MP_DeregisterPlugin
MP_DisableAutoFailback
MP_DisableAutoProbing
MP_DisablePath
MP_EnableAutoFailback
MP_EnableAutoProbing
MP_EnablePath
MP_FreeOidList
MP_GetAssociatedPathOidList
MP_GetAssociatedPluginOid
MP_GetAssociatedTPGOidList
MP_GetDeviceProductOidList
MP_GetDeviceProductProperties
MP_GetInitiatorPortOidList
MP_GetInitiatorPortProperties
MP_GetLibraryProperties
MP_GetMPLogicalUnitProperties
MP_GetMPLuOidListFromTPG
MP_GetMultipathLus
MP_GetObjectType
MP_GetPathLogicalUnitProperties
MP_GetPluginOidList
MP_GetPluginProperties
MP_GetProprietaryLoadBalanceOidList
MP_GetProprietaryLoadBalanceProperties
MP_GetTargetPortGroupProperties
MP_GetTargetPortOidList
MP_GetTargetPortProperties
MP_RegisterForObjectPropertyChanges
MP_RegisterForObjectVisibilityChanges
MP_RegisterPlugin
MP_SetFailbackPollingRate
MP_SetLogicalUnitLoadBalanceType
MP_SetOverridePath
MP_SetPathWeight
MP_SetPluginLoadBalanceType
MP_SetProbingPollingRate
MP_SetProprietaryProperties
MP_SetTPGAccess
Sun_MP_SendScsiCmd
Using libMPAPI involves the following steps:
1. Optionally calling MP_GetLibraryProperties() to retrieve the properties of the Common Library.
2. Calling MP_GetPluginOidList() to retrieve the registered plugin libraries.
3. Optionally calling MP_GetPluginProperties() to retrieve the properties of the plugin library.
4. Retrieve discovery information and property information on multipath devices and associated resources by calling the following:
MP_GetAssociatedPathOidList()
MP_GetAssociatedTPGOidList()
MP_GetDeviceProductOidList()
MP_GetDeviceProductProperties()
MP_GetInitiatorPortOidList()
MP_GetInitiatorPortProperties()
MP_GetMPLuOidListFromTPG()
MP_GetMPLogicalUnitProperties()
MP_GetMultipathLus()
MP_GetPathLogicalUnitProperties()
MP_GetProprietaryLoadBalanceOidList()
MP_GetProprietaryLoadBalanceProperties()
MP_GetTargetPortGroupProperties()
MP_GetTargetPortOidList()
MP_GetTargetPortProperties()
5. Register and deregister for property and visibility changes on multipath devices and associated resources by calling:
MP_RegisterForObjectPropertyChanges()
MP_RegisterForObjectVisibilityChanges()
MP_DeregisterForObjectPropertyChanges()
MP_DeregisterForObjectVisibilityChanges()
6. Perform administrative operations on multipath devices and associated resources by calling:
MP_AssignLogicalUnitToTPG()
MP_CancelOverridePath()
MP_DisableAutoFailback()
MP_DisableAutoProbing()
MP_DisablePath()
MP_EnableAutoFailback()
MP_EnableAutoProbing()
MP_EnablePath()
MP_SetLogicalUnitLoadBalanceType()
MP_SetOverridePath()
MP_SetPathWeight()
MP_SetPluginLoadBalanceType()
MP_SetFailbackPollingRate()
MP_SetProbingPollingRate()
MP_SetProprietaryProperties()
MP_SetTPGAccess()
Sun_MP_SendScsiCmd()
This status value is returned when the requested operation is successfully carried out.
This status value is returned when parameters passed to an API are detected to be invalid or inappropriate for a particular API parameter. If the parameter is an object ID, this status indicates that the object type subfield is defined in this specification, but is not appropriate for this API.
This status value is returned when a client function passed into the API is not a previously registered or known function.
This status value is returned when the requested operation could not be carried out.
This status value is returned when the API could [not] allocate the memory required to complete the requested operation.
This status value is returned when an object ID includes a type subfield that is not defined in this specification.
This status value is returned when the object associated with the ID specified in the API could not be located, or has been deleted. Note that an invalid object type is covered by MP_STATUS_INVALID_OBJECT_TYPE so this status is limited to an invalid object owner identifier or sequence number.
This status value is returned when the implementation does not support the requested function.
This status value is returned when a client function passed into the API replaces a previously registered function.
This status value is returned when a device processing MP_SetTPGAccess returns a status indicating that the caller is attempting to establish an illegal combination of access states.
This status is returned when communication cannot be established with the path selected by the caller.
This status is returned when the plugin or driver is unable to complete the request, but might be able to complete it later.
The operation is not permitted in the current configuration, but might be permitted in other configurations.
shared object
64-bit shared object
ATTRIBUTE TYPE ATTRIBUTE VALUE |
Interface Stability Committed |
MT-Level Safe |
Standard |
ANSI INCITS 412 Multipath Management API (except for Sun_MP_SendScsiCmd) |
Multipath Management API Version 1.0