fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * CDDL HEADER START
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The contents of this file are subject to the terms of the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Common Development and Distribution License (the "License").
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * You may not use this file except in compliance with the License.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * See the License for the specific language governing permissions
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * and limitations under the License.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * When distributing Covered Code, include this CDDL HEADER in each
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * If applicable, add the following below this CDDL HEADER, with the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * fields enclosed by brackets "[]" replaced with your own identifying
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * information: Portions Copyright [yyyy] [name of copyright owner]
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * CDDL HEADER END
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Use is subject to license terms.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Description
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Ima.h - general header file for client
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * and library developers
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The contents of this file are subject to the SNIA Public License
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Version 1.0 (the "License"); you may not use this file except in
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * compliance with the License. You may obtain a copy of the License at
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * /http://www.snia.org/English/Resources/Code/OpenSource.html
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Software distributed under the License is distributed on an "AS IS"
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the License for the specific language governing rights and limitations
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * under the License.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The Original Code is SNIA HBA API and IMA general header file
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The Initial Developer of the Original Code is:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * David Dillard VERITAS Software david.dillard@veritas.com
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Contributor(s):
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Jeff Ding, Adaptec, Inc. (jding@corp.adaptec.com)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Dave Wysochanski, Network Appliance, Inc. (davidw@netapp.com)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte ******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 09/24/2003 Initial Draft
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * (for other changes... see the CVS logs)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 12/15/2003 corrected the defined parameter in IMA_SetPhbaIsnsDiscovery().
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * lower case the computer name as iscsi name in
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * IMA_GenerateNodeName().
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 03/01/2004 Brought up to date with respect to IMA v1.0.1; made formatting
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * changes - lines to 80 cols - for readability.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 01/21/2005 Updated to support IMA 1.1.3.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *****************************************************************************/
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Library version string */
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China#define IMA_MAX_CALLBACK_PER_PLUGIN 64
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China#define IMA_MAX_NUM_PLUGINS 32
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* DLL imports for WIN32 operation */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* OS specific definitions */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned char IMA_UINT8; // Unsigned 8 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned short IMA_UINT16; // Unsigned 16 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned int IMA_UINT32; // Unsigned 32 bits
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Don't confuse, _WIN32 with WIN32... OK, how do you accompish that */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* #ifdef _WIN32 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Note this section needs to be cleaned up for various Unix platforms */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned char IMA_UINT8; /* Unsigned 8 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned short IMA_UINT16; /* Unsigned 16 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef unsigned int IMA_UINT32; /* Unsigned 32 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef IMA_UINT32 IMA_VOID32; /* Opaque 32 bits */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* #ifdef WIN32 */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Generic IMA Constant Definitions
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Value which can be assigned to an IMA_XBOOL.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Base IMA Type Definitions
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @note Types that have a specific size must be defined ImaOsTypes.h which is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an OS specific include file which is included by this file.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A character.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A wide character.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* An integer. Spec states this is 32 bits on 32-bit systems, and 64-bit
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* on 64-bit systems.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* An extended boolean: can have the values @ref IMA_TRUE, @ref IMA_FALSE, and
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @ref IMA_UNKNOWN.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A date and time.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Constants and macros declarations related to IMA_STATUS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_SUCCESS(status) (((IMA_STATUS)(status) & \
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte (IMA_STATUS)IMA_STATUS_ERROR) == 0 ? IMA_TRUE : IMA_FALSE)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR(status) (((IMA_STATUS)(status) & \
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte (IMA_STATUS)IMA_STATUS_ERROR) == 0x8000000 ? IMA_TRUE : IMA_FALSE)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define MAKE_IMA_ERROR(x) ((IMA_STATUS)(IMA_STATUS_ERROR | (x)))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define GET_SYSTEM_ERROR(x) (((IMA_STATUS)(x) & 0x0000FFFF))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_STATUS_REBOOT_NECESSARY MAKE_IMA_STATUS(0x01)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_STATUS_INCONSISTENT_NODE_PROPERTIES MAKE_IMA_STATUS(0x02)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_STATUS_SCSI_STATUS_CONDITION_MET MAKE_IMA_STATUS(0x100)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_NOT_SUPPORTED MAKE_IMA_ERROR(0x01)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_INSUFFICIENT_MEMORY MAKE_IMA_ERROR(0x02)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD MAKE_IMA_ERROR(0x03)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_UNEXPECTED_OS_ERROR MAKE_IMA_ERROR(0x04)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_SYNC_TIMEOUT MAKE_IMA_ERROR(0x05)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_LU_NOT_EXPOSED MAKE_IMA_ERROR(0x07)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_TARGET_TIMEOUT MAKE_IMA_ERROR(0x09)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_LOGIN_REJECTED MAKE_IMA_ERROR(0x0A)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_STATS_COLLECTION_NOT_ENABLED MAKE_IMA_ERROR(0x0B)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_SCSI_STATUS_CHECK_CONDITION MAKE_IMA_ERROR(0x100)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_SCSI_STATUS_BUSY MAKE_IMA_ERROR(0x101)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT MAKE_IMA_ERROR(0x102)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_SCSI_STATUS_TASK_SET_FULL MAKE_IMA_ERROR(0x103)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_SCSI_STATUS_ACA_ACTIVE MAKE_IMA_ERROR(0x104)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_SCSI_STATUS_TASK_ABORTED MAKE_IMA_ERROR(0x105)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_INVALID_PARAMETER MAKE_IMA_ERROR(0x40000000)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_INVALID_OBJECT_TYPE MAKE_IMA_ERROR(0x40000001)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_INCORRECT_OBJECT_TYPE MAKE_IMA_ERROR(0x40000002)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_OBJECT_NOT_FOUND MAKE_IMA_ERROR(0x40000003)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_NAME_TOO_LONG MAKE_IMA_ERROR(0x40000004)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR_UNKNOWN_ERROR MAKE_IMA_ERROR(0x0fffffff)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef enum {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_STATUS_INCONSISTENT_NODE_PROPERTIES = 0x00000002,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_STATUS_SCSI_STATUS_CONDITION_MET = 0x00000100,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD = 0x80000003,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_ERROR_STATS_COLLECTION_NOT_ENABLED = 0x8000000B,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_ERROR_SCSI_STATUS_CHECK_CONDITION = 0x80000100,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT = 0x80000102,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_ERROR_SCSI_STATUS_TASK_SET_FULL = 0x80000103,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_SUCCESS(status) ( (IMA_UINT32)(status) & \
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte (IMA_UINT32)IMA_STATUS_ERROR == 0 ? \
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_TRUE : IMA_FALSE )
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR(status) ( (IMA_UINT32)(status) & \
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte (IMA_UINT32)IMA_STATUS_ERROR == 0x8000000 ? \
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_TRUE : IMA_FALSE )
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_SUCCESS(status) !((status) & IMA_STATUS_ERROR)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define IMA_ERROR(status) ((status) & IMA_STATUS_ERROR)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_OBJECT_TYPE enumeration
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_OID structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* This structure should be treated as opaque by clients of the API.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Appropriate APIs should be used to extract information from the structure.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The type of the object. When an object ID is supplied as a parameter
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * to an API the library uses this value to insure that the supplied
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * object's type is appropriate for the API.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A value determined by the library which it uses to uniquely identify the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * owner of an object. The owner of an object is either the library itself
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * or a plugin. When an object ID is supplied as a parameter to an API the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * library uses this value to determine if it should handle the call itself
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * or direct the call to one or more plugins.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A value determined by a plugin which a plugin uses, perhaps in
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * combination with the object type, to uniquely identify one of its
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_OID_LIST structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* This structure is used by a number of APIs to return lists of objects. Any
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* instance of this structure returned by an API must be freed by a client
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* using the IMA_FreeObjectIdList API. Although oids is declared to be an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* array of one
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @ref IMA_OID structure it can in fact contain any number of
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @ref IMA_OID structures.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @note The @a oids array is a variable length array, despite its declaration
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* below it can be of any length.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The number of object IDs in the @a oids array.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A variable length array of zero or more object IDs. There are
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 'oidCount' object IDs in this array.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef IMA_WCHAR IMA_HOST_NAME[IMA_HOST_NAME_LEN];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_LIBRARY_PROPERTIES structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The version of the iSCSI Management API implemented by the library.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The value returned by a library for the API as described in this
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * document is one.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string containing the name of the vendor that
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * created the binary version of the library.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string containing the implementation version
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * of the library from the vendor specified in the 'vendor' field.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string ideally containing the path and file
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * name of the library that is being used by the currently executing
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * process can be found. If the path cannot be determined then it is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * acceptable to fill this field with only the name (and extension if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * applicable) of the file of the library. If this cannot be determined
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * then this field should be an empty string.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The time and date that the library that is executing was built.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_PLUGIN_PROPERTIES structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_NODE_NAME type
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef IMA_WCHAR IMA_NODE_NAME[IMA_NODE_NAME_LEN];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_NODE_ALIAS type
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef IMA_WCHAR IMA_NODE_ALIAS[IMA_NODE_ALIAS_LEN];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_DOMAIN_NAME type
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A variable of this type may be formatted in any of the following four ways:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* 1. An empty string, which indicates that no host or IP address is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* 2. A DNS host name
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* 3. A dotted-decimal IPv4 address
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* 4. A bracketed IPv6 address as specified in RFC 2732
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* In all cases a domain name is terminated by a nul character.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* This type is used by several APIs: IMA_SetPhbaSnsDiscovery(),
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* IMA_SetNetworkPortalIpAddress(), and indirectly by
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* IMA_GetPhbaDiscoveryProperties().
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct _IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_NODE_PROPERTIES structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* This structure is returned by the IMA_GetNodeProperties() API.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* NOTE: It is possible for both 'runningInInitiatorMode' and
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* 'runningInTargetMode' to be set to @c IMA_TRUE. This means that
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* the node is operating both as an initiator and as a target.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A boolean indicating if the node is running as initiator or not.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A boolean indicating if the node is running as a target or not.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A boolean which indicates if the node's name is set or not.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated Unicode string which contains the name of the node.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The value in this field is only valid if 'nameValid' is set to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * IMA_TRUE, in which case it will be Unicode NULL terminated. If
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 'nameValid' is set to IMA_FALSE then this field will contain an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * empty string.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A boolean which indicates if the node's alias is set or not.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated Unicode string which contains the alias of the node.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * This field is only valid if 'aliasValid' is set to IMA_TRUE, in which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * case it will be Unicode NULL terminated. If 'aliasValid' is set to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * IMA_FALSE then this field will contain an empty string.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Boolean indicating if both the name and alias are settable using
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * IMA_SetNodeName() and IMA_SetNodeAlias().
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_LHBA_PROPERTIES structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* This structure is returned by the IMA_GetLhbaProperties() API.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_ULP_xxx constants
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_MIN_MAX_VALUE structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Note: If the 'currentValueValid' field is IMA_FALSE then the value of
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* 'settable' must also be set to IMA_FALSE.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Note: The fields in this structure contain values which are defined by the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* implementation and not by the iSCSI specification. It is possible
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* that an implementation may be more or less restrictive in the values
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* that it can accept than the iSCSI specification allows.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Note: An example of how to use 'incrementValue': Suppose that a structure is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* obtained where 'currentValueValid' is IMA_TRUE, 'settable' is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* IMA_TRUE, 'currentValue' is 50, 'defaultValue' is 50, 'minimumValue'
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* is 30, 'maximumValue' is 70 and 'incrementValue' is 10. In this case,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* the possible values that the property can be set to are 30, 40, 50,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* 60, and 70. The new value must be the current value plus or minus
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* some multiple of 'incrementValue'.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A boolean indicating if the @a currentValue field contains a valid value.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Indicates if the corresponding property is settable. If this field
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * has the value IMA_TRUE then the 'defaultValue', 'minimumValue',
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 'maximumValue', and 'incrementValue' fields shall contain valid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * values. If this field has the value IMA_FALSE then these fields
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * have undefined values.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * If currentValueValid has the value IMA_TRUE then this field contains
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the current value of the associated property. If 'currentValueValid' has
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the value IMA_FALSE then the value of this field is undefined.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * If 'settable' has the value IMA_TRUE then this field contains the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * implementation's default value of the associated property. If 'settable'
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * has the value IMA_FALSE then the value of this field is undefined.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * If 'settable' has the value IMA_TRUE then this field contains the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * implementation's minimum value of the associated property. If 'settable'
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * has the value IMA_FALSE then the value of this field is undefined.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * If 'settable' has the value IMA_TRUE then this field contains the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * implementation's maximum value of the associated property. If 'settable'
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * has the value IMA_FALSE then the value of this field is undefined.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * If 'settable' has the value IMA_TRUE then this field contains a value
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * which can be added to or subtracted from 'currentValue' to obtain other
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * possible values of the associated property. If 'settable' has the value
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * IMA_FALSE then the value of this field is undefined.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_PHBA_PROPERTIES structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* This structure is returned by the IMA_GetPhbaProperties() API.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Note: Both 'isInitiator' and 'isTarget' cannot be set to IMA_FALSE as this
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* would mean that the PHBA was not functioning as either an initiator or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* target, which means that its not functioning at all.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the name of the vendor
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * of a PHBA. If the first character in this field is nul then the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * vendor is unknown.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the name of the model of
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * a PHBA. If the first character in this field is nul then the model is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains a description of a PHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * This is a user friendly description of the PHBA. If the first character
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * in this field is nul then there is no description.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the serial number of a
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * PHBA. If the first character in this field is nul then the serial
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * number is unknown.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the hardware version of
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * a PHBA. If the first character in this field is nul then the hardware
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * version is unknown.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the ASIC version of a
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * PHBA. If the first character in this field is nul then the ASIC
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * version is unknown or is not applicable.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the firmware version of
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * a PHBA. If the first character in this field is nul then the firmware
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * version is unknown or is not applicable.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the option ROM version
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * of a PHBA. If the first character in this field is nul then the option
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * ROM version is unknown or is not applicable.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the name of the driver
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * controlling a PHBA. If the first character in this field is nul then
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the name of the driver is unknown.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A nul terminated ASCII string which contains the version of the driver
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * specified in 'driverName'. If the first character in this field is nul
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * then the version of the driver is unknown.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * This field can have a known value only if @a driverName has a known
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * value as well.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A field containing flags which indicate what upper level protocols
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * are supported by a PHBA. Examples of upper level protocols include:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * - TCP, represented by IMA_ULP_TCP
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * - SCTP, represented by IMA_ULP_SCTP
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * - UDP, represented by IMA_ULP_UDP
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A extended boolean which indicates if a PHBA supports executing SCSI
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * commands which cause bidirectional transfers.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Note: The value of this field applies to the entire stack:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the hardware, ASIC, firmware, driver, etc. All must support SCSI
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * commands which cause bidirectional transfers for this field to be
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * set to IMA_TRUE.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The maximum length, in bytes, of a CDB that can be transferred by
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * this PHBA. If this field has a value of zero that indicates that
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * this value is unknown.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Note: The value of this field applies to the entire stack:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the hardware, ASIC, firmware, driver, etc. All must support the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * maximum CDB length returned in this field.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * An extended boolean which indicates if a PHBA can also function as
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * a standard NIC concurrently with functioning as an iSCSI PHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A extended boolean which indicates if a PHBA is functioning as a
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * standard NIC concurrently with functioning as an iSCSI PHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * An extended boolean indicating if the PHBA is functioning as an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * initiator.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * An extended boolean indicating if the PHBA is functioning as a target.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * An extended boolean indicating if the PHBA is using a TCP offload engine.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Note: This value should only be set to @c IMA_TRUE if a TCP offload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * engine is present and is being used. If it can be determined that a
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * TCP offload engine is present, but it cannot be determined if that
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * offload engine is being used then this value should be set to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * IMA_UNKNOWN.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * An extended boolean indicating if the PHBA is using a iSCSI offload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Note: This value should only be set to @c IMA_TRUE if a iSCSI offload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * engine is present and is being used. If it can be determined that an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * iSCSI offload engine is present, but it cannot be determined if that
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * offload engine is being used then this value should be set to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * IMA_UNKNOWN.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Declaration of the IMA_DISCOVERY_PROPERTIES structure
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte IMA_BOOL timeLimitExceededSessionFailedCountValid;
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing Chinatypedef struct ima_plugin_info {
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China char PluginName[64];
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China char PluginPath[256];
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China HINSTANCE hPlugin; /* Handle to a loaded DLL */
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China void* hPlugin; /* Handle to a loaded DLL */
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China IMA_UINT32 ownerId;
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China HANDLE pluginMutex;
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China int pluginMutex;
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China IMA_UINT number_of_vbcallbacks;
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China IMA_OBJECT_VISIBILITY_FN vbcallback[IMA_MAX_CALLBACK_PER_PLUGIN];
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China IMA_UINT number_of_pccallbacks;
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China IMA_OBJECT_PROPERTY_FN pccallback[IMA_MAX_CALLBACK_PER_PLUGIN];
aff4bce51ecc47df7e5a6351b7cee6bc20408c63yi zhang - Sun Microsystems - Beijing China} IMA_PLUGIN_INFO, *PIMA_PLUGIN_INFO;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The individual APIs of the IMA are declared below.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the properties of the IMA library that is being used.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pProps
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an IMA_LIBRARY_PROPERTIES structure allocated by
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* the caller. On successful return this structure will contain the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* properties of the IMA library.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the library properties were successfully returned.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pProps' is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets a list of the object IDs of all currently loaded plugins.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param ppList
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to a pointer to an IMA_OID_LIST. On successful
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* return this will contain a pointer to an @ref IMA_OID_LIST
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* which contains the object IDs of all of the plugins currently
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* loaded by the library.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* if an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the plugin ID list was successfully returned.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'ppList' is NULL or specifies a memory area to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* which data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the properties of the specified vendor plugin.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pluginOid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The ID of the plugin whose properties are being retrieved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pProps
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an @ref IMA_PLUGIN_PROPERTIES structure allocated by
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* the caller. On successful return this will contain the properties
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* of the plugin specified by pluginOid.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the plugin properties were successfully returned.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pluginOid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pluginOid' does not specify a plugin object.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pluginOid' refers to a plugin, but not one that
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* is currently loaded.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pProps' is NULL or specifies a memory area to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* which data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the object ID for the plugin associated with the specified object ID.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The object ID of an object that has been received from a previous
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* library call.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pPluginOid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an IMA_OID structure allocated by the caller. On
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* successful return this will contain the object ID of the plugin
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* associated with the object specified by @a objectId. This
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* can then be used to work with the plugin, e.g., to get the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* properties of the plugin or the send the plugin an IOCtl.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the associated plugin ID was successfully returned.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pPluginOid' is NULL or specifies a memory area to
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* which data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' specifies an object not owned by a plugin, but
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* instead one that is owned by the library.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' specifies an object with an invalid type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the object ID of the shared node.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pSharedNodeOid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an IMA_OID structure allocated by the caller. On
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* successful return it will contain the object ID of the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* shared node of the currently executing system is placed.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* if an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the shared node ID has been successfully retrieved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pSharedNodeOid' is NULL or specifies a memory area
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* to which data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the properties of the specified iSCSI node.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param nodeOid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The ID of the node to get the properties of.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pProps
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an @ref IMA_NODE_PROPERTIES structure which on
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* successful return will contain the properties of the specified node.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the node properties have been successfully retrieved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pProps' is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify a node object.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify a node which is currently
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* known to the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Sets the name of the specified node.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param nodeOid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The object ID of the node whose name is being set.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param newName
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The new name of the node.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* if an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the node name was successfully changed.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_STATUS_REBOOT_NECESSARY
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if a reboot is necessary before the setting of the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* name actually takes affect.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'newName' is NULL, or specifies a memory area
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* to which data cannot be written, or has a length of 0.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify a node object.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify a node which is
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* currently known to the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_NAME_TOO_LONG
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'newName' contains too many characters.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Generates a unique node name for the currently running system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param generatedName
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* On successful return contains the generated node name.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'generatedname is NULL or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* specifies a memory area to which data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Sets the alias of the specified node.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param nodeOid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The object ID of the node whose alias is being set.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param newAlias
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to a Unicode string which contains the new node alias.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* If this parameter is NULL then the current alias is deleted, in which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* case the specified node no longer has an alias.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* if an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the node's alias has been successfully set.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_STATUS_REBOOT_NECESSARY
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A reboot is necessary before the setting of the alias actually
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* takes effect.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify a node object.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'nodeOid' does not specify a node which is currently
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* known to the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_NAME_TOO_LONG
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'newAlias' contains too many characters.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets a list of the object IDs of all the logical HBAs in the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param ppList
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to a pointer to an @ref IMA_OID_LIST structure. On
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* successful return this will contain a pointer to an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* IMA_OID_LIST which contains the object IDs of all of the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* LHBAs currently in the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the LHBA ID list has been successfully returned.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'ppList' is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the properties of the specified logical HBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param lhbaOid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The object ID of the LHBA whose properties are being retrieved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pProps
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an IMA_LHBA_PROPERTIES structure. On successful
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* return this will contain the properties of the LHBA specified by
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the properties of the specified LHBA have been
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* successfully retrieved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pProps' is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'lhbaOid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'lhbaOid' does not specify a LHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'lhbaOid' does not specify a LHBA which is currently
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* known to the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets a list of the object IDs of all the physical HBAs in the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param ppList
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to a pointer to an IMA_OID_LIST structure. On successful
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* return this will contain a pointer to an IMA_OID_LIST which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* contains the object IDs of all of the PHBAs currently in the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the PHBA OID list has been successfully returned.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'ppList' is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the general properties of a physical HBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param phbaOid
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The object ID of the PHBA whose properties are being queried.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pProps
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an @ref IMA_PHBA_PROPERTIES structure. On successful
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* return this will contain the properties of the PHBA specified by
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* if an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the properties of the specified PHBA have been
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* successfully retrieved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pProps' is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'phbaOid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'phbaOid' does not specify a PHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'phbaOid' does not specify a PHBA which is currently
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* known to the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Frees a previously allocated IMA_OID_LIST structure.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pMemory A pointer to an IMA_OID_LIST structure allocated by the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* library. On successful return the memory allocated by the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* list is freed.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the specified object ID list was successfully
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if pMemory is NULL or specifies a memory area from which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be read.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the first burst length properties of the specified logical HBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The object ID of the logical HBA to get the first burst length
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* properties of.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pProps
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to a min/max values structure.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if an
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the first burst length properties have been
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* successfully retrieved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if pProps is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify a LHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify a LHBA which is currently
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* known to the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetFirstBurstLengthProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the max burst length properties of the specified logical HBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The object ID of the logical HBA to get the max burst length
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* properties of.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pProps
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an IMA_MIN_MAX_VALUE structure allocated by the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* caller. On successful return this structure will contain the max
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* burst length properties of this LHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the max burst length properties have been successfully
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if pProps is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify a LHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify a LHBA which is currently
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* known to the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetMaxBurstLengthProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Gets the maximum receive data segment length properties of the specified
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* logical HBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* The object ID of the logical HBA to get the max receive data
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* segment length properties of.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @param pProps
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* A pointer to an @ref IMA_MIN_MAX_VALUE structure allocated by the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* caller. On successful return this structure will contain the max
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* receive data segment length properties of this LHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @return An IMA_STATUS indicating if the operation was successful or if
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* an error occurred.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_SUCCESS
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if the max receive data segment length properties
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* have been successfully retrieved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_PARAMETER
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'pProps' is NULL or specifies a memory area to which
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* data cannot be written.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INVALID_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify any valid object type.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify a LHBA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* @retval IMA_ERROR_OBJECT_NOT_FOUND
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* Returned if 'oid' does not specify a LHBA which is currently
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte* known to the system.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte*******************************************************************************
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetMaxRecvDataSegmentLengthProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*---------------------------------------------*/
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_SetMaxRecvDataSegmentLength(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetMaxConnectionsProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetDefaultTime2RetainProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetDefaultTime2WaitProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetMaxOutstandingR2TProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetErrorRecoveryLevelProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetImmediateDataProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetDataPduInOrderProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetDataSequenceInOrderProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_RemoveStaticDiscoveryTarget(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetNetworkPortalProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_RegisterForObjectVisibilityChanges (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_DeregisterForObjectVisibilityChanges (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_RegisterForObjectPropertyChanges (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_DeregisterForObjectPropertyChanges (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetInUseInitiatorAuthMethods(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetOidList (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetProperties(
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte const IMA_STATIC_DISCOVERY_TARGET staticDiscoveryTarget,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetDiscoveryAddressOidList (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS IMA_GetDiscoveryAddressProperties (
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteIMA_API IMA_STATUS QIMA_SetUpdateInterval(IMA_OID pluginOid, time_t interval);