1*7836SJohn.Forte@Sun.COM /****************************************************************************** 2*7836SJohn.Forte@Sun.COM * 3*7836SJohn.Forte@Sun.COM * Description 4*7836SJohn.Forte@Sun.COM * mpapi.h - general header file for Multipath Management API Version 1.0 5*7836SJohn.Forte@Sun.COM * client 6*7836SJohn.Forte@Sun.COM * 7*7836SJohn.Forte@Sun.COM * License: 8*7836SJohn.Forte@Sun.COM * The contents of this file are subject to the SNIA Public License 9*7836SJohn.Forte@Sun.COM * Version 1.1 (the "License"); you may not use this file except in 10*7836SJohn.Forte@Sun.COM * compliance with the License. You may obtain a copy of the License at 11*7836SJohn.Forte@Sun.COM * 12*7836SJohn.Forte@Sun.COM * http://mp-mgmt-api.sourceforge.net 13*7836SJohn.Forte@Sun.COM * 14*7836SJohn.Forte@Sun.COM * Software distributed under the License is distributed on an "AS IS" 15*7836SJohn.Forte@Sun.COM * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 16*7836SJohn.Forte@Sun.COM * the License for the specific language governing rights and limitations 17*7836SJohn.Forte@Sun.COM * under the License. 18*7836SJohn.Forte@Sun.COM * 19*7836SJohn.Forte@Sun.COM * The Original Code is SNIA iSCSI Management API and Multipath Management API 20*7836SJohn.Forte@Sun.COM * general header file 21*7836SJohn.Forte@Sun.COM * 22*7836SJohn.Forte@Sun.COM * The Initial Developer of the Original Code is: 23*7836SJohn.Forte@Sun.COM * Benjamin F. Kuo Troika Networks, Inc. (benk@troikanetworks.com) 24*7836SJohn.Forte@Sun.COM * David Dillard VERITAS Software(david.dillard@veritas.com) 25*7836SJohn.Forte@Sun.COM * Jeff Ding Adaptec, Inc. (jding@corp.adaptec.com) 26*7836SJohn.Forte@Sun.COM * Dave Wysochanski Network Appliance, Inc. (davidw@netapp.com) 27*7836SJohn.Forte@Sun.COM * Hyon Kim Sun Microsystems(hyon.kim@sun.com) 28*7836SJohn.Forte@Sun.COM * 29*7836SJohn.Forte@Sun.COM * Contributor(s): 30*7836SJohn.Forte@Sun.COM * Paul von Behren Sun Microsystems(paul.vonbehren@sun.com) 31*7836SJohn.Forte@Sun.COM * 32*7836SJohn.Forte@Sun.COM ****************************************************************************** 33*7836SJohn.Forte@Sun.COM * 34*7836SJohn.Forte@Sun.COM * Changes: 35*7836SJohn.Forte@Sun.COM * 1/15/2005 Implemented SNIA MP API specification 1.0 36*7836SJohn.Forte@Sun.COM * 10/11/2005 37*7836SJohn.Forte@Sun.COM * - Added the license location in the header comment. 38*7836SJohn.Forte@Sun.COM * - Added an implementation note in constants and macros 39*7836SJohn.Forte@Sun.COM * declarations section. 40*7836SJohn.Forte@Sun.COM * - Fixed field name value in struct _MP_PROPRIETARY_PROPERTY. 41*7836SJohn.Forte@Sun.COM * - Fixed typo in logicalUnitGroupID in 42*7836SJohn.Forte@Sun.COM * _MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES 43*7836SJohn.Forte@Sun.COM * - Fixed typo in desiredState in struct _MP_TPG_STATE_PAIR. 44*7836SJohn.Forte@Sun.COM * - Fixed typo in API name MP_GetTargetPortGroupProperties. 45*7836SJohn.Forte@Sun.COM * - Clarified description of MP_STATUS_INVALID_PARAMETER error 46*7836SJohn.Forte@Sun.COM * in MP_GetObjectType(). 47*7836SJohn.Forte@Sun.COM * - Fixed typo in API name 48*7836SJohn.Forte@Sun.COM * MP_GetProprietaryLoadBalanceProperties(). 49*7836SJohn.Forte@Sun.COM * 3/6/2006 50*7836SJohn.Forte@Sun.COM * - mpapi.h header file is updated for 51*7836SJohn.Forte@Sun.COM * MP_LOAD_BALANCE_TYPE change in the spec. 52*7836SJohn.Forte@Sun.COM *****************************************************************************/ 53*7836SJohn.Forte@Sun.COM 54*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 55*7836SJohn.Forte@Sun.COM extern "C" { 56*7836SJohn.Forte@Sun.COM #endif 57*7836SJohn.Forte@Sun.COM 58*7836SJohn.Forte@Sun.COM 59*7836SJohn.Forte@Sun.COM #ifndef MPAPI_H 60*7836SJohn.Forte@Sun.COM #define MPAPI_H 61*7836SJohn.Forte@Sun.COM 62*7836SJohn.Forte@Sun.COM #include <time.h> 63*7836SJohn.Forte@Sun.COM #include <wchar.h> 64*7836SJohn.Forte@Sun.COM #include <string.h> 65*7836SJohn.Forte@Sun.COM #include <stdlib.h> 66*7836SJohn.Forte@Sun.COM 67*7836SJohn.Forte@Sun.COM 68*7836SJohn.Forte@Sun.COM /* Library version string */ 69*7836SJohn.Forte@Sun.COM #define MP_LIBVERSION 1 70*7836SJohn.Forte@Sun.COM 71*7836SJohn.Forte@Sun.COM /** 72*7836SJohn.Forte@Sun.COM ******************************************************************************* 73*7836SJohn.Forte@Sun.COM * 74*7836SJohn.Forte@Sun.COM * Generic MP Constant Definitions 75*7836SJohn.Forte@Sun.COM * 76*7836SJohn.Forte@Sun.COM ******************************************************************************* 77*7836SJohn.Forte@Sun.COM */ 78*7836SJohn.Forte@Sun.COM #define RL_LIBRARY_SEQNUM 0 79*7836SJohn.Forte@Sun.COM 80*7836SJohn.Forte@Sun.COM /** 81*7836SJohn.Forte@Sun.COM * Value which can be assigned to an MP_BOOL and or an MP_XBOOL. 82*7836SJohn.Forte@Sun.COM */ 83*7836SJohn.Forte@Sun.COM #define MP_TRUE 1 84*7836SJohn.Forte@Sun.COM 85*7836SJohn.Forte@Sun.COM /** 86*7836SJohn.Forte@Sun.COM * Value which can be assigned to an MP_BOOL and or an MP_XBOOL. 87*7836SJohn.Forte@Sun.COM */ 88*7836SJohn.Forte@Sun.COM #define MP_FALSE 0 89*7836SJohn.Forte@Sun.COM 90*7836SJohn.Forte@Sun.COM /** 91*7836SJohn.Forte@Sun.COM * Value which can be assigned to an MP_XBOOL. 92*7836SJohn.Forte@Sun.COM */ 93*7836SJohn.Forte@Sun.COM #define MP_UNKNOWN 0xFFFFFFFF 94*7836SJohn.Forte@Sun.COM 95*7836SJohn.Forte@Sun.COM #define MP_MAX_NUM_PLUGINS 64 96*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_MATCH 1 97*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_ANY 2 98*7836SJohn.Forte@Sun.COM #define MAX_NAME_SIZE 256 99*7836SJohn.Forte@Sun.COM #define MAX_LINE_SIZE 515 100*7836SJohn.Forte@Sun.COM 101*7836SJohn.Forte@Sun.COM 102*7836SJohn.Forte@Sun.COM /** 103*7836SJohn.Forte@Sun.COM ****************************************************************************** 104*7836SJohn.Forte@Sun.COM * 105*7836SJohn.Forte@Sun.COM * Base MP API Type Definitions 106*7836SJohn.Forte@Sun.COM * 107*7836SJohn.Forte@Sun.COM ****************************************************************************** 108*7836SJohn.Forte@Sun.COM */ 109*7836SJohn.Forte@Sun.COM 110*7836SJohn.Forte@Sun.COM typedef unsigned char MP_UINT8; /* unsigned 8 bits */ 111*7836SJohn.Forte@Sun.COM typedef char MP_INT8; /* signed 8 bits */ 112*7836SJohn.Forte@Sun.COM typedef unsigned short MP_UINT16; /* unsigned 16 bits */ 113*7836SJohn.Forte@Sun.COM typedef short MP_INT16; /* signed 16 bits */ 114*7836SJohn.Forte@Sun.COM typedef unsigned int MP_UINT32; /* unsigned 32 bits */ 115*7836SJohn.Forte@Sun.COM typedef int MP_INT32; /* signed 32 bits */ 116*7836SJohn.Forte@Sun.COM typedef void* MP_PVOID; /* pointer to void */ 117*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_VOID32; /* opaque 32 bits */ 118*7836SJohn.Forte@Sun.COM typedef long long MP_INT64; /* signed 64 bits */ 119*7836SJohn.Forte@Sun.COM typedef unsigned long long MP_UINT64; /* unsigned 64 bits */ 120*7836SJohn.Forte@Sun.COM 121*7836SJohn.Forte@Sun.COM /** 122*7836SJohn.Forte@Sun.COM * A character. 123*7836SJohn.Forte@Sun.COM */ 124*7836SJohn.Forte@Sun.COM typedef char MP_CHAR; 125*7836SJohn.Forte@Sun.COM 126*7836SJohn.Forte@Sun.COM /** 127*7836SJohn.Forte@Sun.COM * A wide character. 128*7836SJohn.Forte@Sun.COM */ 129*7836SJohn.Forte@Sun.COM typedef wchar_t MP_WCHAR; 130*7836SJohn.Forte@Sun.COM 131*7836SJohn.Forte@Sun.COM /** 132*7836SJohn.Forte@Sun.COM * An unsigned character. 133*7836SJohn.Forte@Sun.COM */ 134*7836SJohn.Forte@Sun.COM typedef unsigned char MP_BYTE; 135*7836SJohn.Forte@Sun.COM 136*7836SJohn.Forte@Sun.COM /** 137*7836SJohn.Forte@Sun.COM * A boolean. 138*7836SJohn.Forte@Sun.COM */ 139*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_BOOL; 140*7836SJohn.Forte@Sun.COM 141*7836SJohn.Forte@Sun.COM /** 142*7836SJohn.Forte@Sun.COM * An extended boolean: can have the values @ref MP_TRUE, @ref MP_FALSE, and 143*7836SJohn.Forte@Sun.COM * @ref MP_UNKNOWN. 144*7836SJohn.Forte@Sun.COM */ 145*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_XBOOL; 146*7836SJohn.Forte@Sun.COM 147*7836SJohn.Forte@Sun.COM /** 148*7836SJohn.Forte@Sun.COM ****************************************************************************** 149*7836SJohn.Forte@Sun.COM * 150*7836SJohn.Forte@Sun.COM * Constants and macros declarations related to MP_STATUS 151*7836SJohn.Forte@Sun.COM * Implementation Notes: This library does validation for OID argument and 152*7836SJohn.Forte@Sun.COM * returns the following errors. 153*7836SJohn.Forte@Sun.COM * 154*7836SJohn.Forte@Sun.COM * 1. MP_STATUS_INVALID_OBJECT_TYPE when input OID type is not 155*7836SJohn.Forte@Sun.COM * one of legitimate types defined SNIA Multipath Management 156*7836SJohn.Forte@Sun.COM * Spec. 157*7836SJohn.Forte@Sun.COM * 2. MP_STATUS_INVALID_PARAMETER when input OID type is 158*7836SJohn.Forte@Sun.COM * legitimate but not a proper type for API. 159*7836SJohn.Forte@Sun.COM * 3. MP_STATUS_OBJECT_NOT_FOUND when the ownerId of input OID is 160*7836SJohn.Forte@Sun.COM * not found or no object instance with matching 161*7836SJohn.Forte@Sun.COM * sequenceNumber is found. 162*7836SJohn.Forte@Sun.COM * The ownerId is validated by the common library and the 163*7836SJohn.Forte@Sun.COM * sequence number is validated by the plugin library. 164*7836SJohn.Forte@Sun.COM * 165*7836SJohn.Forte@Sun.COM ****************************************************************************** 166*7836SJohn.Forte@Sun.COM */ 167*7836SJohn.Forte@Sun.COM typedef enum { 168*7836SJohn.Forte@Sun.COM MP_STATUS_SUCCESS = 0, 169*7836SJohn.Forte@Sun.COM MP_STATUS_INVALID_PARAMETER = 1, 170*7836SJohn.Forte@Sun.COM MP_STATUS_UNKNOWN_FN = 2, 171*7836SJohn.Forte@Sun.COM MP_STATUS_FAILED = 3, 172*7836SJohn.Forte@Sun.COM MP_STATUS_INSUFFICIENT_MEMORY = 4, 173*7836SJohn.Forte@Sun.COM MP_STATUS_INVALID_OBJECT_TYPE = 5, 174*7836SJohn.Forte@Sun.COM MP_STATUS_OBJECT_NOT_FOUND = 6, 175*7836SJohn.Forte@Sun.COM MP_STATUS_UNSUPPORTED = 7, 176*7836SJohn.Forte@Sun.COM MP_STATUS_FN_REPLACED = 8, 177*7836SJohn.Forte@Sun.COM MP_STATUS_ACCESS_STATE_INVALID = 9, 178*7836SJohn.Forte@Sun.COM MP_STATUS_INVALID_WEIGHT = 10, 179*7836SJohn.Forte@Sun.COM MP_STATUS_PATH_NONOPERATIONAL = 11, 180*7836SJohn.Forte@Sun.COM MP_STATUS_TRY_AGAIN = 12, 181*7836SJohn.Forte@Sun.COM MP_STATUS_NOT_PERMITTED = 13 182*7836SJohn.Forte@Sun.COM 183*7836SJohn.Forte@Sun.COM } MP_STATUS; 184*7836SJohn.Forte@Sun.COM 185*7836SJohn.Forte@Sun.COM /** 186*7836SJohn.Forte@Sun.COM ****************************************************************************** 187*7836SJohn.Forte@Sun.COM * 188*7836SJohn.Forte@Sun.COM * Declaration of the MP_PATH_STATE constants 189*7836SJohn.Forte@Sun.COM * 190*7836SJohn.Forte@Sun.COM ****************************************************************************** 191*7836SJohn.Forte@Sun.COM */ 192*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_OKAY 0 193*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_PATH_ERR 1 194*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_LU_ERR 2 195*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_RESERVED 3 196*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_REMOVED 4 197*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_TRANSITIONING 5 198*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_OPERATIONAL_CLOSED 6 199*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_INVALID_CLOSED 7 200*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_OFFLINE_CLOSED 8 201*7836SJohn.Forte@Sun.COM #define MP_PATH_STATE_UNKNOWN 9 202*7836SJohn.Forte@Sun.COM 203*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_PATH_STATE; 204*7836SJohn.Forte@Sun.COM 205*7836SJohn.Forte@Sun.COM /** 206*7836SJohn.Forte@Sun.COM ******************************************************************************* 207*7836SJohn.Forte@Sun.COM * 208*7836SJohn.Forte@Sun.COM * Declaration of the MP_OBJECT_TYPE constants 209*7836SJohn.Forte@Sun.COM * 210*7836SJohn.Forte@Sun.COM ******************************************************************************* 211*7836SJohn.Forte@Sun.COM */ 212*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_UNKNOWN 0 213*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_PLUGIN 1 214*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_INITIATOR_PORT 2 215*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_TARGET_PORT 3 216*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_MULTIPATH_LU 4 217*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_PATH_LU 5 218*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_DEVICE_PRODUCT 6 219*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_TARGET_PORT_GROUP 7 220*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_PROPRIETARY_LOAD_BALANCE 8 221*7836SJohn.Forte@Sun.COM 222*7836SJohn.Forte@Sun.COM /* set to the highest constant of object type. */ 223*7836SJohn.Forte@Sun.COM #define MP_OBJECT_TYPE_MAX 8 224*7836SJohn.Forte@Sun.COM 225*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_OBJECT_TYPE; 226*7836SJohn.Forte@Sun.COM 227*7836SJohn.Forte@Sun.COM /** 228*7836SJohn.Forte@Sun.COM ******************************************************************************* 229*7836SJohn.Forte@Sun.COM * 230*7836SJohn.Forte@Sun.COM * Declaration of the MP_PORT_TRANSPORT_TYPE 231*7836SJohn.Forte@Sun.COM * 232*7836SJohn.Forte@Sun.COM ******************************************************************************* 233*7836SJohn.Forte@Sun.COM */ 234*7836SJohn.Forte@Sun.COM #define MP_PORT_TRANSPORT_TYPE_UNKNOWN 0 235*7836SJohn.Forte@Sun.COM #define MP_PORT_TRANSPORT_TYPE_MPNODE 1 236*7836SJohn.Forte@Sun.COM #define MP_PORT_TRANSPORT_TYPE_FC 2 237*7836SJohn.Forte@Sun.COM #define MP_PORT_TRANSPORT_TYPE_SPI 3 238*7836SJohn.Forte@Sun.COM #define MP_PORT_TRANSPORT_TYPE_ISCSI 4 239*7836SJohn.Forte@Sun.COM #define MP_PORT_TRANSPORT_TYPE_IFB 5 240*7836SJohn.Forte@Sun.COM 241*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_PORT_TRANSPORT_TYPE; 242*7836SJohn.Forte@Sun.COM 243*7836SJohn.Forte@Sun.COM /** 244*7836SJohn.Forte@Sun.COM ******************************************************************************* 245*7836SJohn.Forte@Sun.COM * 246*7836SJohn.Forte@Sun.COM * Declaration of the MP_ACCESS_STATE_TYPE constants 247*7836SJohn.Forte@Sun.COM * 248*7836SJohn.Forte@Sun.COM ******************************************************************************* 249*7836SJohn.Forte@Sun.COM */ 250*7836SJohn.Forte@Sun.COM #define MP_ACCESS_STATE_ACTIVE_OPTIMIZED (0x0) 251*7836SJohn.Forte@Sun.COM #define MP_ACCESS_STATE_ACTIVE_NONOPTIMIZED (0x1) 252*7836SJohn.Forte@Sun.COM #define MP_ACCESS_STATE_STANDBY (0x2) 253*7836SJohn.Forte@Sun.COM #define MP_ACCESS_STATE_UNAVAILABLE (0x3) 254*7836SJohn.Forte@Sun.COM #define MP_ACCESS_STATE_TRANSITIONING (0xF) 255*7836SJohn.Forte@Sun.COM #define MP_ACCESS_STATE_ACTIVE (0x10) 256*7836SJohn.Forte@Sun.COM 257*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_ACCESS_STATE_TYPE; 258*7836SJohn.Forte@Sun.COM 259*7836SJohn.Forte@Sun.COM /** 260*7836SJohn.Forte@Sun.COM ******************************************************************************* 261*7836SJohn.Forte@Sun.COM * 262*7836SJohn.Forte@Sun.COM * Declaration of the MP_LOAD_BALANCE_TYPE constants 263*7836SJohn.Forte@Sun.COM * 264*7836SJohn.Forte@Sun.COM ******************************************************************************* 265*7836SJohn.Forte@Sun.COM */ 266*7836SJohn.Forte@Sun.COM #define MP_LOAD_BALANCE_TYPE_UNKNOWN (1<<0) 267*7836SJohn.Forte@Sun.COM #define MP_LOAD_BALANCE_TYPE_ROUNDROBIN (1<<1) 268*7836SJohn.Forte@Sun.COM #define MP_LOAD_BALANCE_TYPE_LEASTBLOCKS (1<<2) 269*7836SJohn.Forte@Sun.COM #define MP_LOAD_BALANCE_TYPE_LEASTIO (1<<3) 270*7836SJohn.Forte@Sun.COM #define MP_LOAD_BALANCE_TYPE_DEVICE_PRODUCT (1<<4) 271*7836SJohn.Forte@Sun.COM #define MP_LOAD_BALANCE_TYPE_LBA_REGION (1<<5) 272*7836SJohn.Forte@Sun.COM #define MP_LOAD_BALANCE_TYPE_FAILOVER_ONLY (1<<6) 273*7836SJohn.Forte@Sun.COM /** 274*7836SJohn.Forte@Sun.COM * Proprietary load balance type should start from 0x10000(1<<16) or greater. 275*7836SJohn.Forte@Sun.COM * It is exposed through API MP_GetProprietaryLoadBalanceProperties if exists. 276*7836SJohn.Forte@Sun.COM */ 277*7836SJohn.Forte@Sun.COM 278*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_LOAD_BALANCE_TYPE; 279*7836SJohn.Forte@Sun.COM 280*7836SJohn.Forte@Sun.COM typedef struct mpPluginInfo { 281*7836SJohn.Forte@Sun.COM MP_WCHAR pluginName[MAX_NAME_SIZE]; 282*7836SJohn.Forte@Sun.COM MP_CHAR pluginPath[MAX_NAME_SIZE]; 283*7836SJohn.Forte@Sun.COM void* hdlPlugin; 284*7836SJohn.Forte@Sun.COM MP_UINT32 ownerId; 285*7836SJohn.Forte@Sun.COM } MPPLUGININFO_T; 286*7836SJohn.Forte@Sun.COM 287*7836SJohn.Forte@Sun.COM 288*7836SJohn.Forte@Sun.COM /** 289*7836SJohn.Forte@Sun.COM ******************************************************************************* 290*7836SJohn.Forte@Sun.COM * 291*7836SJohn.Forte@Sun.COM * Declaration of the MP_PROPRIETARY_PROPERTY 292*7836SJohn.Forte@Sun.COM * 293*7836SJohn.Forte@Sun.COM ******************************************************************************* 294*7836SJohn.Forte@Sun.COM */ 295*7836SJohn.Forte@Sun.COM typedef struct _MP_PROPRIETARY_PROPERTY 296*7836SJohn.Forte@Sun.COM { 297*7836SJohn.Forte@Sun.COM MP_WCHAR name[16]; 298*7836SJohn.Forte@Sun.COM MP_WCHAR value[48]; 299*7836SJohn.Forte@Sun.COM 300*7836SJohn.Forte@Sun.COM } MP_PROPRIETARY_PROPERTY; 301*7836SJohn.Forte@Sun.COM 302*7836SJohn.Forte@Sun.COM /** 303*7836SJohn.Forte@Sun.COM ******************************************************************************* 304*7836SJohn.Forte@Sun.COM * 305*7836SJohn.Forte@Sun.COM * Declaration of the MP_PROPRIETARY_LOAD_BALANCE_PROPERTIES 306*7836SJohn.Forte@Sun.COM * 307*7836SJohn.Forte@Sun.COM ******************************************************************************* 308*7836SJohn.Forte@Sun.COM */ 309*7836SJohn.Forte@Sun.COM typedef struct _MP_PROPRIETARY_LOAD_BALANCE_PROPERTIES 310*7836SJohn.Forte@Sun.COM { 311*7836SJohn.Forte@Sun.COM MP_LOAD_BALANCE_TYPE typeIndex; 312*7836SJohn.Forte@Sun.COM MP_WCHAR name[256]; 313*7836SJohn.Forte@Sun.COM MP_WCHAR vendorName[256]; 314*7836SJohn.Forte@Sun.COM MP_UINT32 proprietaryPropertyCount; 315*7836SJohn.Forte@Sun.COM MP_PROPRIETARY_PROPERTY proprietaryProperties[8]; 316*7836SJohn.Forte@Sun.COM 317*7836SJohn.Forte@Sun.COM } MP_PROPRIETARY_LOAD_BALANCE_PROPERTIES; 318*7836SJohn.Forte@Sun.COM 319*7836SJohn.Forte@Sun.COM /** 320*7836SJohn.Forte@Sun.COM ******************************************************************************* 321*7836SJohn.Forte@Sun.COM * 322*7836SJohn.Forte@Sun.COM * Declaration of the MP_UINT32 MP_LOGICAL_UNIT_NAME_TYPE constants 323*7836SJohn.Forte@Sun.COM * 324*7836SJohn.Forte@Sun.COM ******************************************************************************* 325*7836SJohn.Forte@Sun.COM */ 326*7836SJohn.Forte@Sun.COM #define MP_LU_NAME_TYPE_UNKNOWN 0 327*7836SJohn.Forte@Sun.COM #define MP_LU_NAME_TYPE_VPD83_TYPE1 1 328*7836SJohn.Forte@Sun.COM #define MP_LU_NAME_TYPE_VPD83_TYPE2 2 329*7836SJohn.Forte@Sun.COM #define MP_LU_NAME_TYPE_VPD83_TYPE3 3 330*7836SJohn.Forte@Sun.COM #define MP_LU_NAME_TYPE_DEVICE_SPECIFIC 4 331*7836SJohn.Forte@Sun.COM 332*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_LOGICAL_UNIT_NAME_TYPE; 333*7836SJohn.Forte@Sun.COM 334*7836SJohn.Forte@Sun.COM /** 335*7836SJohn.Forte@Sun.COM ******************************************************************************* 336*7836SJohn.Forte@Sun.COM * 337*7836SJohn.Forte@Sun.COM * Declaration of the MP_UINT32 MP_AUTOFAILBACK_SUPPORT constants 338*7836SJohn.Forte@Sun.COM * 339*7836SJohn.Forte@Sun.COM ******************************************************************************* 340*7836SJohn.Forte@Sun.COM */ 341*7836SJohn.Forte@Sun.COM #define MP_AUTOFAILBACK_SUPPORT_NONE 0 342*7836SJohn.Forte@Sun.COM #define MP_AUTOFAILBACK_SUPPORT_PLUGIN 1 343*7836SJohn.Forte@Sun.COM #define MP_AUTOFAILBACK_SUPPORT_MPLU 2 344*7836SJohn.Forte@Sun.COM #define MP_AUTOFAILBACK_SUPPORT_PLUGINANDMPLU 3 345*7836SJohn.Forte@Sun.COM 346*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_AUTOFAILBACK_SUPPORT; 347*7836SJohn.Forte@Sun.COM 348*7836SJohn.Forte@Sun.COM /** 349*7836SJohn.Forte@Sun.COM ******************************************************************************* 350*7836SJohn.Forte@Sun.COM * 351*7836SJohn.Forte@Sun.COM * Declaration of the MP_UINT32 MP_AUTOPROBING_SUPPORT constants 352*7836SJohn.Forte@Sun.COM * 353*7836SJohn.Forte@Sun.COM ******************************************************************************* 354*7836SJohn.Forte@Sun.COM */ 355*7836SJohn.Forte@Sun.COM #define MP_AUTOPROBING_SUPPORT_NONE 0 356*7836SJohn.Forte@Sun.COM #define MP_AUTOPROBING_SUPPORT_PLUGIN 1 357*7836SJohn.Forte@Sun.COM #define MP_AUTORPOBING_SUPPORT_MPLU 2 358*7836SJohn.Forte@Sun.COM #define MP_AUTORPOBING_SUPPORT_PLUGINANDMPLU 3 359*7836SJohn.Forte@Sun.COM 360*7836SJohn.Forte@Sun.COM typedef MP_UINT32 MP_AUTOPROBING_SUPPORT; 361*7836SJohn.Forte@Sun.COM 362*7836SJohn.Forte@Sun.COM /** 363*7836SJohn.Forte@Sun.COM ******************************************************************************* 364*7836SJohn.Forte@Sun.COM * 365*7836SJohn.Forte@Sun.COM * Declaration of the MP_OID structure 366*7836SJohn.Forte@Sun.COM * 367*7836SJohn.Forte@Sun.COM * This structure should be treated as opaque by clients of the API. 368*7836SJohn.Forte@Sun.COM * Appropriate APIs should be used to extract information from the structure. 369*7836SJohn.Forte@Sun.COM * 370*7836SJohn.Forte@Sun.COM * Also ZERO_OID is defined for APIs that may handle multiple plugin OIDs. 371*7836SJohn.Forte@Sun.COM * 372*7836SJohn.Forte@Sun.COM ******************************************************************************* 373*7836SJohn.Forte@Sun.COM */ 374*7836SJohn.Forte@Sun.COM typedef struct _MP_OID 375*7836SJohn.Forte@Sun.COM { 376*7836SJohn.Forte@Sun.COM /** 377*7836SJohn.Forte@Sun.COM * The type of the object. When an object ID is supplied as a parameter 378*7836SJohn.Forte@Sun.COM * to an API the library uses this value to insure that the supplied 379*7836SJohn.Forte@Sun.COM * object ID's type is appropriate for the API. 380*7836SJohn.Forte@Sun.COM */ 381*7836SJohn.Forte@Sun.COM MP_OBJECT_TYPE objectType; 382*7836SJohn.Forte@Sun.COM 383*7836SJohn.Forte@Sun.COM /** 384*7836SJohn.Forte@Sun.COM * A value determined by the library which it uses to uniquely identify the 385*7836SJohn.Forte@Sun.COM * owner of an object. The owner of an object is either the library itself 386*7836SJohn.Forte@Sun.COM * or a plugin. When an object ID is supplied as a parameter to an API the 387*7836SJohn.Forte@Sun.COM * library uses this value to determine if it should handle the call itself 388*7836SJohn.Forte@Sun.COM * or direct the call to one or more plugins. 389*7836SJohn.Forte@Sun.COM */ 390*7836SJohn.Forte@Sun.COM MP_UINT32 ownerId; 391*7836SJohn.Forte@Sun.COM 392*7836SJohn.Forte@Sun.COM /** 393*7836SJohn.Forte@Sun.COM * A value determined by a plugin which a plugin uses, perhaps in 394*7836SJohn.Forte@Sun.COM * combination with the object type, to uniquely identify one of its 395*7836SJohn.Forte@Sun.COM * objects. 396*7836SJohn.Forte@Sun.COM */ 397*7836SJohn.Forte@Sun.COM MP_UINT64 objectSequenceNumber; 398*7836SJohn.Forte@Sun.COM 399*7836SJohn.Forte@Sun.COM } MP_OID; 400*7836SJohn.Forte@Sun.COM 401*7836SJohn.Forte@Sun.COM #define ZERO_OID ((const MP_OID){MP_OBJECT_TYPE_UNKNOWN,0,0}) 402*7836SJohn.Forte@Sun.COM 403*7836SJohn.Forte@Sun.COM /** 404*7836SJohn.Forte@Sun.COM ******************************************************************************* 405*7836SJohn.Forte@Sun.COM * 406*7836SJohn.Forte@Sun.COM * Declaration of the MP_OID_LIST structure 407*7836SJohn.Forte@Sun.COM * 408*7836SJohn.Forte@Sun.COM * This structure is used by a number of APIs to return lists of objects. Any 409*7836SJohn.Forte@Sun.COM * instance of this structure returned by an API must be freed by a client 410*7836SJohn.Forte@Sun.COM * using the MP_FreeOidList API. Although oids is declared to be an 411*7836SJohn.Forte@Sun.COM * array of one 412*7836SJohn.Forte@Sun.COM * @ref MP_OID structure it can in fact contain any number of 413*7836SJohn.Forte@Sun.COM * @ref MP_OID structures. The oidCount indicates the number of @ref MP_OID 414*7836SJohn.Forte@Sun.COM * structures in the oids array. 415*7836SJohn.Forte@Sun.COM * 416*7836SJohn.Forte@Sun.COM * @note The @a oids array is a variable length array, despite its declaration 417*7836SJohn.Forte@Sun.COM * below it can be of any length. 418*7836SJohn.Forte@Sun.COM * 419*7836SJohn.Forte@Sun.COM ******************************************************************************* 420*7836SJohn.Forte@Sun.COM */ 421*7836SJohn.Forte@Sun.COM typedef struct _MP_OID_LIST 422*7836SJohn.Forte@Sun.COM { 423*7836SJohn.Forte@Sun.COM /** 424*7836SJohn.Forte@Sun.COM * The number of object IDs in the @a oids array. 425*7836SJohn.Forte@Sun.COM */ 426*7836SJohn.Forte@Sun.COM MP_UINT32 oidCount; 427*7836SJohn.Forte@Sun.COM 428*7836SJohn.Forte@Sun.COM /** 429*7836SJohn.Forte@Sun.COM * A variable length array of zero or more object IDs. There are 430*7836SJohn.Forte@Sun.COM * 'oidCount' object IDs in this array. 431*7836SJohn.Forte@Sun.COM */ 432*7836SJohn.Forte@Sun.COM MP_OID oids[1]; 433*7836SJohn.Forte@Sun.COM 434*7836SJohn.Forte@Sun.COM } MP_OID_LIST; 435*7836SJohn.Forte@Sun.COM 436*7836SJohn.Forte@Sun.COM /** 437*7836SJohn.Forte@Sun.COM ******************************************************************************* 438*7836SJohn.Forte@Sun.COM * 439*7836SJohn.Forte@Sun.COM * Declaration of the MP_LIBRARY_PROPERTIES structure 440*7836SJohn.Forte@Sun.COM * 441*7836SJohn.Forte@Sun.COM * This structure is returned by the MP_GetLibraryProperties() API. 442*7836SJohn.Forte@Sun.COM * 443*7836SJohn.Forte@Sun.COM ******************************************************************************* 444*7836SJohn.Forte@Sun.COM */ 445*7836SJohn.Forte@Sun.COM typedef struct _MP_LIBRARY_PROPERTIES 446*7836SJohn.Forte@Sun.COM { 447*7836SJohn.Forte@Sun.COM /** 448*7836SJohn.Forte@Sun.COM * The version of the Multipath Management API implemented by the library. 449*7836SJohn.Forte@Sun.COM */ 450*7836SJohn.Forte@Sun.COM MP_UINT32 supportedMpVersion; 451*7836SJohn.Forte@Sun.COM 452*7836SJohn.Forte@Sun.COM /** 453*7836SJohn.Forte@Sun.COM * A null terminated ASCII string containing the name of the vendor that 454*7836SJohn.Forte@Sun.COM * created the binary version of the library. 455*7836SJohn.Forte@Sun.COM */ 456*7836SJohn.Forte@Sun.COM MP_WCHAR vendor[256]; 457*7836SJohn.Forte@Sun.COM 458*7836SJohn.Forte@Sun.COM /** 459*7836SJohn.Forte@Sun.COM * A null terminated ASCII string containing the implementation version 460*7836SJohn.Forte@Sun.COM * of the library from the vendor specified in the 'vendor' field. 461*7836SJohn.Forte@Sun.COM */ 462*7836SJohn.Forte@Sun.COM MP_WCHAR implementationVersion[256]; 463*7836SJohn.Forte@Sun.COM 464*7836SJohn.Forte@Sun.COM /** 465*7836SJohn.Forte@Sun.COM * A null terminated ASCII string ideally containing the path and file 466*7836SJohn.Forte@Sun.COM * name of the library that is being used by the currently executing 467*7836SJohn.Forte@Sun.COM * process can be found. If the path cannot be determined then it is 468*7836SJohn.Forte@Sun.COM * acceptable to fill this field with only the name (and extension if 469*7836SJohn.Forte@Sun.COM * applicable) of the file of the library. If this cannot be determined 470*7836SJohn.Forte@Sun.COM * then this field should be an empty string. 471*7836SJohn.Forte@Sun.COM */ 472*7836SJohn.Forte@Sun.COM MP_CHAR fileName[256]; 473*7836SJohn.Forte@Sun.COM 474*7836SJohn.Forte@Sun.COM /** 475*7836SJohn.Forte@Sun.COM * The time and date that the library that is executing was built. 476*7836SJohn.Forte@Sun.COM */ 477*7836SJohn.Forte@Sun.COM MP_WCHAR buildTime[256]; 478*7836SJohn.Forte@Sun.COM 479*7836SJohn.Forte@Sun.COM } MP_LIBRARY_PROPERTIES; 480*7836SJohn.Forte@Sun.COM 481*7836SJohn.Forte@Sun.COM /** 482*7836SJohn.Forte@Sun.COM ******************************************************************************* 483*7836SJohn.Forte@Sun.COM * 484*7836SJohn.Forte@Sun.COM * Declaration of the MP_PLUGIN_PROPERTIES structure 485*7836SJohn.Forte@Sun.COM * 486*7836SJohn.Forte@Sun.COM * This structure is returned by the MP_GetPluginProperties() API. 487*7836SJohn.Forte@Sun.COM * 488*7836SJohn.Forte@Sun.COM ******************************************************************************* 489*7836SJohn.Forte@Sun.COM */ 490*7836SJohn.Forte@Sun.COM typedef struct _MP_PLUGIN_PROPERTIES 491*7836SJohn.Forte@Sun.COM { 492*7836SJohn.Forte@Sun.COM /** 493*7836SJohn.Forte@Sun.COM * The version of the Multipath Management API implemented by a plugin. 494*7836SJohn.Forte@Sun.COM */ 495*7836SJohn.Forte@Sun.COM MP_UINT32 supportedMpVersion; 496*7836SJohn.Forte@Sun.COM 497*7836SJohn.Forte@Sun.COM /** 498*7836SJohn.Forte@Sun.COM * A null terminated Unicode string containing the name of the vendor that 499*7836SJohn.Forte@Sun.COM * created the binary version of the plugin. 500*7836SJohn.Forte@Sun.COM */ 501*7836SJohn.Forte@Sun.COM MP_WCHAR vendor[256]; 502*7836SJohn.Forte@Sun.COM 503*7836SJohn.Forte@Sun.COM /** 504*7836SJohn.Forte@Sun.COM * A null terminated Unicode string containing the implementation version 505*7836SJohn.Forte@Sun.COM * of the plugin from the vendor specified in vendor. 506*7836SJohn.Forte@Sun.COM */ 507*7836SJohn.Forte@Sun.COM MP_WCHAR implementationVersion[256]; 508*7836SJohn.Forte@Sun.COM 509*7836SJohn.Forte@Sun.COM /** 510*7836SJohn.Forte@Sun.COM * A null terminated ASCII string ideally containing the path and file 511*7836SJohn.Forte@Sun.COM * name of the plugin that is filling in this structure. 512*7836SJohn.Forte@Sun.COM */ 513*7836SJohn.Forte@Sun.COM MP_CHAR fileName[256]; 514*7836SJohn.Forte@Sun.COM 515*7836SJohn.Forte@Sun.COM /** 516*7836SJohn.Forte@Sun.COM * The time and date that the plugin that is executing was built. 517*7836SJohn.Forte@Sun.COM */ 518*7836SJohn.Forte@Sun.COM MP_WCHAR buildTime[256]; 519*7836SJohn.Forte@Sun.COM 520*7836SJohn.Forte@Sun.COM /** 521*7836SJohn.Forte@Sun.COM * A null terminated Unicode string containing the name of the multipath 522*7836SJohn.Forte@Sun.COM * driver vendor associated with this plugin. 523*7836SJohn.Forte@Sun.COM */ 524*7836SJohn.Forte@Sun.COM MP_WCHAR driverVendor[256]; 525*7836SJohn.Forte@Sun.COM 526*7836SJohn.Forte@Sun.COM /** 527*7836SJohn.Forte@Sun.COM * A null terminated Unicode string ideally containing the path and file 528*7836SJohn.Forte@Sun.COM * name of the plugin that is filling in this structure. 529*7836SJohn.Forte@Sun.COM */ 530*7836SJohn.Forte@Sun.COM MP_CHAR driverName[256]; 531*7836SJohn.Forte@Sun.COM 532*7836SJohn.Forte@Sun.COM /** 533*7836SJohn.Forte@Sun.COM * A null terminated Unicode string containing the version number of 534*7836SJohn.Forte@Sun.COM * the multipath driver. 535*7836SJohn.Forte@Sun.COM */ 536*7836SJohn.Forte@Sun.COM MP_WCHAR driverVersion[256]; 537*7836SJohn.Forte@Sun.COM 538*7836SJohn.Forte@Sun.COM /** 539*7836SJohn.Forte@Sun.COM * A set of flags representing the load balance types 540*7836SJohn.Forte@Sun.COM * (MP_LOAD_BALANCE_TYPES) supported by the plugin/driver as a plugin-wide 541*7836SJohn.Forte@Sun.COM * property. 542*7836SJohn.Forte@Sun.COM */ 543*7836SJohn.Forte@Sun.COM MP_UINT32 supportedLoadBalanceTypes; 544*7836SJohn.Forte@Sun.COM 545*7836SJohn.Forte@Sun.COM /** 546*7836SJohn.Forte@Sun.COM * boolean indicating whether the implementation supports activating target 547*7836SJohn.Forte@Sun.COM * port groups. 548*7836SJohn.Forte@Sun.COM */ 549*7836SJohn.Forte@Sun.COM MP_BOOL canSetTPGAccess; 550*7836SJohn.Forte@Sun.COM 551*7836SJohn.Forte@Sun.COM /** 552*7836SJohn.Forte@Sun.COM * A Boolean indicating whether the implementations supports overriding 553*7836SJohn.Forte@Sun.COM * paths. Setting this to true indicates MP_SetOverridePath and 554*7836SJohn.Forte@Sun.COM * MP_CancelOverridePath are supported. 555*7836SJohn.Forte@Sun.COM */ 556*7836SJohn.Forte@Sun.COM MP_BOOL canOverridePaths; 557*7836SJohn.Forte@Sun.COM 558*7836SJohn.Forte@Sun.COM /** 559*7836SJohn.Forte@Sun.COM * A boolean indicating whether the implementation exposes (or leaves 560*7836SJohn.Forte@Sun.COM * exposed) device files for the individual paths encapsulated by the 561*7836SJohn.Forte@Sun.COM * multipath device file. This is typically true for MP drivers that sit 562*7836SJohn.Forte@Sun.COM * near the top of the driver stack.. 563*7836SJohn.Forte@Sun.COM */ 564*7836SJohn.Forte@Sun.COM MP_BOOL exposesPathDeviceFiles; 565*7836SJohn.Forte@Sun.COM 566*7836SJohn.Forte@Sun.COM /** 567*7836SJohn.Forte@Sun.COM * A string representing the primary file names the driver uses for 568*7836SJohn.Forte@Sun.COM * multipath logical units. 569*7836SJohn.Forte@Sun.COM */ 570*7836SJohn.Forte@Sun.COM MP_CHAR deviceFileNamespace[256]; 571*7836SJohn.Forte@Sun.COM 572*7836SJohn.Forte@Sun.COM /** 573*7836SJohn.Forte@Sun.COM * A boolean indicating whether the driver limits multipath capabilities 574*7836SJohn.Forte@Sun.COM * to certain device types. If true, then the driver only provides multipath 575*7836SJohn.Forte@Sun.COM * support to devices exposed through MP_DEVICE_PRODUCT_PROPERTIES 576*7836SJohn.Forte@Sun.COM * instances. If false, then the driver supports any device that provides 577*7836SJohn.Forte@Sun.COM * standard SCSI logical unit identifiers. 578*7836SJohn.Forte@Sun.COM */ 579*7836SJohn.Forte@Sun.COM MP_BOOL onlySupportsSpecifiedProducts; 580*7836SJohn.Forte@Sun.COM 581*7836SJohn.Forte@Sun.COM /** 582*7836SJohn.Forte@Sun.COM * Describes the range of administer settable path weights supported by the 583*7836SJohn.Forte@Sun.COM * driver. A driver with no path preference capabilities should set 584*7836SJohn.Forte@Sun.COM * this property to zero. A driver with the ability to enable/disable 585*7836SJohn.Forte@Sun.COM * paths should set this property to 1. Drivers with more weight settings 586*7836SJohn.Forte@Sun.COM * can set the property appropriately. 587*7836SJohn.Forte@Sun.COM */ 588*7836SJohn.Forte@Sun.COM MP_UINT32 maximumWeight; 589*7836SJohn.Forte@Sun.COM 590*7836SJohn.Forte@Sun.COM /** 591*7836SJohn.Forte@Sun.COM * The autofailback support indicates whether the implementation supports 592*7836SJohn.Forte@Sun.COM * auto-failback (to reenable paths that revert to a good state) at the 593*7836SJohn.Forte@Sun.COM * plugin level, the multipath logical unit level, both levels or whether 594*7836SJohn.Forte@Sun.COM * auto-failback is unsupported. 595*7836SJohn.Forte@Sun.COM */ 596*7836SJohn.Forte@Sun.COM MP_AUTOFAILBACK_SUPPORT autoFailbackSupport; 597*7836SJohn.Forte@Sun.COM 598*7836SJohn.Forte@Sun.COM /** 599*7836SJohn.Forte@Sun.COM * A Boolean indicating whether plugin-wide autofailback is currently 600*7836SJohn.Forte@Sun.COM * enabled. This parameter is undefined if autoFailbackSupport is 601*7836SJohn.Forte@Sun.COM * MP_AUTOFAILBACK_SUPPORT_NONE or MP_AUTOFAILBACK_SUPPORT_MPLU. 602*7836SJohn.Forte@Sun.COM */ 603*7836SJohn.Forte@Sun.COM MP_BOOL pluginAutoFailbackEnabled; 604*7836SJohn.Forte@Sun.COM 605*7836SJohn.Forte@Sun.COM /** 606*7836SJohn.Forte@Sun.COM * The maximum plugin-wide polling rate (in seconds) for auto-failback 607*7836SJohn.Forte@Sun.COM * supported by the driver. A value of zero indicates the driver/plugin 608*7836SJohn.Forte@Sun.COM * does not support polling. Undefined if autoFailbackSupport is 609*7836SJohn.Forte@Sun.COM * MP_AUTOFAILBACK_SUPPORT_NONE or MP_AUTOFAILBACK_SUPPORT_MPLU. If the 610*7836SJohn.Forte@Sun.COM * plugin/driver supports auto-failback without polling or does not provide 611*7836SJohn.Forte@Sun.COM * a way to set the polling rate, then this must be set to zero (0). 612*7836SJohn.Forte@Sun.COM * This value is set by the plugin and cannot be modified by users. 613*7836SJohn.Forte@Sun.COM */ 614*7836SJohn.Forte@Sun.COM MP_UINT32 failbackPollingRateMax; 615*7836SJohn.Forte@Sun.COM 616*7836SJohn.Forte@Sun.COM /** 617*7836SJohn.Forte@Sun.COM * The current plugin-wide auto-failback polling rate (in seconds). 618*7836SJohn.Forte@Sun.COM * Undefined if autofailbackSupport is MP_AUTOFAILBACK_SUPPORT_NONE or 619*7836SJohn.Forte@Sun.COM * MP_AUTOFAILBACK_SUPPORT_MPLU. Cannot be more that plooingRateMax. 620*7836SJohn.Forte@Sun.COM */ 621*7836SJohn.Forte@Sun.COM MP_UINT32 currentFailbackPollingRate; 622*7836SJohn.Forte@Sun.COM 623*7836SJohn.Forte@Sun.COM /** 624*7836SJohn.Forte@Sun.COM * An enumerated type indicating whether the implementation supports 625*7836SJohn.Forte@Sun.COM * auto-probing at the plugin level, the multipath logical unit level, both 626*7836SJohn.Forte@Sun.COM * levels or whether auto-probing is unsupported. 627*7836SJohn.Forte@Sun.COM */ 628*7836SJohn.Forte@Sun.COM MP_AUTOPROBING_SUPPORT autoProbingSupport; 629*7836SJohn.Forte@Sun.COM 630*7836SJohn.Forte@Sun.COM /** 631*7836SJohn.Forte@Sun.COM * A boolean indicating that plugin-wide auto-probing is enabled. This 632*7836SJohn.Forte@Sun.COM * property is undefined if autoProbingSupport is 633*7836SJohn.Forte@Sun.COM * MP_AUTOPROBING_SUPPORT_NONE or MP_AUTOPROBING_SUPPORT_MPLU. 634*7836SJohn.Forte@Sun.COM */ 635*7836SJohn.Forte@Sun.COM MP_BOOL pluginAutoProbingEnabled; 636*7836SJohn.Forte@Sun.COM 637*7836SJohn.Forte@Sun.COM /** 638*7836SJohn.Forte@Sun.COM * The maximum plugin-wide polling rate (in seconds) for auto-probing 639*7836SJohn.Forte@Sun.COM * supported by the driver. Undefined if autoProbingSupport is 640*7836SJohn.Forte@Sun.COM * MP_AUTOPROBING_SUPPORT_NONE or MP_AUTOPROBING_SUPPORT_MPLU. If the 641*7836SJohn.Forte@Sun.COM * plugin/driver supports auto-probing without polling or does not provide a 642*7836SJohn.Forte@Sun.COM * way to set the probing polling rate, then this must be set to zero (0). 643*7836SJohn.Forte@Sun.COM * This value is set by the plugin and cannot be modified by users. 644*7836SJohn.Forte@Sun.COM */ 645*7836SJohn.Forte@Sun.COM MP_UINT32 probingPollingRateMax; 646*7836SJohn.Forte@Sun.COM 647*7836SJohn.Forte@Sun.COM /** 648*7836SJohn.Forte@Sun.COM * The current plugin-wide auto-probing polling rate (in seconds). 649*7836SJohn.Forte@Sun.COM * Undefined if autoProbingSupport is MP_AUTOPROBING_SUPPORT_NONE or 650*7836SJohn.Forte@Sun.COM * MP_AUTOPROBING_SUPPORT_MPLU. Cannot be more that probingPollingRateMax. 651*7836SJohn.Forte@Sun.COM */ 652*7836SJohn.Forte@Sun.COM MP_UINT32 currentProbingPollingRate; 653*7836SJohn.Forte@Sun.COM 654*7836SJohn.Forte@Sun.COM /** 655*7836SJohn.Forte@Sun.COM * The load balance type that will be used by the driver for devices 656*7836SJohn.Forte@Sun.COM * (without a corresponding MP_DEVICE_PRODUCT_PROPERTIES instance) unless 657*7836SJohn.Forte@Sun.COM * overridden by the administrator. Any logical unit with vendor, product, 658*7836SJohn.Forte@Sun.COM * and revision properties matching a MP_DEVICE_PRODUCT_PROPERTIES instance 659*7836SJohn.Forte@Sun.COM * will default to a device-specific load balance type. 660*7836SJohn.Forte@Sun.COM */ 661*7836SJohn.Forte@Sun.COM MP_LOAD_BALANCE_TYPE defaultloadBalanceType; 662*7836SJohn.Forte@Sun.COM 663*7836SJohn.Forte@Sun.COM /** 664*7836SJohn.Forte@Sun.COM * The count of proprietary properties (less that or equal to eight) 665*7836SJohn.Forte@Sun.COM * supported. 666*7836SJohn.Forte@Sun.COM */ 667*7836SJohn.Forte@Sun.COM MP_UINT32 proprietaryPropertyCount; 668*7836SJohn.Forte@Sun.COM 669*7836SJohn.Forte@Sun.COM /** 670*7836SJohn.Forte@Sun.COM * A list of proprietary property name/value pairs. 671*7836SJohn.Forte@Sun.COM */ 672*7836SJohn.Forte@Sun.COM MP_PROPRIETARY_PROPERTY proprietaryProperties[8]; 673*7836SJohn.Forte@Sun.COM 674*7836SJohn.Forte@Sun.COM } MP_PLUGIN_PROPERTIES; 675*7836SJohn.Forte@Sun.COM 676*7836SJohn.Forte@Sun.COM /** 677*7836SJohn.Forte@Sun.COM ******************************************************************************* 678*7836SJohn.Forte@Sun.COM * 679*7836SJohn.Forte@Sun.COM * Declaration of the MP_DEVICE_PRODUCT_PROPERTIES structure. 680*7836SJohn.Forte@Sun.COM * 681*7836SJohn.Forte@Sun.COM * This structure is returned by the MP_GetDeviceProductProperties() API. 682*7836SJohn.Forte@Sun.COM * 683*7836SJohn.Forte@Sun.COM ******************************************************************************* 684*7836SJohn.Forte@Sun.COM */ 685*7836SJohn.Forte@Sun.COM typedef struct _MP_DEVICE_PRODUCT_PROPERTIES 686*7836SJohn.Forte@Sun.COM { 687*7836SJohn.Forte@Sun.COM MP_CHAR vendor[8]; 688*7836SJohn.Forte@Sun.COM MP_CHAR product[16]; 689*7836SJohn.Forte@Sun.COM MP_CHAR revision[4]; 690*7836SJohn.Forte@Sun.COM MP_UINT32 supportedLoadBalanceTypes; 691*7836SJohn.Forte@Sun.COM 692*7836SJohn.Forte@Sun.COM } MP_DEVICE_PRODUCT_PROPERTIES; 693*7836SJohn.Forte@Sun.COM 694*7836SJohn.Forte@Sun.COM /** 695*7836SJohn.Forte@Sun.COM ******************************************************************************* 696*7836SJohn.Forte@Sun.COM * 697*7836SJohn.Forte@Sun.COM * Declaration of the MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES structure. 698*7836SJohn.Forte@Sun.COM * 699*7836SJohn.Forte@Sun.COM * This structure is returned by the MP_GetMPLogicalUnitProperties() API. 700*7836SJohn.Forte@Sun.COM * 701*7836SJohn.Forte@Sun.COM ******************************************************************************* 702*7836SJohn.Forte@Sun.COM */ 703*7836SJohn.Forte@Sun.COM typedef struct _MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES 704*7836SJohn.Forte@Sun.COM { 705*7836SJohn.Forte@Sun.COM MP_CHAR vendor[8]; 706*7836SJohn.Forte@Sun.COM MP_CHAR product[16]; 707*7836SJohn.Forte@Sun.COM MP_CHAR revision[4]; 708*7836SJohn.Forte@Sun.COM MP_CHAR name[256]; 709*7836SJohn.Forte@Sun.COM MP_LOGICAL_UNIT_NAME_TYPE nameType; 710*7836SJohn.Forte@Sun.COM MP_CHAR deviceFileName[256]; 711*7836SJohn.Forte@Sun.COM MP_BOOL asymmetric; 712*7836SJohn.Forte@Sun.COM MP_OID overridePath; 713*7836SJohn.Forte@Sun.COM MP_LOAD_BALANCE_TYPE currentLoadBalanceType; 714*7836SJohn.Forte@Sun.COM MP_UINT32 logicalUnitGroupID; 715*7836SJohn.Forte@Sun.COM MP_XBOOL autoFailbackEnabled; 716*7836SJohn.Forte@Sun.COM MP_UINT32 failbackPollingRateMax; 717*7836SJohn.Forte@Sun.COM MP_UINT32 currentFailbackPollingRate; 718*7836SJohn.Forte@Sun.COM MP_XBOOL autoProbingEnabled; 719*7836SJohn.Forte@Sun.COM MP_UINT32 probingPollingRateMax; 720*7836SJohn.Forte@Sun.COM MP_UINT32 currentProbingPollingRate; 721*7836SJohn.Forte@Sun.COM MP_UINT32 proprietaryPropertyCount; 722*7836SJohn.Forte@Sun.COM MP_PROPRIETARY_PROPERTY proprietaryProperties[8]; 723*7836SJohn.Forte@Sun.COM 724*7836SJohn.Forte@Sun.COM } MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES; 725*7836SJohn.Forte@Sun.COM 726*7836SJohn.Forte@Sun.COM /** 727*7836SJohn.Forte@Sun.COM ******************************************************************************* 728*7836SJohn.Forte@Sun.COM * 729*7836SJohn.Forte@Sun.COM * Declaration of the MP_PATH_LOGICAL_UNIT_PROPERTIES structure. 730*7836SJohn.Forte@Sun.COM * 731*7836SJohn.Forte@Sun.COM * This structure is returned by the MP_GetPathLogicalUnitProperties() API. 732*7836SJohn.Forte@Sun.COM * 733*7836SJohn.Forte@Sun.COM ******************************************************************************* 734*7836SJohn.Forte@Sun.COM */ 735*7836SJohn.Forte@Sun.COM typedef struct _MP_PATH_LOGICAL_UNIT_PROPERTIES 736*7836SJohn.Forte@Sun.COM { 737*7836SJohn.Forte@Sun.COM MP_UINT32 weight; 738*7836SJohn.Forte@Sun.COM MP_PATH_STATE pathState; 739*7836SJohn.Forte@Sun.COM MP_BOOL disabled; 740*7836SJohn.Forte@Sun.COM MP_OID initiatorPortOid; 741*7836SJohn.Forte@Sun.COM MP_OID targetPortOid; 742*7836SJohn.Forte@Sun.COM MP_OID logicalUnitOid; 743*7836SJohn.Forte@Sun.COM MP_UINT64 logicalUnitNumber; 744*7836SJohn.Forte@Sun.COM MP_CHAR deviceFileName[256]; 745*7836SJohn.Forte@Sun.COM MP_UINT32 busNumber; 746*7836SJohn.Forte@Sun.COM MP_UINT32 portNumber; 747*7836SJohn.Forte@Sun.COM 748*7836SJohn.Forte@Sun.COM } MP_PATH_LOGICAL_UNIT_PROPERTIES; 749*7836SJohn.Forte@Sun.COM 750*7836SJohn.Forte@Sun.COM /** 751*7836SJohn.Forte@Sun.COM ******************************************************************************* 752*7836SJohn.Forte@Sun.COM * 753*7836SJohn.Forte@Sun.COM * Declaration of the MP_INITIATOR_PORT_PROPERTIES structure. 754*7836SJohn.Forte@Sun.COM * 755*7836SJohn.Forte@Sun.COM * This structure is returned by the MP_GetInitiatorPortProperties() API. 756*7836SJohn.Forte@Sun.COM * 757*7836SJohn.Forte@Sun.COM ******************************************************************************* 758*7836SJohn.Forte@Sun.COM */ 759*7836SJohn.Forte@Sun.COM typedef struct _MP_INITIATOR_PORT_PROPERTIES 760*7836SJohn.Forte@Sun.COM { 761*7836SJohn.Forte@Sun.COM MP_CHAR portID[256]; 762*7836SJohn.Forte@Sun.COM MP_PORT_TRANSPORT_TYPE portType; 763*7836SJohn.Forte@Sun.COM MP_CHAR osDeviceFile[256]; 764*7836SJohn.Forte@Sun.COM MP_WCHAR osFriendlyName[256]; 765*7836SJohn.Forte@Sun.COM 766*7836SJohn.Forte@Sun.COM } MP_INITIATOR_PORT_PROPERTIES; 767*7836SJohn.Forte@Sun.COM 768*7836SJohn.Forte@Sun.COM /** 769*7836SJohn.Forte@Sun.COM ******************************************************************************* 770*7836SJohn.Forte@Sun.COM * 771*7836SJohn.Forte@Sun.COM * Declaration of the MP_TARGET_PORT_PROPERTIES structure. 772*7836SJohn.Forte@Sun.COM * 773*7836SJohn.Forte@Sun.COM * This structure is returned by the MP_GetTargetPortProperties() API. 774*7836SJohn.Forte@Sun.COM * 775*7836SJohn.Forte@Sun.COM ******************************************************************************* 776*7836SJohn.Forte@Sun.COM */ 777*7836SJohn.Forte@Sun.COM typedef struct _MP_TARGET_PORT_PROPERTIES 778*7836SJohn.Forte@Sun.COM { 779*7836SJohn.Forte@Sun.COM MP_CHAR portID[256]; 780*7836SJohn.Forte@Sun.COM MP_UINT32 relativePortID; 781*7836SJohn.Forte@Sun.COM 782*7836SJohn.Forte@Sun.COM } MP_TARGET_PORT_PROPERTIES; 783*7836SJohn.Forte@Sun.COM 784*7836SJohn.Forte@Sun.COM /** 785*7836SJohn.Forte@Sun.COM ******************************************************************************* 786*7836SJohn.Forte@Sun.COM * 787*7836SJohn.Forte@Sun.COM * Declaration of the MP_TARGET_PORT_GROUP_PROPERTIES structure. 788*7836SJohn.Forte@Sun.COM * 789*7836SJohn.Forte@Sun.COM * This structure is returned by the MP_GetTargetPortGroupProperties() API. 790*7836SJohn.Forte@Sun.COM * 791*7836SJohn.Forte@Sun.COM ******************************************************************************* 792*7836SJohn.Forte@Sun.COM */ 793*7836SJohn.Forte@Sun.COM typedef struct _MP_TARGET_PORT_GROUP_PROPERTIES 794*7836SJohn.Forte@Sun.COM { 795*7836SJohn.Forte@Sun.COM MP_ACCESS_STATE_TYPE accessState; 796*7836SJohn.Forte@Sun.COM MP_BOOL explicitFailover; 797*7836SJohn.Forte@Sun.COM MP_BOOL supportsLuAssignment; 798*7836SJohn.Forte@Sun.COM MP_BOOL preferredLuPath; 799*7836SJohn.Forte@Sun.COM MP_UINT32 tpgID; 800*7836SJohn.Forte@Sun.COM 801*7836SJohn.Forte@Sun.COM } MP_TARGET_PORT_GROUP_PROPERTIES; 802*7836SJohn.Forte@Sun.COM 803*7836SJohn.Forte@Sun.COM /** 804*7836SJohn.Forte@Sun.COM ******************************************************************************* 805*7836SJohn.Forte@Sun.COM * 806*7836SJohn.Forte@Sun.COM * Declaration of the MP_TPG_STATE_PAIR structure. 807*7836SJohn.Forte@Sun.COM * 808*7836SJohn.Forte@Sun.COM * This structure is used as an argument for the MP_SetTPGAcess() API. 809*7836SJohn.Forte@Sun.COM * 810*7836SJohn.Forte@Sun.COM ******************************************************************************* 811*7836SJohn.Forte@Sun.COM */ 812*7836SJohn.Forte@Sun.COM typedef struct _MP_TPG_STATE_PAIR 813*7836SJohn.Forte@Sun.COM { 814*7836SJohn.Forte@Sun.COM MP_OID tpgOid; 815*7836SJohn.Forte@Sun.COM MP_ACCESS_STATE_TYPE desiredState; 816*7836SJohn.Forte@Sun.COM 817*7836SJohn.Forte@Sun.COM } MP_TPG_STATE_PAIR; 818*7836SJohn.Forte@Sun.COM 819*7836SJohn.Forte@Sun.COM /** 820*7836SJohn.Forte@Sun.COM ******************************************************************************* 821*7836SJohn.Forte@Sun.COM * 822*7836SJohn.Forte@Sun.COM * Declaration of call back function type for event support 823*7836SJohn.Forte@Sun.COM * 824*7836SJohn.Forte@Sun.COM ******************************************************************************* 825*7836SJohn.Forte@Sun.COM */ 826*7836SJohn.Forte@Sun.COM typedef void (* MP_OBJECT_PROPERTY_FN) ( 827*7836SJohn.Forte@Sun.COM MP_OID_LIST *pOidList, void *pCallerData 828*7836SJohn.Forte@Sun.COM ); 829*7836SJohn.Forte@Sun.COM 830*7836SJohn.Forte@Sun.COM typedef void (* MP_OBJECT_VISIBILITY_FN) ( 831*7836SJohn.Forte@Sun.COM MP_BOOL becomingVisible, MP_OID_LIST *pOidList, void *pCallerData 832*7836SJohn.Forte@Sun.COM ); 833*7836SJohn.Forte@Sun.COM 834*7836SJohn.Forte@Sun.COM void InitLibrary(); 835*7836SJohn.Forte@Sun.COM void ExitLibrary(); 836*7836SJohn.Forte@Sun.COM 837*7836SJohn.Forte@Sun.COM /** 838*7836SJohn.Forte@Sun.COM ****************************************************************************** 839*7836SJohn.Forte@Sun.COM * 840*7836SJohn.Forte@Sun.COM * The APIs for property and object related discovery. 841*7836SJohn.Forte@Sun.COM * 842*7836SJohn.Forte@Sun.COM * - MP_GetLibraryProperties 843*7836SJohn.Forte@Sun.COM * - MP_GetPluginOidList 844*7836SJohn.Forte@Sun.COM * - MP_GetPluginProperties 845*7836SJohn.Forte@Sun.COM * - MP_GetAssociatedPluginOid 846*7836SJohn.Forte@Sun.COM * - MP_GetObjectType 847*7836SJohn.Forte@Sun.COM * - MP_GetDeviceProductOidList 848*7836SJohn.Forte@Sun.COM * - MP_GetDeviceProductProperties 849*7836SJohn.Forte@Sun.COM * - MP_GetInitiatorPortOidList 850*7836SJohn.Forte@Sun.COM * - MP_GetInitiatorPortProperties 851*7836SJohn.Forte@Sun.COM * - MP_GetMultipathLus 852*7836SJohn.Forte@Sun.COM * - MP_GetMPLogicalUnitProperties 853*7836SJohn.Forte@Sun.COM * - MP_GetAssociatedPathOidList 854*7836SJohn.Forte@Sun.COM * - MP_GetPathLogicalUnitProperties 855*7836SJohn.Forte@Sun.COM * - MP_GetAssociatedTPGOidList 856*7836SJohn.Forte@Sun.COM * - MP_GetTargetPortGroupProperties 857*7836SJohn.Forte@Sun.COM * - MP_GetMPLuOidListFromTPG 858*7836SJohn.Forte@Sun.COM * - MP_GetProprietaryLoadBalanceOidList 859*7836SJohn.Forte@Sun.COM * - MP_GetProprietaryLoadBalanceProperties 860*7836SJohn.Forte@Sun.COM * - MP_GetTargetPortOidList 861*7836SJohn.Forte@Sun.COM * - MP_GetTargetPortProperties 862*7836SJohn.Forte@Sun.COM * 863*7836SJohn.Forte@Sun.COM ****************************************************************************** 864*7836SJohn.Forte@Sun.COM */ 865*7836SJohn.Forte@Sun.COM 866*7836SJohn.Forte@Sun.COM /** 867*7836SJohn.Forte@Sun.COM ******************************************************************************* 868*7836SJohn.Forte@Sun.COM * 869*7836SJohn.Forte@Sun.COM * Gets the properties of the MP API library that is being used. 870*7836SJohn.Forte@Sun.COM * 871*7836SJohn.Forte@Sun.COM * @param pProps 872*7836SJohn.Forte@Sun.COM * A pointer to an MP_LIBRARY_PROPERTIES structure allocated by 873*7836SJohn.Forte@Sun.COM * the caller. On successful return this structure will contain the 874*7836SJohn.Forte@Sun.COM * properties of the MP API library. 875*7836SJohn.Forte@Sun.COM * 876*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 877*7836SJohn.Forte@Sun.COM * an error occurred. 878*7836SJohn.Forte@Sun.COM * 879*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 880*7836SJohn.Forte@Sun.COM * Returned if the library properties were successfully returned. 881*7836SJohn.Forte@Sun.COM * 882*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 883*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding the 884*7836SJohn.Forte@Sun.COM * library properties is found to be invalid. 885*7836SJohn.Forte@Sun.COM * 886*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 887*7836SJohn.Forte@Sun.COM * Returned when the implementation does not support the API. 888*7836SJohn.Forte@Sun.COM * 889*7836SJohn.Forte@Sun.COM ****************************************************************************** 890*7836SJohn.Forte@Sun.COM */ 891*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetLibraryProperties( 892*7836SJohn.Forte@Sun.COM MP_LIBRARY_PROPERTIES *pProps 893*7836SJohn.Forte@Sun.COM ); 894*7836SJohn.Forte@Sun.COM 895*7836SJohn.Forte@Sun.COM /** 896*7836SJohn.Forte@Sun.COM ****************************************************************************** 897*7836SJohn.Forte@Sun.COM * 898*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all currently loaded plugins. 899*7836SJohn.Forte@Sun.COM * 900*7836SJohn.Forte@Sun.COM * @param ppList 901*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST. On successful 902*7836SJohn.Forte@Sun.COM * return this will contain a pointer to an @ref MP_OID_LIST 903*7836SJohn.Forte@Sun.COM * which contains the object IDs of all of the plugins currently 904*7836SJohn.Forte@Sun.COM * loaded by the library. 905*7836SJohn.Forte@Sun.COM * 906*7836SJohn.Forte@Sun.COM * @return MP_STATUS indicating if the operation was successful or 907*7836SJohn.Forte@Sun.COM * if an error occurred. 908*7836SJohn.Forte@Sun.COM * 909*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 910*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. This is 911*7836SJohn.Forte@Sun.COM * most likely to happen if an uninitialized object ID is passed to 912*7836SJohn.Forte@Sun.COM * the API. 913*7836SJohn.Forte@Sun.COM * 914*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 915*7836SJohn.Forte@Sun.COM * Returned if ppList is NULL or specifies a memory area to which data 916*7836SJohn.Forte@Sun.COM * cannot be written. MP_STATUS_SUCCESS Returned when the operation is 917*7836SJohn.Forte@Sun.COM * successful. 918*7836SJohn.Forte@Sun.COM * 919*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 920*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs* 921*7836SJohn.Forte@Sun.COM * 922*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 923*7836SJohn.Forte@Sun.COM * Returned if the plugin ID list was successfully returned. 924*7836SJohn.Forte@Sun.COM * 925*7836SJohn.Forte@Sun.COM ****************************************************************************** 926*7836SJohn.Forte@Sun.COM */ 927*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetPluginOidList( 928*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 929*7836SJohn.Forte@Sun.COM ); 930*7836SJohn.Forte@Sun.COM 931*7836SJohn.Forte@Sun.COM /** 932*7836SJohn.Forte@Sun.COM ******************************************************************************* 933*7836SJohn.Forte@Sun.COM * 934*7836SJohn.Forte@Sun.COM * Gets the properties of the specified vendor plugin. 935*7836SJohn.Forte@Sun.COM * 936*7836SJohn.Forte@Sun.COM * @param oid 937*7836SJohn.Forte@Sun.COM * The ID of the plugin whose properties are being retrieved. 938*7836SJohn.Forte@Sun.COM * 939*7836SJohn.Forte@Sun.COM * @param pProps 940*7836SJohn.Forte@Sun.COM * A pointer to an @ref MP_PLUGIN_PROPERTIES structure allocated by 941*7836SJohn.Forte@Sun.COM * the caller. On successful return this will contain the properties 942*7836SJohn.Forte@Sun.COM * of the plugin specified by pluginOid. 943*7836SJohn.Forte@Sun.COM * 944*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if an 945*7836SJohn.Forte@Sun.COM * error occurred. 946*7836SJohn.Forte@Sun.COM * 947*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 948*7836SJohn.Forte@Sun.COM * Returned if the plugin properties were successfully returned. 949*7836SJohn.Forte@Sun.COM * 950*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 951*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 952*7836SJohn.Forte@Sun.COM * 953*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 954*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 955*7836SJohn.Forte@Sun.COM * the system. 956*7836SJohn.Forte@Sun.COM * 957*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 958*7836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to 959*7836SJohn.Forte@Sun.COM * which data cannot be written. 960*7836SJohn.Forte@Sun.COM * 961*7836SJohn.Forte@Sun.COM ******************************************************************************* 962*7836SJohn.Forte@Sun.COM */ 963*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetPluginProperties( 964*7836SJohn.Forte@Sun.COM MP_OID oid, 965*7836SJohn.Forte@Sun.COM MP_PLUGIN_PROPERTIES *pProps 966*7836SJohn.Forte@Sun.COM ); 967*7836SJohn.Forte@Sun.COM 968*7836SJohn.Forte@Sun.COM 969*7836SJohn.Forte@Sun.COM /** 970*7836SJohn.Forte@Sun.COM ******************************************************************************* 971*7836SJohn.Forte@Sun.COM * 972*7836SJohn.Forte@Sun.COM * Gets the object ID for the plugin associated with the specified object ID. 973*7836SJohn.Forte@Sun.COM * 974*7836SJohn.Forte@Sun.COM * @param oid 975*7836SJohn.Forte@Sun.COM * The object ID of an object that has been received from a previous 976*7836SJohn.Forte@Sun.COM * library call. 977*7836SJohn.Forte@Sun.COM * 978*7836SJohn.Forte@Sun.COM * @param pPluginOid 979*7836SJohn.Forte@Sun.COM * A pointer to an MP_OID structure allocated by the caller. On 980*7836SJohn.Forte@Sun.COM * successful return this will contain the object ID of the plugin 981*7836SJohn.Forte@Sun.COM * associated with the object specified by @a objectId. 982*7836SJohn.Forte@Sun.COM * 983*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 984*7836SJohn.Forte@Sun.COM * an error occurred. 985*7836SJohn.Forte@Sun.COM * 986*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 987*7836SJohn.Forte@Sun.COM * Returned if the associated plugin ID was successfully returned. 988*7836SJohn.Forte@Sun.COM * 989*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 990*7836SJohn.Forte@Sun.COM * Returned if oid does not specify a plugin that is currently known to 991*7836SJohn.Forte@Sun.COM * the system. 992*7836SJohn.Forte@Sun.COM * 993*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 994*7836SJohn.Forte@Sun.COM * Returned if 'oid' specifies an object not owned by a plugin or 995*7836SJohn.Forte@Sun.COM * if pPluginOid is NULL or specifies a memory area to which data 996*7836SJohn.Forte@Sun.COM * cannot be written. 997*7836SJohn.Forte@Sun.COM * 998*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 999*7836SJohn.Forte@Sun.COM * Returned if 'oid' specifies an object with an invalid type. 1000*7836SJohn.Forte@Sun.COM * 1001*7836SJohn.Forte@Sun.COM ******************************************************************************* 1002*7836SJohn.Forte@Sun.COM */ 1003*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetAssociatedPluginOid( 1004*7836SJohn.Forte@Sun.COM MP_OID oid, 1005*7836SJohn.Forte@Sun.COM MP_OID *pPluginOid 1006*7836SJohn.Forte@Sun.COM ); 1007*7836SJohn.Forte@Sun.COM 1008*7836SJohn.Forte@Sun.COM 1009*7836SJohn.Forte@Sun.COM /** 1010*7836SJohn.Forte@Sun.COM ******************************************************************************* 1011*7836SJohn.Forte@Sun.COM * 1012*7836SJohn.Forte@Sun.COM * Gets the object type of an initialized object ID. 1013*7836SJohn.Forte@Sun.COM * 1014*7836SJohn.Forte@Sun.COM * @param oid 1015*7836SJohn.Forte@Sun.COM * The object ID of an object that has been received from a previous 1016*7836SJohn.Forte@Sun.COM * library call. 1017*7836SJohn.Forte@Sun.COM * 1018*7836SJohn.Forte@Sun.COM * @param pObjectType 1019*7836SJohn.Forte@Sun.COM * A pointer to an MP_OBJECT_TYPE variable allocated by the caller. 1020*7836SJohn.Forte@Sun.COM * On successful return this will contain the object type of oid. 1021*7836SJohn.Forte@Sun.COM * 1022*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or 1023*7836SJohn.Forte@Sun.COM * if an error occurred. 1024*7836SJohn.Forte@Sun.COM * 1025*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1026*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1027*7836SJohn.Forte@Sun.COM * the system. 1028*7836SJohn.Forte@Sun.COM * 1029*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1030*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1031*7836SJohn.Forte@Sun.COM * 1032*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1033*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1034*7836SJohn.Forte@Sun.COM * 1035*7836SJohn.Forte@Sun.COM ******************************************************************************* 1036*7836SJohn.Forte@Sun.COM */ 1037*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetObjectType( 1038*7836SJohn.Forte@Sun.COM MP_OID oid, 1039*7836SJohn.Forte@Sun.COM MP_OBJECT_TYPE *pObjectType 1040*7836SJohn.Forte@Sun.COM ); 1041*7836SJohn.Forte@Sun.COM 1042*7836SJohn.Forte@Sun.COM 1043*7836SJohn.Forte@Sun.COM /** 1044*7836SJohn.Forte@Sun.COM ******************************************************************************* 1045*7836SJohn.Forte@Sun.COM * 1046*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the device product properties 1047*7836SJohn.Forte@Sun.COM * associated with this plugin. 1048*7836SJohn.Forte@Sun.COM * 1049*7836SJohn.Forte@Sun.COM * @param oid 1050*7836SJohn.Forte@Sun.COM * The object ID of plugin. 1051*7836SJohn.Forte@Sun.COM * 1052*7836SJohn.Forte@Sun.COM * @param ppList 1053*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST structure. 1054*7836SJohn.Forte@Sun.COM * On a successful return, this will contain a pointer to 1055*7836SJohn.Forte@Sun.COM * an MP_OID_LIST that contains the object IDs of all the device 1056*7836SJohn.Forte@Sun.COM * product descriptors associated with the specified plugin. 1057*7836SJohn.Forte@Sun.COM * 1058*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1059*7836SJohn.Forte@Sun.COM * an error occurred. 1060*7836SJohn.Forte@Sun.COM * 1061*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1062*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1063*7836SJohn.Forte@Sun.COM * 1064*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1065*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding 1066*7836SJohn.Forte@Sun.COM * the device product list is found to be invalid. 1067*7836SJohn.Forte@Sun.COM * 1068*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1069*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1070*7836SJohn.Forte@Sun.COM * 1071*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1072*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1073*7836SJohn.Forte@Sun.COM * 1074*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1075*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1076*7836SJohn.Forte@Sun.COM * 1077*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 1078*7836SJohn.Forte@Sun.COM * Returned when the API is not supported. 1079*7836SJohn.Forte@Sun.COM * 1080*7836SJohn.Forte@Sun.COM ******************************************************************************* 1081*7836SJohn.Forte@Sun.COM */ 1082*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetDeviceProductOidList( 1083*7836SJohn.Forte@Sun.COM MP_OID oid, 1084*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 1085*7836SJohn.Forte@Sun.COM ); 1086*7836SJohn.Forte@Sun.COM 1087*7836SJohn.Forte@Sun.COM /** 1088*7836SJohn.Forte@Sun.COM ******************************************************************************* 1089*7836SJohn.Forte@Sun.COM * 1090*7836SJohn.Forte@Sun.COM * Gets the device product properties of the specified plugin oid. 1091*7836SJohn.Forte@Sun.COM * 1092*7836SJohn.Forte@Sun.COM * @param oid 1093*7836SJohn.Forte@Sun.COM * The object ID of the plugin. 1094*7836SJohn.Forte@Sun.COM * 1095*7836SJohn.Forte@Sun.COM * @param ppProps 1096*7836SJohn.Forte@Sun.COM * A pointer to an MP_DEVICE_PRODUCT_PROPERTIES structure 1097*7836SJohn.Forte@Sun.COM * allocated by the caller. On successful return it will contain 1098*7836SJohn.Forte@Sun.COM * a pointer to an MP_DEVICE_PRODUCT_PROPERTIES structure allocated 1099*7836SJohn.Forte@Sun.COM * by the library. 1100*7836SJohn.Forte@Sun.COM * 1101*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1102*7836SJohn.Forte@Sun.COM * an error occurred. 1103*7836SJohn.Forte@Sun.COM * 1104*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1105*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1106*7836SJohn.Forte@Sun.COM * 1107*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1108*7836SJohn.Forte@Sun.COM * Returned if ppProps pointer passed as placeholder for holding 1109*7836SJohn.Forte@Sun.COM * the device product properties is found to be invalid. 1110*7836SJohn.Forte@Sun.COM * 1111*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1112*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1113*7836SJohn.Forte@Sun.COM * 1114*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1115*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1116*7836SJohn.Forte@Sun.COM * 1117*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1118*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1119*7836SJohn.Forte@Sun.COM * 1120*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 1121*7836SJohn.Forte@Sun.COM * Returned when the API is not supported. 1122*7836SJohn.Forte@Sun.COM * 1123*7836SJohn.Forte@Sun.COM ******************************************************************************* 1124*7836SJohn.Forte@Sun.COM */ 1125*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetDeviceProductProperties( 1126*7836SJohn.Forte@Sun.COM MP_OID oid, 1127*7836SJohn.Forte@Sun.COM MP_DEVICE_PRODUCT_PROPERTIES *pProps 1128*7836SJohn.Forte@Sun.COM ); 1129*7836SJohn.Forte@Sun.COM 1130*7836SJohn.Forte@Sun.COM /** 1131*7836SJohn.Forte@Sun.COM ******************************************************************************* 1132*7836SJohn.Forte@Sun.COM * 1133*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the initiator ports associated 1134*7836SJohn.Forte@Sun.COM * with this plugin. 1135*7836SJohn.Forte@Sun.COM * 1136*7836SJohn.Forte@Sun.COM * @param oid 1137*7836SJohn.Forte@Sun.COM * The object ID of plugin. 1138*7836SJohn.Forte@Sun.COM * 1139*7836SJohn.Forte@Sun.COM * @param ppList 1140*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST structure. 1141*7836SJohn.Forte@Sun.COM * On a successful return, this will contain a pointer to 1142*7836SJohn.Forte@Sun.COM * an MP_OID_LIST that contains the object IDs of all the initiator 1143*7836SJohn.Forte@Sun.COM * ports associated with the specified plugin. 1144*7836SJohn.Forte@Sun.COM * 1145*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1146*7836SJohn.Forte@Sun.COM * an error occurred. 1147*7836SJohn.Forte@Sun.COM * 1148*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1149*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1150*7836SJohn.Forte@Sun.COM * 1151*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1152*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding 1153*7836SJohn.Forte@Sun.COM * the initiator port list is found to be invalid. 1154*7836SJohn.Forte@Sun.COM * 1155*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1156*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1157*7836SJohn.Forte@Sun.COM * 1158*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1159*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1160*7836SJohn.Forte@Sun.COM * 1161*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1162*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1163*7836SJohn.Forte@Sun.COM * 1164*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 1165*7836SJohn.Forte@Sun.COM * Returned when the API is not supported. 1166*7836SJohn.Forte@Sun.COM * 1167*7836SJohn.Forte@Sun.COM ******************************************************************************* 1168*7836SJohn.Forte@Sun.COM */ 1169*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetInitiatorPortOidList( 1170*7836SJohn.Forte@Sun.COM MP_OID oid, 1171*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 1172*7836SJohn.Forte@Sun.COM ); 1173*7836SJohn.Forte@Sun.COM 1174*7836SJohn.Forte@Sun.COM /** 1175*7836SJohn.Forte@Sun.COM ******************************************************************************* 1176*7836SJohn.Forte@Sun.COM * 1177*7836SJohn.Forte@Sun.COM * Gets the properties of the specified initiator port. 1178*7836SJohn.Forte@Sun.COM * 1179*7836SJohn.Forte@Sun.COM * @param oid 1180*7836SJohn.Forte@Sun.COM * The object ID of the initiator port. 1181*7836SJohn.Forte@Sun.COM * 1182*7836SJohn.Forte@Sun.COM * @param pProps 1183*7836SJohn.Forte@Sun.COM * A pointer to an MP_INITIATOR_PORT_PROPERTIES structure 1184*7836SJohn.Forte@Sun.COM * allocated by the caller. On successful return, this structure 1185*7836SJohn.Forte@Sun.COM * will contain the properties of the port specified by oid. 1186*7836SJohn.Forte@Sun.COM * 1187*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1188*7836SJohn.Forte@Sun.COM * an error occurred. 1189*7836SJohn.Forte@Sun.COM * 1190*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1191*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1192*7836SJohn.Forte@Sun.COM * 1193*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1194*7836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to 1195*7836SJohn.Forte@Sun.COM * which data cannot be written. 1196*7836SJohn.Forte@Sun.COM * 1197*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1198*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1199*7836SJohn.Forte@Sun.COM * 1200*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1201*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1202*7836SJohn.Forte@Sun.COM * the system. 1203*7836SJohn.Forte@Sun.COM * 1204*7836SJohn.Forte@Sun.COM ******************************************************************************* 1205*7836SJohn.Forte@Sun.COM */ 1206*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetInitiatorPortProperties( 1207*7836SJohn.Forte@Sun.COM MP_OID oid, 1208*7836SJohn.Forte@Sun.COM MP_INITIATOR_PORT_PROPERTIES *pProps 1209*7836SJohn.Forte@Sun.COM ); 1210*7836SJohn.Forte@Sun.COM 1211*7836SJohn.Forte@Sun.COM /** 1212*7836SJohn.Forte@Sun.COM ******************************************************************************* 1213*7836SJohn.Forte@Sun.COM * 1214*7836SJohn.Forte@Sun.COM * Gets a list of multipath logical units associated to a plugin. 1215*7836SJohn.Forte@Sun.COM * 1216*7836SJohn.Forte@Sun.COM * @param oid 1217*7836SJohn.Forte@Sun.COM * The object ID of plugin. 1218*7836SJohn.Forte@Sun.COM * 1219*7836SJohn.Forte@Sun.COM * @param ppList 1220*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST structure. 1221*7836SJohn.Forte@Sun.COM * On a successful return, this will contain a pointer to 1222*7836SJohn.Forte@Sun.COM * an MP_OID_LIST that contains the object IDs of all the multipath 1223*7836SJohn.Forte@Sun.COM * logical units associated with the specified plugin. 1224*7836SJohn.Forte@Sun.COM * 1225*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1226*7836SJohn.Forte@Sun.COM * an error occurred. 1227*7836SJohn.Forte@Sun.COM * 1228*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1229*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1230*7836SJohn.Forte@Sun.COM * 1231*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1232*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding 1233*7836SJohn.Forte@Sun.COM * the multipath logical unit list is found to be invalid. 1234*7836SJohn.Forte@Sun.COM * 1235*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1236*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1237*7836SJohn.Forte@Sun.COM * 1238*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1239*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1240*7836SJohn.Forte@Sun.COM * 1241*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1242*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1243*7836SJohn.Forte@Sun.COM * 1244*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 1245*7836SJohn.Forte@Sun.COM * Returned when the API is not supported. 1246*7836SJohn.Forte@Sun.COM * 1247*7836SJohn.Forte@Sun.COM ******************************************************************************* 1248*7836SJohn.Forte@Sun.COM */ 1249*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetMultipathLus( 1250*7836SJohn.Forte@Sun.COM MP_OID oid, 1251*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 1252*7836SJohn.Forte@Sun.COM ); 1253*7836SJohn.Forte@Sun.COM 1254*7836SJohn.Forte@Sun.COM /** 1255*7836SJohn.Forte@Sun.COM ******************************************************************************* 1256*7836SJohn.Forte@Sun.COM * 1257*7836SJohn.Forte@Sun.COM * Gets the properties of the specified logical unit. 1258*7836SJohn.Forte@Sun.COM * 1259*7836SJohn.Forte@Sun.COM * @param oid 1260*7836SJohn.Forte@Sun.COM * The object ID of the multipath logical unit. 1261*7836SJohn.Forte@Sun.COM * 1262*7836SJohn.Forte@Sun.COM * @param pProps 1263*7836SJohn.Forte@Sun.COM * A pointer to an MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES structure 1264*7836SJohn.Forte@Sun.COM * allocated by the caller. On successful return, this structure 1265*7836SJohn.Forte@Sun.COM * will contain the properties of the port specified by oid. 1266*7836SJohn.Forte@Sun.COM * 1267*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1268*7836SJohn.Forte@Sun.COM * an error occurred. 1269*7836SJohn.Forte@Sun.COM * 1270*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1271*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1272*7836SJohn.Forte@Sun.COM * 1273*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1274*7836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to 1275*7836SJohn.Forte@Sun.COM * which data cannot be written. 1276*7836SJohn.Forte@Sun.COM * 1277*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1278*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1279*7836SJohn.Forte@Sun.COM * 1280*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1281*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1282*7836SJohn.Forte@Sun.COM * the system. 1283*7836SJohn.Forte@Sun.COM * 1284*7836SJohn.Forte@Sun.COM ******************************************************************************* 1285*7836SJohn.Forte@Sun.COM */ 1286*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetMPLogicalUnitProperties( 1287*7836SJohn.Forte@Sun.COM MP_OID oid, 1288*7836SJohn.Forte@Sun.COM MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES *pProps 1289*7836SJohn.Forte@Sun.COM ); 1290*7836SJohn.Forte@Sun.COM 1291*7836SJohn.Forte@Sun.COM /** 1292*7836SJohn.Forte@Sun.COM ******************************************************************************* 1293*7836SJohn.Forte@Sun.COM * 1294*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the path logical units associated 1295*7836SJohn.Forte@Sun.COM * with the specified multipath logical unit, initiator port, or target port. 1296*7836SJohn.Forte@Sun.COM * 1297*7836SJohn.Forte@Sun.COM * @param oid 1298*7836SJohn.Forte@Sun.COM * The object ID of multipath logical unit, initiator port, or 1299*7836SJohn.Forte@Sun.COM * target port. 1300*7836SJohn.Forte@Sun.COM * 1301*7836SJohn.Forte@Sun.COM * @param ppList 1302*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST structure. 1303*7836SJohn.Forte@Sun.COM * On a successful return, this will contain a pointer to 1304*7836SJohn.Forte@Sun.COM * an MP_OID_LIST that contains the object IDs of all the mp path 1305*7836SJohn.Forte@Sun.COM * logical units associated with the specified OID. 1306*7836SJohn.Forte@Sun.COM * 1307*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1308*7836SJohn.Forte@Sun.COM * an error occurred. 1309*7836SJohn.Forte@Sun.COM * 1310*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1311*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1312*7836SJohn.Forte@Sun.COM * 1313*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1314*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding 1315*7836SJohn.Forte@Sun.COM * the device product list is found to be invalid. 1316*7836SJohn.Forte@Sun.COM * 1317*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1318*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1319*7836SJohn.Forte@Sun.COM * 1320*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1321*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1322*7836SJohn.Forte@Sun.COM * 1323*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1324*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1325*7836SJohn.Forte@Sun.COM * 1326*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1327*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1328*7836SJohn.Forte@Sun.COM * the system. 1329*7836SJohn.Forte@Sun.COM * 1330*7836SJohn.Forte@Sun.COM ******************************************************************************* 1331*7836SJohn.Forte@Sun.COM */ 1332*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetAssociatedPathOidList( 1333*7836SJohn.Forte@Sun.COM MP_OID oid, 1334*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 1335*7836SJohn.Forte@Sun.COM ); 1336*7836SJohn.Forte@Sun.COM 1337*7836SJohn.Forte@Sun.COM /** 1338*7836SJohn.Forte@Sun.COM ******************************************************************************* 1339*7836SJohn.Forte@Sun.COM * 1340*7836SJohn.Forte@Sun.COM * Gets the properties of the specified path logical unit. 1341*7836SJohn.Forte@Sun.COM * 1342*7836SJohn.Forte@Sun.COM * @param oid 1343*7836SJohn.Forte@Sun.COM * The object ID of the path logical unit. 1344*7836SJohn.Forte@Sun.COM * 1345*7836SJohn.Forte@Sun.COM * @param pProps 1346*7836SJohn.Forte@Sun.COM * A pointer to an MP_PATH_LOGICAL_UNIT_PROPERTIES structure 1347*7836SJohn.Forte@Sun.COM * allocated by the caller. On successful return, this structure 1348*7836SJohn.Forte@Sun.COM * will contain the properties of the port specified by oid. 1349*7836SJohn.Forte@Sun.COM * 1350*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1351*7836SJohn.Forte@Sun.COM * an error occurred. 1352*7836SJohn.Forte@Sun.COM * 1353*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1354*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1355*7836SJohn.Forte@Sun.COM * 1356*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1357*7836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to 1358*7836SJohn.Forte@Sun.COM * which data cannot be written. 1359*7836SJohn.Forte@Sun.COM * 1360*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1361*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1362*7836SJohn.Forte@Sun.COM * 1363*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1364*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1365*7836SJohn.Forte@Sun.COM * the system. 1366*7836SJohn.Forte@Sun.COM * 1367*7836SJohn.Forte@Sun.COM ******************************************************************************* 1368*7836SJohn.Forte@Sun.COM */ 1369*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetPathLogicalUnitProperties( 1370*7836SJohn.Forte@Sun.COM MP_OID oid, 1371*7836SJohn.Forte@Sun.COM MP_PATH_LOGICAL_UNIT_PROPERTIES *pProps 1372*7836SJohn.Forte@Sun.COM ); 1373*7836SJohn.Forte@Sun.COM 1374*7836SJohn.Forte@Sun.COM /** 1375*7836SJohn.Forte@Sun.COM ******************************************************************************* 1376*7836SJohn.Forte@Sun.COM * 1377*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the target port group associated 1378*7836SJohn.Forte@Sun.COM * with the specified multipath logical unit. 1379*7836SJohn.Forte@Sun.COM * 1380*7836SJohn.Forte@Sun.COM * @param oid 1381*7836SJohn.Forte@Sun.COM * The object ID of the multiple logical unit. 1382*7836SJohn.Forte@Sun.COM * 1383*7836SJohn.Forte@Sun.COM * @param ppList 1384*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST structure. 1385*7836SJohn.Forte@Sun.COM * On a successful return, this will contain a pointer to 1386*7836SJohn.Forte@Sun.COM * an MP_OID_LIST that contains the object IDs of all the target 1387*7836SJohn.Forte@Sun.COM * port group associated with the specified multipath logical unit. 1388*7836SJohn.Forte@Sun.COM * 1389*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1390*7836SJohn.Forte@Sun.COM * an error occurred. 1391*7836SJohn.Forte@Sun.COM * 1392*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1393*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1394*7836SJohn.Forte@Sun.COM * 1395*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1396*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding 1397*7836SJohn.Forte@Sun.COM * the target port group list is found to be invalid. 1398*7836SJohn.Forte@Sun.COM * 1399*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1400*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1401*7836SJohn.Forte@Sun.COM * 1402*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1403*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1404*7836SJohn.Forte@Sun.COM * 1405*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1406*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1407*7836SJohn.Forte@Sun.COM * 1408*7836SJohn.Forte@Sun.COM * 1409*7836SJohn.Forte@Sun.COM ******************************************************************************* 1410*7836SJohn.Forte@Sun.COM */ 1411*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetAssociatedTPGOidList( 1412*7836SJohn.Forte@Sun.COM MP_OID oid, 1413*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 1414*7836SJohn.Forte@Sun.COM ); 1415*7836SJohn.Forte@Sun.COM 1416*7836SJohn.Forte@Sun.COM /** 1417*7836SJohn.Forte@Sun.COM ******************************************************************************* 1418*7836SJohn.Forte@Sun.COM * 1419*7836SJohn.Forte@Sun.COM * Gets the properties of the specified target port group. 1420*7836SJohn.Forte@Sun.COM * 1421*7836SJohn.Forte@Sun.COM * @param oid 1422*7836SJohn.Forte@Sun.COM * The object ID of the target port group. 1423*7836SJohn.Forte@Sun.COM * 1424*7836SJohn.Forte@Sun.COM * @param pProps 1425*7836SJohn.Forte@Sun.COM * A pointer to an MP_TARGET_PORT_GROUP_PROPERTIES structure 1426*7836SJohn.Forte@Sun.COM * allocated by the caller. On successful return, this structure 1427*7836SJohn.Forte@Sun.COM * will contain the properties of the port specified by oid. 1428*7836SJohn.Forte@Sun.COM * 1429*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1430*7836SJohn.Forte@Sun.COM * an error occurred. 1431*7836SJohn.Forte@Sun.COM * 1432*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1433*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1434*7836SJohn.Forte@Sun.COM * 1435*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1436*7836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to 1437*7836SJohn.Forte@Sun.COM * which data cannot be written. 1438*7836SJohn.Forte@Sun.COM * 1439*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1440*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1441*7836SJohn.Forte@Sun.COM * 1442*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1443*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1444*7836SJohn.Forte@Sun.COM * the system. 1445*7836SJohn.Forte@Sun.COM * 1446*7836SJohn.Forte@Sun.COM ******************************************************************************* 1447*7836SJohn.Forte@Sun.COM */ 1448*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetTargetPortGroupProperties( 1449*7836SJohn.Forte@Sun.COM MP_OID oid, 1450*7836SJohn.Forte@Sun.COM MP_TARGET_PORT_GROUP_PROPERTIES *pProps 1451*7836SJohn.Forte@Sun.COM ); 1452*7836SJohn.Forte@Sun.COM 1453*7836SJohn.Forte@Sun.COM /** 1454*7836SJohn.Forte@Sun.COM ******************************************************************************* 1455*7836SJohn.Forte@Sun.COM * 1456*7836SJohn.Forte@Sun.COM * Gets a list of multipath logical units associated with the specific target 1457*7836SJohn.Forte@Sun.COM * port group. 1458*7836SJohn.Forte@Sun.COM * 1459*7836SJohn.Forte@Sun.COM * @param oid 1460*7836SJohn.Forte@Sun.COM * The object ID of the target port group. 1461*7836SJohn.Forte@Sun.COM * 1462*7836SJohn.Forte@Sun.COM * @param ppList 1463*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST structure. 1464*7836SJohn.Forte@Sun.COM * On a successful return, this will contain a pointer to 1465*7836SJohn.Forte@Sun.COM * an MP_OID_LIST that contains the object IDs of all the multipath 1466*7836SJohn.Forte@Sun.COM * logical units associated with the specified target port group. 1467*7836SJohn.Forte@Sun.COM * 1468*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1469*7836SJohn.Forte@Sun.COM * an error occurred. 1470*7836SJohn.Forte@Sun.COM * 1471*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1472*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1473*7836SJohn.Forte@Sun.COM * 1474*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1475*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding 1476*7836SJohn.Forte@Sun.COM * the multipath logical unit list is found to be invalid. 1477*7836SJohn.Forte@Sun.COM * 1478*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1479*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1480*7836SJohn.Forte@Sun.COM * 1481*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1482*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1483*7836SJohn.Forte@Sun.COM * 1484*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1485*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1486*7836SJohn.Forte@Sun.COM * 1487*7836SJohn.Forte@Sun.COM ******************************************************************************* 1488*7836SJohn.Forte@Sun.COM */ 1489*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetMPLuOidListFromTPG( 1490*7836SJohn.Forte@Sun.COM MP_OID oid, 1491*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 1492*7836SJohn.Forte@Sun.COM ); 1493*7836SJohn.Forte@Sun.COM 1494*7836SJohn.Forte@Sun.COM /** 1495*7836SJohn.Forte@Sun.COM ******************************************************************************* 1496*7836SJohn.Forte@Sun.COM * 1497*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the proprietary load balance 1498*7836SJohn.Forte@Sun.COM * algorithms associated with this plugin. 1499*7836SJohn.Forte@Sun.COM * 1500*7836SJohn.Forte@Sun.COM * @param oid 1501*7836SJohn.Forte@Sun.COM * The object ID of the plugin. 1502*7836SJohn.Forte@Sun.COM * 1503*7836SJohn.Forte@Sun.COM * @param ppList 1504*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST structure. 1505*7836SJohn.Forte@Sun.COM * On a successful return, this will contain a pointer to 1506*7836SJohn.Forte@Sun.COM * an MP_OID_LIST that contains the object IDs of all the proprietary 1507*7836SJohn.Forte@Sun.COM * load balance algorithms associated with the specified plugin. 1508*7836SJohn.Forte@Sun.COM * 1509*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1510*7836SJohn.Forte@Sun.COM * an error occurred. 1511*7836SJohn.Forte@Sun.COM * 1512*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1513*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1514*7836SJohn.Forte@Sun.COM * 1515*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1516*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding 1517*7836SJohn.Forte@Sun.COM * the proprietary load balance oid list is found to be invalid. 1518*7836SJohn.Forte@Sun.COM * 1519*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1520*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1521*7836SJohn.Forte@Sun.COM * 1522*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1523*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1524*7836SJohn.Forte@Sun.COM * 1525*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1526*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1527*7836SJohn.Forte@Sun.COM * 1528*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 1529*7836SJohn.Forte@Sun.COM * Returned when the API is not supported. 1530*7836SJohn.Forte@Sun.COM * 1531*7836SJohn.Forte@Sun.COM ******************************************************************************* 1532*7836SJohn.Forte@Sun.COM */ 1533*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetProprietaryLoadBalanceOidList( 1534*7836SJohn.Forte@Sun.COM MP_OID oid, 1535*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 1536*7836SJohn.Forte@Sun.COM ); 1537*7836SJohn.Forte@Sun.COM 1538*7836SJohn.Forte@Sun.COM /** 1539*7836SJohn.Forte@Sun.COM ******************************************************************************* 1540*7836SJohn.Forte@Sun.COM * 1541*7836SJohn.Forte@Sun.COM * Gets the properties of the specified load balance properties structure. 1542*7836SJohn.Forte@Sun.COM * 1543*7836SJohn.Forte@Sun.COM * @param oid 1544*7836SJohn.Forte@Sun.COM * The object ID of the proprietary load balance structure. 1545*7836SJohn.Forte@Sun.COM * 1546*7836SJohn.Forte@Sun.COM * @param pProps 1547*7836SJohn.Forte@Sun.COM * A pointer to an MP_PROPRIETARY_LOAD_BALANCE_PROPERTIES structure 1548*7836SJohn.Forte@Sun.COM * allocated by the caller. On successful return, this structure 1549*7836SJohn.Forte@Sun.COM * will contain the properties of the port specified by oid. 1550*7836SJohn.Forte@Sun.COM * 1551*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1552*7836SJohn.Forte@Sun.COM * an error occurred. 1553*7836SJohn.Forte@Sun.COM * 1554*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1555*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1556*7836SJohn.Forte@Sun.COM * 1557*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1558*7836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to 1559*7836SJohn.Forte@Sun.COM * which data cannot be written. 1560*7836SJohn.Forte@Sun.COM * 1561*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1562*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1563*7836SJohn.Forte@Sun.COM * 1564*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1565*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1566*7836SJohn.Forte@Sun.COM * the system. 1567*7836SJohn.Forte@Sun.COM * 1568*7836SJohn.Forte@Sun.COM ******************************************************************************* 1569*7836SJohn.Forte@Sun.COM */ 1570*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetProprietaryLoadBalanceProperties( 1571*7836SJohn.Forte@Sun.COM MP_OID oid, 1572*7836SJohn.Forte@Sun.COM MP_PROPRIETARY_LOAD_BALANCE_PROPERTIES *pProps 1573*7836SJohn.Forte@Sun.COM ); 1574*7836SJohn.Forte@Sun.COM 1575*7836SJohn.Forte@Sun.COM /** 1576*7836SJohn.Forte@Sun.COM ******************************************************************************* 1577*7836SJohn.Forte@Sun.COM * 1578*7836SJohn.Forte@Sun.COM * Gets a list of the object IDs of the target ports in the specified target 1579*7836SJohn.Forte@Sun.COM * port group. 1580*7836SJohn.Forte@Sun.COM * 1581*7836SJohn.Forte@Sun.COM * @param oid 1582*7836SJohn.Forte@Sun.COM * The object ID of the target port group. 1583*7836SJohn.Forte@Sun.COM * 1584*7836SJohn.Forte@Sun.COM * @param ppList 1585*7836SJohn.Forte@Sun.COM * A pointer to a pointer to an MP_OID_LIST structure. 1586*7836SJohn.Forte@Sun.COM * On a successful return, this will contain a pointer to 1587*7836SJohn.Forte@Sun.COM * an MP_OID_LIST that contains the object IDs of all the target ports 1588*7836SJohn.Forte@Sun.COM * associated with the specified target port group. 1589*7836SJohn.Forte@Sun.COM * 1590*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1591*7836SJohn.Forte@Sun.COM * an error occurred. 1592*7836SJohn.Forte@Sun.COM * 1593*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1594*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1595*7836SJohn.Forte@Sun.COM * 1596*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1597*7836SJohn.Forte@Sun.COM * Returned if ppList pointer passed as placeholder for holding 1598*7836SJohn.Forte@Sun.COM * the multipath logical unit list is found to be invalid. 1599*7836SJohn.Forte@Sun.COM * 1600*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1601*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1602*7836SJohn.Forte@Sun.COM * 1603*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1604*7836SJohn.Forte@Sun.COM * Returned when the plugin for the specified oid is not found. 1605*7836SJohn.Forte@Sun.COM * 1606*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INSUFFICIENT_MEMORY 1607*7836SJohn.Forte@Sun.COM * Returned when memory allocation failure occurs 1608*7836SJohn.Forte@Sun.COM * 1609*7836SJohn.Forte@Sun.COM ******************************************************************************* 1610*7836SJohn.Forte@Sun.COM */ 1611*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetTargetPortOidList( 1612*7836SJohn.Forte@Sun.COM MP_OID oid, 1613*7836SJohn.Forte@Sun.COM MP_OID_LIST **ppList 1614*7836SJohn.Forte@Sun.COM ); 1615*7836SJohn.Forte@Sun.COM 1616*7836SJohn.Forte@Sun.COM /** 1617*7836SJohn.Forte@Sun.COM ******************************************************************************* 1618*7836SJohn.Forte@Sun.COM * 1619*7836SJohn.Forte@Sun.COM * Gets the properties of the specified target port. 1620*7836SJohn.Forte@Sun.COM * 1621*7836SJohn.Forte@Sun.COM * @param oid 1622*7836SJohn.Forte@Sun.COM * The object ID of the target port. 1623*7836SJohn.Forte@Sun.COM * 1624*7836SJohn.Forte@Sun.COM * @param pProps 1625*7836SJohn.Forte@Sun.COM * A pointer to an MP_TARGET_PORT_PROPERTIES structure 1626*7836SJohn.Forte@Sun.COM * allocated by the caller. On successful return, this structure 1627*7836SJohn.Forte@Sun.COM * will contain the properties of the port specified by oid. 1628*7836SJohn.Forte@Sun.COM * 1629*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1630*7836SJohn.Forte@Sun.COM * an error occurred. 1631*7836SJohn.Forte@Sun.COM * 1632*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1633*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1634*7836SJohn.Forte@Sun.COM * 1635*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1636*7836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to 1637*7836SJohn.Forte@Sun.COM * which data cannot be written. 1638*7836SJohn.Forte@Sun.COM * 1639*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1640*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1641*7836SJohn.Forte@Sun.COM * 1642*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1643*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1644*7836SJohn.Forte@Sun.COM * the system. 1645*7836SJohn.Forte@Sun.COM * 1646*7836SJohn.Forte@Sun.COM ******************************************************************************* 1647*7836SJohn.Forte@Sun.COM */ 1648*7836SJohn.Forte@Sun.COM MP_STATUS MP_GetTargetPortProperties( 1649*7836SJohn.Forte@Sun.COM MP_OID oid, 1650*7836SJohn.Forte@Sun.COM MP_TARGET_PORT_PROPERTIES *pProps 1651*7836SJohn.Forte@Sun.COM ); 1652*7836SJohn.Forte@Sun.COM 1653*7836SJohn.Forte@Sun.COM /** 1654*7836SJohn.Forte@Sun.COM ****************************************************************************** 1655*7836SJohn.Forte@Sun.COM * 1656*7836SJohn.Forte@Sun.COM * The APIs for path management. 1657*7836SJohn.Forte@Sun.COM * 1658*7836SJohn.Forte@Sun.COM * - MP_AssignLogicalUnitToTPG 1659*7836SJohn.Forte@Sun.COM * - MP_SetOverridePath 1660*7836SJohn.Forte@Sun.COM * - MP_CancelOverridePath 1661*7836SJohn.Forte@Sun.COM * - MP_EnableAutoFailback 1662*7836SJohn.Forte@Sun.COM * - MP_DisableAutoFailback 1663*7836SJohn.Forte@Sun.COM * - MP_EnableAutoProbing 1664*7836SJohn.Forte@Sun.COM * - MP_DisableAutoProbing 1665*7836SJohn.Forte@Sun.COM * - MP_EnablePath 1666*7836SJohn.Forte@Sun.COM * - MP_DisablePath 1667*7836SJohn.Forte@Sun.COM * - MP_SetLogicalUnitLoadBalanceType 1668*7836SJohn.Forte@Sun.COM * - MP_SetPluginLoadBalanceType 1669*7836SJohn.Forte@Sun.COM * - MP_SetPathWeight 1670*7836SJohn.Forte@Sun.COM * - MP_SetFailbackPollingRates 1671*7836SJohn.Forte@Sun.COM * - MP_SetProbingPollingRates 1672*7836SJohn.Forte@Sun.COM * - MP_SetProprietaryProperties 1673*7836SJohn.Forte@Sun.COM * - MP_SetTPGAccess 1674*7836SJohn.Forte@Sun.COM * 1675*7836SJohn.Forte@Sun.COM ****************************************************************************** 1676*7836SJohn.Forte@Sun.COM */ 1677*7836SJohn.Forte@Sun.COM 1678*7836SJohn.Forte@Sun.COM /** 1679*7836SJohn.Forte@Sun.COM ******************************************************************************* 1680*7836SJohn.Forte@Sun.COM * 1681*7836SJohn.Forte@Sun.COM * Assign a multipath logical unit to a target port group. 1682*7836SJohn.Forte@Sun.COM * 1683*7836SJohn.Forte@Sun.COM * @param tpgOid 1684*7836SJohn.Forte@Sun.COM * An MP_TARGET_PORT_GROUP oid. The target port group currently in 1685*7836SJohn.Forte@Sun.COM * active access state that the administrator would like the LU 1686*7836SJohn.Forte@Sun.COM * assigned to. 1687*7836SJohn.Forte@Sun.COM * 1688*7836SJohn.Forte@Sun.COM * @param luOid 1689*7836SJohn.Forte@Sun.COM * An MP_MULTIPATH_LOGICAL_UNIT oid. 1690*7836SJohn.Forte@Sun.COM * 1691*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1692*7836SJohn.Forte@Sun.COM * an error occurred. 1693*7836SJohn.Forte@Sun.COM * 1694*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1695*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1696*7836SJohn.Forte@Sun.COM * 1697*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1698*7836SJohn.Forte@Sun.COM * Returned when luOid is not associated with tpgOid. 1699*7836SJohn.Forte@Sun.COM * 1700*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1701*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1702*7836SJohn.Forte@Sun.COM * 1703*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1704*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1705*7836SJohn.Forte@Sun.COM * the system. 1706*7836SJohn.Forte@Sun.COM * 1707*7836SJohn.Forte@Sun.COM ******************************************************************************* 1708*7836SJohn.Forte@Sun.COM */ 1709*7836SJohn.Forte@Sun.COM MP_STATUS MP_AssignLogicalUnitToTPG( 1710*7836SJohn.Forte@Sun.COM MP_OID tpgOid, 1711*7836SJohn.Forte@Sun.COM MP_OID luOid 1712*7836SJohn.Forte@Sun.COM ); 1713*7836SJohn.Forte@Sun.COM 1714*7836SJohn.Forte@Sun.COM /** 1715*7836SJohn.Forte@Sun.COM ******************************************************************************* 1716*7836SJohn.Forte@Sun.COM * 1717*7836SJohn.Forte@Sun.COM * Manually override the path for a logical unit. The path exclusively used to 1718*7836SJohn.Forte@Sun.COM * access the logical unit until cleared. 1719*7836SJohn.Forte@Sun.COM * 1720*7836SJohn.Forte@Sun.COM * @param logicalUnitOid 1721*7836SJohn.Forte@Sun.COM * The object ID of the multipath logical unit. 1722*7836SJohn.Forte@Sun.COM * 1723*7836SJohn.Forte@Sun.COM * @param pathOid 1724*7836SJohn.Forte@Sun.COM * The object ID of the path logical unit. 1725*7836SJohn.Forte@Sun.COM * 1726*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1727*7836SJohn.Forte@Sun.COM * an error occurred. 1728*7836SJohn.Forte@Sun.COM * 1729*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1730*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1731*7836SJohn.Forte@Sun.COM * 1732*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1733*7836SJohn.Forte@Sun.COM * Returned if the oid of the object is not valid 1734*7836SJohn.Forte@Sun.COM * 1735*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 1736*7836SJohn.Forte@Sun.COM * Returned when the implementation does not support the API 1737*7836SJohn.Forte@Sun.COM * 1738*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1739*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1740*7836SJohn.Forte@Sun.COM * 1741*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_PATH_NONOPERATIONAL 1742*7836SJohn.Forte@Sun.COM * Returned when the driver cannot communicate through selected path. 1743*7836SJohn.Forte@Sun.COM * 1744*7836SJohn.Forte@Sun.COM ******************************************************************************* 1745*7836SJohn.Forte@Sun.COM */ 1746*7836SJohn.Forte@Sun.COM MP_STATUS MP_SetOverridePath( 1747*7836SJohn.Forte@Sun.COM MP_OID logicalUnitOid, 1748*7836SJohn.Forte@Sun.COM MP_OID pathOid 1749*7836SJohn.Forte@Sun.COM ); 1750*7836SJohn.Forte@Sun.COM 1751*7836SJohn.Forte@Sun.COM /** 1752*7836SJohn.Forte@Sun.COM ******************************************************************************* 1753*7836SJohn.Forte@Sun.COM * 1754*7836SJohn.Forte@Sun.COM * Cancel a path override and re-enable load balancing. 1755*7836SJohn.Forte@Sun.COM * 1756*7836SJohn.Forte@Sun.COM * @param luOid 1757*7836SJohn.Forte@Sun.COM * An MP_MULTIPATH_LOGICAL_UNIT oid. 1758*7836SJohn.Forte@Sun.COM * 1759*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1760*7836SJohn.Forte@Sun.COM * an error occurred. 1761*7836SJohn.Forte@Sun.COM * 1762*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1763*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1764*7836SJohn.Forte@Sun.COM * 1765*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1766*7836SJohn.Forte@Sun.COM * Returned if MP_MULTIPATH_LOGICAL_UNIT with the luOid is not found. 1767*7836SJohn.Forte@Sun.COM * 1768*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1769*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1770*7836SJohn.Forte@Sun.COM * 1771*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 1772*7836SJohn.Forte@Sun.COM * Returned if oid has an owner that is not currently known to 1773*7836SJohn.Forte@Sun.COM * the system. 1774*7836SJohn.Forte@Sun.COM * 1775*7836SJohn.Forte@Sun.COM ******************************************************************************* 1776*7836SJohn.Forte@Sun.COM */ 1777*7836SJohn.Forte@Sun.COM MP_STATUS MP_CancelOverridePath( 1778*7836SJohn.Forte@Sun.COM MP_OID logicalUnitOid 1779*7836SJohn.Forte@Sun.COM ); 1780*7836SJohn.Forte@Sun.COM 1781*7836SJohn.Forte@Sun.COM /** 1782*7836SJohn.Forte@Sun.COM ******************************************************************************* 1783*7836SJohn.Forte@Sun.COM * 1784*7836SJohn.Forte@Sun.COM * Enables Auto-failback. 1785*7836SJohn.Forte@Sun.COM * 1786*7836SJohn.Forte@Sun.COM * @param oid 1787*7836SJohn.Forte@Sun.COM * The oid of the plugin or the multipath logical unit. 1788*7836SJohn.Forte@Sun.COM * 1789*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1790*7836SJohn.Forte@Sun.COM * an error occurred. 1791*7836SJohn.Forte@Sun.COM * 1792*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1793*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1794*7836SJohn.Forte@Sun.COM * 1795*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1796*7836SJohn.Forte@Sun.COM * Returned if oid is NULL or specifies a memory area that is not 1797*7836SJohn.Forte@Sun.COM * a valid plugin oid. 1798*7836SJohn.Forte@Sun.COM * 1799*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1800*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1801*7836SJohn.Forte@Sun.COM * 1802*7836SJohn.Forte@Sun.COM ******************************************************************************* 1803*7836SJohn.Forte@Sun.COM */ 1804*7836SJohn.Forte@Sun.COM MP_STATUS MP_EnableAutoFailback( 1805*7836SJohn.Forte@Sun.COM MP_OID oid 1806*7836SJohn.Forte@Sun.COM ); 1807*7836SJohn.Forte@Sun.COM 1808*7836SJohn.Forte@Sun.COM /** 1809*7836SJohn.Forte@Sun.COM ******************************************************************************* 1810*7836SJohn.Forte@Sun.COM * 1811*7836SJohn.Forte@Sun.COM * Disables Auto-failback. 1812*7836SJohn.Forte@Sun.COM * 1813*7836SJohn.Forte@Sun.COM * @param oid 1814*7836SJohn.Forte@Sun.COM * The oid of the plugin or the multipath logical unit.. 1815*7836SJohn.Forte@Sun.COM * 1816*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1817*7836SJohn.Forte@Sun.COM * an error occurred. 1818*7836SJohn.Forte@Sun.COM * 1819*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1820*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1821*7836SJohn.Forte@Sun.COM * 1822*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1823*7836SJohn.Forte@Sun.COM * Returned if oid is NULL or specifies a memory area that is not 1824*7836SJohn.Forte@Sun.COM * a valid plugin oid. 1825*7836SJohn.Forte@Sun.COM * 1826*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1827*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1828*7836SJohn.Forte@Sun.COM * 1829*7836SJohn.Forte@Sun.COM ******************************************************************************* 1830*7836SJohn.Forte@Sun.COM */ 1831*7836SJohn.Forte@Sun.COM MP_STATUS MP_DisableAutoFailback( 1832*7836SJohn.Forte@Sun.COM MP_OID oid 1833*7836SJohn.Forte@Sun.COM ); 1834*7836SJohn.Forte@Sun.COM 1835*7836SJohn.Forte@Sun.COM /** 1836*7836SJohn.Forte@Sun.COM ******************************************************************************* 1837*7836SJohn.Forte@Sun.COM * 1838*7836SJohn.Forte@Sun.COM * Enables Auto-probing. 1839*7836SJohn.Forte@Sun.COM * 1840*7836SJohn.Forte@Sun.COM * @param oid 1841*7836SJohn.Forte@Sun.COM * The oid of the plugin or the multipath logical unit. 1842*7836SJohn.Forte@Sun.COM * 1843*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1844*7836SJohn.Forte@Sun.COM * an error occurred. 1845*7836SJohn.Forte@Sun.COM * 1846*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1847*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1848*7836SJohn.Forte@Sun.COM * 1849*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1850*7836SJohn.Forte@Sun.COM * Returned if oid is NULL or specifies a memory area that is not 1851*7836SJohn.Forte@Sun.COM * a valid plugin oid. 1852*7836SJohn.Forte@Sun.COM * 1853*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1854*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1855*7836SJohn.Forte@Sun.COM * 1856*7836SJohn.Forte@Sun.COM ******************************************************************************* 1857*7836SJohn.Forte@Sun.COM */ 1858*7836SJohn.Forte@Sun.COM MP_STATUS MP_EnableAutoProbing( 1859*7836SJohn.Forte@Sun.COM MP_OID oid 1860*7836SJohn.Forte@Sun.COM ); 1861*7836SJohn.Forte@Sun.COM 1862*7836SJohn.Forte@Sun.COM /** 1863*7836SJohn.Forte@Sun.COM ******************************************************************************* 1864*7836SJohn.Forte@Sun.COM * 1865*7836SJohn.Forte@Sun.COM * Disables Auto-probing. 1866*7836SJohn.Forte@Sun.COM * 1867*7836SJohn.Forte@Sun.COM * @param oid 1868*7836SJohn.Forte@Sun.COM * The oid of the plugin or the multipath logical unit. 1869*7836SJohn.Forte@Sun.COM * 1870*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1871*7836SJohn.Forte@Sun.COM * an error occurred. 1872*7836SJohn.Forte@Sun.COM * 1873*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1874*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1875*7836SJohn.Forte@Sun.COM * 1876*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1877*7836SJohn.Forte@Sun.COM * Returned if oid is NULL or specifies a memory area that is not 1878*7836SJohn.Forte@Sun.COM * a valid plugin oid. 1879*7836SJohn.Forte@Sun.COM * 1880*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1881*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1882*7836SJohn.Forte@Sun.COM * 1883*7836SJohn.Forte@Sun.COM ******************************************************************************* 1884*7836SJohn.Forte@Sun.COM */ 1885*7836SJohn.Forte@Sun.COM MP_STATUS MP_DisableAutoProbing( 1886*7836SJohn.Forte@Sun.COM MP_OID oid 1887*7836SJohn.Forte@Sun.COM ); 1888*7836SJohn.Forte@Sun.COM 1889*7836SJohn.Forte@Sun.COM /** 1890*7836SJohn.Forte@Sun.COM ******************************************************************************* 1891*7836SJohn.Forte@Sun.COM * 1892*7836SJohn.Forte@Sun.COM * Enables a path. This API may cause failover in a logical unit with 1893*7836SJohn.Forte@Sun.COM * asymmetric access. 1894*7836SJohn.Forte@Sun.COM * 1895*7836SJohn.Forte@Sun.COM * @param oid 1896*7836SJohn.Forte@Sun.COM * The oid of the path. 1897*7836SJohn.Forte@Sun.COM * 1898*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1899*7836SJohn.Forte@Sun.COM * an error occurred. 1900*7836SJohn.Forte@Sun.COM * 1901*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1902*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1903*7836SJohn.Forte@Sun.COM * 1904*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1905*7836SJohn.Forte@Sun.COM * Returned if oid is NULL or specifies a memory area that is not 1906*7836SJohn.Forte@Sun.COM * a valid path oid. 1907*7836SJohn.Forte@Sun.COM * 1908*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1909*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1910*7836SJohn.Forte@Sun.COM * 1911*7836SJohn.Forte@Sun.COM ******************************************************************************* 1912*7836SJohn.Forte@Sun.COM */ 1913*7836SJohn.Forte@Sun.COM MP_STATUS MP_EnablePath( 1914*7836SJohn.Forte@Sun.COM MP_OID oid 1915*7836SJohn.Forte@Sun.COM ); 1916*7836SJohn.Forte@Sun.COM 1917*7836SJohn.Forte@Sun.COM /** 1918*7836SJohn.Forte@Sun.COM ******************************************************************************* 1919*7836SJohn.Forte@Sun.COM * 1920*7836SJohn.Forte@Sun.COM * Disables a path. This API may cause failover in a logical unit with 1921*7836SJohn.Forte@Sun.COM * asymmetric access. This API may cause a logical unit to become unavailable. 1922*7836SJohn.Forte@Sun.COM * 1923*7836SJohn.Forte@Sun.COM * @param oid 1924*7836SJohn.Forte@Sun.COM * The oid of the path. 1925*7836SJohn.Forte@Sun.COM * 1926*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1927*7836SJohn.Forte@Sun.COM * an error occurred. 1928*7836SJohn.Forte@Sun.COM * 1929*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1930*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1931*7836SJohn.Forte@Sun.COM * 1932*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1933*7836SJohn.Forte@Sun.COM * Returned if oid is NULL or specifies a memory area that is not 1934*7836SJohn.Forte@Sun.COM * a valid path oid. 1935*7836SJohn.Forte@Sun.COM * 1936*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1937*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1938*7836SJohn.Forte@Sun.COM * 1939*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 1940*7836SJohn.Forte@Sun.COM * Returned when the API is not supported. 1941*7836SJohn.Forte@Sun.COM * 1942*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_TRY_AGAIN 1943*7836SJohn.Forte@Sun.COM * Returned when path cannot be disabled at this time. 1944*7836SJohn.Forte@Sun.COM * 1945*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_NOT_PERMITTED 1946*7836SJohn.Forte@Sun.COM * Returned when disabling thsi path would cause the login unit to 1947*7836SJohn.Forte@Sun.COM * become unavailable. 1948*7836SJohn.Forte@Sun.COM * 1949*7836SJohn.Forte@Sun.COM ******************************************************************************* 1950*7836SJohn.Forte@Sun.COM */ 1951*7836SJohn.Forte@Sun.COM MP_STATUS MP_DisablePath( 1952*7836SJohn.Forte@Sun.COM MP_OID oid 1953*7836SJohn.Forte@Sun.COM ); 1954*7836SJohn.Forte@Sun.COM 1955*7836SJohn.Forte@Sun.COM /** 1956*7836SJohn.Forte@Sun.COM ******************************************************************************* 1957*7836SJohn.Forte@Sun.COM * 1958*7836SJohn.Forte@Sun.COM * Set the multipath logical unit s load balancing policy. 1959*7836SJohn.Forte@Sun.COM * 1960*7836SJohn.Forte@Sun.COM * @param logicalUnitoid 1961*7836SJohn.Forte@Sun.COM * The object ID of the multipath logical unit. 1962*7836SJohn.Forte@Sun.COM * 1963*7836SJohn.Forte@Sun.COM * @param loadBanlance 1964*7836SJohn.Forte@Sun.COM * The desired load balance policy for the specified logical unit. 1965*7836SJohn.Forte@Sun.COM * 1966*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 1967*7836SJohn.Forte@Sun.COM * an error occurred. 1968*7836SJohn.Forte@Sun.COM * 1969*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 1970*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 1971*7836SJohn.Forte@Sun.COM * 1972*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 1973*7836SJohn.Forte@Sun.COM * Returned if no MP_MULTIPATH_LOGICAL_UNIT associated with 1974*7836SJohn.Forte@Sun.COM * @ref ligicalUnitrOid is found or invalid MP_LOAD_BALANCE_TYPE is 1975*7836SJohn.Forte@Sun.COM * specified. 1976*7836SJohn.Forte@Sun.COM * 1977*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 1978*7836SJohn.Forte@Sun.COM * Returned when the specified loadBalance type cannot be handled 1979*7836SJohn.Forte@Sun.COM * by the plugin. 1980*7836SJohn.Forte@Sun.COM * 1981*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 1982*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 1983*7836SJohn.Forte@Sun.COM * 1984*7836SJohn.Forte@Sun.COM ******************************************************************************* 1985*7836SJohn.Forte@Sun.COM */ 1986*7836SJohn.Forte@Sun.COM MP_STATUS MP_SetLogicalUnitLoadBalanceType( 1987*7836SJohn.Forte@Sun.COM MP_OID logicalUnitOid, 1988*7836SJohn.Forte@Sun.COM MP_LOAD_BALANCE_TYPE loadBalance 1989*7836SJohn.Forte@Sun.COM ); 1990*7836SJohn.Forte@Sun.COM 1991*7836SJohn.Forte@Sun.COM /** 1992*7836SJohn.Forte@Sun.COM ******************************************************************************* 1993*7836SJohn.Forte@Sun.COM * 1994*7836SJohn.Forte@Sun.COM * Set the weight to be assigned to a particular path. 1995*7836SJohn.Forte@Sun.COM * 1996*7836SJohn.Forte@Sun.COM * @param pathOid 1997*7836SJohn.Forte@Sun.COM * The object ID of the path logical unit. 1998*7836SJohn.Forte@Sun.COM * 1999*7836SJohn.Forte@Sun.COM * @param weight 2000*7836SJohn.Forte@Sun.COM * weight that will be assigned to the path logical unit. 2001*7836SJohn.Forte@Sun.COM * 2002*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2003*7836SJohn.Forte@Sun.COM * an error occurred. 2004*7836SJohn.Forte@Sun.COM * 2005*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2006*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2007*7836SJohn.Forte@Sun.COM * 2008*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 2009*7836SJohn.Forte@Sun.COM * Returned when the MP Path specified by the PathOid could not be 2010*7836SJohn.Forte@Sun.COM * found. 2011*7836SJohn.Forte@Sun.COM * 2012*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 2013*7836SJohn.Forte@Sun.COM * Returned when the implementation does not support the API 2014*7836SJohn.Forte@Sun.COM * 2015*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2016*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 2017*7836SJohn.Forte@Sun.COM * 2018*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 2019*7836SJohn.Forte@Sun.COM * Returned when the operation failed. 2020*7836SJohn.Forte@Sun.COM * 2021*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_WEIGHT 2022*7836SJohn.Forte@Sun.COM * Returned when the weight parameter is greater than the plugin's 2023*7836SJohn.Forte@Sun.COM * maxWeight property. 2024*7836SJohn.Forte@Sun.COM * 2025*7836SJohn.Forte@Sun.COM ******************************************************************************* 2026*7836SJohn.Forte@Sun.COM */ 2027*7836SJohn.Forte@Sun.COM MP_STATUS MP_SetPathWeight( 2028*7836SJohn.Forte@Sun.COM MP_OID pathOid, 2029*7836SJohn.Forte@Sun.COM MP_UINT32 weight 2030*7836SJohn.Forte@Sun.COM ); 2031*7836SJohn.Forte@Sun.COM 2032*7836SJohn.Forte@Sun.COM /** 2033*7836SJohn.Forte@Sun.COM ******************************************************************************* 2034*7836SJohn.Forte@Sun.COM * 2035*7836SJohn.Forte@Sun.COM * Set the default load balance policy for the plugin. 2036*7836SJohn.Forte@Sun.COM * 2037*7836SJohn.Forte@Sun.COM * @param oid 2038*7836SJohn.Forte@Sun.COM * The object ID of the plugin 2039*7836SJohn.Forte@Sun.COM * 2040*7836SJohn.Forte@Sun.COM * @param loadBalance 2041*7836SJohn.Forte@Sun.COM * The desired default load balance policy for the specified plugin. 2042*7836SJohn.Forte@Sun.COM * 2043*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2044*7836SJohn.Forte@Sun.COM * an error occurred. 2045*7836SJohn.Forte@Sun.COM * 2046*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2047*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2048*7836SJohn.Forte@Sun.COM * 2049*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 2050*7836SJohn.Forte@Sun.COM * Returned when the the plugin specified by @ref oid could not be 2051*7836SJohn.Forte@Sun.COM * found. 2052*7836SJohn.Forte@Sun.COM * 2053*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2054*7836SJohn.Forte@Sun.COM * Returned if the oid of the object is not valid. 2055*7836SJohn.Forte@Sun.COM * 2056*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 2057*7836SJohn.Forte@Sun.COM * Returned when the implementation does not support the API 2058*7836SJohn.Forte@Sun.COM * 2059*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2060*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 2061*7836SJohn.Forte@Sun.COM * 2062*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 2063*7836SJohn.Forte@Sun.COM * Returned when the specified loadBalance type cannot be handled 2064*7836SJohn.Forte@Sun.COM * by the plugin. 2065*7836SJohn.Forte@Sun.COM * 2066*7836SJohn.Forte@Sun.COM ******************************************************************************* 2067*7836SJohn.Forte@Sun.COM */ 2068*7836SJohn.Forte@Sun.COM MP_STATUS MP_SetPluginLoadBalanceType( 2069*7836SJohn.Forte@Sun.COM MP_OID oid, 2070*7836SJohn.Forte@Sun.COM MP_LOAD_BALANCE_TYPE loadBalance 2071*7836SJohn.Forte@Sun.COM ); 2072*7836SJohn.Forte@Sun.COM 2073*7836SJohn.Forte@Sun.COM /** 2074*7836SJohn.Forte@Sun.COM ******************************************************************************* 2075*7836SJohn.Forte@Sun.COM * 2076*7836SJohn.Forte@Sun.COM * Set the failback polling rates. Setting both rates to zero disables polling. 2077*7836SJohn.Forte@Sun.COM * 2078*7836SJohn.Forte@Sun.COM * @param pluginOid 2079*7836SJohn.Forte@Sun.COM * The object ID of either the plugin or a multipath logical unit. 2080*7836SJohn.Forte@Sun.COM * 2081*7836SJohn.Forte@Sun.COM * @param pollingRate 2082*7836SJohn.Forte@Sun.COM * The value to be set in MP_PLUGIN_PROPERTIES current pollingRate or 2083*7836SJohn.Forte@Sun.COM * MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES pollingRate. 2084*7836SJohn.Forte@Sun.COM * 2085*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2086*7836SJohn.Forte@Sun.COM * an error occurred. 2087*7836SJohn.Forte@Sun.COM * 2088*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2089*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2090*7836SJohn.Forte@Sun.COM * 2091*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 2092*7836SJohn.Forte@Sun.COM * Returned when the the plugin specified by @ref oid could not be 2093*7836SJohn.Forte@Sun.COM * found. 2094*7836SJohn.Forte@Sun.COM * 2095*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2096*7836SJohn.Forte@Sun.COM * Returned if one of the polling values is outside the range 2097*7836SJohn.Forte@Sun.COM * supported by the driver. 2098*7836SJohn.Forte@Sun.COM * 2099*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 2100*7836SJohn.Forte@Sun.COM * Returned when the implementation does not support the API 2101*7836SJohn.Forte@Sun.COM * 2102*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2103*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 2104*7836SJohn.Forte@Sun.COM * 2105*7836SJohn.Forte@Sun.COM ******************************************************************************* 2106*7836SJohn.Forte@Sun.COM */ 2107*7836SJohn.Forte@Sun.COM MP_STATUS MP_SetFailbackPollingRate( 2108*7836SJohn.Forte@Sun.COM MP_OID oid, 2109*7836SJohn.Forte@Sun.COM MP_UINT32 pollingRate 2110*7836SJohn.Forte@Sun.COM ); 2111*7836SJohn.Forte@Sun.COM 2112*7836SJohn.Forte@Sun.COM /** 2113*7836SJohn.Forte@Sun.COM ******************************************************************************* 2114*7836SJohn.Forte@Sun.COM * 2115*7836SJohn.Forte@Sun.COM * Set the probing polling rates. Setting both rates to zero disables polling. 2116*7836SJohn.Forte@Sun.COM * 2117*7836SJohn.Forte@Sun.COM * @param pluginOid 2118*7836SJohn.Forte@Sun.COM * The object ID of either the plugin or a multipath logical unit. 2119*7836SJohn.Forte@Sun.COM * 2120*7836SJohn.Forte@Sun.COM * @param pollingRate 2121*7836SJohn.Forte@Sun.COM * The value to be set in MP_PLUGIN_PROPERTIES current pollingRate or 2122*7836SJohn.Forte@Sun.COM * MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES pollingRate. 2123*7836SJohn.Forte@Sun.COM * 2124*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2125*7836SJohn.Forte@Sun.COM * an error occurred. 2126*7836SJohn.Forte@Sun.COM * 2127*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2128*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2129*7836SJohn.Forte@Sun.COM * 2130*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 2131*7836SJohn.Forte@Sun.COM * Returned when the the plugin specified by @ref oid could not be 2132*7836SJohn.Forte@Sun.COM * found. 2133*7836SJohn.Forte@Sun.COM * 2134*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2135*7836SJohn.Forte@Sun.COM * Returned if one of the polling values is outside the range 2136*7836SJohn.Forte@Sun.COM * supported by the driver. 2137*7836SJohn.Forte@Sun.COM * 2138*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 2139*7836SJohn.Forte@Sun.COM * Returned when the implementation does not support the API 2140*7836SJohn.Forte@Sun.COM * 2141*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2142*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 2143*7836SJohn.Forte@Sun.COM * 2144*7836SJohn.Forte@Sun.COM ******************************************************************************* 2145*7836SJohn.Forte@Sun.COM */ 2146*7836SJohn.Forte@Sun.COM MP_STATUS MP_SetProbingPollingRate( 2147*7836SJohn.Forte@Sun.COM MP_OID oid, 2148*7836SJohn.Forte@Sun.COM MP_UINT32 pollingRate 2149*7836SJohn.Forte@Sun.COM ); 2150*7836SJohn.Forte@Sun.COM 2151*7836SJohn.Forte@Sun.COM /** 2152*7836SJohn.Forte@Sun.COM ******************************************************************************* 2153*7836SJohn.Forte@Sun.COM * 2154*7836SJohn.Forte@Sun.COM * Set proprietary properties in supported object instances. 2155*7836SJohn.Forte@Sun.COM * 2156*7836SJohn.Forte@Sun.COM * @param pluginOid 2157*7836SJohn.Forte@Sun.COM * The object ID of MP_PROPRIETARY_LOAD_BALANCE_PROPERTIES, 2158*7836SJohn.Forte@Sun.COM * MP_PLUGIN_PROPERTIES or MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES. 2159*7836SJohn.Forte@Sun.COM * 2160*7836SJohn.Forte@Sun.COM * @param count 2161*7836SJohn.Forte@Sun.COM * The number of valid items in pPropertyList. 2162*7836SJohn.Forte@Sun.COM * 2163*7836SJohn.Forte@Sun.COM * @param pPropertyList 2164*7836SJohn.Forte@Sun.COM * A pointer to an array of property name/value pairs. This array must 2165*7836SJohn.Forte@Sun.COM * contain the same number of elements as count. 2166*7836SJohn.Forte@Sun.COM * 2167*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2168*7836SJohn.Forte@Sun.COM * an error occurred. 2169*7836SJohn.Forte@Sun.COM * 2170*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2171*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2172*7836SJohn.Forte@Sun.COM * 2173*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 2174*7836SJohn.Forte@Sun.COM * Returned when the the plugin specified by @ref oid could not be 2175*7836SJohn.Forte@Sun.COM * found. 2176*7836SJohn.Forte@Sun.COM * 2177*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2178*7836SJohn.Forte@Sun.COM * Returned if one of the polling values is outside the range 2179*7836SJohn.Forte@Sun.COM * supported by the driver. 2180*7836SJohn.Forte@Sun.COM * 2181*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 2182*7836SJohn.Forte@Sun.COM * Returned when the implementation does not support the API 2183*7836SJohn.Forte@Sun.COM * 2184*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2185*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 2186*7836SJohn.Forte@Sun.COM * 2187*7836SJohn.Forte@Sun.COM ******************************************************************************* 2188*7836SJohn.Forte@Sun.COM */ 2189*7836SJohn.Forte@Sun.COM MP_STATUS MP_SetProprietaryProperties( 2190*7836SJohn.Forte@Sun.COM MP_OID oid, 2191*7836SJohn.Forte@Sun.COM MP_UINT32 count, 2192*7836SJohn.Forte@Sun.COM MP_PROPRIETARY_PROPERTY *pPropertyList 2193*7836SJohn.Forte@Sun.COM ); 2194*7836SJohn.Forte@Sun.COM 2195*7836SJohn.Forte@Sun.COM /** 2196*7836SJohn.Forte@Sun.COM ******************************************************************************* 2197*7836SJohn.Forte@Sun.COM * 2198*7836SJohn.Forte@Sun.COM * Set the access state for a list of target port groups. This allows 2199*7836SJohn.Forte@Sun.COM * a client to force a failover or failback to a desired set of target port 2200*7836SJohn.Forte@Sun.COM * groups. 2201*7836SJohn.Forte@Sun.COM * 2202*7836SJohn.Forte@Sun.COM * @param luOid 2203*7836SJohn.Forte@Sun.COM * The object ID of the logical unit where the command is sent. 2204*7836SJohn.Forte@Sun.COM * 2205*7836SJohn.Forte@Sun.COM * @param count 2206*7836SJohn.Forte@Sun.COM * The number of valid items in the pTpgStateList. 2207*7836SJohn.Forte@Sun.COM * 2208*7836SJohn.Forte@Sun.COM * @param pTpgStateList 2209*7836SJohn.Forte@Sun.COM * A pointer to an array of TPG/access-state values. This array must 2210*7836SJohn.Forte@Sun.COM * contain the same number of elements as @ref count. 2211*7836SJohn.Forte@Sun.COM * 2212*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2213*7836SJohn.Forte@Sun.COM * an error occurred. 2214*7836SJohn.Forte@Sun.COM * 2215*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2216*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2217*7836SJohn.Forte@Sun.COM * 2218*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_OBJECT_NOT_FOUND 2219*7836SJohn.Forte@Sun.COM * Returned when the MP_MULTIPATH_LOGICAL_UNIT associated with @ref 2220*7836SJohn.Forte@Sun.COM * oid could not be found. 2221*7836SJohn.Forte@Sun.COM * 2222*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2223*7836SJohn.Forte@Sun.COM * Returned if pTpgStateList is null or if one of the TPGs referenced 2224*7836SJohn.Forte@Sun.COM * in the list is not associated with the specified MP logical unit. 2225*7836SJohn.Forte@Sun.COM * 2226*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNSUPPORTED 2227*7836SJohn.Forte@Sun.COM * Returned when the implementation does not support the API 2228*7836SJohn.Forte@Sun.COM * 2229*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2230*7836SJohn.Forte@Sun.COM * Returned if oid does not specify any valid object type. 2231*7836SJohn.Forte@Sun.COM * 2232*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_ACCESS_STATE_INVALID 2233*7836SJohn.Forte@Sun.COM * Returned if the target device returns a status indicating the caller 2234*7836SJohn.Forte@Sun.COM * is attempting to establish an illegal combination of access states. 2235*7836SJohn.Forte@Sun.COM * 2236*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 2237*7836SJohn.Forte@Sun.COM * Returned if the underlying interface failed the commend for some 2238*7836SJohn.Forte@Sun.COM * reason other than MP_STATUS_ACCESS_STATE_INVALID 2239*7836SJohn.Forte@Sun.COM * 2240*7836SJohn.Forte@Sun.COM ******************************************************************************* 2241*7836SJohn.Forte@Sun.COM */ 2242*7836SJohn.Forte@Sun.COM MP_STATUS MP_SetTPGAccess( 2243*7836SJohn.Forte@Sun.COM MP_OID luOid, 2244*7836SJohn.Forte@Sun.COM MP_UINT32 count, 2245*7836SJohn.Forte@Sun.COM MP_TPG_STATE_PAIR *pTpgStateList 2246*7836SJohn.Forte@Sun.COM ); 2247*7836SJohn.Forte@Sun.COM 2248*7836SJohn.Forte@Sun.COM /** 2249*7836SJohn.Forte@Sun.COM ****************************************************************************** 2250*7836SJohn.Forte@Sun.COM * 2251*7836SJohn.Forte@Sun.COM * The APIs that are associated with event support. 2252*7836SJohn.Forte@Sun.COM * 2253*7836SJohn.Forte@Sun.COM * - MP_RegisterForObjectPropertyChanges 2254*7836SJohn.Forte@Sun.COM * - MP_DeregisterForObjectPropertyChanges 2255*7836SJohn.Forte@Sun.COM * - MP_RegisterForObjectVisibilityChanges 2256*7836SJohn.Forte@Sun.COM * - MP_DeregisterForObjectVisibilityChanges 2257*7836SJohn.Forte@Sun.COM * 2258*7836SJohn.Forte@Sun.COM ****************************************************************************** 2259*7836SJohn.Forte@Sun.COM */ 2260*7836SJohn.Forte@Sun.COM 2261*7836SJohn.Forte@Sun.COM /** 2262*7836SJohn.Forte@Sun.COM ******************************************************************************* 2263*7836SJohn.Forte@Sun.COM * 2264*7836SJohn.Forte@Sun.COM * Registers a client function that is to be called 2265*7836SJohn.Forte@Sun.COM * whenever the property of an an object changes. 2266*7836SJohn.Forte@Sun.COM * 2267*7836SJohn.Forte@Sun.COM * @param pClientFn, 2268*7836SJohn.Forte@Sun.COM * A pointer to an MP_OBJECT_PROPERTY_FN function defined by the 2269*7836SJohn.Forte@Sun.COM * client. On successful return this function will be called to 2270*7836SJohn.Forte@Sun.COM * inform the client of objects that have had one or more properties 2271*7836SJohn.Forte@Sun.COM * change. 2272*7836SJohn.Forte@Sun.COM * 2273*7836SJohn.Forte@Sun.COM * @param objectType 2274*7836SJohn.Forte@Sun.COM * The type of object the client wishes to deregister for 2275*7836SJohn.Forte@Sun.COM * property change callbacks. If null, then all objects types are 2276*7836SJohn.Forte@Sun.COM * deregistered. 2277*7836SJohn.Forte@Sun.COM * 2278*7836SJohn.Forte@Sun.COM * @param pCallerData 2279*7836SJohn.Forte@Sun.COM * A pointer that is passed to the callback routine with each event. 2280*7836SJohn.Forte@Sun.COM * This may be used by the caller to correlate the event to source of 2281*7836SJohn.Forte@Sun.COM * the registration. 2282*7836SJohn.Forte@Sun.COM * 2283*7836SJohn.Forte@Sun.COM * @param pluginOid 2284*7836SJohn.Forte@Sun.COM * A plugin oid that the client wishes to deregister for property change. 2285*7836SJohn.Forte@Sun.COM * 2286*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2287*7836SJohn.Forte@Sun.COM * an error occurred. 2288*7836SJohn.Forte@Sun.COM * 2289*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2290*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2291*7836SJohn.Forte@Sun.COM * 2292*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2293*7836SJohn.Forte@Sun.COM * Returned if pClientFn is NULL or specifies a memory area 2294*7836SJohn.Forte@Sun.COM * that is not executable. 2295*7836SJohn.Forte@Sun.COM * 2296*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FN_REPLACED 2297*7836SJohn.Forte@Sun.COM * Returned when an existing client function is replaced with the one 2298*7836SJohn.Forte@Sun.COM * specified in pClientFn. 2299*7836SJohn.Forte@Sun.COM * 2300*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2301*7836SJohn.Forte@Sun.COM * Returned if objectType does not specify any valid object type. 2302*7836SJohn.Forte@Sun.COM * 2303*7836SJohn.Forte@Sun.COM ******************************************************************************* 2304*7836SJohn.Forte@Sun.COM */ 2305*7836SJohn.Forte@Sun.COM MP_STATUS MP_RegisterForObjectPropertyChanges( 2306*7836SJohn.Forte@Sun.COM MP_OBJECT_PROPERTY_FN pClientFn, 2307*7836SJohn.Forte@Sun.COM MP_OBJECT_TYPE objectType, 2308*7836SJohn.Forte@Sun.COM void *pCallerData, 2309*7836SJohn.Forte@Sun.COM MP_OID pluginOid 2310*7836SJohn.Forte@Sun.COM ); 2311*7836SJohn.Forte@Sun.COM 2312*7836SJohn.Forte@Sun.COM /** 2313*7836SJohn.Forte@Sun.COM ******************************************************************************* 2314*7836SJohn.Forte@Sun.COM * 2315*7836SJohn.Forte@Sun.COM * Deregisters a previously registered client function that is to be invoked 2316*7836SJohn.Forte@Sun.COM * whenever an object's property changes. 2317*7836SJohn.Forte@Sun.COM * 2318*7836SJohn.Forte@Sun.COM * @param pClientFn, 2319*7836SJohn.Forte@Sun.COM * A pointer to an MP_OBJECT_PROPERTY_FN function defined by the 2320*7836SJohn.Forte@Sun.COM * client that was previously registered using 2321*7836SJohn.Forte@Sun.COM * the MP_RegisterForObjectPropertyChanges API. On successful return 2322*7836SJohn.Forte@Sun.COM * this function will no longer be called to inform the client of 2323*7836SJohn.Forte@Sun.COM * object property changes. 2324*7836SJohn.Forte@Sun.COM * 2325*7836SJohn.Forte@Sun.COM * @param objectType 2326*7836SJohn.Forte@Sun.COM * The type of object the client wishes to deregister for 2327*7836SJohn.Forte@Sun.COM * property change callbacks. If null, then all objects types are 2328*7836SJohn.Forte@Sun.COM * deregistered. 2329*7836SJohn.Forte@Sun.COM * 2330*7836SJohn.Forte@Sun.COM * @param pluginOid 2331*7836SJohn.Forte@Sun.COM * A plugin oid that the client wishes to deregister for property change. 2332*7836SJohn.Forte@Sun.COM * 2333*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2334*7836SJohn.Forte@Sun.COM * an error occurred. 2335*7836SJohn.Forte@Sun.COM * 2336*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2337*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2338*7836SJohn.Forte@Sun.COM * 2339*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2340*7836SJohn.Forte@Sun.COM * Returned if pClientFn is NULL or specifies a memory area 2341*7836SJohn.Forte@Sun.COM * that is not executable. 2342*7836SJohn.Forte@Sun.COM * 2343*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNKNOWN_FN 2344*7836SJohn.Forte@Sun.COM * Returned if pClientFn is not the same as the previously registered 2345*7836SJohn.Forte@Sun.COM * function. 2346*7836SJohn.Forte@Sun.COM * 2347*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2348*7836SJohn.Forte@Sun.COM * Returned if objectType does not specify any valid object type. 2349*7836SJohn.Forte@Sun.COM * 2350*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 2351*7836SJohn.Forte@Sun.COM * Returned if pClientFn deregistration is not possible at this time. 2352*7836SJohn.Forte@Sun.COM * 2353*7836SJohn.Forte@Sun.COM ******************************************************************************* 2354*7836SJohn.Forte@Sun.COM */ 2355*7836SJohn.Forte@Sun.COM MP_STATUS MP_DeregisterForObjectPropertyChanges( 2356*7836SJohn.Forte@Sun.COM MP_OBJECT_PROPERTY_FN pClientFn, 2357*7836SJohn.Forte@Sun.COM MP_OBJECT_TYPE objectType, 2358*7836SJohn.Forte@Sun.COM MP_OID pluginOid 2359*7836SJohn.Forte@Sun.COM ); 2360*7836SJohn.Forte@Sun.COM 2361*7836SJohn.Forte@Sun.COM /** 2362*7836SJohn.Forte@Sun.COM ******************************************************************************* 2363*7836SJohn.Forte@Sun.COM * 2364*7836SJohn.Forte@Sun.COM * Registers a client function that is to be called 2365*7836SJohn.Forte@Sun.COM * whenever a high level object appears or disappears. 2366*7836SJohn.Forte@Sun.COM * 2367*7836SJohn.Forte@Sun.COM * @param pClientFn, 2368*7836SJohn.Forte@Sun.COM * A pointer to an MP_OBJECT_VISIBILITY_FN function defined by the 2369*7836SJohn.Forte@Sun.COM * client. On successful return this function will be called to 2370*7836SJohn.Forte@Sun.COM * inform the client of objects whose visibility has changed. 2371*7836SJohn.Forte@Sun.COM * 2372*7836SJohn.Forte@Sun.COM * @param objectType 2373*7836SJohn.Forte@Sun.COM * The type of object the client wishes to deregister for 2374*7836SJohn.Forte@Sun.COM * property change callbacks. If null, then all objects types are 2375*7836SJohn.Forte@Sun.COM * deregistered. 2376*7836SJohn.Forte@Sun.COM * 2377*7836SJohn.Forte@Sun.COM * @param pCallerData 2378*7836SJohn.Forte@Sun.COM * A pointer that is passed to the callback routine with each event. 2379*7836SJohn.Forte@Sun.COM * This may be used by the caller to correlate the event to source of 2380*7836SJohn.Forte@Sun.COM * the registration. 2381*7836SJohn.Forte@Sun.COM * 2382*7836SJohn.Forte@Sun.COM * @param pluginOid 2383*7836SJohn.Forte@Sun.COM * A plugin oid that the client wishes to deregister for property change. 2384*7836SJohn.Forte@Sun.COM * 2385*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2386*7836SJohn.Forte@Sun.COM * an error occurred. 2387*7836SJohn.Forte@Sun.COM * 2388*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2389*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2390*7836SJohn.Forte@Sun.COM * 2391*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2392*7836SJohn.Forte@Sun.COM * Returned if pClientFn is NULL or specifies a memory area 2393*7836SJohn.Forte@Sun.COM * that is not executable. 2394*7836SJohn.Forte@Sun.COM * 2395*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FN_REPLACED 2396*7836SJohn.Forte@Sun.COM * Returned when an existing client function is replaced with the one 2397*7836SJohn.Forte@Sun.COM * specified in pClientFn. 2398*7836SJohn.Forte@Sun.COM * 2399*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2400*7836SJohn.Forte@Sun.COM * Returned if objectType does not specify any valid object type. 2401*7836SJohn.Forte@Sun.COM * 2402*7836SJohn.Forte@Sun.COM ******************************************************************************* 2403*7836SJohn.Forte@Sun.COM */ 2404*7836SJohn.Forte@Sun.COM MP_STATUS MP_RegisterForObjectVisibilityChanges( 2405*7836SJohn.Forte@Sun.COM MP_OBJECT_VISIBILITY_FN pClientFn, 2406*7836SJohn.Forte@Sun.COM MP_OBJECT_TYPE objectType, 2407*7836SJohn.Forte@Sun.COM void *pCallerData, 2408*7836SJohn.Forte@Sun.COM MP_OID pluginOid 2409*7836SJohn.Forte@Sun.COM ); 2410*7836SJohn.Forte@Sun.COM 2411*7836SJohn.Forte@Sun.COM /** 2412*7836SJohn.Forte@Sun.COM ******************************************************************************* 2413*7836SJohn.Forte@Sun.COM * 2414*7836SJohn.Forte@Sun.COM * Deregisters a previously registered client function that is to be invoked 2415*7836SJohn.Forte@Sun.COM * whenever a high level object appears or disappears. 2416*7836SJohn.Forte@Sun.COM * 2417*7836SJohn.Forte@Sun.COM * @param pClientFn, 2418*7836SJohn.Forte@Sun.COM * A pointer to an MP_OBJECT_VISIBILITY_FN function defined by the 2419*7836SJohn.Forte@Sun.COM * client that was previously registered using 2420*7836SJohn.Forte@Sun.COM * the MP_RegisterForObjectVisibilityChanges API. On successful return 2421*7836SJohn.Forte@Sun.COM * this function will no longer be called to inform the client of 2422*7836SJohn.Forte@Sun.COM * object property changes. 2423*7836SJohn.Forte@Sun.COM * 2424*7836SJohn.Forte@Sun.COM * @param objectType 2425*7836SJohn.Forte@Sun.COM * The type of object the client wishes to deregister for visibility 2426*7836SJohn.Forte@Sun.COM * change callbacks. If null, then all objects types are 2427*7836SJohn.Forte@Sun.COM * deregistered. 2428*7836SJohn.Forte@Sun.COM * 2429*7836SJohn.Forte@Sun.COM * @param pluginOid 2430*7836SJohn.Forte@Sun.COM * A plugin oid that the client wishes to deregister for property change. 2431*7836SJohn.Forte@Sun.COM * 2432*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2433*7836SJohn.Forte@Sun.COM * an error occurred. 2434*7836SJohn.Forte@Sun.COM * 2435*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2436*7836SJohn.Forte@Sun.COM * Returned when the operation is successful. 2437*7836SJohn.Forte@Sun.COM * 2438*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2439*7836SJohn.Forte@Sun.COM * Returned if pClientFn is NULL or specifies a memory area 2440*7836SJohn.Forte@Sun.COM * that is not executable. 2441*7836SJohn.Forte@Sun.COM * 2442*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_UNKNOWN_FN 2443*7836SJohn.Forte@Sun.COM * Returned if pClientFn is not the same as the previously registered 2444*7836SJohn.Forte@Sun.COM * function. 2445*7836SJohn.Forte@Sun.COM * 2446*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_OBJECT_TYPE 2447*7836SJohn.Forte@Sun.COM * Returned if objectType does not specify any valid object type. 2448*7836SJohn.Forte@Sun.COM * 2449*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 2450*7836SJohn.Forte@Sun.COM * Returned if pClientFn deregistration is not possible at this time. 2451*7836SJohn.Forte@Sun.COM * 2452*7836SJohn.Forte@Sun.COM ******************************************************************************* 2453*7836SJohn.Forte@Sun.COM */ 2454*7836SJohn.Forte@Sun.COM MP_STATUS MP_DeregisterForObjectVisibilityChanges( 2455*7836SJohn.Forte@Sun.COM MP_OBJECT_VISIBILITY_FN pClientFn, 2456*7836SJohn.Forte@Sun.COM MP_OBJECT_TYPE objectType, 2457*7836SJohn.Forte@Sun.COM MP_OID pluginOid 2458*7836SJohn.Forte@Sun.COM ); 2459*7836SJohn.Forte@Sun.COM 2460*7836SJohn.Forte@Sun.COM /** 2461*7836SJohn.Forte@Sun.COM ****************************************************************************** 2462*7836SJohn.Forte@Sun.COM * 2463*7836SJohn.Forte@Sun.COM * The utility APIs 2464*7836SJohn.Forte@Sun.COM * 2465*7836SJohn.Forte@Sun.COM * - MP_CompareOIDs 2466*7836SJohn.Forte@Sun.COM * - MP_FreeOidList 2467*7836SJohn.Forte@Sun.COM * - MP_RegisterPlugin 2468*7836SJohn.Forte@Sun.COM * - MP_DeregisterPlugin 2469*7836SJohn.Forte@Sun.COM * 2470*7836SJohn.Forte@Sun.COM ****************************************************************************** 2471*7836SJohn.Forte@Sun.COM */ 2472*7836SJohn.Forte@Sun.COM 2473*7836SJohn.Forte@Sun.COM /** 2474*7836SJohn.Forte@Sun.COM ******************************************************************************* 2475*7836SJohn.Forte@Sun.COM * 2476*7836SJohn.Forte@Sun.COM * Compare two Oids for equality to see whether they refer to the same object. 2477*7836SJohn.Forte@Sun.COM * 2478*7836SJohn.Forte@Sun.COM * @param oid1 2479*7836SJohn.Forte@Sun.COM * Oid to compare. 2480*7836SJohn.Forte@Sun.COM * 2481*7836SJohn.Forte@Sun.COM * @param oid2 2482*7836SJohn.Forte@Sun.COM * Oid to compare. 2483*7836SJohn.Forte@Sun.COM * 2484*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2485*7836SJohn.Forte@Sun.COM * an error occurred. 2486*7836SJohn.Forte@Sun.COM * 2487*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2488*7836SJohn.Forte@Sun.COM * Returned when the two Oids do refer to the same object. 2489*7836SJohn.Forte@Sun.COM * 2490*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 2491*7836SJohn.Forte@Sun.COM * Returned if the Oids don't compare. 2492*7836SJohn.Forte@Sun.COM * 2493*7836SJohn.Forte@Sun.COM ******************************************************************************* 2494*7836SJohn.Forte@Sun.COM */ 2495*7836SJohn.Forte@Sun.COM MP_STATUS MP_CompareOIDs( 2496*7836SJohn.Forte@Sun.COM MP_OID oid1, 2497*7836SJohn.Forte@Sun.COM MP_OID oid2 2498*7836SJohn.Forte@Sun.COM ); 2499*7836SJohn.Forte@Sun.COM 2500*7836SJohn.Forte@Sun.COM /** 2501*7836SJohn.Forte@Sun.COM ******************************************************************************* 2502*7836SJohn.Forte@Sun.COM * 2503*7836SJohn.Forte@Sun.COM * Frees memory returned by an MP API. 2504*7836SJohn.Forte@Sun.COM * 2505*7836SJohn.Forte@Sun.COM * @param pMemory 2506*7836SJohn.Forte@Sun.COM * A pointer to the memory returned by an MP API. On successful 2507*7836SJohn.Forte@Sun.COM return, the allocated memory is freed. 2508*7836SJohn.Forte@Sun.COM * 2509*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2510*7836SJohn.Forte@Sun.COM * an error occurred. 2511*7836SJohn.Forte@Sun.COM * 2512*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2513*7836SJohn.Forte@Sun.COM * Returned when pPluginId is deregistered successfully. 2514*7836SJohn.Forte@Sun.COM * 2515*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2516*7836SJohn.Forte@Sun.COM * Returned if pMemory is NULL or specifies a memory area to which 2517*7836SJohn.Forte@Sun.COM * data cannot be written. 2518*7836SJohn.Forte@Sun.COM * 2519*7836SJohn.Forte@Sun.COM ******************************************************************************* 2520*7836SJohn.Forte@Sun.COM */ 2521*7836SJohn.Forte@Sun.COM MP_STATUS MP_FreeOidList( 2522*7836SJohn.Forte@Sun.COM MP_OID_LIST *pOidList 2523*7836SJohn.Forte@Sun.COM ); 2524*7836SJohn.Forte@Sun.COM 2525*7836SJohn.Forte@Sun.COM /** 2526*7836SJohn.Forte@Sun.COM ******************************************************************************* 2527*7836SJohn.Forte@Sun.COM * 2528*7836SJohn.Forte@Sun.COM * Registers a plugin with common library. The implementation of this routine 2529*7836SJohn.Forte@Sun.COM * is based on configuration file /etc/mpapi.conf that contains a list of 2530*7836SJohn.Forte@Sun.COM * plugin libraries. 2531*7836SJohn.Forte@Sun.COM * 2532*7836SJohn.Forte@Sun.COM * @param pPluginId 2533*7836SJohn.Forte@Sun.COM * A pointer to the key name shall be the reversed domain name of 2534*7836SJohn.Forte@Sun.COM * the vendor followed by followed by the vendor specific name for 2535*7836SJohn.Forte@Sun.COM * the plugin that uniquely identifies the plugin. 2536*7836SJohn.Forte@Sun.COM * 2537*7836SJohn.Forte@Sun.COM * @param pFileName 2538*7836SJohn.Forte@Sun.COM * The full path to the plugin library. 2539*7836SJohn.Forte@Sun.COM * 2540*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2541*7836SJohn.Forte@Sun.COM * an error occurred. 2542*7836SJohn.Forte@Sun.COM * 2543*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2544*7836SJohn.Forte@Sun.COM * Returned when pPluginId is deregistered successfully. 2545*7836SJohn.Forte@Sun.COM * 2546*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2547*7836SJohn.Forte@Sun.COM * Returned if pPluginId is NULL or specifies a memory area that 2548*7836SJohn.Forte@Sun.COM * is not executable. 2549*7836SJohn.Forte@Sun.COM * 2550*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 2551*7836SJohn.Forte@Sun.COM * Returned if pClientFn deregistration is not possible at this time. 2552*7836SJohn.Forte@Sun.COM * 2553*7836SJohn.Forte@Sun.COM ******************************************************************************* 2554*7836SJohn.Forte@Sun.COM */ 2555*7836SJohn.Forte@Sun.COM MP_STATUS MP_RegisterPlugin( 2556*7836SJohn.Forte@Sun.COM MP_WCHAR *pPluginId, 2557*7836SJohn.Forte@Sun.COM MP_CHAR *pFileName 2558*7836SJohn.Forte@Sun.COM ); 2559*7836SJohn.Forte@Sun.COM 2560*7836SJohn.Forte@Sun.COM /** 2561*7836SJohn.Forte@Sun.COM ******************************************************************************* 2562*7836SJohn.Forte@Sun.COM * 2563*7836SJohn.Forte@Sun.COM * Deregisters a plugin from the common library. 2564*7836SJohn.Forte@Sun.COM * 2565*7836SJohn.Forte@Sun.COM * @param pPluginId 2566*7836SJohn.Forte@Sun.COM * A pointer to a Plugin ID previously registered using 2567*7836SJohn.Forte@Sun.COM * the MP_RegisterPlugin API.. 2568*7836SJohn.Forte@Sun.COM * 2569*7836SJohn.Forte@Sun.COM * @return An MP_STATUS indicating if the operation was successful or if 2570*7836SJohn.Forte@Sun.COM * an error occurred. 2571*7836SJohn.Forte@Sun.COM * 2572*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_SUCCESS 2573*7836SJohn.Forte@Sun.COM * Returned when pPluginId is deregistered successfully. 2574*7836SJohn.Forte@Sun.COM * 2575*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_INVALID_PARAMETER 2576*7836SJohn.Forte@Sun.COM * Returned if pPluginId is NULL or specifies a memory area that 2577*7836SJohn.Forte@Sun.COM * is not executable. 2578*7836SJohn.Forte@Sun.COM * 2579*7836SJohn.Forte@Sun.COM * @retval MP_STATUS_FAILED 2580*7836SJohn.Forte@Sun.COM * Returned if pClientFn deregistration is not possible at this time. 2581*7836SJohn.Forte@Sun.COM * 2582*7836SJohn.Forte@Sun.COM ******************************************************************************* 2583*7836SJohn.Forte@Sun.COM */ 2584*7836SJohn.Forte@Sun.COM MP_STATUS MP_DeregisterPlugin( 2585*7836SJohn.Forte@Sun.COM MP_WCHAR *pPluginId 2586*7836SJohn.Forte@Sun.COM ); 2587*7836SJohn.Forte@Sun.COM 2588*7836SJohn.Forte@Sun.COM #endif 2589*7836SJohn.Forte@Sun.COM 2590*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 2591*7836SJohn.Forte@Sun.COM }; 2592*7836SJohn.Forte@Sun.COM #endif 2593*7836SJohn.Forte@Sun.COM 2594