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