1N/A/*
1N/A * CDDL HEADER START
1N/A *
1N/A * The contents of this file are subject to the terms of the
1N/A * Common Development and Distribution License (the "License").
1N/A * You may not use this file except in compliance with the License.
1N/A *
1N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1N/A * or http://www.opensolaris.org/os/licensing.
1N/A * See the License for the specific language governing permissions
1N/A * and limitations under the License.
1N/A *
1N/A * When distributing Covered Code, include this CDDL HEADER in each
1N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1N/A * If applicable, add the following below this CDDL HEADER, with the
1N/A * fields enclosed by brackets "[]" replaced with your own identifying
1N/A * information: Portions Copyright [yyyy] [name of copyright owner]
1N/A *
1N/A * CDDL HEADER END
1N/A */
1N/A/*
2N/A * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
1N/A */
1N/A
1N/A/******************************************************************************
1N/A *
1N/A * Description
1N/A * Ima.h - general header file for client
1N/A * and library developers
1N/A *
1N/A * License:
1N/A * The contents of this file are subject to the SNIA Public License
1N/A * Version 1.0 (the "License"); you may not use this file except in
1N/A * compliance with the License. You may obtain a copy of the License at
1N/A *
1N/A * /http://www.snia.org/English/Resources/Code/OpenSource.html
1N/A *
1N/A * Software distributed under the License is distributed on an "AS IS"
1N/A * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
1N/A * the License for the specific language governing rights and limitations
1N/A * under the License.
1N/A *
1N/A * The Original Code is SNIA HBA API and IMA general header file
1N/A *
1N/A * The Initial Developer of the Original Code is:
1N/A * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com)
1N/A * David Dillard VERITAS Software david.dillard@veritas.com
1N/A *
1N/A * Contributor(s):
1N/A * Jeff Ding, Adaptec, Inc. (jding@corp.adaptec.com)
1N/A * Dave Wysochanski, Network Appliance, Inc. (davidw@netapp.com)
1N/A *
1N/A ******************************************************************************
1N/A *
1N/A * Changes:
1N/A * 09/24/2003 Initial Draft
1N/A * (for other changes... see the CVS logs)
1N/A * 12/15/2003 corrected the defined parameter in IMA_SetPhbaIsnsDiscovery().
1N/A * lower case the computer name as iscsi name in
1N/A * IMA_GenerateNodeName().
1N/A * 03/01/2004 Brought up to date with respect to IMA v1.0.1; made formatting
1N/A * changes - lines to 80 cols - for readability.
1N/A *
1N/A * 01/21/2005 Updated to support IMA 1.1.3.
1N/A *****************************************************************************/
1N/A#ifdef __cplusplus
1N/Aextern "C" {
1N/A#endif
1N/A
1N/A#ifndef IMA_H
1N/A#define IMA_H
1N/A
1N/A#include <time.h>
1N/A#include <wchar.h>
1N/A
1N/A
1N/A/* Library version string */
1N/A#define HBA_LIBVERSION 2
1N/A
1N/A#define IMA_MAX_CALLBACK_PER_PLUGIN 64
1N/A#define IMA_MAX_NUM_PLUGINS 32
1N/A
1N/A/* DLL imports for WIN32 operation */
1N/A#ifdef WIN32
1N/A#ifdef IMA_EXPORTS
1N/A#define IMA_API __declspec(dllexport)
1N/A#else
1N/A#define IMA_API __declspec(dllimport)
1N/A#endif
1N/A#else
1N/A#define IMA_API
1N/A#endif
1N/A
1N/A/* OS specific definitions */
1N/A
1N/A#ifdef WIN32
1N/Atypedef unsigned char IMA_UINT8; // Unsigned 8 bits
1N/Atypedef char IMA_INT8; // Signed 8 bits
1N/Atypedef unsigned short IMA_UINT16; // Unsigned 16 bits
1N/Atypedef short IMA_INT16; // Signed 16 bits
1N/Atypedef unsigned int IMA_UINT32; // Unsigned 32 bits
1N/Atypedef int IMA_INT32; // Signed 32 bits
1N/Atypedef void* IMA_PVOID; // Pointer to void
1N/Atypedef IMA_UINT32 IMA_VOID32; // Opaque 32 bits
1N/A
1N/A
1N/A/* Don't confuse, _WIN32 with WIN32... OK, how do you accompish that */
1N/A#ifdef _WIN32
1N/Atypedef __int64 IMA_INT64;
1N/Atypedef unsigned __int64 IMA_UINT64;
1N/A#else
1N/Atypedef struct {
1N/A TN_UINT32 lo_val;
1N/A TN_UINT32 hi_val;
1N/A} IMA_INT64;
1N/A
1N/Atypedef struct {
1N/A TN_UINT32 lo_val;
1N/A TN_UINT32 hi_val;
1N/A} IMA_UINT64;
1N/A#endif /* #ifdef _WIN32 */
1N/A
1N/A
1N/A#else
1N/A
1N/A/* Note this section needs to be cleaned up for various Unix platforms */
1N/Atypedef unsigned char IMA_UINT8; /* Unsigned 8 bits */
1N/Atypedef char IMA_INT8; /* Signed 8 bits */
1N/Atypedef unsigned short IMA_UINT16; /* Unsigned 16 bits */
1N/Atypedef short IMA_INT16; /* Signed 16 bits */
1N/Atypedef unsigned int IMA_UINT32; /* Unsigned 32 bits */
1N/Atypedef int IMA_INT32; /* Signed 32 bits */
1N/Atypedef void* IMA_PVOID; /* Pointer to void */
1N/Atypedef IMA_UINT32 IMA_VOID32; /* Opaque 32 bits */
1N/Atypedef long long IMA_INT64;
1N/Atypedef long long IMA_UINT64;
1N/A
1N/A#endif /* #ifdef WIN32 */
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Generic IMA Constant Definitions
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/A#define RL_LIBRARY_SEQNUM 0
1N/A#define RL_SHARED_NODE_SEQNUM 0
1N/A
1N/A/**
1N/A* Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL.
1N/A*/
1N/A#define IMA_TRUE 1
1N/A
1N/A/**
1N/A* Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL.
1N/A*/
1N/A#define IMA_FALSE 0
1N/A
1N/A/**
1N/A* Value which can be assigned to an IMA_XBOOL.
1N/A*/
1N/A#define IMA_UNKNOWN 0xFFFFFFFF
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Base IMA Type Definitions
1N/A*
1N/A* @note Types that have a specific size must be defined ImaOsTypes.h which is
1N/A* an OS specific include file which is included by this file.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/A
1N/A/**
1N/A* A character.
1N/A*/
1N/Atypedef char IMA_CHAR;
1N/A
1N/A/**
1N/A* A wide character.
1N/A*/
1N/Atypedef wchar_t IMA_WCHAR;
1N/A
1N/A/**
1N/A* An integer. Spec states this is 32 bits on 32-bit systems, and 64-bit
1N/A* on 64-bit systems.
1N/A*/
1N/Atypedef unsigned long IMA_UINT;
1N/A
1N/A/**
1N/A* A boolean.
1N/A*/
1N/Atypedef IMA_UINT32 IMA_BOOL;
1N/A
1N/A/**
1N/A* An extended boolean: can have the values @ref IMA_TRUE, @ref IMA_FALSE, and
1N/A* @ref IMA_UNKNOWN.
1N/A*/
1N/Atypedef IMA_UINT32 IMA_XBOOL;
1N/A
1N/A/**
1N/A* A date and time.
1N/A*/
1N/Atypedef struct tm IMA_DATETIME;
1N/A
1N/Atypedef unsigned char IMA_BYTE;
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Constants and macros declarations related to IMA_STATUS
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/A#ifdef SOLARIS
1N/Atypedef IMA_UINT IMA_STATUS;
1N/A
1N/A#define IMA_STATUS_SUCCESS 0x00000000
1N/A#define IMA_STATUS_ERROR 0x80000000
1N/A
1N/A#define IMA_SUCCESS(status) (((IMA_STATUS)(status) & \
1N/A (IMA_STATUS)IMA_STATUS_ERROR) == 0 ? IMA_TRUE : IMA_FALSE)
1N/A#define IMA_ERROR(status) (((IMA_STATUS)(status) & \
1N/A (IMA_STATUS)IMA_STATUS_ERROR) == 0x8000000 ? IMA_TRUE : IMA_FALSE)
1N/A
1N/A#define MAKE_IMA_STATUS(x) ((IMA_STATUS)(x))
1N/A#define MAKE_IMA_ERROR(x) ((IMA_STATUS)(IMA_STATUS_ERROR | (x)))
1N/A#define GET_SYSTEM_ERROR(x) (((IMA_STATUS)(x) & 0x0000FFFF))
1N/A
1N/A#define IMA_STATUS_REBOOT_NECESSARY MAKE_IMA_STATUS(0x01)
1N/A#define IMA_STATUS_INCONSISTENT_NODE_PROPERTIES MAKE_IMA_STATUS(0x02)
1N/A#define IMA_STATUS_SCSI_STATUS_CONDITION_MET MAKE_IMA_STATUS(0x100)
1N/A
1N/A#define IMA_ERROR_NOT_SUPPORTED MAKE_IMA_ERROR(0x01)
1N/A#define IMA_ERROR_INSUFFICIENT_MEMORY MAKE_IMA_ERROR(0x02)
1N/A#define IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD MAKE_IMA_ERROR(0x03)
1N/A#define IMA_ERROR_UNEXPECTED_OS_ERROR MAKE_IMA_ERROR(0x04)
1N/A#define IMA_ERROR_SYNC_TIMEOUT MAKE_IMA_ERROR(0x05)
1N/A#define IMA_ERROR_LU_EXPOSED MAKE_IMA_ERROR(0x06)
1N/A#define IMA_ERROR_LU_NOT_EXPOSED MAKE_IMA_ERROR(0x07)
1N/A#define IMA_ERROR_LU_IN_USE MAKE_IMA_ERROR(0x08)
1N/A#define IMA_ERROR_TARGET_TIMEOUT MAKE_IMA_ERROR(0x09)
1N/A#define IMA_ERROR_LOGIN_REJECTED MAKE_IMA_ERROR(0x0A)
1N/A#define IMA_ERROR_STATS_COLLECTION_NOT_ENABLED MAKE_IMA_ERROR(0x0B)
1N/A#define IMA_ERROR_SCSI_STATUS_CHECK_CONDITION MAKE_IMA_ERROR(0x100)
1N/A#define IMA_ERROR_SCSI_STATUS_BUSY MAKE_IMA_ERROR(0x101)
1N/A#define IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT MAKE_IMA_ERROR(0x102)
1N/A#define IMA_ERROR_SCSI_STATUS_TASK_SET_FULL MAKE_IMA_ERROR(0x103)
1N/A#define IMA_ERROR_SCSI_STATUS_ACA_ACTIVE MAKE_IMA_ERROR(0x104)
1N/A#define IMA_ERROR_SCSI_STATUS_TASK_ABORTED MAKE_IMA_ERROR(0x105)
1N/A#define IMA_ERROR_INVALID_PARAMETER MAKE_IMA_ERROR(0x40000000)
1N/A#define IMA_ERROR_INVALID_OBJECT_TYPE MAKE_IMA_ERROR(0x40000001)
1N/A#define IMA_ERROR_INCORRECT_OBJECT_TYPE MAKE_IMA_ERROR(0x40000002)
1N/A#define IMA_ERROR_OBJECT_NOT_FOUND MAKE_IMA_ERROR(0x40000003)
1N/A#define IMA_ERROR_NAME_TOO_LONG MAKE_IMA_ERROR(0x40000004)
1N/A#define IMA_ERROR_UNKNOWN_ERROR MAKE_IMA_ERROR(0x0fffffff)
1N/A
1N/A#else
1N/A
1N/Atypedef enum {
1N/A IMA_STATUS_SUCCESS = 0x00000000,
1N/A IMA_STATUS_REBOOT_NECESSARY = 0x00000001,
1N/A IMA_STATUS_INCONSISTENT_NODE_PROPERTIES = 0x00000002,
1N/A IMA_STATUS_SCSI_STATUS_CONDITION_MET = 0x00000100,
1N/A
1N/A IMA_STATUS_ERROR = 0x80000000,
1N/A IMA_ERROR_NOT_SUPPORTED = 0x80000001,
1N/A IMA_ERROR_INSUFFICIENT_MEMORY = 0x80000002,
1N/A IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD = 0x80000003,
1N/A IMA_ERROR_UNEXPECTED_OS_ERROR = 0x80000004,
1N/A IMA_ERROR_SYNC_TIMEOUT = 0x80000005,
1N/A IMA_ERROR_LU_EXPOSED = 0x80000006,
1N/A IMA_ERROR_LU_NOT_EXPOSED = 0x80000007,
1N/A IMA_ERROR_LU_IN_USE = 0x80000008,
1N/A IMA_ERROR_TARGET_TIMEOUT = 0x80000009,
1N/A IMA_ERROR_LOGIN_REJECTED = 0x8000000A,
1N/A IMA_ERROR_STATS_COLLECTION_NOT_ENABLED = 0x8000000B,
1N/A IMA_ERROR_SCSI_STATUS_CHECK_CONDITION = 0x80000100,
1N/A IMA_ERROR_SCSI_STATUS_BUSY = 0x80000101,
1N/A IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT = 0x80000102,
1N/A IMA_ERROR_SCSI_STATUS_TASK_SET_FULL = 0x80000103,
1N/A IMA_ERROR_SCSI_STATUS_ACA_ACTIVE = 0x80000104,
1N/A IMA_ERROR_SCSI_STATUS_TASK_ABORTED = 0x80000105,
1N/A IMA_ERROR_INVALID_PARAMETER = 0xC0000000,
1N/A IMA_ERROR_INVALID_OBJECT_TYPE = 0xC0000001,
1N/A IMA_ERROR_INCORRECT_OBJECT_TYPE = 0xC0000002,
1N/A IMA_ERROR_OBJECT_NOT_FOUND = 0xC0000003,
1N/A IMA_ERROR_NAME_TOO_LONG = 0xC0000004,
1N/A IMA_ERROR_UNKNOWN_ERROR = 0x8FFFFFFF
1N/A} IMA_STATUS;
1N/A
1N/A/*
1N/A#define IMA_SUCCESS(status) ( (IMA_UINT32)(status) & \
1N/A (IMA_UINT32)IMA_STATUS_ERROR == 0 ? \
1N/A IMA_TRUE : IMA_FALSE )
1N/A#define IMA_ERROR(status) ( (IMA_UINT32)(status) & \
1N/A (IMA_UINT32)IMA_STATUS_ERROR == 0x8000000 ? \
1N/A IMA_TRUE : IMA_FALSE )
1N/A*/
1N/A
1N/A#define IMA_SUCCESS(status) !((status) & IMA_STATUS_ERROR)
1N/A#define IMA_ERROR(status) ((status) & IMA_STATUS_ERROR)
1N/A
1N/A#endif
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_OBJECT_TYPE enumeration
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef enum
1N/A{
1N/A IMA_OBJECT_TYPE_UNKNOWN = 0,
1N/A IMA_OBJECT_TYPE_PLUGIN = 1,
1N/A IMA_OBJECT_TYPE_NODE = 2,
1N/A IMA_OBJECT_TYPE_LHBA = 3,
1N/A IMA_OBJECT_TYPE_PHBA = 4,
1N/A IMA_OBJECT_TYPE_NETWORK_PORTAL = 5,
1N/A IMA_OBJECT_TYPE_PORTAL_GROUP = 6,
1N/A IMA_OBJECT_TYPE_LNP = 7,
1N/A IMA_OBJECT_TYPE_PNP = 8,
1N/A IMA_OBJECT_TYPE_TARGET = 9,
1N/A IMA_OBJECT_TYPE_LU = 10,
1N/A IMA_OBJECT_TYPE_DISCOVERY_ADDRESS = 11,
1N/A IMA_OBJECT_TYPE_STATIC_DISCOVERY_TARGET = 12,
1N/A IMA_OBJECT_TYPE_CONNECTION = 13,
1N/A IMA_OBJECT_TYPE_SESSION = 14
1N/A} IMA_OBJECT_TYPE;
1N/A
1N/Atypedef enum
1N/A{
1N/A IMA_ISNS_DISCOVERY_METHOD_STATIC = 0,
1N/A IMA_ISNS_DISCOVERY_METHOD_DHCP = 1,
1N/A IMA_ISNS_DISCOVERY_METHOD_SLP = 2
1N/A} IMA_ISNS_DISCOVERY_METHOD;
1N/A
1N/Atypedef enum
1N/A{
1N/A IMA_DOWNLOAD_IMAGE_TYPE_FIRMWARE = 0,
1N/A IMA_DOWNLOAD_IMAGE_TYPE_OPTION_ROM = 1,
1N/A IMA_DOWNLOAD_IMAGE_TYPE_ALL = 2,
1N/A IMA_DOWNLOAD_IMAGE_TYPE_BOOTCODE = 3
1N/A} IMA_PHBA_DOWNLOAD_IMAGE_TYPE;
1N/A
1N/Atypedef enum
1N/A{
1N/A IMA_PHBA_STATUS_WORKING = 0,
1N/A IMA_PHBA_STATUS_FAILED = 1
1N/A} IMA_PHBA_STATUS;
1N/A
1N/Atypedef enum
1N/A{
1N/A IMA_NETWORK_PORT_STATUS_WORKING = 0,
1N/A IMA_NETWORK_PORT_STATUS_DEGRADED = 1,
1N/A IMA_NETWORK_PORT_STATUS_CRITICAL = 2,
1N/A IMA_NETWORK_PORT_STATUS_FAILED = 3,
1N/A IMA_NETWORK_PORT_STATUS_DISCONNECTED = 4
1N/A} IMA_NETWORK_PORT_STATUS;
1N/A
1N/Atypedef enum
1N/A{
1N/A IMA_TARGET_DISCOVERY_METHOD_STATIC = 1,
1N/A IMA_TARGET_DISCOVERY_METHOD_SLP = 2,
1N/A IMA_TARGET_DISCOVERY_METHOD_ISNS = 4,
1N/A IMA_TARGET_DISCOVERY_METHOD_SENDTARGETS = 8
1N/A} IMA_TARGET_DISCOVERY_METHOD;
1N/A
1N/Atypedef enum
1N/A{
1N/A IMA_AUTHMETHOD_NONE = 0,
1N/A IMA_AUTHMETHOD_CHAP = 1,
1N/A IMA_AUTHMETHOD_SRP = 2,
1N/A IMA_AUTHMETHOD_KRB5 = 3,
1N/A IMA_AUTHMETHOD_SPKM1 = 4,
1N/A IMA_AUTHMETHOD_SPKM2 = 5
1N/A} IMA_AUTHMETHOD;
1N/A
1N/Atypedef enum
1N/A{
1N/A IMA_COMMIT_TYPE_AUTO = 0,
1N/A IMA_COMMIT_TYPE_ACTIVE,
1N/A IMA_COMMIT_TYPE_PERSISTENT,
1N/A IMA_COMMIT_TYPE_ACTIVE_AND_PERSISTENT,
1N/A IMA_COMMIT_TYPE_ALL_WITH_RESET
1N/A} IMA_COMMIT_LEVEL;
1N/A
1N/Atypedef enum
1N/A{
1N/A IMA_DIGEST_NONE = 0,
1N/A IMA_DIGEST_CRC32C = 1
1N/A} IMA_DIGEST_TYPE;
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_OID structure
1N/A*
1N/A* This structure should be treated as opaque by clients of the API.
1N/A* Appropriate APIs should be used to extract information from the structure.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_OID
1N/A{
1N/A /**
1N/A * The type of the object. When an object ID is supplied as a parameter
1N/A * to an API the library uses this value to insure that the supplied
1N/A * object's type is appropriate for the API.
1N/A */
1N/A IMA_OBJECT_TYPE objectType;
1N/A
1N/A /**
1N/A * A value determined by the library which it uses to uniquely identify the
1N/A * owner of an object. The owner of an object is either the library itself
1N/A * or a plugin. When an object ID is supplied as a parameter to an API the
1N/A * library uses this value to determine if it should handle the call itself
1N/A * or direct the call to one or more plugins.
1N/A */
1N/A IMA_UINT32 ownerId;
1N/A
1N/A /**
1N/A * A value determined by a plugin which a plugin uses, perhaps in
1N/A * combination with the object type, to uniquely identify one of its
1N/A * objects.
1N/A */
1N/A IMA_UINT64 objectSequenceNumber;
1N/A
1N/A} IMA_OID;
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_OID_LIST structure
1N/A*
1N/A* This structure is used by a number of APIs to return lists of objects. Any
1N/A* instance of this structure returned by an API must be freed by a client
1N/A* using the IMA_FreeObjectIdList API. Although oids is declared to be an
1N/A* array of one
1N/A* @ref IMA_OID structure it can in fact contain any number of
1N/A* @ref IMA_OID structures.
1N/A*
1N/A* @note The @a oids array is a variable length array, despite its declaration
1N/A* below it can be of any length.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_OID_LIST
1N/A{
1N/A /**
1N/A * The number of object IDs in the @a oids array.
1N/A */
1N/A IMA_UINT oidCount;
1N/A
1N/A /**
1N/A * A variable length array of zero or more object IDs. There are
1N/A * 'oidCount' object IDs in this array.
1N/A */
1N/A IMA_OID oids[1];
1N/A
1N/A} IMA_OID_LIST;
1N/A
1N/A#define IMA_HOST_NAME_LEN 256
1N/Atypedef IMA_WCHAR IMA_HOST_NAME[IMA_HOST_NAME_LEN];
1N/Atypedef IMA_BYTE IMA_MAC_ADDRESS[6];
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_LIBRARY_PROPERTIES structure
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_LIBRARY_PROPERTIES
1N/A{
1N/A /**
1N/A * The version of the iSCSI Management API implemented by the library.
1N/A * The value returned by a library for the API as described in this
1N/A * document is one.
1N/A */
1N/A IMA_UINT supportedImaVersion;
1N/A
1N/A /**
1N/A * A nul terminated ASCII string containing the name of the vendor that
1N/A * created the binary version of the library.
1N/A */
1N/A IMA_WCHAR vendor[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string containing the implementation version
1N/A * of the library from the vendor specified in the 'vendor' field.
1N/A */
1N/A IMA_WCHAR implementationVersion[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string ideally containing the path and file
1N/A * name of the library that is being used by the currently executing
1N/A * process can be found. If the path cannot be determined then it is
1N/A * acceptable to fill this field with only the name (and extension if
1N/A * applicable) of the file of the library. If this cannot be determined
1N/A * then this field should be an empty string.
1N/A */
1N/A IMA_WCHAR fileName[256];
1N/A
1N/A /**
1N/A * The time and date that the library that is executing was built.
1N/A */
1N/A IMA_DATETIME buildTime;
1N/A
1N/A IMA_BYTE reserved[64];
1N/A} IMA_LIBRARY_PROPERTIES;
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_PLUGIN_PROPERTIES structure
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_PLUGIN_PROPERTIES
1N/A{
1N/A IMA_UINT supportedImaVersion;
1N/A IMA_WCHAR vendor[256];
1N/A IMA_WCHAR implementationVersion[256];
1N/A IMA_WCHAR fileName[256];
1N/A IMA_DATETIME buildTime;
1N/A
1N/A IMA_BOOL lhbasCanBeCreatedAndDestroyed;
1N/A
1N/A IMA_BYTE reserved[64];
1N/A
1N/A} IMA_PLUGIN_PROPERTIES;
1N/A
1N/A
1N/Atypedef struct _IMA_IP_ADDRESS
1N/A{
1N/A IMA_BOOL ipv4Address;
1N/A IMA_BYTE ipAddress[16];
1N/A
1N/A} IMA_IP_ADDRESS;
1N/A
1N/Atypedef struct _IMA_ADDRESS_KEY
1N/A{
1N/A IMA_IP_ADDRESS ipAddress;
1N/A IMA_UINT16 portNumber;
1N/A
1N/A} IMA_ADDRESS_KEY;
1N/A
1N/Atypedef struct _IMA_ADDRESS_KEYS
1N/A{
1N/A IMA_UINT addressKeyCount;
1N/A IMA_ADDRESS_KEY addressKeys[1];
1N/A
1N/A} IMA_ADDRESS_KEYS;
1N/A
1N/Atypedef struct _IMA_ADDRESS_KEY_PROPERTIES
1N/A{
1N/A IMA_UINT addressKeyCount;
1N/A IMA_ADDRESS_KEY addressKeys[1];
1N/A
1N/A} IMA_ADDRESS_KEY_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_IP_PROPERTIES
1N/A{
1N/A IMA_BOOL ipConfigurationMethodSettable;
1N/A IMA_BOOL dhcpConfigurationEnabled;
1N/A
1N/A IMA_BOOL subnetMaskSettable;
1N/A IMA_BOOL subnetMaskValid;
1N/A IMA_IP_ADDRESS subnetMask;
1N/A
1N/A IMA_BOOL defaultGatewaySettable;
1N/A IMA_BOOL defaultGatewayValid;
1N/A IMA_IP_ADDRESS defaultGateway;
1N/A
1N/A IMA_BOOL primaryDnsServerAddressSettable;
1N/A IMA_BOOL primaryDnsServerAddressValid;
1N/A IMA_IP_ADDRESS primaryDnsServerAddress;
1N/A
1N/A IMA_BOOL alternateDnsServerAddressSettable;
1N/A IMA_BOOL alternateDnsServerAddressValid;
1N/A IMA_IP_ADDRESS alternateDnsServerAddress;
1N/A
1N/A IMA_BYTE reserved[64];
1N/A
1N/A} IMA_IP_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_HOST_ID
1N/A{
1N/A IMA_BOOL hostnameInUse;
1N/A union {
1N/A
1N/A IMA_HOST_NAME hostname;
1N/A IMA_IP_ADDRESS ipAddress;
1N/A
1N/A } id;
1N/A
1N/A} IMA_HOST_ID;
1N/A
1N/Atypedef struct _IMA_TARGET_ADDRESS
1N/A{
1N/A IMA_HOST_ID hostnameIpAddress;
1N/A IMA_UINT16 portNumber;
1N/A
1N/A} IMA_TARGET_ADDRESS;
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_NODE_NAME type
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/A#define IMA_NODE_NAME_LEN 224
1N/Atypedef IMA_WCHAR IMA_NODE_NAME[IMA_NODE_NAME_LEN];
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_NODE_ALIAS type
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/A#define IMA_NODE_ALIAS_LEN 256
1N/Atypedef IMA_WCHAR IMA_NODE_ALIAS[IMA_NODE_ALIAS_LEN];
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_DOMAIN_NAME type
1N/A*
1N/A* A variable of this type may be formatted in any of the following four ways:
1N/A* 1. An empty string, which indicates that no host or IP address is
1N/A* specified
1N/A* 2. A DNS host name
1N/A* 3. A dotted-decimal IPv4 address
1N/A* 4. A bracketed IPv6 address as specified in RFC 2732
1N/A*
1N/A* In all cases a domain name is terminated by a nul character.
1N/A* This type is used by several APIs: IMA_SetPhbaSnsDiscovery(),
1N/A* IMA_SetNetworkPortalIpAddress(), and indirectly by
1N/A* IMA_GetPhbaDiscoveryProperties().
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef wchar_t IMA_DOMAIN_NAME[256];
1N/A
1N/Atypedef struct _IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES
1N/A{
1N/A IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType;
1N/A IMA_WCHAR version[32];
1N/A IMA_WCHAR description[512];
1N/A IMA_XBOOL upgrade;
1N/A} IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES;
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_NODE_PROPERTIES structure
1N/A*
1N/A* This structure is returned by the IMA_GetNodeProperties() API.
1N/A*
1N/A* NOTE: It is possible for both 'runningInInitiatorMode' and
1N/A* 'runningInTargetMode' to be set to @c IMA_TRUE. This means that
1N/A* the node is operating both as an initiator and as a target.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_NODE_PROPERTIES
1N/A{
1N/A /**
1N/A * A boolean indicating if the node is running as initiator or not.
1N/A */
1N/A IMA_BOOL runningInInitiatorMode;
1N/A
1N/A /**
1N/A * A boolean indicating if the node is running as a target or not.
1N/A */
1N/A IMA_BOOL runningInTargetMode;
1N/A
1N/A /**
1N/A * A boolean which indicates if the node's name is set or not.
1N/A */
1N/A IMA_BOOL nameValid;
1N/A
1N/A /**
1N/A * A nul terminated Unicode string which contains the name of the node.
1N/A * The value in this field is only valid if 'nameValid' is set to
1N/A * IMA_TRUE, in which case it will be Unicode NULL terminated. If
1N/A * 'nameValid' is set to IMA_FALSE then this field will contain an
1N/A * empty string.
1N/A */
1N/A IMA_NODE_NAME name;
1N/A
1N/A /**
1N/A * A boolean which indicates if the node's alias is set or not.
1N/A */
1N/A IMA_BOOL aliasValid;
1N/A
1N/A /**
1N/A * A nul terminated Unicode string which contains the alias of the node.
1N/A * This field is only valid if 'aliasValid' is set to IMA_TRUE, in which
1N/A * case it will be Unicode NULL terminated. If 'aliasValid' is set to
1N/A * IMA_FALSE then this field will contain an empty string.
1N/A */
1N/A IMA_NODE_ALIAS alias;
1N/A
1N/A /*
1N/A * Boolean indicating if both the name and alias are settable using
1N/A * IMA_SetNodeName() and IMA_SetNodeAlias().
1N/A */
1N/A IMA_BOOL nameAndAliasSettable;
1N/A
1N/A IMA_BYTE reserved[64];
1N/A
1N/A} IMA_NODE_PROPERTIES;
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_LHBA_PROPERTIES structure
1N/A*
1N/A* This structure is returned by the IMA_GetLhbaProperties() API.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_LHBA_PROPERTIES
1N/A{
1N/A IMA_WCHAR osDeviceName[256];
1N/A IMA_BOOL luExposingSupported;
1N/A IMA_BOOL isDestroyable;
1N/A
1N/A IMA_BOOL staleDataRemovable;
1N/A IMA_UINT staleDataSize;
1N/A
1N/A IMA_BOOL initiatorAuthMethodsSettable;
1N/A IMA_BOOL targetAuthMethodsSettable;
1N/A
1N/A IMA_BYTE reserved[128];
1N/A} IMA_LHBA_PROPERTIES;
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_ULP_xxx constants
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/A#define IMA_ULP_TCP 0x01
1N/A#define IMA_ULP_SCTP 0x02
1N/A#define IMA_ULP_UDP 0x04
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_MIN_MAX_VALUE structure
1N/A*
1N/A* Note: If the 'currentValueValid' field is IMA_FALSE then the value of
1N/A* 'settable' must also be set to IMA_FALSE.
1N/A*
1N/A* Note: The fields in this structure contain values which are defined by the
1N/A* implementation and not by the iSCSI specification. It is possible
1N/A* that an implementation may be more or less restrictive in the values
1N/A* that it can accept than the iSCSI specification allows.
1N/A*
1N/A* Note: An example of how to use 'incrementValue': Suppose that a structure is
1N/A* obtained where 'currentValueValid' is IMA_TRUE, 'settable' is
1N/A* IMA_TRUE, 'currentValue' is 50, 'defaultValue' is 50, 'minimumValue'
1N/A* is 30, 'maximumValue' is 70 and 'incrementValue' is 10. In this case,
1N/A* the possible values that the property can be set to are 30, 40, 50,
1N/A* 60, and 70. The new value must be the current value plus or minus
1N/A* some multiple of 'incrementValue'.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_MIN_MAX_VALUE
1N/A{
1N/A /**
1N/A * A boolean indicating if the @a currentValue field contains a valid value.
1N/A */
1N/A IMA_BOOL currentValueValid;
1N/A
1N/A /**
1N/A * Indicates if the corresponding property is settable. If this field
1N/A * has the value IMA_TRUE then the 'defaultValue', 'minimumValue',
1N/A * 'maximumValue', and 'incrementValue' fields shall contain valid
1N/A * values. If this field has the value IMA_FALSE then these fields
1N/A * have undefined values.
1N/A */
1N/A IMA_BOOL settable;
1N/A
1N/A /**
1N/A * If currentValueValid has the value IMA_TRUE then this field contains
1N/A * the current value of the associated property. If 'currentValueValid' has
1N/A * the value IMA_FALSE then the value of this field is undefined.
1N/A */
1N/A IMA_UINT32 currentValue;
1N/A
1N/A /**
1N/A * If 'settable' has the value IMA_TRUE then this field contains the
1N/A * implementation's default value of the associated property. If 'settable'
1N/A * has the value IMA_FALSE then the value of this field is undefined.
1N/A */
1N/A IMA_UINT32 defaultValue;
1N/A
1N/A /**
1N/A * If 'settable' has the value IMA_TRUE then this field contains the
1N/A * implementation's minimum value of the associated property. If 'settable'
1N/A * has the value IMA_FALSE then the value of this field is undefined.
1N/A */
1N/A IMA_UINT32 minimumValue;
1N/A
1N/A /**
1N/A * If 'settable' has the value IMA_TRUE then this field contains the
1N/A * implementation's maximum value of the associated property. If 'settable'
1N/A * has the value IMA_FALSE then the value of this field is undefined.
1N/A */
1N/A IMA_UINT32 maximumValue;
1N/A
1N/A /**
1N/A * If 'settable' has the value IMA_TRUE then this field contains a value
1N/A * which can be added to or subtracted from 'currentValue' to obtain other
1N/A * possible values of the associated property. If 'settable' has the value
1N/A * IMA_FALSE then the value of this field is undefined.
1N/A */
1N/A IMA_UINT32 incrementValue;
1N/A
1N/A} IMA_MIN_MAX_VALUE;
1N/A
1N/Atypedef struct _IMA_BOOL_VALUE
1N/A{
1N/A IMA_BOOL currentValueValid;
1N/A IMA_BOOL settable;
1N/A IMA_BOOL currentValue;
1N/A IMA_BOOL defaultValue;
1N/A} IMA_BOOL_VALUE;
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_PHBA_PROPERTIES structure
1N/A*
1N/A* This structure is returned by the IMA_GetPhbaProperties() API.
1N/A*
1N/A* Note: Both 'isInitiator' and 'isTarget' cannot be set to IMA_FALSE as this
1N/A* would mean that the PHBA was not functioning as either an initiator or
1N/A* target, which means that its not functioning at all.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_PHBA_PROPERTIES
1N/A{
1N/A /**
1N/A * A nul terminated ASCII string which contains the name of the vendor
1N/A * of a PHBA. If the first character in this field is nul then the
1N/A * vendor is unknown.
1N/A */
1N/A IMA_WCHAR vendor[64];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains the name of the model of
1N/A * a PHBA. If the first character in this field is nul then the model is
1N/A * unknown.
1N/A */
1N/A IMA_WCHAR model[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains a description of a PHBA.
1N/A * This is a user friendly description of the PHBA. If the first character
1N/A * in this field is nul then there is no description.
1N/A */
1N/A IMA_WCHAR description[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains the serial number of a
1N/A * PHBA. If the first character in this field is nul then the serial
1N/A * number is unknown.
1N/A */
1N/A IMA_WCHAR serialNumber[64];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains the hardware version of
1N/A * a PHBA. If the first character in this field is nul then the hardware
1N/A * version is unknown.
1N/A */
1N/A IMA_WCHAR hardwareVersion[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains the ASIC version of a
1N/A * PHBA. If the first character in this field is nul then the ASIC
1N/A * version is unknown or is not applicable.
1N/A */
1N/A IMA_WCHAR asicVersion[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains the firmware version of
1N/A * a PHBA. If the first character in this field is nul then the firmware
1N/A * version is unknown or is not applicable.
1N/A */
1N/A IMA_WCHAR firmwareVersion[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains the option ROM version
1N/A * of a PHBA. If the first character in this field is nul then the option
1N/A * ROM version is unknown or is not applicable.
1N/A */
1N/A IMA_WCHAR optionRomVersion[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains the name of the driver
1N/A * controlling a PHBA. If the first character in this field is nul then
1N/A * the name of the driver is unknown.
1N/A */
1N/A IMA_WCHAR driverName[256];
1N/A
1N/A /**
1N/A * A nul terminated ASCII string which contains the version of the driver
1N/A * specified in 'driverName'. If the first character in this field is nul
1N/A * then the version of the driver is unknown.
1N/A *
1N/A * This field can have a known value only if @a driverName has a known
1N/A * value as well.
1N/A */
1N/A IMA_WCHAR driverVersion[256];
1N/A
1N/A /**
1N/A * A field containing flags which indicate what upper level protocols
1N/A * are supported by a PHBA. Examples of upper level protocols include:
1N/A *
1N/A * - TCP, represented by IMA_ULP_TCP
1N/A * - SCTP, represented by IMA_ULP_SCTP
1N/A * - UDP, represented by IMA_ULP_UDP
1N/A */
1N/A IMA_UINT supportedUlps;
1N/A
1N/A /**
1N/A * A extended boolean which indicates if a PHBA supports executing SCSI
1N/A * commands which cause bidirectional transfers.
1N/A *
1N/A * Note: The value of this field applies to the entire stack:
1N/A * the hardware, ASIC, firmware, driver, etc. All must support SCSI
1N/A * commands which cause bidirectional transfers for this field to be
1N/A * set to IMA_TRUE.
1N/A */
1N/A IMA_XBOOL bidirectionalTransfersSupported;
1N/A
1N/A /**
1N/A * The maximum length, in bytes, of a CDB that can be transferred by
1N/A * this PHBA. If this field has a value of zero that indicates that
1N/A * this value is unknown.
1N/A *
1N/A * Note: The value of this field applies to the entire stack:
1N/A * the hardware, ASIC, firmware, driver, etc. All must support the
1N/A * maximum CDB length returned in this field.
1N/A */
1N/A IMA_UINT maximumCdbLength;
1N/A
1N/A /**
1N/A * An extended boolean which indicates if a PHBA can also function as
1N/A * a standard NIC concurrently with functioning as an iSCSI PHBA.
1N/A */
1N/A IMA_XBOOL canBeNic;
1N/A
1N/A /**
1N/A * A extended boolean which indicates if a PHBA is functioning as a
1N/A * standard NIC concurrently with functioning as an iSCSI PHBA.
1N/A */
1N/A IMA_XBOOL isNic;
1N/A
1N/A /**
1N/A * An extended boolean indicating if the PHBA is functioning as an
1N/A * initiator.
1N/A */
1N/A IMA_XBOOL isInitiator;
1N/A
1N/A /**
1N/A * An extended boolean indicating if the PHBA is functioning as a target.
1N/A */
1N/A IMA_XBOOL isTarget;
1N/A
1N/A /**
1N/A * An extended boolean indicating if the PHBA is using a TCP offload engine.
1N/A *
1N/A * Note: This value should only be set to @c IMA_TRUE if a TCP offload
1N/A * engine is present and is being used. If it can be determined that a
1N/A * TCP offload engine is present, but it cannot be determined if that
1N/A * offload engine is being used then this value should be set to
1N/A * IMA_UNKNOWN.
1N/A */
1N/A IMA_XBOOL usingTcpOffloadEngine;
1N/A
1N/A /**
1N/A * An extended boolean indicating if the PHBA is using a iSCSI offload
1N/A * engine.
1N/A *
1N/A * Note: This value should only be set to @c IMA_TRUE if a iSCSI offload
1N/A * engine is present and is being used. If it can be determined that an
1N/A * iSCSI offload engine is present, but it cannot be determined if that
1N/A * offload engine is being used then this value should be set to
1N/A * IMA_UNKNOWN.
1N/A */
1N/A IMA_XBOOL usingIscsiOffloadEngine;
1N/A
1N/A IMA_BYTE reserved[128];
1N/A
1N/A} IMA_PHBA_PROPERTIES;
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Declaration of the IMA_DISCOVERY_PROPERTIES structure
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/Atypedef struct _IMA_DISCOVERY_PROPERTIES
1N/A{
1N/A IMA_BOOL iSnsDiscoverySettable;
1N/A IMA_XBOOL iSnsDiscoveryEnabled;
1N/A IMA_ISNS_DISCOVERY_METHOD iSnsDiscoveryMethod;
1N/A IMA_HOST_ID iSnsHost;
1N/A
1N/A IMA_BOOL slpDiscoverySettable;
1N/A IMA_XBOOL slpDiscoveryEnabled;
1N/A
1N/A IMA_BOOL staticDiscoverySettable;
1N/A IMA_XBOOL staticDiscoveryEnabled;
1N/A
1N/A IMA_BOOL sendTargetsDiscoverySettable;
1N/A IMA_XBOOL sendTargetsDiscoveryEnabled;
1N/A
1N/A IMA_BYTE reserved[128];
1N/A} IMA_DISCOVERY_PROPERTIES;
1N/A
1N/A
1N/Atypedef struct _IMA_PHBA_DOWNLOAD_PROPERTIES
1N/A{
1N/A IMA_BOOL isPhbaDownloadFileSupported;
1N/A IMA_BOOL optionRomDownloadSupported;
1N/A IMA_BOOL firmwareDownloadSupported;
1N/A
1N/A IMA_BYTE reserved[32];
1N/A} IMA_PHBA_DOWNLOAD_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_IPSEC_PROPERTIES
1N/A{
1N/A IMA_BOOL ipsecSupported;
1N/A IMA_BOOL implementedInHardware;
1N/A IMA_BOOL implementedInSoftware;
1N/A
1N/A IMA_BYTE reserved[32];
1N/A
1N/A} IMA_IPSEC_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_LNP_PROPERTIES
1N/A{
1N/A IMA_MAC_ADDRESS macAddress;
1N/A IMA_BOOL macAddressSettable;
1N/A IMA_BYTE reserved[32];
1N/A
1N/A} IMA_LNP_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_PNP_PROPERTIES
1N/A{
1N/A IMA_OID associatedPhbaOid;
1N/A
1N/A IMA_MAC_ADDRESS macAddress;
1N/A IMA_BOOL macAddressSettable;
1N/A
1N/A IMA_UINT maximumTransferRate;
1N/A IMA_UINT currentTransferRate;
1N/A
1N/A IMA_UINT maximumFrameSize;
1N/A
1N/A IMA_BYTE reserved[64];
1N/A} IMA_PNP_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_PNP_STATISTICS
1N/A{
1N/A IMA_UINT64 bytesSent;
1N/A IMA_UINT32 pdusSent;
1N/A IMA_UINT64 bytesReceived;
1N/A IMA_UINT32 pdusReceived;
1N/A
1N/A} IMA_PNP_STATISTICS;
1N/A
1N/Atypedef struct _IMA_TARGET_PROPERTIES
1N/A{
1N/A IMA_OID associatedNodeOid;
1N/A IMA_OID associatedLhbaOid;
1N/A
1N/A IMA_NODE_NAME name;
1N/A IMA_NODE_ALIAS alias;
1N/A IMA_UINT32 discoveryMethodFlags;
1N/A
1N/A IMA_BOOL sendTargetsDiscoverySettable;
1N/A IMA_BOOL sendTargetsDiscoveryEnabled;
1N/A
1N/A IMA_BYTE reserved[128];
1N/A
1N/A} IMA_TARGET_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_CONNECTION_PROPERTIES
1N/A{
1N/A IMA_OID associatedSessionOid;
1N/A IMA_UINT16 connectionId;
1N/A IMA_DIGEST_TYPE dataDigest;
1N/A IMA_DIGEST_TYPE headerDigest;
1N/A IMA_BOOL ifMarker;
1N/A IMA_UINT32 ifMarkInt;
1N/A IMA_UINT32 maxRecvDataSegmentLength;
1N/A IMA_UINT32 maxTransmitDataSegmentLength;
1N/A IMA_BOOL ofMarker;
1N/A IMA_UINT32 ofMarkInt;
1N/A} IMA_CONNECTION_PROPERTIES;
1N/A
1N/A
1N/Atypedef struct _IMA_SESSION_PROPERTIES
1N/A{
1N/A IMA_OID associatedLhbaOid;
1N/A IMA_AUTHMETHOD authMethod;
1N/A IMA_BOOL dataPduInOrder;
1N/A IMA_BOOL dataSequenceInOrder;
1N/A IMA_UINT16 defaultTime2Retain;
1N/A IMA_UINT16 defaultTime2Wait;
1N/A IMA_UINT16 errorRecoveryLevel;
1N/A IMA_UINT32 firstBurstLength;
1N/A IMA_BOOL immediateData;
1N/A IMA_BOOL initialR2T;
1N/A IMA_BYTE isid[6];
1N/A IMA_UINT32 maxBurstLength;
1N/A IMA_UINT16 maxConnections;
1N/A IMA_UINT16 maxOutstandingR2T;
1N/A IMA_UINT16 targetPortalGroupTag;
1N/A IMA_UINT16 tsih;
1N/A} IMA_SESSION_PROPERTIES;
1N/A
1N/A
1N/Atypedef struct _IMA_TARGET_ERROR_STATISTICS
1N/A{
1N/A IMA_BOOL loginFailedCountValid;
1N/A IMA_UINT32 loginFailedCount;
1N/A
1N/A IMA_BOOL sessionFailedCountValid;
1N/A IMA_UINT32 sessionFailedCount;
1N/A
1N/A IMA_BOOL headerOrDigestSessionFailedCountValid;
1N/A IMA_UINT32 headerOrDigestSessionFailedCount;
1N/A
1N/A IMA_BOOL timeLimitExceededSessionFailedCountValid;
1N/A IMA_UINT32 timeLimitExceededSessionFailedCount;
1N/A
1N/A IMA_BOOL formatErrorSessionFailedCountValid;
1N/A IMA_UINT32 formatErrorSessionFailedCount;
1N/A
1N/A IMA_BOOL closedConnectionDueToTimeoutCountValid;
1N/A IMA_UINT32 closedConnectionDueToTimeoutCount;
1N/A
1N/A IMA_BOOL lastLoginFailureTimeValid;
1N/A IMA_DATETIME lastLoginFailureTime;
1N/A
1N/A IMA_BYTE reserved[64];
1N/A
1N/A} IMA_TARGET_ERROR_STATISTICS;
1N/A
1N/Atypedef struct _IMA_LU_PROPERTIES
1N/A{
1N/A IMA_OID associatedTargetOid;
1N/A IMA_UINT64 targetLun;
1N/A
1N/A IMA_BOOL exposedToOs;
1N/A IMA_DATETIME timeExposedToOs;
1N/A
1N/A IMA_BOOL osDeviceNameValid;
1N/A IMA_WCHAR osDeviceName[64];
1N/A
1N/A IMA_BOOL osParallelIdsValid;
1N/A IMA_UINT32 osBusNumber;
1N/A IMA_UINT32 osTargetId;
1N/A IMA_UINT32 osLun;
1N/A
1N/A IMA_BYTE reserved[128];
1N/A
1N/A} IMA_LU_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_STATISTICS_PROPERTIES
1N/A{
1N/A IMA_BOOL statisticsCollectionSettable;
1N/A IMA_BOOL statisticsCollectionEnabled;
1N/A
1N/A} IMA_STATISTICS_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_DEVICE_STATISTICS
1N/A{
1N/A IMA_UINT64 scsiPayloadBytesSent;
1N/A IMA_UINT64 scsiPayloadBytesReceived;
1N/A
1N/A IMA_UINT64 iScsiPduBytesSent;
1N/A IMA_UINT64 iScsiPduBytesReceived;
1N/A
1N/A IMA_UINT64 iScsiPdusSent;
1N/A IMA_UINT64 iScsiPdusReceived;
1N/A
1N/A IMA_UINT64 millisecondsSpentSending;
1N/A IMA_UINT64 millisecondsSpentReceiving;
1N/A
1N/A} IMA_DEVICE_STATISTICS;
1N/A
1N/Atypedef struct _IMA_NETWORK_PORTAL_PROPERTIES
1N/A{
1N/A IMA_IP_ADDRESS ipAddress;
1N/A IMA_OID associatedLnp;
1N/A
1N/A IMA_BYTE reserved[32];
1N/A} IMA_NETWORK_PORTAL_PROPERTIES;
1N/A
1N/Atypedef void (* IMA_OBJECT_VISIBILITY_FN)(
1N/A IMA_BOOL becomingVisible,
1N/A IMA_OID oid
1N/A);
1N/A
1N/Atypedef void (* IMA_OBJECT_PROPERTY_FN)(
1N/A IMA_OID oid
1N/A);
1N/A
1N/Atypedef struct _IMA_CHAP_INITIATOR_AUTHPARMS
1N/A{
1N/A
1N/A IMA_UINT retries;
1N/A
1N/A IMA_BYTE name[512];
1N/A IMA_UINT nameLength;
1N/A
1N/A IMA_UINT minValueLength;
1N/A IMA_UINT maxValueLength;
1N/A
1N/A IMA_BYTE challengeSecret[256];
1N/A IMA_UINT challengeSecretLength;
1N/A
1N/A IMA_BYTE reserved[512];
1N/A
1N/A} IMA_CHAP_INITIATOR_AUTHPARMS;
1N/A
1N/Atypedef struct _IMA_SRP_INITIATOR_AUTHPARMS
1N/A{
1N/A
1N/A IMA_BYTE userName[512];
1N/A IMA_UINT userNameLength;
1N/A
1N/A IMA_BYTE reserved[512];
1N/A
1N/A} IMA_SRP_INITIATOR_AUTHPARMS;
1N/A
1N/Atypedef struct _IMA_KRB5_INITIATOR_AUTHPARMS
1N/A{
1N/A
1N/A IMA_BYTE clientKey[1024];
1N/A IMA_UINT clientKeyLength;
1N/A
1N/A IMA_BYTE reserved[2048];
1N/A
1N/A} IMA_KRB5_INITIATOR_AUTHPARMS;
1N/A
1N/Atypedef struct _IMA_SPKM_INITIATOR_AUTHPARMS
1N/A{
1N/A
1N/A IMA_BYTE privateKey[4096];
1N/A IMA_UINT privateKeyLength;
1N/A
1N/A IMA_BYTE publicKey[4096];
1N/A IMA_UINT publicKeyLength;
1N/A
1N/A IMA_BYTE reserved[4096];
1N/A
1N/A} IMA_SPKM_INITIATOR_AUTHPARMS;
1N/A
1N/Atypedef union _IMA_INITIATOR_AUTHPARMS
1N/A{
1N/A
1N/A IMA_CHAP_INITIATOR_AUTHPARMS chapParms;
1N/A IMA_SRP_INITIATOR_AUTHPARMS srpParms;
1N/A IMA_KRB5_INITIATOR_AUTHPARMS kerberosParms;
1N/A IMA_SPKM_INITIATOR_AUTHPARMS spkmParms;
1N/A
1N/A} IMA_INITIATOR_AUTHPARMS;
1N/A
1N/A
1N/Atypedef struct _IMA_STATIC_DISCOVERY_TARGET
1N/A{
2N/A IMA_NODE_NAME targetName;
2N/A IMA_TARGET_ADDRESS targetAddress;
1N/A
2N/A IMA_BOOL portalGroupTagValid;
2N/A IMA_UINT16 portalGroupTag;
1N/A} IMA_STATIC_DISCOVERY_TARGET;
1N/A
1N/Atypedef struct _IMA_DISCOVERY_ADDRESS_PROPERTIES
1N/A{
1N/A IMA_OID associatedNodeOid;
1N/A IMA_OID associatedLhbaOid;
1N/A IMA_TARGET_ADDRESS discoveryAddress;
1N/A
1N/A} IMA_DISCOVERY_ADDRESS_PROPERTIES;
1N/A
1N/Atypedef struct _IMA_STATIC_TGT_PROPERTIES
1N/A{
1N/A IMA_OID associatedNodeOid;
1N/A IMA_OID associatedLhbaOid;
1N/A IMA_STATIC_DISCOVERY_TARGET staticTarget;
1N/A
1N/A} IMA_STATIC_DISCOVERY_TARGET_PROPERTIES;
1N/A
1N/Atypedef struct ima_plugin_info {
1N/A char PluginName[64];
1N/A char PluginPath[256];
1N/A#ifdef WIN32
1N/A HINSTANCE hPlugin; /* Handle to a loaded DLL */
1N/A#else
1N/A void* hPlugin; /* Handle to a loaded DLL */
1N/A#endif
1N/A IMA_UINT32 ownerId;
1N/A#ifdef WIN32
1N/A HANDLE pluginMutex;
1N/A#else
1N/A int pluginMutex;
1N/A#endif
1N/A IMA_UINT number_of_vbcallbacks;
1N/A IMA_OBJECT_VISIBILITY_FN vbcallback[IMA_MAX_CALLBACK_PER_PLUGIN];
1N/A IMA_UINT number_of_pccallbacks;
1N/A IMA_OBJECT_PROPERTY_FN pccallback[IMA_MAX_CALLBACK_PER_PLUGIN];
1N/A} IMA_PLUGIN_INFO, *PIMA_PLUGIN_INFO;
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* The individual APIs of the IMA are declared below.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the properties of the IMA library that is being used.
1N/A*
1N/A* @param pProps
1N/A* A pointer to an IMA_LIBRARY_PROPERTIES structure allocated by
1N/A* the caller. On successful return this structure will contain the
1N/A* properties of the IMA library.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if
1N/A* an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the library properties were successfully returned.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'pProps' is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetLibraryProperties(
1N/A IMA_LIBRARY_PROPERTIES *pProps
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets a list of the object IDs of all currently loaded plugins.
1N/A*
1N/A* @param ppList
1N/A* A pointer to a pointer to an IMA_OID_LIST. On successful
1N/A* return this will contain a pointer to an @ref IMA_OID_LIST
1N/A* which contains the object IDs of all of the plugins currently
1N/A* loaded by the library.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or
1N/A* if an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the plugin ID list was successfully returned.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'ppList' is NULL or specifies a memory area to
1N/A* which data cannot be written.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetPluginOidList(
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the properties of the specified vendor plugin.
1N/A*
1N/A* @param pluginOid
1N/A* The ID of the plugin whose properties are being retrieved.
1N/A*
1N/A* @param pProps
1N/A* A pointer to an @ref IMA_PLUGIN_PROPERTIES structure allocated by
1N/A* the caller. On successful return this will contain the properties
1N/A* of the plugin specified by pluginOid.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if an
1N/A* error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the plugin properties were successfully returned.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'pluginOid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'pluginOid' does not specify a plugin object.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'pluginOid' refers to a plugin, but not one that
1N/A* is currently loaded.
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'pProps' is NULL or specifies a memory area to
1N/A* which data cannot be written.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetPluginProperties(
1N/A IMA_OID pluginOid,
1N/A IMA_PLUGIN_PROPERTIES *pProps
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the object ID for the plugin associated with the specified object ID.
1N/A*
1N/A* @param oid
1N/A* The object ID of an object that has been received from a previous
1N/A* library call.
1N/A*
1N/A* @param pPluginOid
1N/A* A pointer to an IMA_OID structure allocated by the caller. On
1N/A* successful return this will contain the object ID of the plugin
1N/A* associated with the object specified by @a objectId. This
1N/A* can then be used to work with the plugin, e.g., to get the
1N/A* properties of the plugin or the send the plugin an IOCtl.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if
1N/A* an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the associated plugin ID was successfully returned.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'pPluginOid' is NULL or specifies a memory area to
1N/A* which data cannot be written.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'oid' specifies an object not owned by a plugin, but
1N/A* instead one that is owned by the library.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'oid' specifies an object with an invalid type.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetAssociatedPluginOid(
1N/A IMA_OID oid,
1N/A IMA_OID *pPluginOid
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the object ID of the shared node.
1N/A*
1N/A* @param pSharedNodeOid
1N/A* A pointer to an IMA_OID structure allocated by the caller. On
1N/A* successful return it will contain the object ID of the
1N/A* shared node of the currently executing system is placed.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or
1N/A* if an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the shared node ID has been successfully retrieved.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'pSharedNodeOid' is NULL or specifies a memory area
1N/A* to which data cannot be written.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetSharedNodeOid(
1N/A IMA_OID *pSharedNodeOid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetObjectType(
1N/A IMA_OID oid,
1N/A IMA_OBJECT_TYPE *pObjectType
1N/A);
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the properties of the specified iSCSI node.
1N/A*
1N/A* @param nodeOid
1N/A* The ID of the node to get the properties of.
1N/A*
1N/A* @param pProps
1N/A* A pointer to an @ref IMA_NODE_PROPERTIES structure which on
1N/A* successful return will contain the properties of the specified node.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if
1N/A* an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the node properties have been successfully retrieved.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'pProps' is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'nodeOid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'nodeOid' does not specify a node object.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'nodeOid' does not specify a node which is currently
1N/A* known to the system.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetNodeProperties(
1N/A IMA_OID nodeOid,
1N/A IMA_NODE_PROPERTIES *pProps
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Sets the name of the specified node.
1N/A*
1N/A* @param nodeOid
1N/A* The object ID of the node whose name is being set.
1N/A*
1N/A* @param newName
1N/A* The new name of the node.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or
1N/A* if an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the node name was successfully changed.
1N/A*
1N/A* @retval IMA_STATUS_REBOOT_NECESSARY
1N/A* Returned if a reboot is necessary before the setting of the
1N/A* name actually takes affect.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'newName' is NULL, or specifies a memory area
1N/A* to which data cannot be written, or has a length of 0.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'nodeOid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'nodeOid' does not specify a node object.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'nodeOid' does not specify a node which is
1N/A* currently known to the system.
1N/A*
1N/A* @retval IMA_ERROR_NAME_TOO_LONG
1N/A* Returned if 'newName' contains too many characters.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_SetNodeName(
1N/A IMA_OID nodeOid,
1N/A const IMA_NODE_NAME newName
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Generates a unique node name for the currently running system.
1N/A*
1N/A* @param generatedName
1N/A* On successful return contains the generated node name.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if an
1N/A* error occurred.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'generatedname is NULL or
1N/A* specifies a memory area to which data cannot be written.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GenerateNodeName(
1N/A IMA_NODE_NAME generatedName
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Sets the alias of the specified node.
1N/A*
1N/A* @param nodeOid
1N/A* The object ID of the node whose alias is being set.
1N/A*
1N/A* @param newAlias
1N/A* A pointer to a Unicode string which contains the new node alias.
1N/A* If this parameter is NULL then the current alias is deleted, in which
1N/A* case the specified node no longer has an alias.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or
1N/A* if an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the node's alias has been successfully set.
1N/A*
1N/A* @retval IMA_STATUS_REBOOT_NECESSARY
1N/A* A reboot is necessary before the setting of the alias actually
1N/A* takes effect.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'nodeOid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'nodeOid' does not specify a node object.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'nodeOid' does not specify a node which is currently
1N/A* known to the system.
1N/A*
1N/A* @retval IMA_ERROR_NAME_TOO_LONG
1N/A* Returned if 'newAlias' contains too many characters.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_SetNodeAlias(
1N/A IMA_OID nodeOid,
1N/A const IMA_NODE_ALIAS newAlias
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets a list of the object IDs of all the logical HBAs in the system.
1N/A*
1N/A* @param ppList
1N/A* A pointer to a pointer to an @ref IMA_OID_LIST structure. On
1N/A* successful return this will contain a pointer to an
1N/A* IMA_OID_LIST which contains the object IDs of all of the
1N/A* LHBAs currently in the system.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if
1N/A* an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the LHBA ID list has been successfully returned.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'ppList' is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetLhbaOidList(
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the properties of the specified logical HBA.
1N/A*
1N/A* @param lhbaOid
1N/A* The object ID of the LHBA whose properties are being retrieved.
1N/A*
1N/A* @param pProps
1N/A* A pointer to an IMA_LHBA_PROPERTIES structure. On successful
1N/A* return this will contain the properties of the LHBA specified by
1N/A* 'lhbaOid'.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if
1N/A* an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the properties of the specified LHBA have been
1N/A* successfully retrieved.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'pProps' is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'lhbaOid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'lhbaOid' does not specify a LHBA.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'lhbaOid' does not specify a LHBA which is currently
1N/A* known to the system.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetLhbaProperties(
1N/A IMA_OID lhbaOid,
1N/A IMA_LHBA_PROPERTIES *pProps
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets a list of the object IDs of all the physical HBAs in the system.
1N/A*
1N/A* @param ppList
1N/A* A pointer to a pointer to an IMA_OID_LIST structure. On successful
1N/A* return this will contain a pointer to an IMA_OID_LIST which
1N/A* contains the object IDs of all of the PHBAs currently in the system.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if
1N/A* an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the PHBA OID list has been successfully returned.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'ppList' is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetPhbaOidList(
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the general properties of a physical HBA.
1N/A*
1N/A* @param phbaOid
1N/A* The object ID of the PHBA whose properties are being queried.
1N/A*
1N/A* @param pProps
1N/A* A pointer to an @ref IMA_PHBA_PROPERTIES structure. On successful
1N/A* return this will contain the properties of the PHBA specified by
1N/A* 'phbaOid'.
1N/A#
1N/A* @return An IMA_STATUS indicating if the operation was successful or
1N/A* if an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the properties of the specified PHBA have been
1N/A* successfully retrieved.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'pProps' is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'phbaOid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'phbaOid' does not specify a PHBA.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'phbaOid' does not specify a PHBA which is currently
1N/A* known to the system.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetPhbaProperties(
1N/A IMA_OID phbaOid,
1N/A IMA_PHBA_PROPERTIES *pProps
1N/A);
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Frees a previously allocated IMA_OID_LIST structure.
1N/A*
1N/A* @param pMemory A pointer to an IMA_OID_LIST structure allocated by the
1N/A* library. On successful return the memory allocated by the
1N/A* list is freed.
1N/A* @return An IMA_STATUS indicating if the operation was successful or if an
1N/A* error occurred.
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the specified object ID list was successfully
1N/A* freed.
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if pMemory is NULL or specifies a memory area from which
1N/A* data cannot be read.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_FreeMemory(
1N/A void *pMemory
1N/A);
1N/A
1N/A
1N/A
1N/AIMA_API IMA_STATUS IMA_GetNonSharedNodeOidList(
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/A
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the first burst length properties of the specified logical HBA.
1N/A*
1N/A* @param oid
1N/A* The object ID of the logical HBA to get the first burst length
1N/A* properties of.
1N/A*
1N/A* @param pProps
1N/A* A pointer to a min/max values structure.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if an
1N/A* error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the first burst length properties have been
1N/A* successfully retrieved.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if pProps is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'oid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'oid' does not specify a LHBA.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'oid' does not specify a LHBA which is currently
1N/A* known to the system.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetFirstBurstLengthProperties(
1N/A IMA_OID oid,
1N/A IMA_MIN_MAX_VALUE *pProps
1N/A);
1N/A
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the max burst length properties of the specified logical HBA.
1N/A*
1N/A* @param oid
1N/A* The object ID of the logical HBA to get the max burst length
1N/A* properties of.
1N/A*
1N/A* @param pProps
1N/A* A pointer to an IMA_MIN_MAX_VALUE structure allocated by the
1N/A* caller. On successful return this structure will contain the max
1N/A* burst length properties of this LHBA.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if
1N/A* an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the max burst length properties have been successfully
1N/A* retrieved.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if pProps is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'oid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'oid' does not specify a LHBA.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'oid' does not specify a LHBA which is currently
1N/A* known to the system.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetMaxBurstLengthProperties(
1N/A IMA_OID Oid,
1N/A IMA_MIN_MAX_VALUE *pProps
1N/A);
1N/A
1N/A/**
1N/A*******************************************************************************
1N/A*
1N/A* Gets the maximum receive data segment length properties of the specified
1N/A* logical HBA.
1N/A*
1N/A* @param oid
1N/A* The object ID of the logical HBA to get the max receive data
1N/A* segment length properties of.
1N/A*
1N/A* @param pProps
1N/A* A pointer to an @ref IMA_MIN_MAX_VALUE structure allocated by the
1N/A* caller. On successful return this structure will contain the max
1N/A* receive data segment length properties of this LHBA.
1N/A*
1N/A* @return An IMA_STATUS indicating if the operation was successful or if
1N/A* an error occurred.
1N/A*
1N/A* @retval IMA_SUCCESS
1N/A* Returned if the max receive data segment length properties
1N/A* have been successfully retrieved.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_PARAMETER
1N/A* Returned if 'pProps' is NULL or specifies a memory area to which
1N/A* data cannot be written.
1N/A*
1N/A* @retval IMA_ERROR_INVALID_OBJECT_TYPE
1N/A* Returned if 'oid' does not specify any valid object type.
1N/A*
1N/A* @retval IMA_ERROR_INCORRECT_OBJECT_TYPE
1N/A* Returned if 'oid' does not specify a LHBA.
1N/A*
1N/A* @retval IMA_ERROR_OBJECT_NOT_FOUND
1N/A* Returned if 'oid' does not specify a LHBA which is currently
1N/A* known to the system.
1N/A*
1N/A*******************************************************************************
1N/A*/
1N/AIMA_API IMA_STATUS IMA_GetMaxRecvDataSegmentLengthProperties(
1N/A IMA_OID oid,
1N/A IMA_MIN_MAX_VALUE *pProps
1N/A);
1N/A
1N/A
1N/A/*---------------------------------------------*/
1N/AIMA_API IMA_STATUS IMA_PluginIOCtl(
1N/A IMA_OID pluginOid,
1N/A IMA_UINT command,
1N/A const void *pInputBuffer,
1N/A IMA_UINT inputBufferLength,
1N/A void *pOutputBuffer,
1N/A IMA_UINT *pOutputBufferLength
1N/A);
1N/A
1N/A
1N/A
1N/AIMA_API IMA_STATUS IMA_GetNetworkPortalOidList(
1N/A IMA_OID oid,
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetFirstBurstLength(
1N/A IMA_OID oid,
1N/A IMA_UINT firstBurstLength
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetMaxBurstLength(
1N/A IMA_OID oid,
1N/A IMA_UINT maxBurstLength
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetMaxRecvDataSegmentLength(
1N/A IMA_OID oid,
1N/A IMA_UINT maxRecvDataSegmentLength
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetMaxConnectionsProperties(
1N/A IMA_OID oid,
1N/A IMA_MIN_MAX_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetMaxConnections(
1N/A IMA_OID oid,
1N/A IMA_UINT maxConnections
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetDefaultTime2RetainProperties(
1N/A IMA_OID oid,
1N/A IMA_MIN_MAX_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetDefaultTime2Retain(
1N/A IMA_OID oid,
1N/A IMA_UINT defaultTime2Retain
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetDefaultTime2WaitProperties(
1N/A IMA_OID oid,
1N/A IMA_MIN_MAX_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetDefaultTime2Wait(
1N/A IMA_OID oid,
1N/A IMA_UINT defaultTime2Wait
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetMaxOutstandingR2TProperties(
1N/A IMA_OID oid,
1N/A IMA_MIN_MAX_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetMaxOutstandingR2T(
1N/A IMA_OID oid,
1N/A IMA_UINT maxOutstandingR2T
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetErrorRecoveryLevelProperties(
1N/A IMA_OID oid,
1N/A IMA_MIN_MAX_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetErrorRecoveryLevel(
1N/A IMA_OID oid,
1N/A IMA_UINT errorRecoveryLevel
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetInitialR2TProperties(
1N/A IMA_OID oid,
1N/A IMA_BOOL_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetInitialR2T(
1N/A IMA_OID oid,
1N/A IMA_BOOL initialR2T
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetImmediateDataProperties(
1N/A IMA_OID oid,
1N/A IMA_BOOL_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetImmediateData(
1N/A IMA_OID oid,
1N/A IMA_BOOL immediateData
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetDataPduInOrderProperties(
1N/A IMA_OID oid,
1N/A IMA_BOOL_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetDataPduInOrder(
1N/A IMA_OID oid,
1N/A IMA_BOOL dataPduInOrder
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetDataSequenceInOrderProperties(
1N/A IMA_OID oid,
1N/A IMA_BOOL_VALUE *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetDataSequenceInOrder(
1N/A IMA_OID oid,
1N/A IMA_BOOL dataSequenceInOrder
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetStatisticsCollection(
1N/A IMA_OID oid,
1N/A IMA_BOOL enableStatisticsCollection
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetNetworkPortStatus(
1N/A IMA_OID portOid,
1N/A IMA_NETWORK_PORT_STATUS *pStatus
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetTargetOidList(
1N/A IMA_OID oid,
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_RemoveStaleData(
1N/A IMA_OID lhbaOid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetIsnsDiscovery(
1N/A IMA_OID phbaId,
1N/A IMA_BOOL enableIsnsDiscovery,
1N/A IMA_ISNS_DISCOVERY_METHOD discoveryMethod,
1N/A const IMA_HOST_ID *iSnsHost
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetSlpDiscovery(
1N/A IMA_OID phbaOid,
1N/A IMA_BOOL enableSlpDiscovery
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetStaticDiscovery(
1N/A IMA_OID phbaOid,
1N/A IMA_BOOL enableStaticDiscovery
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetSendTargetsDiscovery(
1N/A IMA_OID oid,
1N/A IMA_BOOL enableSendTargetsDiscovery
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_RemoveStaticDiscoveryTarget(
1N/A IMA_OID targetOid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetIpsecProperties(
1N/A IMA_OID phbaOid,
1N/A IMA_IPSEC_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetPnpOidList(
1N/A IMA_OID oid,
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetPhbaDownloadProperties(
1N/A IMA_OID phbaOid,
1N/A IMA_PHBA_DOWNLOAD_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_IsPhbaDownloadFile(
1N/A IMA_OID phbaOid,
1N/A const IMA_WCHAR *pFileName,
1N/A IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_PhbaDownload(
1N/A IMA_OID phbaOid,
1N/A IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType,
1N/A const IMA_WCHAR *pFileName
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetNetworkPortalProperties(
1N/A IMA_OID networkPortalOid,
1N/A IMA_NETWORK_PORTAL_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetNetworkPortalIpAddress(
1N/A IMA_OID networkPortalOid,
1N/A const IMA_IP_ADDRESS NewIpAddress
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetLnpOidList(
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetLnpProperties(
1N/A IMA_OID lnpOid,
1N/A IMA_LNP_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetPnpProperties(
1N/A IMA_OID pnpOid,
1N/A IMA_PNP_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetPnpStatistics(
1N/A IMA_OID pnpOid,
1N/A IMA_PNP_STATISTICS *pStats
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetTargetProperties(
1N/A IMA_OID targetOid,
1N/A IMA_TARGET_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetTargetErrorStatistics(
1N/A IMA_OID targetOid,
1N/A IMA_TARGET_ERROR_STATISTICS *pStats
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetLuOidList(
1N/A IMA_OID oid,
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetLuOid(
1N/A IMA_OID targetOid,
1N/A IMA_UINT64 lun,
1N/A IMA_OID *pluOid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetLuProperties(
1N/A IMA_OID luOid,
1N/A IMA_LU_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetStatisticsProperties(
1N/A IMA_OID oid,
1N/A IMA_STATISTICS_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetDeviceStatistics(
1N/A IMA_OID oid,
1N/A IMA_DEVICE_STATISTICS *pStats
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_LuInquiry(
1N/A IMA_OID deviceOid,
1N/A IMA_BOOL evpd,
1N/A IMA_BOOL cmddt,
1N/A IMA_BYTE pageCode,
1N/A
1N/A IMA_BYTE *pOutputBuffer,
1N/A IMA_UINT *pOutputBufferLength,
1N/A
1N/A IMA_BYTE *pSenseBuffer,
1N/A IMA_UINT *pSenseBufferLength
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_LuReadCapacity(
1N/A IMA_OID deviceOid,
1N/A IMA_UINT cdbLength,
1N/A IMA_BYTE *pOutputBuffer,
1N/A IMA_UINT *pOutputBufferLength,
1N/A
1N/A IMA_BYTE *pSenseBuffer,
1N/A IMA_UINT *pSenseBufferLength
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_LuReportLuns(
1N/A IMA_OID deviceOid,
1N/A IMA_BOOL sendToWellKnownLun,
1N/A IMA_BYTE selectReport,
1N/A
1N/A IMA_BYTE *pOutputBuffer,
1N/A IMA_UINT *pOutputBufferLength,
1N/A
1N/A IMA_BYTE *pSenseBuffer,
1N/A IMA_UINT *pSenseBufferLength
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_ExposeLu(
1N/A IMA_OID luOid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_UnexposeLu(
1N/A IMA_OID luOid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetPhbaStatus(
1N/A IMA_OID hbaOid,
1N/A IMA_PHBA_STATUS *pStatus
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_RegisterForObjectVisibilityChanges (
1N/A IMA_OBJECT_VISIBILITY_FN pClientFn
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_DeregisterForObjectVisibilityChanges (
1N/A IMA_OBJECT_VISIBILITY_FN pClientFn
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_RegisterForObjectPropertyChanges (
1N/A IMA_OBJECT_PROPERTY_FN pClientFn
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_DeregisterForObjectPropertyChanges (
1N/A IMA_OBJECT_PROPERTY_FN pClientFn
1N/A);
1N/A
1N/A
1N/AIMA_API IMA_STATUS IMA_GetAddressKeyProperties(
1N/A IMA_OID targetOid,
1N/A IMA_ADDRESS_KEY_PROPERTIES **ppProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetIpProperties(
1N/A IMA_OID oid,
1N/A IMA_IP_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetIpConfigMethod(
1N/A IMA_OID oid,
1N/A IMA_BOOL enableDhcpIpConfiguration
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetIsnsDiscovery(
1N/A IMA_OID oid,
1N/A IMA_BOOL enableIsnsDiscovery,
1N/A IMA_ISNS_DISCOVERY_METHOD discoveryMethod,
1N/A const IMA_HOST_ID *iSnsHost
1N/A);
1N/A
1N/A
1N/AIMA_API IMA_STATUS IMA_SetSubnetMask(
1N/A IMA_OID oid,
1N/A IMA_IP_ADDRESS subnetMask
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetDnsServerAddress(
1N/A IMA_OID oid,
1N/A const IMA_IP_ADDRESS *pPrimaryDnsServerAddress,
1N/A const IMA_IP_ADDRESS *pAlternateDnsServerAddress
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetDefaultGateway(
1N/A IMA_OID oid,
1N/A IMA_IP_ADDRESS defaultGateway
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetSupportedAuthMethods(
1N/A IMA_OID lhbaOid,
1N/A IMA_BOOL getSettableMethods,
1N/A IMA_UINT *pMethodCount,
1N/A IMA_AUTHMETHOD *pMethodList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetInUseInitiatorAuthMethods(
1N/A IMA_OID lhbaOid,
1N/A IMA_UINT *pMethodCount,
1N/A IMA_AUTHMETHOD *pMethodList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetInitiatorAuthParms(
1N/A IMA_OID lhbaOid,
1N/A IMA_AUTHMETHOD method,
1N/A IMA_INITIATOR_AUTHPARMS *pParms
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetInitiatorAuthMethods(
1N/A IMA_OID lhbaOid,
1N/A IMA_UINT methodCount,
1N/A const IMA_AUTHMETHOD *pMethodList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetInitiatorAuthParms(
1N/A IMA_OID lhbaOid,
1N/A IMA_AUTHMETHOD method,
1N/A const IMA_INITIATOR_AUTHPARMS *pParms
1N/A);
1N/A
1N/A
1N/AIMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetOidList (
1N/A IMA_OID oid,
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetProperties(
1N/A IMA_OID staticDiscoveryTargetOid,
1N/A IMA_STATIC_DISCOVERY_TARGET_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_SetStaticDiscovery(
1N/A IMA_OID oid,
1N/A IMA_BOOL enableStaticDiscovery
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetDiscoveryProperties(
1N/A IMA_OID oid,
1N/A IMA_DISCOVERY_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_AddDiscoveryAddress(
1N/A IMA_OID oid,
1N/A const IMA_TARGET_ADDRESS discoveryAddress,
1N/A IMA_OID *pDiscoveryAddressOid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_AddStaticDiscoveryTarget(
1N/A IMA_OID oid,
1N/A const IMA_STATIC_DISCOVERY_TARGET staticDiscoveryTarget,
1N/A IMA_OID *pStaticDiscoveryTargetOid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetAddressKeys(
1N/A IMA_OID targetOid,
1N/A IMA_ADDRESS_KEYS **ppKeys
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetSessionOidList (
1N/A IMA_OID oid,
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetConnectionOidList (
1N/A IMA_OID oid,
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetDiscoveryAddressOidList (
1N/A IMA_OID oid,
1N/A IMA_OID_LIST **ppList
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_GetDiscoveryAddressProperties (
1N/A IMA_OID discoveryAddressOid,
1N/A IMA_DISCOVERY_ADDRESS_PROPERTIES *pProps
1N/A);
1N/A
1N/AIMA_API IMA_STATUS IMA_RemoveDiscoveryAddress (
1N/A IMA_OID oid
1N/A);
1N/A
1N/AIMA_API IMA_STATUS QIMA_SetUpdateInterval(IMA_OID pluginOid, time_t interval);
1N/A
1N/AIMA_API IMA_STATUS IMA_CommitHbaParameters (IMA_OID lhba, IMA_COMMIT_LEVEL commitLevel);
1N/A
1N/A#endif
1N/A
1N/A#ifdef __cplusplus
1N/A};
1N/A#endif
1N/A
1N/A