OpenSolaris_b135/cmd/mpathadm/mpathadm.h

/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef	_MPATHADM_H
#define	_MPATHADM_H

#ifdef	__cplusplus
extern "C" {
#endif

#define	LIST					SUBCOMMAND(0)
#define	SHOW					SUBCOMMAND(1)
#define	MODIFY					SUBCOMMAND(2)
#define	ENABLE					SUBCOMMAND(3)
#define	DISABLE					SUBCOMMAND(4)
#define	FAILOVER				SUBCOMMAND(5)
#define	OVERRIDE				SUBCOMMAND(6)
#define	ADD					SUBCOMMAND(7)
#define	REMOVE					SUBCOMMAND(8)


#define	MPATH_SUPPORT				OBJECT(0)
#define	LOGICAL_UNIT				OBJECT(1)
#define	INITIATOR_PORT				OBJECT(2)
#define	PATH					OBJECT(3)

#define	MAX_PLUGINNAME_LEN			256

#define	ERROR_CLI_FAILED			99


int listMpathSupport(int operandLen, char *operand[]);
int showMpathSupport(int operandLen, char *operand[]);
int modifyMpathSupport(int operandLen, char *operand[], cmdOptions_t *options);

int listLogicalUnit(int operandLen, char *operand[], cmdOptions_t *options);
int listIndividualLogicalUnit(MP_OID luOid,
    MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES luProps);
int showLogicalUnit(int operandLen, char *operand[]);
int showIndividualLogicalUnit(MP_OID luOid,
    MP_MULTIPATH_LOGICAL_UNIT_PROPERTIES luProps, MP_PLUGIN_PROPERTIES);
int modifyLogicalUnit(int operandLen, char *operand[], cmdOptions_t *options);
int failoverLogicalUnit(char *operand[]);
boolean_t getLogicalUnitOid(MP_CHAR *luFileName, MP_OID *pluOid);

int listInitiatorPort(int operandLen, char *operand[]);
int listIndividualInitiatorPort(MP_INITIATOR_PORT_PROPERTIES initProps);
int showInitiatorPort(int operandLen, char *operand[]);
int showIndividualInitiatorPort(MP_INITIATOR_PORT_PROPERTIES initProps);

int enablePath(cmdOptions_t *options);
int disablePath(cmdOptions_t *options);
int overridePath(cmdOptions_t *options);

boolean_t getPathOid(cmdOptions_t *options, MP_OID *pPathOid);
MP_LOAD_BALANCE_TYPE getLbValueFromString(char *str);

char *getMpStatusStr(MP_STATUS mpstatus);
void displayArray(MP_CHAR *arrayToDisplay, int arraySize);
void displayWideArray(MP_WCHAR *arrayToDisplay, int arraySize);
char *getPathStateStr(MP_PATH_STATE pathState);
char *getAccessStateStr(MP_ACCESS_STATE_TYPE accessState);
MP_CHAR *getStringArray(MP_CHAR *arrayToDisplay, int arraySize);
boolean_t compareLUName(MP_CHAR *cmpString, MP_CHAR *deviceFileName);
void displayLoadBalanceString(MP_LOAD_BALANCE_TYPE lbVal);
void displayLogicalUnitNameTypeString(MP_LOGICAL_UNIT_NAME_TYPE typeVal);
void displayTransportTypeString(MP_PORT_TRANSPORT_TYPE transportTypeVal);

#ifdef	__cplusplus
}
#endif

#endif /* _MPATHADM_H */