1*fcf3ce44SJohn Forte /* 2*fcf3ce44SJohn Forte * CDDL HEADER START 3*fcf3ce44SJohn Forte * 4*fcf3ce44SJohn Forte * The contents of this file are subject to the terms of the 5*fcf3ce44SJohn Forte * Common Development and Distribution License (the "License"). 6*fcf3ce44SJohn Forte * You may not use this file except in compliance with the License. 7*fcf3ce44SJohn Forte * 8*fcf3ce44SJohn Forte * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*fcf3ce44SJohn Forte * or http://www.opensolaris.org/os/licensing. 10*fcf3ce44SJohn Forte * See the License for the specific language governing permissions 11*fcf3ce44SJohn Forte * and limitations under the License. 12*fcf3ce44SJohn Forte * 13*fcf3ce44SJohn Forte * When distributing Covered Code, include this CDDL HEADER in each 14*fcf3ce44SJohn Forte * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*fcf3ce44SJohn Forte * If applicable, add the following below this CDDL HEADER, with the 16*fcf3ce44SJohn Forte * fields enclosed by brackets "[]" replaced with your own identifying 17*fcf3ce44SJohn Forte * information: Portions Copyright [yyyy] [name of copyright owner] 18*fcf3ce44SJohn Forte * 19*fcf3ce44SJohn Forte * CDDL HEADER END 20*fcf3ce44SJohn Forte */ 21*fcf3ce44SJohn Forte /* 22*fcf3ce44SJohn Forte * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*fcf3ce44SJohn Forte * Use is subject to license terms. 24*fcf3ce44SJohn Forte */ 25*fcf3ce44SJohn Forte 26*fcf3ce44SJohn Forte /****************************************************************************** 27*fcf3ce44SJohn Forte * 28*fcf3ce44SJohn Forte * Description 29*fcf3ce44SJohn Forte * Ima.h - general header file for client 30*fcf3ce44SJohn Forte * and library developers 31*fcf3ce44SJohn Forte * 32*fcf3ce44SJohn Forte * License: 33*fcf3ce44SJohn Forte * The contents of this file are subject to the SNIA Public License 34*fcf3ce44SJohn Forte * Version 1.0 (the "License"); you may not use this file except in 35*fcf3ce44SJohn Forte * compliance with the License. You may obtain a copy of the License at 36*fcf3ce44SJohn Forte * 37*fcf3ce44SJohn Forte * /http://www.snia.org/English/Resources/Code/OpenSource.html 38*fcf3ce44SJohn Forte * 39*fcf3ce44SJohn Forte * Software distributed under the License is distributed on an "AS IS" 40*fcf3ce44SJohn Forte * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 41*fcf3ce44SJohn Forte * the License for the specific language governing rights and limitations 42*fcf3ce44SJohn Forte * under the License. 43*fcf3ce44SJohn Forte * 44*fcf3ce44SJohn Forte * The Original Code is SNIA HBA API and IMA general header file 45*fcf3ce44SJohn Forte * 46*fcf3ce44SJohn Forte * The Initial Developer of the Original Code is: 47*fcf3ce44SJohn Forte * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com) 48*fcf3ce44SJohn Forte * David Dillard VERITAS Software david.dillard@veritas.com 49*fcf3ce44SJohn Forte * 50*fcf3ce44SJohn Forte * Contributor(s): 51*fcf3ce44SJohn Forte * Jeff Ding, Adaptec, Inc. (jding@corp.adaptec.com) 52*fcf3ce44SJohn Forte * Dave Wysochanski, Network Appliance, Inc. (davidw@netapp.com) 53*fcf3ce44SJohn Forte * 54*fcf3ce44SJohn Forte ****************************************************************************** 55*fcf3ce44SJohn Forte * 56*fcf3ce44SJohn Forte * Changes: 57*fcf3ce44SJohn Forte * 09/24/2003 Initial Draft 58*fcf3ce44SJohn Forte * (for other changes... see the CVS logs) 59*fcf3ce44SJohn Forte * 12/15/2003 corrected the defined parameter in IMA_SetPhbaIsnsDiscovery(). 60*fcf3ce44SJohn Forte * lower case the computer name as iscsi name in 61*fcf3ce44SJohn Forte * IMA_GenerateNodeName(). 62*fcf3ce44SJohn Forte * 03/01/2004 Brought up to date with respect to IMA v1.0.1; made formatting 63*fcf3ce44SJohn Forte * changes - lines to 80 cols - for readability. 64*fcf3ce44SJohn Forte * 65*fcf3ce44SJohn Forte * 01/21/2005 Updated to support IMA 1.1.3. 66*fcf3ce44SJohn Forte *****************************************************************************/ 67*fcf3ce44SJohn Forte #ifdef __cplusplus 68*fcf3ce44SJohn Forte extern "C" { 69*fcf3ce44SJohn Forte #endif 70*fcf3ce44SJohn Forte 71*fcf3ce44SJohn Forte #ifndef IMA_H 72*fcf3ce44SJohn Forte #define IMA_H 73*fcf3ce44SJohn Forte 74*fcf3ce44SJohn Forte #include <time.h> 75*fcf3ce44SJohn Forte #include <wchar.h> 76*fcf3ce44SJohn Forte 77*fcf3ce44SJohn Forte 78*fcf3ce44SJohn Forte /* Library version string */ 79*fcf3ce44SJohn Forte #define HBA_LIBVERSION 2 80*fcf3ce44SJohn Forte 81*fcf3ce44SJohn Forte /* DLL imports for WIN32 operation */ 82*fcf3ce44SJohn Forte #ifdef WIN32 83*fcf3ce44SJohn Forte #ifdef IMA_EXPORTS 84*fcf3ce44SJohn Forte #define IMA_API __declspec(dllexport) 85*fcf3ce44SJohn Forte #else 86*fcf3ce44SJohn Forte #define IMA_API __declspec(dllimport) 87*fcf3ce44SJohn Forte #endif 88*fcf3ce44SJohn Forte #else 89*fcf3ce44SJohn Forte #define IMA_API 90*fcf3ce44SJohn Forte #endif 91*fcf3ce44SJohn Forte 92*fcf3ce44SJohn Forte /* OS specific definitions */ 93*fcf3ce44SJohn Forte 94*fcf3ce44SJohn Forte #ifdef WIN32 95*fcf3ce44SJohn Forte typedef unsigned char IMA_UINT8; // Unsigned 8 bits 96*fcf3ce44SJohn Forte typedef char IMA_INT8; // Signed 8 bits 97*fcf3ce44SJohn Forte typedef unsigned short IMA_UINT16; // Unsigned 16 bits 98*fcf3ce44SJohn Forte typedef short IMA_INT16; // Signed 16 bits 99*fcf3ce44SJohn Forte typedef unsigned int IMA_UINT32; // Unsigned 32 bits 100*fcf3ce44SJohn Forte typedef int IMA_INT32; // Signed 32 bits 101*fcf3ce44SJohn Forte typedef void* IMA_PVOID; // Pointer to void 102*fcf3ce44SJohn Forte typedef IMA_UINT32 IMA_VOID32; // Opaque 32 bits 103*fcf3ce44SJohn Forte 104*fcf3ce44SJohn Forte 105*fcf3ce44SJohn Forte /* Don't confuse, _WIN32 with WIN32... OK, how do you accompish that */ 106*fcf3ce44SJohn Forte #ifdef _WIN32 107*fcf3ce44SJohn Forte typedef __int64 IMA_INT64; 108*fcf3ce44SJohn Forte typedef unsigned __int64 IMA_UINT64; 109*fcf3ce44SJohn Forte #else 110*fcf3ce44SJohn Forte typedef struct { 111*fcf3ce44SJohn Forte TN_UINT32 lo_val; 112*fcf3ce44SJohn Forte TN_UINT32 hi_val; 113*fcf3ce44SJohn Forte } IMA_INT64; 114*fcf3ce44SJohn Forte 115*fcf3ce44SJohn Forte typedef struct { 116*fcf3ce44SJohn Forte TN_UINT32 lo_val; 117*fcf3ce44SJohn Forte TN_UINT32 hi_val; 118*fcf3ce44SJohn Forte } IMA_UINT64; 119*fcf3ce44SJohn Forte #endif /* #ifdef _WIN32 */ 120*fcf3ce44SJohn Forte 121*fcf3ce44SJohn Forte 122*fcf3ce44SJohn Forte #else 123*fcf3ce44SJohn Forte 124*fcf3ce44SJohn Forte /* Note this section needs to be cleaned up for various Unix platforms */ 125*fcf3ce44SJohn Forte typedef unsigned char IMA_UINT8; /* Unsigned 8 bits */ 126*fcf3ce44SJohn Forte typedef char IMA_INT8; /* Signed 8 bits */ 127*fcf3ce44SJohn Forte typedef unsigned short IMA_UINT16; /* Unsigned 16 bits */ 128*fcf3ce44SJohn Forte typedef short IMA_INT16; /* Signed 16 bits */ 129*fcf3ce44SJohn Forte typedef unsigned int IMA_UINT32; /* Unsigned 32 bits */ 130*fcf3ce44SJohn Forte typedef int IMA_INT32; /* Signed 32 bits */ 131*fcf3ce44SJohn Forte typedef void* IMA_PVOID; /* Pointer to void */ 132*fcf3ce44SJohn Forte typedef IMA_UINT32 IMA_VOID32; /* Opaque 32 bits */ 133*fcf3ce44SJohn Forte typedef long long IMA_INT64; 134*fcf3ce44SJohn Forte typedef long long IMA_UINT64; 135*fcf3ce44SJohn Forte 136*fcf3ce44SJohn Forte #endif /* #ifdef WIN32 */ 137*fcf3ce44SJohn Forte 138*fcf3ce44SJohn Forte 139*fcf3ce44SJohn Forte 140*fcf3ce44SJohn Forte /** 141*fcf3ce44SJohn Forte ******************************************************************************* 142*fcf3ce44SJohn Forte * 143*fcf3ce44SJohn Forte * Generic IMA Constant Definitions 144*fcf3ce44SJohn Forte * 145*fcf3ce44SJohn Forte ******************************************************************************* 146*fcf3ce44SJohn Forte */ 147*fcf3ce44SJohn Forte #define RL_LIBRARY_SEQNUM 0 148*fcf3ce44SJohn Forte #define RL_SHARED_NODE_SEQNUM 0 149*fcf3ce44SJohn Forte 150*fcf3ce44SJohn Forte /** 151*fcf3ce44SJohn Forte * Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL. 152*fcf3ce44SJohn Forte */ 153*fcf3ce44SJohn Forte #define IMA_TRUE 1 154*fcf3ce44SJohn Forte 155*fcf3ce44SJohn Forte /** 156*fcf3ce44SJohn Forte * Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL. 157*fcf3ce44SJohn Forte */ 158*fcf3ce44SJohn Forte #define IMA_FALSE 0 159*fcf3ce44SJohn Forte 160*fcf3ce44SJohn Forte /** 161*fcf3ce44SJohn Forte * Value which can be assigned to an IMA_XBOOL. 162*fcf3ce44SJohn Forte */ 163*fcf3ce44SJohn Forte #define IMA_UNKNOWN 0xFFFFFFFF 164*fcf3ce44SJohn Forte 165*fcf3ce44SJohn Forte 166*fcf3ce44SJohn Forte 167*fcf3ce44SJohn Forte /** 168*fcf3ce44SJohn Forte ******************************************************************************* 169*fcf3ce44SJohn Forte * 170*fcf3ce44SJohn Forte * Base IMA Type Definitions 171*fcf3ce44SJohn Forte * 172*fcf3ce44SJohn Forte * @note Types that have a specific size must be defined ImaOsTypes.h which is 173*fcf3ce44SJohn Forte * an OS specific include file which is included by this file. 174*fcf3ce44SJohn Forte * 175*fcf3ce44SJohn Forte ******************************************************************************* 176*fcf3ce44SJohn Forte */ 177*fcf3ce44SJohn Forte 178*fcf3ce44SJohn Forte /** 179*fcf3ce44SJohn Forte * A character. 180*fcf3ce44SJohn Forte */ 181*fcf3ce44SJohn Forte typedef char IMA_CHAR; 182*fcf3ce44SJohn Forte 183*fcf3ce44SJohn Forte /** 184*fcf3ce44SJohn Forte * A wide character. 185*fcf3ce44SJohn Forte */ 186*fcf3ce44SJohn Forte typedef wchar_t IMA_WCHAR; 187*fcf3ce44SJohn Forte 188*fcf3ce44SJohn Forte /** 189*fcf3ce44SJohn Forte * An integer. Spec states this is 32 bits on 32-bit systems, and 64-bit 190*fcf3ce44SJohn Forte * on 64-bit systems. 191*fcf3ce44SJohn Forte */ 192*fcf3ce44SJohn Forte typedef unsigned long IMA_UINT; 193*fcf3ce44SJohn Forte 194*fcf3ce44SJohn Forte /** 195*fcf3ce44SJohn Forte * A boolean. 196*fcf3ce44SJohn Forte */ 197*fcf3ce44SJohn Forte typedef IMA_UINT32 IMA_BOOL; 198*fcf3ce44SJohn Forte 199*fcf3ce44SJohn Forte /** 200*fcf3ce44SJohn Forte * An extended boolean: can have the values @ref IMA_TRUE, @ref IMA_FALSE, and 201*fcf3ce44SJohn Forte * @ref IMA_UNKNOWN. 202*fcf3ce44SJohn Forte */ 203*fcf3ce44SJohn Forte typedef IMA_UINT32 IMA_XBOOL; 204*fcf3ce44SJohn Forte 205*fcf3ce44SJohn Forte /** 206*fcf3ce44SJohn Forte * A date and time. 207*fcf3ce44SJohn Forte */ 208*fcf3ce44SJohn Forte typedef struct tm IMA_DATETIME; 209*fcf3ce44SJohn Forte 210*fcf3ce44SJohn Forte typedef unsigned char IMA_BYTE; 211*fcf3ce44SJohn Forte 212*fcf3ce44SJohn Forte /** 213*fcf3ce44SJohn Forte ******************************************************************************* 214*fcf3ce44SJohn Forte * 215*fcf3ce44SJohn Forte * Constants and macros declarations related to IMA_STATUS 216*fcf3ce44SJohn Forte * 217*fcf3ce44SJohn Forte ******************************************************************************* 218*fcf3ce44SJohn Forte */ 219*fcf3ce44SJohn Forte #ifdef SOLARIS 220*fcf3ce44SJohn Forte typedef IMA_UINT IMA_STATUS; 221*fcf3ce44SJohn Forte 222*fcf3ce44SJohn Forte #define IMA_STATUS_SUCCESS 0x00000000 223*fcf3ce44SJohn Forte #define IMA_STATUS_ERROR 0x80000000 224*fcf3ce44SJohn Forte 225*fcf3ce44SJohn Forte #define IMA_SUCCESS(status) (((IMA_STATUS)(status) & \ 226*fcf3ce44SJohn Forte (IMA_STATUS)IMA_STATUS_ERROR) == 0 ? IMA_TRUE : IMA_FALSE) 227*fcf3ce44SJohn Forte #define IMA_ERROR(status) (((IMA_STATUS)(status) & \ 228*fcf3ce44SJohn Forte (IMA_STATUS)IMA_STATUS_ERROR) == 0x8000000 ? IMA_TRUE : IMA_FALSE) 229*fcf3ce44SJohn Forte 230*fcf3ce44SJohn Forte #define MAKE_IMA_STATUS(x) ((IMA_STATUS)(x)) 231*fcf3ce44SJohn Forte #define MAKE_IMA_ERROR(x) ((IMA_STATUS)(IMA_STATUS_ERROR | (x))) 232*fcf3ce44SJohn Forte #define GET_SYSTEM_ERROR(x) (((IMA_STATUS)(x) & 0x0000FFFF)) 233*fcf3ce44SJohn Forte 234*fcf3ce44SJohn Forte #define IMA_STATUS_REBOOT_NECESSARY MAKE_IMA_STATUS(0x01) 235*fcf3ce44SJohn Forte #define IMA_STATUS_INCONSISTENT_NODE_PROPERTIES MAKE_IMA_STATUS(0x02) 236*fcf3ce44SJohn Forte #define IMA_STATUS_SCSI_STATUS_CONDITION_MET MAKE_IMA_STATUS(0x100) 237*fcf3ce44SJohn Forte 238*fcf3ce44SJohn Forte #define IMA_ERROR_NOT_SUPPORTED MAKE_IMA_ERROR(0x01) 239*fcf3ce44SJohn Forte #define IMA_ERROR_INSUFFICIENT_MEMORY MAKE_IMA_ERROR(0x02) 240*fcf3ce44SJohn Forte #define IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD MAKE_IMA_ERROR(0x03) 241*fcf3ce44SJohn Forte #define IMA_ERROR_UNEXPECTED_OS_ERROR MAKE_IMA_ERROR(0x04) 242*fcf3ce44SJohn Forte #define IMA_ERROR_SYNC_TIMEOUT MAKE_IMA_ERROR(0x05) 243*fcf3ce44SJohn Forte #define IMA_ERROR_LU_EXPOSED MAKE_IMA_ERROR(0x06) 244*fcf3ce44SJohn Forte #define IMA_ERROR_LU_NOT_EXPOSED MAKE_IMA_ERROR(0x07) 245*fcf3ce44SJohn Forte #define IMA_ERROR_LU_IN_USE MAKE_IMA_ERROR(0x08) 246*fcf3ce44SJohn Forte #define IMA_ERROR_TARGET_TIMEOUT MAKE_IMA_ERROR(0x09) 247*fcf3ce44SJohn Forte #define IMA_ERROR_LOGIN_REJECTED MAKE_IMA_ERROR(0x0A) 248*fcf3ce44SJohn Forte #define IMA_ERROR_STATS_COLLECTION_NOT_ENABLED MAKE_IMA_ERROR(0x0B) 249*fcf3ce44SJohn Forte #define IMA_ERROR_SCSI_STATUS_CHECK_CONDITION MAKE_IMA_ERROR(0x100) 250*fcf3ce44SJohn Forte #define IMA_ERROR_SCSI_STATUS_BUSY MAKE_IMA_ERROR(0x101) 251*fcf3ce44SJohn Forte #define IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT MAKE_IMA_ERROR(0x102) 252*fcf3ce44SJohn Forte #define IMA_ERROR_SCSI_STATUS_TASK_SET_FULL MAKE_IMA_ERROR(0x103) 253*fcf3ce44SJohn Forte #define IMA_ERROR_SCSI_STATUS_ACA_ACTIVE MAKE_IMA_ERROR(0x104) 254*fcf3ce44SJohn Forte #define IMA_ERROR_SCSI_STATUS_TASK_ABORTED MAKE_IMA_ERROR(0x105) 255*fcf3ce44SJohn Forte #define IMA_ERROR_INVALID_PARAMETER MAKE_IMA_ERROR(0x40000000) 256*fcf3ce44SJohn Forte #define IMA_ERROR_INVALID_OBJECT_TYPE MAKE_IMA_ERROR(0x40000001) 257*fcf3ce44SJohn Forte #define IMA_ERROR_INCORRECT_OBJECT_TYPE MAKE_IMA_ERROR(0x40000002) 258*fcf3ce44SJohn Forte #define IMA_ERROR_OBJECT_NOT_FOUND MAKE_IMA_ERROR(0x40000003) 259*fcf3ce44SJohn Forte #define IMA_ERROR_NAME_TOO_LONG MAKE_IMA_ERROR(0x40000004) 260*fcf3ce44SJohn Forte #define IMA_ERROR_UNKNOWN_ERROR MAKE_IMA_ERROR(0x0fffffff) 261*fcf3ce44SJohn Forte 262*fcf3ce44SJohn Forte #else 263*fcf3ce44SJohn Forte 264*fcf3ce44SJohn Forte typedef enum { 265*fcf3ce44SJohn Forte IMA_STATUS_SUCCESS = 0x00000000, 266*fcf3ce44SJohn Forte IMA_STATUS_REBOOT_NECESSARY = 0x00000001, 267*fcf3ce44SJohn Forte IMA_STATUS_INCONSISTENT_NODE_PROPERTIES = 0x00000002, 268*fcf3ce44SJohn Forte IMA_STATUS_SCSI_STATUS_CONDITION_MET = 0x00000100, 269*fcf3ce44SJohn Forte 270*fcf3ce44SJohn Forte IMA_STATUS_ERROR = 0x80000000, 271*fcf3ce44SJohn Forte IMA_ERROR_NOT_SUPPORTED = 0x80000001, 272*fcf3ce44SJohn Forte IMA_ERROR_INSUFFICIENT_MEMORY = 0x80000002, 273*fcf3ce44SJohn Forte IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD = 0x80000003, 274*fcf3ce44SJohn Forte IMA_ERROR_UNEXPECTED_OS_ERROR = 0x80000004, 275*fcf3ce44SJohn Forte IMA_ERROR_SYNC_TIMEOUT = 0x80000005, 276*fcf3ce44SJohn Forte IMA_ERROR_LU_EXPOSED = 0x80000006, 277*fcf3ce44SJohn Forte IMA_ERROR_LU_NOT_EXPOSED = 0x80000007, 278*fcf3ce44SJohn Forte IMA_ERROR_LU_IN_USE = 0x80000008, 279*fcf3ce44SJohn Forte IMA_ERROR_TARGET_TIMEOUT = 0x80000009, 280*fcf3ce44SJohn Forte IMA_ERROR_LOGIN_REJECTED = 0x8000000A, 281*fcf3ce44SJohn Forte IMA_ERROR_STATS_COLLECTION_NOT_ENABLED = 0x8000000B, 282*fcf3ce44SJohn Forte IMA_ERROR_SCSI_STATUS_CHECK_CONDITION = 0x80000100, 283*fcf3ce44SJohn Forte IMA_ERROR_SCSI_STATUS_BUSY = 0x80000101, 284*fcf3ce44SJohn Forte IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT = 0x80000102, 285*fcf3ce44SJohn Forte IMA_ERROR_SCSI_STATUS_TASK_SET_FULL = 0x80000103, 286*fcf3ce44SJohn Forte IMA_ERROR_SCSI_STATUS_ACA_ACTIVE = 0x80000104, 287*fcf3ce44SJohn Forte IMA_ERROR_SCSI_STATUS_TASK_ABORTED = 0x80000105, 288*fcf3ce44SJohn Forte IMA_ERROR_INVALID_PARAMETER = 0xC0000000, 289*fcf3ce44SJohn Forte IMA_ERROR_INVALID_OBJECT_TYPE = 0xC0000001, 290*fcf3ce44SJohn Forte IMA_ERROR_INCORRECT_OBJECT_TYPE = 0xC0000002, 291*fcf3ce44SJohn Forte IMA_ERROR_OBJECT_NOT_FOUND = 0xC0000003, 292*fcf3ce44SJohn Forte IMA_ERROR_NAME_TOO_LONG = 0xC0000004, 293*fcf3ce44SJohn Forte IMA_ERROR_UNKNOWN_ERROR = 0x8FFFFFFF 294*fcf3ce44SJohn Forte } IMA_STATUS; 295*fcf3ce44SJohn Forte 296*fcf3ce44SJohn Forte /* 297*fcf3ce44SJohn Forte #define IMA_SUCCESS(status) ( (IMA_UINT32)(status) & \ 298*fcf3ce44SJohn Forte (IMA_UINT32)IMA_STATUS_ERROR == 0 ? \ 299*fcf3ce44SJohn Forte IMA_TRUE : IMA_FALSE ) 300*fcf3ce44SJohn Forte #define IMA_ERROR(status) ( (IMA_UINT32)(status) & \ 301*fcf3ce44SJohn Forte (IMA_UINT32)IMA_STATUS_ERROR == 0x8000000 ? \ 302*fcf3ce44SJohn Forte IMA_TRUE : IMA_FALSE ) 303*fcf3ce44SJohn Forte */ 304*fcf3ce44SJohn Forte 305*fcf3ce44SJohn Forte #define IMA_SUCCESS(status) !((status) & IMA_STATUS_ERROR) 306*fcf3ce44SJohn Forte #define IMA_ERROR(status) ((status) & IMA_STATUS_ERROR) 307*fcf3ce44SJohn Forte 308*fcf3ce44SJohn Forte #endif 309*fcf3ce44SJohn Forte 310*fcf3ce44SJohn Forte /** 311*fcf3ce44SJohn Forte ******************************************************************************* 312*fcf3ce44SJohn Forte * 313*fcf3ce44SJohn Forte * Declaration of the IMA_OBJECT_TYPE enumeration 314*fcf3ce44SJohn Forte * 315*fcf3ce44SJohn Forte ******************************************************************************* 316*fcf3ce44SJohn Forte */ 317*fcf3ce44SJohn Forte typedef enum 318*fcf3ce44SJohn Forte { 319*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_UNKNOWN = 0, 320*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_PLUGIN = 1, 321*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_NODE = 2, 322*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_LHBA = 3, 323*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_PHBA = 4, 324*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_NETWORK_PORTAL = 5, 325*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_PORTAL_GROUP = 6, 326*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_LNP = 7, 327*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_PNP = 8, 328*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_TARGET = 9, 329*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_LU = 10, 330*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_DISCOVERY_ADDRESS = 11, 331*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_STATIC_DISCOVERY_TARGET = 12, 332*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_CONNECTION = 13, 333*fcf3ce44SJohn Forte IMA_OBJECT_TYPE_SESSION = 14 334*fcf3ce44SJohn Forte } IMA_OBJECT_TYPE; 335*fcf3ce44SJohn Forte 336*fcf3ce44SJohn Forte typedef enum 337*fcf3ce44SJohn Forte { 338*fcf3ce44SJohn Forte IMA_ISNS_DISCOVERY_METHOD_STATIC = 0, 339*fcf3ce44SJohn Forte IMA_ISNS_DISCOVERY_METHOD_DHCP = 1, 340*fcf3ce44SJohn Forte IMA_ISNS_DISCOVERY_METHOD_SLP = 2 341*fcf3ce44SJohn Forte } IMA_ISNS_DISCOVERY_METHOD; 342*fcf3ce44SJohn Forte 343*fcf3ce44SJohn Forte typedef enum 344*fcf3ce44SJohn Forte { 345*fcf3ce44SJohn Forte IMA_DOWNLOAD_IMAGE_TYPE_FIRMWARE = 0, 346*fcf3ce44SJohn Forte IMA_DOWNLOAD_IMAGE_TYPE_OPTION_ROM = 1, 347*fcf3ce44SJohn Forte IMA_DOWNLOAD_IMAGE_TYPE_ALL = 2, 348*fcf3ce44SJohn Forte IMA_DOWNLOAD_IMAGE_TYPE_BOOTCODE = 3 349*fcf3ce44SJohn Forte } IMA_PHBA_DOWNLOAD_IMAGE_TYPE; 350*fcf3ce44SJohn Forte 351*fcf3ce44SJohn Forte typedef enum 352*fcf3ce44SJohn Forte { 353*fcf3ce44SJohn Forte IMA_PHBA_STATUS_WORKING = 0, 354*fcf3ce44SJohn Forte IMA_PHBA_STATUS_FAILED = 1 355*fcf3ce44SJohn Forte } IMA_PHBA_STATUS; 356*fcf3ce44SJohn Forte 357*fcf3ce44SJohn Forte typedef enum 358*fcf3ce44SJohn Forte { 359*fcf3ce44SJohn Forte IMA_NETWORK_PORT_STATUS_WORKING = 0, 360*fcf3ce44SJohn Forte IMA_NETWORK_PORT_STATUS_DEGRADED = 1, 361*fcf3ce44SJohn Forte IMA_NETWORK_PORT_STATUS_CRITICAL = 2, 362*fcf3ce44SJohn Forte IMA_NETWORK_PORT_STATUS_FAILED = 3, 363*fcf3ce44SJohn Forte IMA_NETWORK_PORT_STATUS_DISCONNECTED = 4 364*fcf3ce44SJohn Forte } IMA_NETWORK_PORT_STATUS; 365*fcf3ce44SJohn Forte 366*fcf3ce44SJohn Forte typedef enum 367*fcf3ce44SJohn Forte { 368*fcf3ce44SJohn Forte IMA_TARGET_DISCOVERY_METHOD_STATIC = 1, 369*fcf3ce44SJohn Forte IMA_TARGET_DISCOVERY_METHOD_SLP = 2, 370*fcf3ce44SJohn Forte IMA_TARGET_DISCOVERY_METHOD_ISNS = 4, 371*fcf3ce44SJohn Forte IMA_TARGET_DISCOVERY_METHOD_SENDTARGETS = 8 372*fcf3ce44SJohn Forte } IMA_TARGET_DISCOVERY_METHOD; 373*fcf3ce44SJohn Forte 374*fcf3ce44SJohn Forte typedef enum 375*fcf3ce44SJohn Forte { 376*fcf3ce44SJohn Forte IMA_AUTHMETHOD_NONE = 0, 377*fcf3ce44SJohn Forte IMA_AUTHMETHOD_CHAP = 1, 378*fcf3ce44SJohn Forte IMA_AUTHMETHOD_SRP = 2, 379*fcf3ce44SJohn Forte IMA_AUTHMETHOD_KRB5 = 3, 380*fcf3ce44SJohn Forte IMA_AUTHMETHOD_SPKM1 = 4, 381*fcf3ce44SJohn Forte IMA_AUTHMETHOD_SPKM2 = 5 382*fcf3ce44SJohn Forte } IMA_AUTHMETHOD; 383*fcf3ce44SJohn Forte 384*fcf3ce44SJohn Forte typedef enum 385*fcf3ce44SJohn Forte { 386*fcf3ce44SJohn Forte IMA_COMMIT_TYPE_AUTO = 0, 387*fcf3ce44SJohn Forte IMA_COMMIT_TYPE_ACTIVE, 388*fcf3ce44SJohn Forte IMA_COMMIT_TYPE_PERSISTENT, 389*fcf3ce44SJohn Forte IMA_COMMIT_TYPE_ACTIVE_AND_PERSISTENT, 390*fcf3ce44SJohn Forte IMA_COMMIT_TYPE_ALL_WITH_RESET 391*fcf3ce44SJohn Forte } IMA_COMMIT_LEVEL; 392*fcf3ce44SJohn Forte 393*fcf3ce44SJohn Forte typedef enum 394*fcf3ce44SJohn Forte { 395*fcf3ce44SJohn Forte IMA_DIGEST_NONE = 0, 396*fcf3ce44SJohn Forte IMA_DIGEST_CRC32C = 1 397*fcf3ce44SJohn Forte } IMA_DIGEST_TYPE; 398*fcf3ce44SJohn Forte 399*fcf3ce44SJohn Forte 400*fcf3ce44SJohn Forte /** 401*fcf3ce44SJohn Forte ******************************************************************************* 402*fcf3ce44SJohn Forte * 403*fcf3ce44SJohn Forte * Declaration of the IMA_OID structure 404*fcf3ce44SJohn Forte * 405*fcf3ce44SJohn Forte * This structure should be treated as opaque by clients of the API. 406*fcf3ce44SJohn Forte * Appropriate APIs should be used to extract information from the structure. 407*fcf3ce44SJohn Forte * 408*fcf3ce44SJohn Forte ******************************************************************************* 409*fcf3ce44SJohn Forte */ 410*fcf3ce44SJohn Forte typedef struct _IMA_OID 411*fcf3ce44SJohn Forte { 412*fcf3ce44SJohn Forte /** 413*fcf3ce44SJohn Forte * The type of the object. When an object ID is supplied as a parameter 414*fcf3ce44SJohn Forte * to an API the library uses this value to insure that the supplied 415*fcf3ce44SJohn Forte * object's type is appropriate for the API. 416*fcf3ce44SJohn Forte */ 417*fcf3ce44SJohn Forte IMA_OBJECT_TYPE objectType; 418*fcf3ce44SJohn Forte 419*fcf3ce44SJohn Forte /** 420*fcf3ce44SJohn Forte * A value determined by the library which it uses to uniquely identify the 421*fcf3ce44SJohn Forte * owner of an object. The owner of an object is either the library itself 422*fcf3ce44SJohn Forte * or a plugin. When an object ID is supplied as a parameter to an API the 423*fcf3ce44SJohn Forte * library uses this value to determine if it should handle the call itself 424*fcf3ce44SJohn Forte * or direct the call to one or more plugins. 425*fcf3ce44SJohn Forte */ 426*fcf3ce44SJohn Forte IMA_UINT32 ownerId; 427*fcf3ce44SJohn Forte 428*fcf3ce44SJohn Forte /** 429*fcf3ce44SJohn Forte * A value determined by a plugin which a plugin uses, perhaps in 430*fcf3ce44SJohn Forte * combination with the object type, to uniquely identify one of its 431*fcf3ce44SJohn Forte * objects. 432*fcf3ce44SJohn Forte */ 433*fcf3ce44SJohn Forte IMA_UINT64 objectSequenceNumber; 434*fcf3ce44SJohn Forte 435*fcf3ce44SJohn Forte } IMA_OID; 436*fcf3ce44SJohn Forte 437*fcf3ce44SJohn Forte 438*fcf3ce44SJohn Forte 439*fcf3ce44SJohn Forte /** 440*fcf3ce44SJohn Forte ******************************************************************************* 441*fcf3ce44SJohn Forte * 442*fcf3ce44SJohn Forte * Declaration of the IMA_OID_LIST structure 443*fcf3ce44SJohn Forte * 444*fcf3ce44SJohn Forte * This structure is used by a number of APIs to return lists of objects. Any 445*fcf3ce44SJohn Forte * instance of this structure returned by an API must be freed by a client 446*fcf3ce44SJohn Forte * using the IMA_FreeObjectIdList API. Although oids is declared to be an 447*fcf3ce44SJohn Forte * array of one 448*fcf3ce44SJohn Forte * @ref IMA_OID structure it can in fact contain any number of 449*fcf3ce44SJohn Forte * @ref IMA_OID structures. 450*fcf3ce44SJohn Forte * 451*fcf3ce44SJohn Forte * @note The @a oids array is a variable length array, despite its declaration 452*fcf3ce44SJohn Forte * below it can be of any length. 453*fcf3ce44SJohn Forte * 454*fcf3ce44SJohn Forte ******************************************************************************* 455*fcf3ce44SJohn Forte */ 456*fcf3ce44SJohn Forte typedef struct _IMA_OID_LIST 457*fcf3ce44SJohn Forte { 458*fcf3ce44SJohn Forte /** 459*fcf3ce44SJohn Forte * The number of object IDs in the @a oids array. 460*fcf3ce44SJohn Forte */ 461*fcf3ce44SJohn Forte IMA_UINT oidCount; 462*fcf3ce44SJohn Forte 463*fcf3ce44SJohn Forte /** 464*fcf3ce44SJohn Forte * A variable length array of zero or more object IDs. There are 465*fcf3ce44SJohn Forte * 'oidCount' object IDs in this array. 466*fcf3ce44SJohn Forte */ 467*fcf3ce44SJohn Forte IMA_OID oids[1]; 468*fcf3ce44SJohn Forte 469*fcf3ce44SJohn Forte } IMA_OID_LIST; 470*fcf3ce44SJohn Forte 471*fcf3ce44SJohn Forte #define IMA_HOST_NAME_LEN 256 472*fcf3ce44SJohn Forte typedef IMA_WCHAR IMA_HOST_NAME[IMA_HOST_NAME_LEN]; 473*fcf3ce44SJohn Forte typedef IMA_BYTE IMA_MAC_ADDRESS[6]; 474*fcf3ce44SJohn Forte 475*fcf3ce44SJohn Forte /** 476*fcf3ce44SJohn Forte ******************************************************************************* 477*fcf3ce44SJohn Forte * 478*fcf3ce44SJohn Forte * Declaration of the IMA_LIBRARY_PROPERTIES structure 479*fcf3ce44SJohn Forte * 480*fcf3ce44SJohn Forte ******************************************************************************* 481*fcf3ce44SJohn Forte */ 482*fcf3ce44SJohn Forte typedef struct _IMA_LIBRARY_PROPERTIES 483*fcf3ce44SJohn Forte { 484*fcf3ce44SJohn Forte /** 485*fcf3ce44SJohn Forte * The version of the iSCSI Management API implemented by the library. 486*fcf3ce44SJohn Forte * The value returned by a library for the API as described in this 487*fcf3ce44SJohn Forte * document is one. 488*fcf3ce44SJohn Forte */ 489*fcf3ce44SJohn Forte IMA_UINT supportedImaVersion; 490*fcf3ce44SJohn Forte 491*fcf3ce44SJohn Forte /** 492*fcf3ce44SJohn Forte * A nul terminated ASCII string containing the name of the vendor that 493*fcf3ce44SJohn Forte * created the binary version of the library. 494*fcf3ce44SJohn Forte */ 495*fcf3ce44SJohn Forte IMA_WCHAR vendor[256]; 496*fcf3ce44SJohn Forte 497*fcf3ce44SJohn Forte /** 498*fcf3ce44SJohn Forte * A nul terminated ASCII string containing the implementation version 499*fcf3ce44SJohn Forte * of the library from the vendor specified in the 'vendor' field. 500*fcf3ce44SJohn Forte */ 501*fcf3ce44SJohn Forte IMA_WCHAR implementationVersion[256]; 502*fcf3ce44SJohn Forte 503*fcf3ce44SJohn Forte /** 504*fcf3ce44SJohn Forte * A nul terminated ASCII string ideally containing the path and file 505*fcf3ce44SJohn Forte * name of the library that is being used by the currently executing 506*fcf3ce44SJohn Forte * process can be found. If the path cannot be determined then it is 507*fcf3ce44SJohn Forte * acceptable to fill this field with only the name (and extension if 508*fcf3ce44SJohn Forte * applicable) of the file of the library. If this cannot be determined 509*fcf3ce44SJohn Forte * then this field should be an empty string. 510*fcf3ce44SJohn Forte */ 511*fcf3ce44SJohn Forte IMA_WCHAR fileName[256]; 512*fcf3ce44SJohn Forte 513*fcf3ce44SJohn Forte /** 514*fcf3ce44SJohn Forte * The time and date that the library that is executing was built. 515*fcf3ce44SJohn Forte */ 516*fcf3ce44SJohn Forte IMA_DATETIME buildTime; 517*fcf3ce44SJohn Forte 518*fcf3ce44SJohn Forte IMA_BYTE reserved[64]; 519*fcf3ce44SJohn Forte } IMA_LIBRARY_PROPERTIES; 520*fcf3ce44SJohn Forte 521*fcf3ce44SJohn Forte 522*fcf3ce44SJohn Forte 523*fcf3ce44SJohn Forte /** 524*fcf3ce44SJohn Forte ******************************************************************************* 525*fcf3ce44SJohn Forte * 526*fcf3ce44SJohn Forte * Declaration of the IMA_PLUGIN_PROPERTIES structure 527*fcf3ce44SJohn Forte * 528*fcf3ce44SJohn Forte ******************************************************************************* 529*fcf3ce44SJohn Forte */ 530*fcf3ce44SJohn Forte typedef struct _IMA_PLUGIN_PROPERTIES 531*fcf3ce44SJohn Forte { 532*fcf3ce44SJohn Forte IMA_UINT supportedImaVersion; 533*fcf3ce44SJohn Forte IMA_WCHAR vendor[256]; 534*fcf3ce44SJohn Forte IMA_WCHAR implementationVersion[256]; 535*fcf3ce44SJohn Forte IMA_WCHAR fileName[256]; 536*fcf3ce44SJohn Forte IMA_DATETIME buildTime; 537*fcf3ce44SJohn Forte 538*fcf3ce44SJohn Forte IMA_BOOL lhbasCanBeCreatedAndDestroyed; 539*fcf3ce44SJohn Forte 540*fcf3ce44SJohn Forte IMA_BYTE reserved[64]; 541*fcf3ce44SJohn Forte 542*fcf3ce44SJohn Forte } IMA_PLUGIN_PROPERTIES; 543*fcf3ce44SJohn Forte 544*fcf3ce44SJohn Forte 545*fcf3ce44SJohn Forte typedef struct _IMA_IP_ADDRESS 546*fcf3ce44SJohn Forte { 547*fcf3ce44SJohn Forte IMA_BOOL ipv4Address; 548*fcf3ce44SJohn Forte IMA_BYTE ipAddress[16]; 549*fcf3ce44SJohn Forte 550*fcf3ce44SJohn Forte } IMA_IP_ADDRESS; 551*fcf3ce44SJohn Forte 552*fcf3ce44SJohn Forte typedef struct _IMA_ADDRESS_KEY 553*fcf3ce44SJohn Forte { 554*fcf3ce44SJohn Forte IMA_IP_ADDRESS ipAddress; 555*fcf3ce44SJohn Forte IMA_UINT16 portNumber; 556*fcf3ce44SJohn Forte 557*fcf3ce44SJohn Forte } IMA_ADDRESS_KEY; 558*fcf3ce44SJohn Forte 559*fcf3ce44SJohn Forte typedef struct _IMA_ADDRESS_KEYS 560*fcf3ce44SJohn Forte { 561*fcf3ce44SJohn Forte IMA_UINT addressKeyCount; 562*fcf3ce44SJohn Forte IMA_ADDRESS_KEY addressKeys[1]; 563*fcf3ce44SJohn Forte 564*fcf3ce44SJohn Forte } IMA_ADDRESS_KEYS; 565*fcf3ce44SJohn Forte 566*fcf3ce44SJohn Forte typedef struct _IMA_ADDRESS_KEY_PROPERTIES 567*fcf3ce44SJohn Forte { 568*fcf3ce44SJohn Forte IMA_UINT addressKeyCount; 569*fcf3ce44SJohn Forte IMA_ADDRESS_KEY addressKeys[1]; 570*fcf3ce44SJohn Forte 571*fcf3ce44SJohn Forte } IMA_ADDRESS_KEY_PROPERTIES; 572*fcf3ce44SJohn Forte 573*fcf3ce44SJohn Forte typedef struct _IMA_IP_PROPERTIES 574*fcf3ce44SJohn Forte { 575*fcf3ce44SJohn Forte IMA_BOOL ipConfigurationMethodSettable; 576*fcf3ce44SJohn Forte IMA_BOOL dhcpConfigurationEnabled; 577*fcf3ce44SJohn Forte 578*fcf3ce44SJohn Forte IMA_BOOL subnetMaskSettable; 579*fcf3ce44SJohn Forte IMA_BOOL subnetMaskValid; 580*fcf3ce44SJohn Forte IMA_IP_ADDRESS subnetMask; 581*fcf3ce44SJohn Forte 582*fcf3ce44SJohn Forte IMA_BOOL defaultGatewaySettable; 583*fcf3ce44SJohn Forte IMA_BOOL defaultGatewayValid; 584*fcf3ce44SJohn Forte IMA_IP_ADDRESS defaultGateway; 585*fcf3ce44SJohn Forte 586*fcf3ce44SJohn Forte IMA_BOOL primaryDnsServerAddressSettable; 587*fcf3ce44SJohn Forte IMA_BOOL primaryDnsServerAddressValid; 588*fcf3ce44SJohn Forte IMA_IP_ADDRESS primaryDnsServerAddress; 589*fcf3ce44SJohn Forte 590*fcf3ce44SJohn Forte IMA_BOOL alternateDnsServerAddressSettable; 591*fcf3ce44SJohn Forte IMA_BOOL alternateDnsServerAddressValid; 592*fcf3ce44SJohn Forte IMA_IP_ADDRESS alternateDnsServerAddress; 593*fcf3ce44SJohn Forte 594*fcf3ce44SJohn Forte IMA_BYTE reserved[64]; 595*fcf3ce44SJohn Forte 596*fcf3ce44SJohn Forte } IMA_IP_PROPERTIES; 597*fcf3ce44SJohn Forte 598*fcf3ce44SJohn Forte typedef struct _IMA_HOST_ID 599*fcf3ce44SJohn Forte { 600*fcf3ce44SJohn Forte IMA_BOOL hostnameInUse; 601*fcf3ce44SJohn Forte union { 602*fcf3ce44SJohn Forte 603*fcf3ce44SJohn Forte IMA_HOST_NAME hostname; 604*fcf3ce44SJohn Forte IMA_IP_ADDRESS ipAddress; 605*fcf3ce44SJohn Forte 606*fcf3ce44SJohn Forte } id; 607*fcf3ce44SJohn Forte 608*fcf3ce44SJohn Forte } IMA_HOST_ID; 609*fcf3ce44SJohn Forte 610*fcf3ce44SJohn Forte typedef struct _IMA_TARGET_ADDRESS 611*fcf3ce44SJohn Forte { 612*fcf3ce44SJohn Forte IMA_HOST_ID hostnameIpAddress; 613*fcf3ce44SJohn Forte IMA_UINT16 portNumber; 614*fcf3ce44SJohn Forte 615*fcf3ce44SJohn Forte } IMA_TARGET_ADDRESS; 616*fcf3ce44SJohn Forte 617*fcf3ce44SJohn Forte /** 618*fcf3ce44SJohn Forte ******************************************************************************* 619*fcf3ce44SJohn Forte * 620*fcf3ce44SJohn Forte * Declaration of the IMA_NODE_NAME type 621*fcf3ce44SJohn Forte * 622*fcf3ce44SJohn Forte ******************************************************************************* 623*fcf3ce44SJohn Forte */ 624*fcf3ce44SJohn Forte #define IMA_NODE_NAME_LEN 224 625*fcf3ce44SJohn Forte typedef IMA_WCHAR IMA_NODE_NAME[IMA_NODE_NAME_LEN]; 626*fcf3ce44SJohn Forte 627*fcf3ce44SJohn Forte 628*fcf3ce44SJohn Forte 629*fcf3ce44SJohn Forte /** 630*fcf3ce44SJohn Forte ******************************************************************************* 631*fcf3ce44SJohn Forte * 632*fcf3ce44SJohn Forte * Declaration of the IMA_NODE_ALIAS type 633*fcf3ce44SJohn Forte * 634*fcf3ce44SJohn Forte ******************************************************************************* 635*fcf3ce44SJohn Forte */ 636*fcf3ce44SJohn Forte #define IMA_NODE_ALIAS_LEN 256 637*fcf3ce44SJohn Forte typedef IMA_WCHAR IMA_NODE_ALIAS[IMA_NODE_ALIAS_LEN]; 638*fcf3ce44SJohn Forte 639*fcf3ce44SJohn Forte 640*fcf3ce44SJohn Forte 641*fcf3ce44SJohn Forte /** 642*fcf3ce44SJohn Forte ******************************************************************************* 643*fcf3ce44SJohn Forte * 644*fcf3ce44SJohn Forte * Declaration of the IMA_DOMAIN_NAME type 645*fcf3ce44SJohn Forte * 646*fcf3ce44SJohn Forte * A variable of this type may be formatted in any of the following four ways: 647*fcf3ce44SJohn Forte * 1. An empty string, which indicates that no host or IP address is 648*fcf3ce44SJohn Forte * specified 649*fcf3ce44SJohn Forte * 2. A DNS host name 650*fcf3ce44SJohn Forte * 3. A dotted-decimal IPv4 address 651*fcf3ce44SJohn Forte * 4. A bracketed IPv6 address as specified in RFC 2732 652*fcf3ce44SJohn Forte * 653*fcf3ce44SJohn Forte * In all cases a domain name is terminated by a nul character. 654*fcf3ce44SJohn Forte * This type is used by several APIs: IMA_SetPhbaSnsDiscovery(), 655*fcf3ce44SJohn Forte * IMA_SetNetworkPortalIpAddress(), and indirectly by 656*fcf3ce44SJohn Forte * IMA_GetPhbaDiscoveryProperties(). 657*fcf3ce44SJohn Forte * 658*fcf3ce44SJohn Forte ******************************************************************************* 659*fcf3ce44SJohn Forte */ 660*fcf3ce44SJohn Forte typedef wchar_t IMA_DOMAIN_NAME[256]; 661*fcf3ce44SJohn Forte 662*fcf3ce44SJohn Forte typedef struct _IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES 663*fcf3ce44SJohn Forte { 664*fcf3ce44SJohn Forte IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType; 665*fcf3ce44SJohn Forte IMA_WCHAR version[32]; 666*fcf3ce44SJohn Forte IMA_WCHAR description[512]; 667*fcf3ce44SJohn Forte IMA_XBOOL upgrade; 668*fcf3ce44SJohn Forte } IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES; 669*fcf3ce44SJohn Forte 670*fcf3ce44SJohn Forte 671*fcf3ce44SJohn Forte /** 672*fcf3ce44SJohn Forte ******************************************************************************* 673*fcf3ce44SJohn Forte * 674*fcf3ce44SJohn Forte * Declaration of the IMA_NODE_PROPERTIES structure 675*fcf3ce44SJohn Forte * 676*fcf3ce44SJohn Forte * This structure is returned by the IMA_GetNodeProperties() API. 677*fcf3ce44SJohn Forte * 678*fcf3ce44SJohn Forte * NOTE: It is possible for both 'runningInInitiatorMode' and 679*fcf3ce44SJohn Forte * 'runningInTargetMode' to be set to @c IMA_TRUE. This means that 680*fcf3ce44SJohn Forte * the node is operating both as an initiator and as a target. 681*fcf3ce44SJohn Forte * 682*fcf3ce44SJohn Forte ******************************************************************************* 683*fcf3ce44SJohn Forte */ 684*fcf3ce44SJohn Forte typedef struct _IMA_NODE_PROPERTIES 685*fcf3ce44SJohn Forte { 686*fcf3ce44SJohn Forte /** 687*fcf3ce44SJohn Forte * A boolean indicating if the node is running as initiator or not. 688*fcf3ce44SJohn Forte */ 689*fcf3ce44SJohn Forte IMA_BOOL runningInInitiatorMode; 690*fcf3ce44SJohn Forte 691*fcf3ce44SJohn Forte /** 692*fcf3ce44SJohn Forte * A boolean indicating if the node is running as a target or not. 693*fcf3ce44SJohn Forte */ 694*fcf3ce44SJohn Forte IMA_BOOL runningInTargetMode; 695*fcf3ce44SJohn Forte 696*fcf3ce44SJohn Forte /** 697*fcf3ce44SJohn Forte * A boolean which indicates if the node's name is set or not. 698*fcf3ce44SJohn Forte */ 699*fcf3ce44SJohn Forte IMA_BOOL nameValid; 700*fcf3ce44SJohn Forte 701*fcf3ce44SJohn Forte /** 702*fcf3ce44SJohn Forte * A nul terminated Unicode string which contains the name of the node. 703*fcf3ce44SJohn Forte * The value in this field is only valid if 'nameValid' is set to 704*fcf3ce44SJohn Forte * IMA_TRUE, in which case it will be Unicode NULL terminated. If 705*fcf3ce44SJohn Forte * 'nameValid' is set to IMA_FALSE then this field will contain an 706*fcf3ce44SJohn Forte * empty string. 707*fcf3ce44SJohn Forte */ 708*fcf3ce44SJohn Forte IMA_NODE_NAME name; 709*fcf3ce44SJohn Forte 710*fcf3ce44SJohn Forte /** 711*fcf3ce44SJohn Forte * A boolean which indicates if the node's alias is set or not. 712*fcf3ce44SJohn Forte */ 713*fcf3ce44SJohn Forte IMA_BOOL aliasValid; 714*fcf3ce44SJohn Forte 715*fcf3ce44SJohn Forte /** 716*fcf3ce44SJohn Forte * A nul terminated Unicode string which contains the alias of the node. 717*fcf3ce44SJohn Forte * This field is only valid if 'aliasValid' is set to IMA_TRUE, in which 718*fcf3ce44SJohn Forte * case it will be Unicode NULL terminated. If 'aliasValid' is set to 719*fcf3ce44SJohn Forte * IMA_FALSE then this field will contain an empty string. 720*fcf3ce44SJohn Forte */ 721*fcf3ce44SJohn Forte IMA_NODE_ALIAS alias; 722*fcf3ce44SJohn Forte 723*fcf3ce44SJohn Forte /* 724*fcf3ce44SJohn Forte * Boolean indicating if both the name and alias are settable using 725*fcf3ce44SJohn Forte * IMA_SetNodeName() and IMA_SetNodeAlias(). 726*fcf3ce44SJohn Forte */ 727*fcf3ce44SJohn Forte IMA_BOOL nameAndAliasSettable; 728*fcf3ce44SJohn Forte 729*fcf3ce44SJohn Forte IMA_BYTE reserved[64]; 730*fcf3ce44SJohn Forte 731*fcf3ce44SJohn Forte } IMA_NODE_PROPERTIES; 732*fcf3ce44SJohn Forte 733*fcf3ce44SJohn Forte 734*fcf3ce44SJohn Forte 735*fcf3ce44SJohn Forte /** 736*fcf3ce44SJohn Forte ******************************************************************************* 737*fcf3ce44SJohn Forte * 738*fcf3ce44SJohn Forte * Declaration of the IMA_LHBA_PROPERTIES structure 739*fcf3ce44SJohn Forte * 740*fcf3ce44SJohn Forte * This structure is returned by the IMA_GetLhbaProperties() API. 741*fcf3ce44SJohn Forte * 742*fcf3ce44SJohn Forte ******************************************************************************* 743*fcf3ce44SJohn Forte */ 744*fcf3ce44SJohn Forte typedef struct _IMA_LHBA_PROPERTIES 745*fcf3ce44SJohn Forte { 746*fcf3ce44SJohn Forte IMA_WCHAR osDeviceName[256]; 747*fcf3ce44SJohn Forte IMA_BOOL luExposingSupported; 748*fcf3ce44SJohn Forte IMA_BOOL isDestroyable; 749*fcf3ce44SJohn Forte 750*fcf3ce44SJohn Forte IMA_BOOL staleDataRemovable; 751*fcf3ce44SJohn Forte IMA_UINT staleDataSize; 752*fcf3ce44SJohn Forte 753*fcf3ce44SJohn Forte IMA_BOOL initiatorAuthMethodsSettable; 754*fcf3ce44SJohn Forte IMA_BOOL targetAuthMethodsSettable; 755*fcf3ce44SJohn Forte 756*fcf3ce44SJohn Forte IMA_BYTE reserved[128]; 757*fcf3ce44SJohn Forte } IMA_LHBA_PROPERTIES; 758*fcf3ce44SJohn Forte 759*fcf3ce44SJohn Forte 760*fcf3ce44SJohn Forte 761*fcf3ce44SJohn Forte /** 762*fcf3ce44SJohn Forte ******************************************************************************* 763*fcf3ce44SJohn Forte * 764*fcf3ce44SJohn Forte * Declaration of the IMA_ULP_xxx constants 765*fcf3ce44SJohn Forte * 766*fcf3ce44SJohn Forte ******************************************************************************* 767*fcf3ce44SJohn Forte */ 768*fcf3ce44SJohn Forte #define IMA_ULP_TCP 0x01 769*fcf3ce44SJohn Forte #define IMA_ULP_SCTP 0x02 770*fcf3ce44SJohn Forte #define IMA_ULP_UDP 0x04 771*fcf3ce44SJohn Forte 772*fcf3ce44SJohn Forte 773*fcf3ce44SJohn Forte 774*fcf3ce44SJohn Forte /** 775*fcf3ce44SJohn Forte ******************************************************************************* 776*fcf3ce44SJohn Forte * 777*fcf3ce44SJohn Forte * Declaration of the IMA_MIN_MAX_VALUE structure 778*fcf3ce44SJohn Forte * 779*fcf3ce44SJohn Forte * Note: If the 'currentValueValid' field is IMA_FALSE then the value of 780*fcf3ce44SJohn Forte * 'settable' must also be set to IMA_FALSE. 781*fcf3ce44SJohn Forte * 782*fcf3ce44SJohn Forte * Note: The fields in this structure contain values which are defined by the 783*fcf3ce44SJohn Forte * implementation and not by the iSCSI specification. It is possible 784*fcf3ce44SJohn Forte * that an implementation may be more or less restrictive in the values 785*fcf3ce44SJohn Forte * that it can accept than the iSCSI specification allows. 786*fcf3ce44SJohn Forte * 787*fcf3ce44SJohn Forte * Note: An example of how to use 'incrementValue': Suppose that a structure is 788*fcf3ce44SJohn Forte * obtained where 'currentValueValid' is IMA_TRUE, 'settable' is 789*fcf3ce44SJohn Forte * IMA_TRUE, 'currentValue' is 50, 'defaultValue' is 50, 'minimumValue' 790*fcf3ce44SJohn Forte * is 30, 'maximumValue' is 70 and 'incrementValue' is 10. In this case, 791*fcf3ce44SJohn Forte * the possible values that the property can be set to are 30, 40, 50, 792*fcf3ce44SJohn Forte * 60, and 70. The new value must be the current value plus or minus 793*fcf3ce44SJohn Forte * some multiple of 'incrementValue'. 794*fcf3ce44SJohn Forte * 795*fcf3ce44SJohn Forte ******************************************************************************* 796*fcf3ce44SJohn Forte */ 797*fcf3ce44SJohn Forte typedef struct _IMA_MIN_MAX_VALUE 798*fcf3ce44SJohn Forte { 799*fcf3ce44SJohn Forte /** 800*fcf3ce44SJohn Forte * A boolean indicating if the @a currentValue field contains a valid value. 801*fcf3ce44SJohn Forte */ 802*fcf3ce44SJohn Forte IMA_BOOL currentValueValid; 803*fcf3ce44SJohn Forte 804*fcf3ce44SJohn Forte /** 805*fcf3ce44SJohn Forte * Indicates if the corresponding property is settable. If this field 806*fcf3ce44SJohn Forte * has the value IMA_TRUE then the 'defaultValue', 'minimumValue', 807*fcf3ce44SJohn Forte * 'maximumValue', and 'incrementValue' fields shall contain valid 808*fcf3ce44SJohn Forte * values. If this field has the value IMA_FALSE then these fields 809*fcf3ce44SJohn Forte * have undefined values. 810*fcf3ce44SJohn Forte */ 811*fcf3ce44SJohn Forte IMA_BOOL settable; 812*fcf3ce44SJohn Forte 813*fcf3ce44SJohn Forte /** 814*fcf3ce44SJohn Forte * If currentValueValid has the value IMA_TRUE then this field contains 815*fcf3ce44SJohn Forte * the current value of the associated property. If 'currentValueValid' has 816*fcf3ce44SJohn Forte * the value IMA_FALSE then the value of this field is undefined. 817*fcf3ce44SJohn Forte */ 818*fcf3ce44SJohn Forte IMA_UINT32 currentValue; 819*fcf3ce44SJohn Forte 820*fcf3ce44SJohn Forte /** 821*fcf3ce44SJohn Forte * If 'settable' has the value IMA_TRUE then this field contains the 822*fcf3ce44SJohn Forte * implementation's default value of the associated property. If 'settable' 823*fcf3ce44SJohn Forte * has the value IMA_FALSE then the value of this field is undefined. 824*fcf3ce44SJohn Forte */ 825*fcf3ce44SJohn Forte IMA_UINT32 defaultValue; 826*fcf3ce44SJohn Forte 827*fcf3ce44SJohn Forte /** 828*fcf3ce44SJohn Forte * If 'settable' has the value IMA_TRUE then this field contains the 829*fcf3ce44SJohn Forte * implementation's minimum value of the associated property. If 'settable' 830*fcf3ce44SJohn Forte * has the value IMA_FALSE then the value of this field is undefined. 831*fcf3ce44SJohn Forte */ 832*fcf3ce44SJohn Forte IMA_UINT32 minimumValue; 833*fcf3ce44SJohn Forte 834*fcf3ce44SJohn Forte /** 835*fcf3ce44SJohn Forte * If 'settable' has the value IMA_TRUE then this field contains the 836*fcf3ce44SJohn Forte * implementation's maximum value of the associated property. If 'settable' 837*fcf3ce44SJohn Forte * has the value IMA_FALSE then the value of this field is undefined. 838*fcf3ce44SJohn Forte */ 839*fcf3ce44SJohn Forte IMA_UINT32 maximumValue; 840*fcf3ce44SJohn Forte 841*fcf3ce44SJohn Forte /** 842*fcf3ce44SJohn Forte * If 'settable' has the value IMA_TRUE then this field contains a value 843*fcf3ce44SJohn Forte * which can be added to or subtracted from 'currentValue' to obtain other 844*fcf3ce44SJohn Forte * possible values of the associated property. If 'settable' has the value 845*fcf3ce44SJohn Forte * IMA_FALSE then the value of this field is undefined. 846*fcf3ce44SJohn Forte */ 847*fcf3ce44SJohn Forte IMA_UINT32 incrementValue; 848*fcf3ce44SJohn Forte 849*fcf3ce44SJohn Forte } IMA_MIN_MAX_VALUE; 850*fcf3ce44SJohn Forte 851*fcf3ce44SJohn Forte typedef struct _IMA_BOOL_VALUE 852*fcf3ce44SJohn Forte { 853*fcf3ce44SJohn Forte IMA_BOOL currentValueValid; 854*fcf3ce44SJohn Forte IMA_BOOL settable; 855*fcf3ce44SJohn Forte IMA_BOOL currentValue; 856*fcf3ce44SJohn Forte IMA_BOOL defaultValue; 857*fcf3ce44SJohn Forte } IMA_BOOL_VALUE; 858*fcf3ce44SJohn Forte 859*fcf3ce44SJohn Forte /** 860*fcf3ce44SJohn Forte ******************************************************************************* 861*fcf3ce44SJohn Forte * 862*fcf3ce44SJohn Forte * Declaration of the IMA_PHBA_PROPERTIES structure 863*fcf3ce44SJohn Forte * 864*fcf3ce44SJohn Forte * This structure is returned by the IMA_GetPhbaProperties() API. 865*fcf3ce44SJohn Forte * 866*fcf3ce44SJohn Forte * Note: Both 'isInitiator' and 'isTarget' cannot be set to IMA_FALSE as this 867*fcf3ce44SJohn Forte * would mean that the PHBA was not functioning as either an initiator or 868*fcf3ce44SJohn Forte * target, which means that its not functioning at all. 869*fcf3ce44SJohn Forte * 870*fcf3ce44SJohn Forte ******************************************************************************* 871*fcf3ce44SJohn Forte */ 872*fcf3ce44SJohn Forte typedef struct _IMA_PHBA_PROPERTIES 873*fcf3ce44SJohn Forte { 874*fcf3ce44SJohn Forte /** 875*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the name of the vendor 876*fcf3ce44SJohn Forte * of a PHBA. If the first character in this field is nul then the 877*fcf3ce44SJohn Forte * vendor is unknown. 878*fcf3ce44SJohn Forte */ 879*fcf3ce44SJohn Forte IMA_WCHAR vendor[64]; 880*fcf3ce44SJohn Forte 881*fcf3ce44SJohn Forte /** 882*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the name of the model of 883*fcf3ce44SJohn Forte * a PHBA. If the first character in this field is nul then the model is 884*fcf3ce44SJohn Forte * unknown. 885*fcf3ce44SJohn Forte */ 886*fcf3ce44SJohn Forte IMA_WCHAR model[256]; 887*fcf3ce44SJohn Forte 888*fcf3ce44SJohn Forte /** 889*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains a description of a PHBA. 890*fcf3ce44SJohn Forte * This is a user friendly description of the PHBA. If the first character 891*fcf3ce44SJohn Forte * in this field is nul then there is no description. 892*fcf3ce44SJohn Forte */ 893*fcf3ce44SJohn Forte IMA_WCHAR description[256]; 894*fcf3ce44SJohn Forte 895*fcf3ce44SJohn Forte /** 896*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the serial number of a 897*fcf3ce44SJohn Forte * PHBA. If the first character in this field is nul then the serial 898*fcf3ce44SJohn Forte * number is unknown. 899*fcf3ce44SJohn Forte */ 900*fcf3ce44SJohn Forte IMA_WCHAR serialNumber[64]; 901*fcf3ce44SJohn Forte 902*fcf3ce44SJohn Forte /** 903*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the hardware version of 904*fcf3ce44SJohn Forte * a PHBA. If the first character in this field is nul then the hardware 905*fcf3ce44SJohn Forte * version is unknown. 906*fcf3ce44SJohn Forte */ 907*fcf3ce44SJohn Forte IMA_WCHAR hardwareVersion[256]; 908*fcf3ce44SJohn Forte 909*fcf3ce44SJohn Forte /** 910*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the ASIC version of a 911*fcf3ce44SJohn Forte * PHBA. If the first character in this field is nul then the ASIC 912*fcf3ce44SJohn Forte * version is unknown or is not applicable. 913*fcf3ce44SJohn Forte */ 914*fcf3ce44SJohn Forte IMA_WCHAR asicVersion[256]; 915*fcf3ce44SJohn Forte 916*fcf3ce44SJohn Forte /** 917*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the firmware version of 918*fcf3ce44SJohn Forte * a PHBA. If the first character in this field is nul then the firmware 919*fcf3ce44SJohn Forte * version is unknown or is not applicable. 920*fcf3ce44SJohn Forte */ 921*fcf3ce44SJohn Forte IMA_WCHAR firmwareVersion[256]; 922*fcf3ce44SJohn Forte 923*fcf3ce44SJohn Forte /** 924*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the option ROM version 925*fcf3ce44SJohn Forte * of a PHBA. If the first character in this field is nul then the option 926*fcf3ce44SJohn Forte * ROM version is unknown or is not applicable. 927*fcf3ce44SJohn Forte */ 928*fcf3ce44SJohn Forte IMA_WCHAR optionRomVersion[256]; 929*fcf3ce44SJohn Forte 930*fcf3ce44SJohn Forte /** 931*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the name of the driver 932*fcf3ce44SJohn Forte * controlling a PHBA. If the first character in this field is nul then 933*fcf3ce44SJohn Forte * the name of the driver is unknown. 934*fcf3ce44SJohn Forte */ 935*fcf3ce44SJohn Forte IMA_WCHAR driverName[256]; 936*fcf3ce44SJohn Forte 937*fcf3ce44SJohn Forte /** 938*fcf3ce44SJohn Forte * A nul terminated ASCII string which contains the version of the driver 939*fcf3ce44SJohn Forte * specified in 'driverName'. If the first character in this field is nul 940*fcf3ce44SJohn Forte * then the version of the driver is unknown. 941*fcf3ce44SJohn Forte * 942*fcf3ce44SJohn Forte * This field can have a known value only if @a driverName has a known 943*fcf3ce44SJohn Forte * value as well. 944*fcf3ce44SJohn Forte */ 945*fcf3ce44SJohn Forte IMA_WCHAR driverVersion[256]; 946*fcf3ce44SJohn Forte 947*fcf3ce44SJohn Forte /** 948*fcf3ce44SJohn Forte * A field containing flags which indicate what upper level protocols 949*fcf3ce44SJohn Forte * are supported by a PHBA. Examples of upper level protocols include: 950*fcf3ce44SJohn Forte * 951*fcf3ce44SJohn Forte * - TCP, represented by IMA_ULP_TCP 952*fcf3ce44SJohn Forte * - SCTP, represented by IMA_ULP_SCTP 953*fcf3ce44SJohn Forte * - UDP, represented by IMA_ULP_UDP 954*fcf3ce44SJohn Forte */ 955*fcf3ce44SJohn Forte IMA_UINT supportedUlps; 956*fcf3ce44SJohn Forte 957*fcf3ce44SJohn Forte /** 958*fcf3ce44SJohn Forte * A extended boolean which indicates if a PHBA supports executing SCSI 959*fcf3ce44SJohn Forte * commands which cause bidirectional transfers. 960*fcf3ce44SJohn Forte * 961*fcf3ce44SJohn Forte * Note: The value of this field applies to the entire stack: 962*fcf3ce44SJohn Forte * the hardware, ASIC, firmware, driver, etc. All must support SCSI 963*fcf3ce44SJohn Forte * commands which cause bidirectional transfers for this field to be 964*fcf3ce44SJohn Forte * set to IMA_TRUE. 965*fcf3ce44SJohn Forte */ 966*fcf3ce44SJohn Forte IMA_XBOOL bidirectionalTransfersSupported; 967*fcf3ce44SJohn Forte 968*fcf3ce44SJohn Forte /** 969*fcf3ce44SJohn Forte * The maximum length, in bytes, of a CDB that can be transferred by 970*fcf3ce44SJohn Forte * this PHBA. If this field has a value of zero that indicates that 971*fcf3ce44SJohn Forte * this value is unknown. 972*fcf3ce44SJohn Forte * 973*fcf3ce44SJohn Forte * Note: The value of this field applies to the entire stack: 974*fcf3ce44SJohn Forte * the hardware, ASIC, firmware, driver, etc. All must support the 975*fcf3ce44SJohn Forte * maximum CDB length returned in this field. 976*fcf3ce44SJohn Forte */ 977*fcf3ce44SJohn Forte IMA_UINT maximumCdbLength; 978*fcf3ce44SJohn Forte 979*fcf3ce44SJohn Forte /** 980*fcf3ce44SJohn Forte * An extended boolean which indicates if a PHBA can also function as 981*fcf3ce44SJohn Forte * a standard NIC concurrently with functioning as an iSCSI PHBA. 982*fcf3ce44SJohn Forte */ 983*fcf3ce44SJohn Forte IMA_XBOOL canBeNic; 984*fcf3ce44SJohn Forte 985*fcf3ce44SJohn Forte /** 986*fcf3ce44SJohn Forte * A extended boolean which indicates if a PHBA is functioning as a 987*fcf3ce44SJohn Forte * standard NIC concurrently with functioning as an iSCSI PHBA. 988*fcf3ce44SJohn Forte */ 989*fcf3ce44SJohn Forte IMA_XBOOL isNic; 990*fcf3ce44SJohn Forte 991*fcf3ce44SJohn Forte /** 992*fcf3ce44SJohn Forte * An extended boolean indicating if the PHBA is functioning as an 993*fcf3ce44SJohn Forte * initiator. 994*fcf3ce44SJohn Forte */ 995*fcf3ce44SJohn Forte IMA_XBOOL isInitiator; 996*fcf3ce44SJohn Forte 997*fcf3ce44SJohn Forte /** 998*fcf3ce44SJohn Forte * An extended boolean indicating if the PHBA is functioning as a target. 999*fcf3ce44SJohn Forte */ 1000*fcf3ce44SJohn Forte IMA_XBOOL isTarget; 1001*fcf3ce44SJohn Forte 1002*fcf3ce44SJohn Forte /** 1003*fcf3ce44SJohn Forte * An extended boolean indicating if the PHBA is using a TCP offload engine. 1004*fcf3ce44SJohn Forte * 1005*fcf3ce44SJohn Forte * Note: This value should only be set to @c IMA_TRUE if a TCP offload 1006*fcf3ce44SJohn Forte * engine is present and is being used. If it can be determined that a 1007*fcf3ce44SJohn Forte * TCP offload engine is present, but it cannot be determined if that 1008*fcf3ce44SJohn Forte * offload engine is being used then this value should be set to 1009*fcf3ce44SJohn Forte * IMA_UNKNOWN. 1010*fcf3ce44SJohn Forte */ 1011*fcf3ce44SJohn Forte IMA_XBOOL usingTcpOffloadEngine; 1012*fcf3ce44SJohn Forte 1013*fcf3ce44SJohn Forte /** 1014*fcf3ce44SJohn Forte * An extended boolean indicating if the PHBA is using a iSCSI offload 1015*fcf3ce44SJohn Forte * engine. 1016*fcf3ce44SJohn Forte * 1017*fcf3ce44SJohn Forte * Note: This value should only be set to @c IMA_TRUE if a iSCSI offload 1018*fcf3ce44SJohn Forte * engine is present and is being used. If it can be determined that an 1019*fcf3ce44SJohn Forte * iSCSI offload engine is present, but it cannot be determined if that 1020*fcf3ce44SJohn Forte * offload engine is being used then this value should be set to 1021*fcf3ce44SJohn Forte * IMA_UNKNOWN. 1022*fcf3ce44SJohn Forte */ 1023*fcf3ce44SJohn Forte IMA_XBOOL usingIscsiOffloadEngine; 1024*fcf3ce44SJohn Forte 1025*fcf3ce44SJohn Forte IMA_BYTE reserved[128]; 1026*fcf3ce44SJohn Forte 1027*fcf3ce44SJohn Forte } IMA_PHBA_PROPERTIES; 1028*fcf3ce44SJohn Forte 1029*fcf3ce44SJohn Forte /** 1030*fcf3ce44SJohn Forte ******************************************************************************* 1031*fcf3ce44SJohn Forte * 1032*fcf3ce44SJohn Forte * Declaration of the IMA_DISCOVERY_PROPERTIES structure 1033*fcf3ce44SJohn Forte * 1034*fcf3ce44SJohn Forte ******************************************************************************* 1035*fcf3ce44SJohn Forte */ 1036*fcf3ce44SJohn Forte typedef struct _IMA_DISCOVERY_PROPERTIES 1037*fcf3ce44SJohn Forte { 1038*fcf3ce44SJohn Forte IMA_BOOL iSnsDiscoverySettable; 1039*fcf3ce44SJohn Forte IMA_XBOOL iSnsDiscoveryEnabled; 1040*fcf3ce44SJohn Forte IMA_ISNS_DISCOVERY_METHOD iSnsDiscoveryMethod; 1041*fcf3ce44SJohn Forte IMA_HOST_ID iSnsHost; 1042*fcf3ce44SJohn Forte 1043*fcf3ce44SJohn Forte IMA_BOOL slpDiscoverySettable; 1044*fcf3ce44SJohn Forte IMA_XBOOL slpDiscoveryEnabled; 1045*fcf3ce44SJohn Forte 1046*fcf3ce44SJohn Forte IMA_BOOL staticDiscoverySettable; 1047*fcf3ce44SJohn Forte IMA_XBOOL staticDiscoveryEnabled; 1048*fcf3ce44SJohn Forte 1049*fcf3ce44SJohn Forte IMA_BOOL sendTargetsDiscoverySettable; 1050*fcf3ce44SJohn Forte IMA_XBOOL sendTargetsDiscoveryEnabled; 1051*fcf3ce44SJohn Forte 1052*fcf3ce44SJohn Forte IMA_BYTE reserved[128]; 1053*fcf3ce44SJohn Forte } IMA_DISCOVERY_PROPERTIES; 1054*fcf3ce44SJohn Forte 1055*fcf3ce44SJohn Forte 1056*fcf3ce44SJohn Forte typedef struct _IMA_PHBA_DOWNLOAD_PROPERTIES 1057*fcf3ce44SJohn Forte { 1058*fcf3ce44SJohn Forte IMA_BOOL isPhbaDownloadFileSupported; 1059*fcf3ce44SJohn Forte IMA_BOOL optionRomDownloadSupported; 1060*fcf3ce44SJohn Forte IMA_BOOL firmwareDownloadSupported; 1061*fcf3ce44SJohn Forte 1062*fcf3ce44SJohn Forte IMA_BYTE reserved[32]; 1063*fcf3ce44SJohn Forte } IMA_PHBA_DOWNLOAD_PROPERTIES; 1064*fcf3ce44SJohn Forte 1065*fcf3ce44SJohn Forte typedef struct _IMA_IPSEC_PROPERTIES 1066*fcf3ce44SJohn Forte { 1067*fcf3ce44SJohn Forte IMA_BOOL ipsecSupported; 1068*fcf3ce44SJohn Forte IMA_BOOL implementedInHardware; 1069*fcf3ce44SJohn Forte IMA_BOOL implementedInSoftware; 1070*fcf3ce44SJohn Forte 1071*fcf3ce44SJohn Forte IMA_BYTE reserved[32]; 1072*fcf3ce44SJohn Forte 1073*fcf3ce44SJohn Forte } IMA_IPSEC_PROPERTIES; 1074*fcf3ce44SJohn Forte 1075*fcf3ce44SJohn Forte typedef struct _IMA_LNP_PROPERTIES 1076*fcf3ce44SJohn Forte { 1077*fcf3ce44SJohn Forte IMA_MAC_ADDRESS macAddress; 1078*fcf3ce44SJohn Forte IMA_BOOL macAddressSettable; 1079*fcf3ce44SJohn Forte IMA_BYTE reserved[32]; 1080*fcf3ce44SJohn Forte 1081*fcf3ce44SJohn Forte } IMA_LNP_PROPERTIES; 1082*fcf3ce44SJohn Forte 1083*fcf3ce44SJohn Forte typedef struct _IMA_PNP_PROPERTIES 1084*fcf3ce44SJohn Forte { 1085*fcf3ce44SJohn Forte IMA_OID associatedPhbaOid; 1086*fcf3ce44SJohn Forte 1087*fcf3ce44SJohn Forte IMA_MAC_ADDRESS macAddress; 1088*fcf3ce44SJohn Forte IMA_BOOL macAddressSettable; 1089*fcf3ce44SJohn Forte 1090*fcf3ce44SJohn Forte IMA_UINT maximumTransferRate; 1091*fcf3ce44SJohn Forte IMA_UINT currentTransferRate; 1092*fcf3ce44SJohn Forte 1093*fcf3ce44SJohn Forte IMA_UINT maximumFrameSize; 1094*fcf3ce44SJohn Forte 1095*fcf3ce44SJohn Forte IMA_BYTE reserved[64]; 1096*fcf3ce44SJohn Forte } IMA_PNP_PROPERTIES; 1097*fcf3ce44SJohn Forte 1098*fcf3ce44SJohn Forte typedef struct _IMA_PNP_STATISTICS 1099*fcf3ce44SJohn Forte { 1100*fcf3ce44SJohn Forte IMA_UINT64 bytesSent; 1101*fcf3ce44SJohn Forte IMA_UINT32 pdusSent; 1102*fcf3ce44SJohn Forte IMA_UINT64 bytesReceived; 1103*fcf3ce44SJohn Forte IMA_UINT32 pdusReceived; 1104*fcf3ce44SJohn Forte 1105*fcf3ce44SJohn Forte } IMA_PNP_STATISTICS; 1106*fcf3ce44SJohn Forte 1107*fcf3ce44SJohn Forte typedef struct _IMA_TARGET_PROPERTIES 1108*fcf3ce44SJohn Forte { 1109*fcf3ce44SJohn Forte IMA_OID associatedNodeOid; 1110*fcf3ce44SJohn Forte IMA_OID associatedLhbaOid; 1111*fcf3ce44SJohn Forte 1112*fcf3ce44SJohn Forte IMA_NODE_NAME name; 1113*fcf3ce44SJohn Forte IMA_NODE_ALIAS alias; 1114*fcf3ce44SJohn Forte IMA_UINT32 discoveryMethodFlags; 1115*fcf3ce44SJohn Forte 1116*fcf3ce44SJohn Forte IMA_BOOL sendTargetsDiscoverySettable; 1117*fcf3ce44SJohn Forte IMA_BOOL sendTargetsDiscoveryEnabled; 1118*fcf3ce44SJohn Forte 1119*fcf3ce44SJohn Forte IMA_BYTE reserved[128]; 1120*fcf3ce44SJohn Forte 1121*fcf3ce44SJohn Forte } IMA_TARGET_PROPERTIES; 1122*fcf3ce44SJohn Forte 1123*fcf3ce44SJohn Forte typedef struct _IMA_CONNECTION_PROPERTIES 1124*fcf3ce44SJohn Forte { 1125*fcf3ce44SJohn Forte IMA_OID associatedSessionOid; 1126*fcf3ce44SJohn Forte IMA_UINT16 connectionId; 1127*fcf3ce44SJohn Forte IMA_DIGEST_TYPE dataDigest; 1128*fcf3ce44SJohn Forte IMA_DIGEST_TYPE headerDigest; 1129*fcf3ce44SJohn Forte IMA_BOOL ifMarker; 1130*fcf3ce44SJohn Forte IMA_UINT32 ifMarkInt; 1131*fcf3ce44SJohn Forte IMA_UINT32 maxRecvDataSegmentLength; 1132*fcf3ce44SJohn Forte IMA_UINT32 maxTransmitDataSegmentLength; 1133*fcf3ce44SJohn Forte IMA_BOOL ofMarker; 1134*fcf3ce44SJohn Forte IMA_UINT32 ofMarkInt; 1135*fcf3ce44SJohn Forte } IMA_CONNECTION_PROPERTIES; 1136*fcf3ce44SJohn Forte 1137*fcf3ce44SJohn Forte 1138*fcf3ce44SJohn Forte typedef struct _IMA_SESSION_PROPERTIES 1139*fcf3ce44SJohn Forte { 1140*fcf3ce44SJohn Forte IMA_OID associatedLhbaOid; 1141*fcf3ce44SJohn Forte IMA_AUTHMETHOD authMethod; 1142*fcf3ce44SJohn Forte IMA_BOOL dataPduInOrder; 1143*fcf3ce44SJohn Forte IMA_BOOL dataSequenceInOrder; 1144*fcf3ce44SJohn Forte IMA_UINT16 defaultTime2Retain; 1145*fcf3ce44SJohn Forte IMA_UINT16 defaultTime2Wait; 1146*fcf3ce44SJohn Forte IMA_UINT16 errorRecoveryLevel; 1147*fcf3ce44SJohn Forte IMA_UINT32 firstBurstLength; 1148*fcf3ce44SJohn Forte IMA_BOOL immediateData; 1149*fcf3ce44SJohn Forte IMA_BOOL initialR2T; 1150*fcf3ce44SJohn Forte IMA_BYTE isid[6]; 1151*fcf3ce44SJohn Forte IMA_UINT32 maxBurstLength; 1152*fcf3ce44SJohn Forte IMA_UINT16 maxConnections; 1153*fcf3ce44SJohn Forte IMA_UINT16 maxOutstandingR2T; 1154*fcf3ce44SJohn Forte IMA_UINT16 targetPortalGroupTag; 1155*fcf3ce44SJohn Forte IMA_UINT16 tsih; 1156*fcf3ce44SJohn Forte } IMA_SESSION_PROPERTIES; 1157*fcf3ce44SJohn Forte 1158*fcf3ce44SJohn Forte 1159*fcf3ce44SJohn Forte typedef struct _IMA_TARGET_ERROR_STATISTICS 1160*fcf3ce44SJohn Forte { 1161*fcf3ce44SJohn Forte IMA_BOOL loginFailedCountValid; 1162*fcf3ce44SJohn Forte IMA_UINT32 loginFailedCount; 1163*fcf3ce44SJohn Forte 1164*fcf3ce44SJohn Forte IMA_BOOL sessionFailedCountValid; 1165*fcf3ce44SJohn Forte IMA_UINT32 sessionFailedCount; 1166*fcf3ce44SJohn Forte 1167*fcf3ce44SJohn Forte IMA_BOOL headerOrDigestSessionFailedCountValid; 1168*fcf3ce44SJohn Forte IMA_UINT32 headerOrDigestSessionFailedCount; 1169*fcf3ce44SJohn Forte 1170*fcf3ce44SJohn Forte IMA_BOOL timeLimitExceededSessionFailedCountValid; 1171*fcf3ce44SJohn Forte IMA_UINT32 timeLimitExceededSessionFailedCount; 1172*fcf3ce44SJohn Forte 1173*fcf3ce44SJohn Forte IMA_BOOL formatErrorSessionFailedCountValid; 1174*fcf3ce44SJohn Forte IMA_UINT32 formatErrorSessionFailedCount; 1175*fcf3ce44SJohn Forte 1176*fcf3ce44SJohn Forte IMA_BOOL closedConnectionDueToTimeoutCountValid; 1177*fcf3ce44SJohn Forte IMA_UINT32 closedConnectionDueToTimeoutCount; 1178*fcf3ce44SJohn Forte 1179*fcf3ce44SJohn Forte IMA_BOOL lastLoginFailureTimeValid; 1180*fcf3ce44SJohn Forte IMA_DATETIME lastLoginFailureTime; 1181*fcf3ce44SJohn Forte 1182*fcf3ce44SJohn Forte IMA_BYTE reserved[64]; 1183*fcf3ce44SJohn Forte 1184*fcf3ce44SJohn Forte } IMA_TARGET_ERROR_STATISTICS; 1185*fcf3ce44SJohn Forte 1186*fcf3ce44SJohn Forte typedef struct _IMA_LU_PROPERTIES 1187*fcf3ce44SJohn Forte { 1188*fcf3ce44SJohn Forte IMA_OID associatedTargetOid; 1189*fcf3ce44SJohn Forte IMA_UINT64 targetLun; 1190*fcf3ce44SJohn Forte 1191*fcf3ce44SJohn Forte IMA_BOOL exposedToOs; 1192*fcf3ce44SJohn Forte IMA_DATETIME timeExposedToOs; 1193*fcf3ce44SJohn Forte 1194*fcf3ce44SJohn Forte IMA_BOOL osDeviceNameValid; 1195*fcf3ce44SJohn Forte IMA_WCHAR osDeviceName[64]; 1196*fcf3ce44SJohn Forte 1197*fcf3ce44SJohn Forte IMA_BOOL osParallelIdsValid; 1198*fcf3ce44SJohn Forte IMA_UINT32 osBusNumber; 1199*fcf3ce44SJohn Forte IMA_UINT32 osTargetId; 1200*fcf3ce44SJohn Forte IMA_UINT32 osLun; 1201*fcf3ce44SJohn Forte 1202*fcf3ce44SJohn Forte IMA_BYTE reserved[128]; 1203*fcf3ce44SJohn Forte 1204*fcf3ce44SJohn Forte } IMA_LU_PROPERTIES; 1205*fcf3ce44SJohn Forte 1206*fcf3ce44SJohn Forte typedef struct _IMA_STATISTICS_PROPERTIES 1207*fcf3ce44SJohn Forte { 1208*fcf3ce44SJohn Forte IMA_BOOL statisticsCollectionSettable; 1209*fcf3ce44SJohn Forte IMA_BOOL statisticsCollectionEnabled; 1210*fcf3ce44SJohn Forte 1211*fcf3ce44SJohn Forte } IMA_STATISTICS_PROPERTIES; 1212*fcf3ce44SJohn Forte 1213*fcf3ce44SJohn Forte typedef struct _IMA_DEVICE_STATISTICS 1214*fcf3ce44SJohn Forte { 1215*fcf3ce44SJohn Forte IMA_UINT64 scsiPayloadBytesSent; 1216*fcf3ce44SJohn Forte IMA_UINT64 scsiPayloadBytesReceived; 1217*fcf3ce44SJohn Forte 1218*fcf3ce44SJohn Forte IMA_UINT64 iScsiPduBytesSent; 1219*fcf3ce44SJohn Forte IMA_UINT64 iScsiPduBytesReceived; 1220*fcf3ce44SJohn Forte 1221*fcf3ce44SJohn Forte IMA_UINT64 iScsiPdusSent; 1222*fcf3ce44SJohn Forte IMA_UINT64 iScsiPdusReceived; 1223*fcf3ce44SJohn Forte 1224*fcf3ce44SJohn Forte IMA_UINT64 millisecondsSpentSending; 1225*fcf3ce44SJohn Forte IMA_UINT64 millisecondsSpentReceiving; 1226*fcf3ce44SJohn Forte 1227*fcf3ce44SJohn Forte } IMA_DEVICE_STATISTICS; 1228*fcf3ce44SJohn Forte 1229*fcf3ce44SJohn Forte typedef struct _IMA_NETWORK_PORTAL_PROPERTIES 1230*fcf3ce44SJohn Forte { 1231*fcf3ce44SJohn Forte IMA_IP_ADDRESS ipAddress; 1232*fcf3ce44SJohn Forte IMA_OID associatedLnp; 1233*fcf3ce44SJohn Forte 1234*fcf3ce44SJohn Forte IMA_BYTE reserved[32]; 1235*fcf3ce44SJohn Forte } IMA_NETWORK_PORTAL_PROPERTIES; 1236*fcf3ce44SJohn Forte 1237*fcf3ce44SJohn Forte typedef void (* IMA_OBJECT_VISIBILITY_FN)( 1238*fcf3ce44SJohn Forte IMA_BOOL becomingVisible, 1239*fcf3ce44SJohn Forte IMA_OID oid 1240*fcf3ce44SJohn Forte ); 1241*fcf3ce44SJohn Forte 1242*fcf3ce44SJohn Forte typedef void (* IMA_OBJECT_PROPERTY_FN)( 1243*fcf3ce44SJohn Forte IMA_OID oid 1244*fcf3ce44SJohn Forte ); 1245*fcf3ce44SJohn Forte 1246*fcf3ce44SJohn Forte typedef struct _IMA_CHAP_INITIATOR_AUTHPARMS 1247*fcf3ce44SJohn Forte { 1248*fcf3ce44SJohn Forte 1249*fcf3ce44SJohn Forte IMA_UINT retries; 1250*fcf3ce44SJohn Forte 1251*fcf3ce44SJohn Forte IMA_BYTE name[512]; 1252*fcf3ce44SJohn Forte IMA_UINT nameLength; 1253*fcf3ce44SJohn Forte 1254*fcf3ce44SJohn Forte IMA_UINT minValueLength; 1255*fcf3ce44SJohn Forte IMA_UINT maxValueLength; 1256*fcf3ce44SJohn Forte 1257*fcf3ce44SJohn Forte IMA_BYTE challengeSecret[256]; 1258*fcf3ce44SJohn Forte IMA_UINT challengeSecretLength; 1259*fcf3ce44SJohn Forte 1260*fcf3ce44SJohn Forte IMA_BYTE reserved[512]; 1261*fcf3ce44SJohn Forte 1262*fcf3ce44SJohn Forte } IMA_CHAP_INITIATOR_AUTHPARMS; 1263*fcf3ce44SJohn Forte 1264*fcf3ce44SJohn Forte typedef struct _IMA_SRP_INITIATOR_AUTHPARMS 1265*fcf3ce44SJohn Forte { 1266*fcf3ce44SJohn Forte 1267*fcf3ce44SJohn Forte IMA_BYTE userName[512]; 1268*fcf3ce44SJohn Forte IMA_UINT userNameLength; 1269*fcf3ce44SJohn Forte 1270*fcf3ce44SJohn Forte IMA_BYTE reserved[512]; 1271*fcf3ce44SJohn Forte 1272*fcf3ce44SJohn Forte } IMA_SRP_INITIATOR_AUTHPARMS; 1273*fcf3ce44SJohn Forte 1274*fcf3ce44SJohn Forte typedef struct _IMA_KRB5_INITIATOR_AUTHPARMS 1275*fcf3ce44SJohn Forte { 1276*fcf3ce44SJohn Forte 1277*fcf3ce44SJohn Forte IMA_BYTE clientKey[1024]; 1278*fcf3ce44SJohn Forte IMA_UINT clientKeyLength; 1279*fcf3ce44SJohn Forte 1280*fcf3ce44SJohn Forte IMA_BYTE reserved[2048]; 1281*fcf3ce44SJohn Forte 1282*fcf3ce44SJohn Forte } IMA_KRB5_INITIATOR_AUTHPARMS; 1283*fcf3ce44SJohn Forte 1284*fcf3ce44SJohn Forte typedef struct _IMA_SPKM_INITIATOR_AUTHPARMS 1285*fcf3ce44SJohn Forte { 1286*fcf3ce44SJohn Forte 1287*fcf3ce44SJohn Forte IMA_BYTE privateKey[4096]; 1288*fcf3ce44SJohn Forte IMA_UINT privateKeyLength; 1289*fcf3ce44SJohn Forte 1290*fcf3ce44SJohn Forte IMA_BYTE publicKey[4096]; 1291*fcf3ce44SJohn Forte IMA_UINT publicKeyLength; 1292*fcf3ce44SJohn Forte 1293*fcf3ce44SJohn Forte IMA_BYTE reserved[4096]; 1294*fcf3ce44SJohn Forte 1295*fcf3ce44SJohn Forte } IMA_SPKM_INITIATOR_AUTHPARMS; 1296*fcf3ce44SJohn Forte 1297*fcf3ce44SJohn Forte typedef union _IMA_INITIATOR_AUTHPARMS 1298*fcf3ce44SJohn Forte { 1299*fcf3ce44SJohn Forte 1300*fcf3ce44SJohn Forte IMA_CHAP_INITIATOR_AUTHPARMS chapParms; 1301*fcf3ce44SJohn Forte IMA_SRP_INITIATOR_AUTHPARMS srpParms; 1302*fcf3ce44SJohn Forte IMA_KRB5_INITIATOR_AUTHPARMS kerberosParms; 1303*fcf3ce44SJohn Forte IMA_SPKM_INITIATOR_AUTHPARMS spkmParms; 1304*fcf3ce44SJohn Forte 1305*fcf3ce44SJohn Forte } IMA_INITIATOR_AUTHPARMS; 1306*fcf3ce44SJohn Forte 1307*fcf3ce44SJohn Forte 1308*fcf3ce44SJohn Forte typedef struct _IMA_STATIC_DISCOVERY_TARGET 1309*fcf3ce44SJohn Forte { 1310*fcf3ce44SJohn Forte IMA_NODE_NAME targetName; 1311*fcf3ce44SJohn Forte IMA_TARGET_ADDRESS targetAddress; 1312*fcf3ce44SJohn Forte 1313*fcf3ce44SJohn Forte } IMA_STATIC_DISCOVERY_TARGET; 1314*fcf3ce44SJohn Forte 1315*fcf3ce44SJohn Forte typedef struct _IMA_DISCOVERY_ADDRESS_PROPERTIES 1316*fcf3ce44SJohn Forte { 1317*fcf3ce44SJohn Forte IMA_OID associatedNodeOid; 1318*fcf3ce44SJohn Forte IMA_OID associatedLhbaOid; 1319*fcf3ce44SJohn Forte IMA_TARGET_ADDRESS discoveryAddress; 1320*fcf3ce44SJohn Forte 1321*fcf3ce44SJohn Forte } IMA_DISCOVERY_ADDRESS_PROPERTIES; 1322*fcf3ce44SJohn Forte 1323*fcf3ce44SJohn Forte typedef struct _IMA_STATIC_TGT_PROPERTIES 1324*fcf3ce44SJohn Forte { 1325*fcf3ce44SJohn Forte IMA_OID associatedNodeOid; 1326*fcf3ce44SJohn Forte IMA_OID associatedLhbaOid; 1327*fcf3ce44SJohn Forte IMA_STATIC_DISCOVERY_TARGET staticTarget; 1328*fcf3ce44SJohn Forte 1329*fcf3ce44SJohn Forte } IMA_STATIC_DISCOVERY_TARGET_PROPERTIES; 1330*fcf3ce44SJohn Forte 1331*fcf3ce44SJohn Forte 1332*fcf3ce44SJohn Forte /** 1333*fcf3ce44SJohn Forte ******************************************************************************* 1334*fcf3ce44SJohn Forte * 1335*fcf3ce44SJohn Forte * The individual APIs of the IMA are declared below. 1336*fcf3ce44SJohn Forte * 1337*fcf3ce44SJohn Forte ******************************************************************************* 1338*fcf3ce44SJohn Forte */ 1339*fcf3ce44SJohn Forte 1340*fcf3ce44SJohn Forte /** 1341*fcf3ce44SJohn Forte ******************************************************************************* 1342*fcf3ce44SJohn Forte * 1343*fcf3ce44SJohn Forte * Gets the properties of the IMA library that is being used. 1344*fcf3ce44SJohn Forte * 1345*fcf3ce44SJohn Forte * @param pProps 1346*fcf3ce44SJohn Forte * A pointer to an IMA_LIBRARY_PROPERTIES structure allocated by 1347*fcf3ce44SJohn Forte * the caller. On successful return this structure will contain the 1348*fcf3ce44SJohn Forte * properties of the IMA library. 1349*fcf3ce44SJohn Forte * 1350*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if 1351*fcf3ce44SJohn Forte * an error occurred. 1352*fcf3ce44SJohn Forte * 1353*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1354*fcf3ce44SJohn Forte * Returned if the library properties were successfully returned. 1355*fcf3ce44SJohn Forte * 1356*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1357*fcf3ce44SJohn Forte * Returned if 'pProps' is NULL or specifies a memory area to which 1358*fcf3ce44SJohn Forte * data cannot be written. 1359*fcf3ce44SJohn Forte * 1360*fcf3ce44SJohn Forte ******************************************************************************* 1361*fcf3ce44SJohn Forte */ 1362*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetLibraryProperties( 1363*fcf3ce44SJohn Forte IMA_LIBRARY_PROPERTIES *pProps 1364*fcf3ce44SJohn Forte ); 1365*fcf3ce44SJohn Forte 1366*fcf3ce44SJohn Forte 1367*fcf3ce44SJohn Forte 1368*fcf3ce44SJohn Forte /** 1369*fcf3ce44SJohn Forte ******************************************************************************* 1370*fcf3ce44SJohn Forte * 1371*fcf3ce44SJohn Forte * Gets a list of the object IDs of all currently loaded plugins. 1372*fcf3ce44SJohn Forte * 1373*fcf3ce44SJohn Forte * @param ppList 1374*fcf3ce44SJohn Forte * A pointer to a pointer to an IMA_OID_LIST. On successful 1375*fcf3ce44SJohn Forte * return this will contain a pointer to an @ref IMA_OID_LIST 1376*fcf3ce44SJohn Forte * which contains the object IDs of all of the plugins currently 1377*fcf3ce44SJohn Forte * loaded by the library. 1378*fcf3ce44SJohn Forte * 1379*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or 1380*fcf3ce44SJohn Forte * if an error occurred. 1381*fcf3ce44SJohn Forte * 1382*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1383*fcf3ce44SJohn Forte * Returned if the plugin ID list was successfully returned. 1384*fcf3ce44SJohn Forte * 1385*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1386*fcf3ce44SJohn Forte * Returned if 'ppList' is NULL or specifies a memory area to 1387*fcf3ce44SJohn Forte * which data cannot be written. 1388*fcf3ce44SJohn Forte * 1389*fcf3ce44SJohn Forte ******************************************************************************* 1390*fcf3ce44SJohn Forte */ 1391*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPluginOidList( 1392*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 1393*fcf3ce44SJohn Forte ); 1394*fcf3ce44SJohn Forte 1395*fcf3ce44SJohn Forte 1396*fcf3ce44SJohn Forte 1397*fcf3ce44SJohn Forte /** 1398*fcf3ce44SJohn Forte ******************************************************************************* 1399*fcf3ce44SJohn Forte * 1400*fcf3ce44SJohn Forte * Gets the properties of the specified vendor plugin. 1401*fcf3ce44SJohn Forte * 1402*fcf3ce44SJohn Forte * @param pluginOid 1403*fcf3ce44SJohn Forte * The ID of the plugin whose properties are being retrieved. 1404*fcf3ce44SJohn Forte * 1405*fcf3ce44SJohn Forte * @param pProps 1406*fcf3ce44SJohn Forte * A pointer to an @ref IMA_PLUGIN_PROPERTIES structure allocated by 1407*fcf3ce44SJohn Forte * the caller. On successful return this will contain the properties 1408*fcf3ce44SJohn Forte * of the plugin specified by pluginOid. 1409*fcf3ce44SJohn Forte * 1410*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if an 1411*fcf3ce44SJohn Forte * error occurred. 1412*fcf3ce44SJohn Forte * 1413*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1414*fcf3ce44SJohn Forte * Returned if the plugin properties were successfully returned. 1415*fcf3ce44SJohn Forte * 1416*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1417*fcf3ce44SJohn Forte * Returned if 'pluginOid' does not specify any valid object type. 1418*fcf3ce44SJohn Forte * 1419*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1420*fcf3ce44SJohn Forte * Returned if 'pluginOid' does not specify a plugin object. 1421*fcf3ce44SJohn Forte * 1422*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1423*fcf3ce44SJohn Forte * Returned if 'pluginOid' refers to a plugin, but not one that 1424*fcf3ce44SJohn Forte * is currently loaded. 1425*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1426*fcf3ce44SJohn Forte * Returned if 'pProps' is NULL or specifies a memory area to 1427*fcf3ce44SJohn Forte * which data cannot be written. 1428*fcf3ce44SJohn Forte * 1429*fcf3ce44SJohn Forte ******************************************************************************* 1430*fcf3ce44SJohn Forte */ 1431*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPluginProperties( 1432*fcf3ce44SJohn Forte IMA_OID pluginOid, 1433*fcf3ce44SJohn Forte IMA_PLUGIN_PROPERTIES *pProps 1434*fcf3ce44SJohn Forte ); 1435*fcf3ce44SJohn Forte 1436*fcf3ce44SJohn Forte 1437*fcf3ce44SJohn Forte 1438*fcf3ce44SJohn Forte /** 1439*fcf3ce44SJohn Forte ******************************************************************************* 1440*fcf3ce44SJohn Forte * 1441*fcf3ce44SJohn Forte * Gets the object ID for the plugin associated with the specified object ID. 1442*fcf3ce44SJohn Forte * 1443*fcf3ce44SJohn Forte * @param oid 1444*fcf3ce44SJohn Forte * The object ID of an object that has been received from a previous 1445*fcf3ce44SJohn Forte * library call. 1446*fcf3ce44SJohn Forte * 1447*fcf3ce44SJohn Forte * @param pPluginOid 1448*fcf3ce44SJohn Forte * A pointer to an IMA_OID structure allocated by the caller. On 1449*fcf3ce44SJohn Forte * successful return this will contain the object ID of the plugin 1450*fcf3ce44SJohn Forte * associated with the object specified by @a objectId. This 1451*fcf3ce44SJohn Forte * can then be used to work with the plugin, e.g., to get the 1452*fcf3ce44SJohn Forte * properties of the plugin or the send the plugin an IOCtl. 1453*fcf3ce44SJohn Forte * 1454*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if 1455*fcf3ce44SJohn Forte * an error occurred. 1456*fcf3ce44SJohn Forte * 1457*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1458*fcf3ce44SJohn Forte * Returned if the associated plugin ID was successfully returned. 1459*fcf3ce44SJohn Forte * 1460*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1461*fcf3ce44SJohn Forte * Returned if 'pPluginOid' is NULL or specifies a memory area to 1462*fcf3ce44SJohn Forte * which data cannot be written. 1463*fcf3ce44SJohn Forte * 1464*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1465*fcf3ce44SJohn Forte * Returned if 'oid' specifies an object not owned by a plugin, but 1466*fcf3ce44SJohn Forte * instead one that is owned by the library. 1467*fcf3ce44SJohn Forte * 1468*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1469*fcf3ce44SJohn Forte * Returned if 'oid' specifies an object with an invalid type. 1470*fcf3ce44SJohn Forte * 1471*fcf3ce44SJohn Forte ******************************************************************************* 1472*fcf3ce44SJohn Forte */ 1473*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetAssociatedPluginOid( 1474*fcf3ce44SJohn Forte IMA_OID oid, 1475*fcf3ce44SJohn Forte IMA_OID *pPluginOid 1476*fcf3ce44SJohn Forte ); 1477*fcf3ce44SJohn Forte 1478*fcf3ce44SJohn Forte 1479*fcf3ce44SJohn Forte 1480*fcf3ce44SJohn Forte /** 1481*fcf3ce44SJohn Forte ******************************************************************************* 1482*fcf3ce44SJohn Forte * 1483*fcf3ce44SJohn Forte * Gets the object ID of the shared node. 1484*fcf3ce44SJohn Forte * 1485*fcf3ce44SJohn Forte * @param pSharedNodeOid 1486*fcf3ce44SJohn Forte * A pointer to an IMA_OID structure allocated by the caller. On 1487*fcf3ce44SJohn Forte * successful return it will contain the object ID of the 1488*fcf3ce44SJohn Forte * shared node of the currently executing system is placed. 1489*fcf3ce44SJohn Forte * 1490*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or 1491*fcf3ce44SJohn Forte * if an error occurred. 1492*fcf3ce44SJohn Forte * 1493*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1494*fcf3ce44SJohn Forte * Returned if the shared node ID has been successfully retrieved. 1495*fcf3ce44SJohn Forte * 1496*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1497*fcf3ce44SJohn Forte * Returned if 'pSharedNodeOid' is NULL or specifies a memory area 1498*fcf3ce44SJohn Forte * to which data cannot be written. 1499*fcf3ce44SJohn Forte * 1500*fcf3ce44SJohn Forte ******************************************************************************* 1501*fcf3ce44SJohn Forte */ 1502*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetSharedNodeOid( 1503*fcf3ce44SJohn Forte IMA_OID *pSharedNodeOid 1504*fcf3ce44SJohn Forte ); 1505*fcf3ce44SJohn Forte 1506*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetObjectType( 1507*fcf3ce44SJohn Forte IMA_OID oid, 1508*fcf3ce44SJohn Forte IMA_OBJECT_TYPE *pObjectType 1509*fcf3ce44SJohn Forte ); 1510*fcf3ce44SJohn Forte 1511*fcf3ce44SJohn Forte 1512*fcf3ce44SJohn Forte /** 1513*fcf3ce44SJohn Forte ******************************************************************************* 1514*fcf3ce44SJohn Forte * 1515*fcf3ce44SJohn Forte * Gets the properties of the specified iSCSI node. 1516*fcf3ce44SJohn Forte * 1517*fcf3ce44SJohn Forte * @param nodeOid 1518*fcf3ce44SJohn Forte * The ID of the node to get the properties of. 1519*fcf3ce44SJohn Forte * 1520*fcf3ce44SJohn Forte * @param pProps 1521*fcf3ce44SJohn Forte * A pointer to an @ref IMA_NODE_PROPERTIES structure which on 1522*fcf3ce44SJohn Forte * successful return will contain the properties of the specified node. 1523*fcf3ce44SJohn Forte * 1524*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if 1525*fcf3ce44SJohn Forte * an error occurred. 1526*fcf3ce44SJohn Forte * 1527*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1528*fcf3ce44SJohn Forte * Returned if the node properties have been successfully retrieved. 1529*fcf3ce44SJohn Forte * 1530*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1531*fcf3ce44SJohn Forte * Returned if 'pProps' is NULL or specifies a memory area to which 1532*fcf3ce44SJohn Forte * data cannot be written. 1533*fcf3ce44SJohn Forte * 1534*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1535*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify any valid object type. 1536*fcf3ce44SJohn Forte * 1537*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1538*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify a node object. 1539*fcf3ce44SJohn Forte * 1540*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1541*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify a node which is currently 1542*fcf3ce44SJohn Forte * known to the system. 1543*fcf3ce44SJohn Forte * 1544*fcf3ce44SJohn Forte ******************************************************************************* 1545*fcf3ce44SJohn Forte */ 1546*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetNodeProperties( 1547*fcf3ce44SJohn Forte IMA_OID nodeOid, 1548*fcf3ce44SJohn Forte IMA_NODE_PROPERTIES *pProps 1549*fcf3ce44SJohn Forte ); 1550*fcf3ce44SJohn Forte 1551*fcf3ce44SJohn Forte 1552*fcf3ce44SJohn Forte 1553*fcf3ce44SJohn Forte /** 1554*fcf3ce44SJohn Forte ******************************************************************************* 1555*fcf3ce44SJohn Forte * 1556*fcf3ce44SJohn Forte * Sets the name of the specified node. 1557*fcf3ce44SJohn Forte * 1558*fcf3ce44SJohn Forte * @param nodeOid 1559*fcf3ce44SJohn Forte * The object ID of the node whose name is being set. 1560*fcf3ce44SJohn Forte * 1561*fcf3ce44SJohn Forte * @param newName 1562*fcf3ce44SJohn Forte * The new name of the node. 1563*fcf3ce44SJohn Forte * 1564*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or 1565*fcf3ce44SJohn Forte * if an error occurred. 1566*fcf3ce44SJohn Forte * 1567*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1568*fcf3ce44SJohn Forte * Returned if the node name was successfully changed. 1569*fcf3ce44SJohn Forte * 1570*fcf3ce44SJohn Forte * @retval IMA_STATUS_REBOOT_NECESSARY 1571*fcf3ce44SJohn Forte * Returned if a reboot is necessary before the setting of the 1572*fcf3ce44SJohn Forte * name actually takes affect. 1573*fcf3ce44SJohn Forte * 1574*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1575*fcf3ce44SJohn Forte * Returned if 'newName' is NULL, or specifies a memory area 1576*fcf3ce44SJohn Forte * to which data cannot be written, or has a length of 0. 1577*fcf3ce44SJohn Forte * 1578*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1579*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify any valid object type. 1580*fcf3ce44SJohn Forte * 1581*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1582*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify a node object. 1583*fcf3ce44SJohn Forte * 1584*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1585*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify a node which is 1586*fcf3ce44SJohn Forte * currently known to the system. 1587*fcf3ce44SJohn Forte * 1588*fcf3ce44SJohn Forte * @retval IMA_ERROR_NAME_TOO_LONG 1589*fcf3ce44SJohn Forte * Returned if 'newName' contains too many characters. 1590*fcf3ce44SJohn Forte * 1591*fcf3ce44SJohn Forte ******************************************************************************* 1592*fcf3ce44SJohn Forte */ 1593*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetNodeName( 1594*fcf3ce44SJohn Forte IMA_OID nodeOid, 1595*fcf3ce44SJohn Forte const IMA_NODE_NAME newName 1596*fcf3ce44SJohn Forte ); 1597*fcf3ce44SJohn Forte 1598*fcf3ce44SJohn Forte 1599*fcf3ce44SJohn Forte 1600*fcf3ce44SJohn Forte /** 1601*fcf3ce44SJohn Forte ******************************************************************************* 1602*fcf3ce44SJohn Forte * 1603*fcf3ce44SJohn Forte * Generates a unique node name for the currently running system. 1604*fcf3ce44SJohn Forte * 1605*fcf3ce44SJohn Forte * @param generatedName 1606*fcf3ce44SJohn Forte * On successful return contains the generated node name. 1607*fcf3ce44SJohn Forte * 1608*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if an 1609*fcf3ce44SJohn Forte * error occurred. 1610*fcf3ce44SJohn Forte * 1611*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1612*fcf3ce44SJohn Forte * Returned if 'generatedname is NULL or 1613*fcf3ce44SJohn Forte * specifies a memory area to which data cannot be written. 1614*fcf3ce44SJohn Forte * 1615*fcf3ce44SJohn Forte ******************************************************************************* 1616*fcf3ce44SJohn Forte */ 1617*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GenerateNodeName( 1618*fcf3ce44SJohn Forte IMA_NODE_NAME generatedName 1619*fcf3ce44SJohn Forte ); 1620*fcf3ce44SJohn Forte 1621*fcf3ce44SJohn Forte 1622*fcf3ce44SJohn Forte 1623*fcf3ce44SJohn Forte /** 1624*fcf3ce44SJohn Forte ******************************************************************************* 1625*fcf3ce44SJohn Forte * 1626*fcf3ce44SJohn Forte * Sets the alias of the specified node. 1627*fcf3ce44SJohn Forte * 1628*fcf3ce44SJohn Forte * @param nodeOid 1629*fcf3ce44SJohn Forte * The object ID of the node whose alias is being set. 1630*fcf3ce44SJohn Forte * 1631*fcf3ce44SJohn Forte * @param newAlias 1632*fcf3ce44SJohn Forte * A pointer to a Unicode string which contains the new node alias. 1633*fcf3ce44SJohn Forte * If this parameter is NULL then the current alias is deleted, in which 1634*fcf3ce44SJohn Forte * case the specified node no longer has an alias. 1635*fcf3ce44SJohn Forte * 1636*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or 1637*fcf3ce44SJohn Forte * if an error occurred. 1638*fcf3ce44SJohn Forte * 1639*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1640*fcf3ce44SJohn Forte * Returned if the node's alias has been successfully set. 1641*fcf3ce44SJohn Forte * 1642*fcf3ce44SJohn Forte * @retval IMA_STATUS_REBOOT_NECESSARY 1643*fcf3ce44SJohn Forte * A reboot is necessary before the setting of the alias actually 1644*fcf3ce44SJohn Forte * takes effect. 1645*fcf3ce44SJohn Forte * 1646*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1647*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify any valid object type. 1648*fcf3ce44SJohn Forte * 1649*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1650*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify a node object. 1651*fcf3ce44SJohn Forte * 1652*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1653*fcf3ce44SJohn Forte * Returned if 'nodeOid' does not specify a node which is currently 1654*fcf3ce44SJohn Forte * known to the system. 1655*fcf3ce44SJohn Forte * 1656*fcf3ce44SJohn Forte * @retval IMA_ERROR_NAME_TOO_LONG 1657*fcf3ce44SJohn Forte * Returned if 'newAlias' contains too many characters. 1658*fcf3ce44SJohn Forte * 1659*fcf3ce44SJohn Forte ******************************************************************************* 1660*fcf3ce44SJohn Forte */ 1661*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetNodeAlias( 1662*fcf3ce44SJohn Forte IMA_OID nodeOid, 1663*fcf3ce44SJohn Forte const IMA_NODE_ALIAS newAlias 1664*fcf3ce44SJohn Forte ); 1665*fcf3ce44SJohn Forte 1666*fcf3ce44SJohn Forte 1667*fcf3ce44SJohn Forte 1668*fcf3ce44SJohn Forte /** 1669*fcf3ce44SJohn Forte ******************************************************************************* 1670*fcf3ce44SJohn Forte * 1671*fcf3ce44SJohn Forte * Gets a list of the object IDs of all the logical HBAs in the system. 1672*fcf3ce44SJohn Forte * 1673*fcf3ce44SJohn Forte * @param ppList 1674*fcf3ce44SJohn Forte * A pointer to a pointer to an @ref IMA_OID_LIST structure. On 1675*fcf3ce44SJohn Forte * successful return this will contain a pointer to an 1676*fcf3ce44SJohn Forte * IMA_OID_LIST which contains the object IDs of all of the 1677*fcf3ce44SJohn Forte * LHBAs currently in the system. 1678*fcf3ce44SJohn Forte * 1679*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if 1680*fcf3ce44SJohn Forte * an error occurred. 1681*fcf3ce44SJohn Forte * 1682*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1683*fcf3ce44SJohn Forte * Returned if the LHBA ID list has been successfully returned. 1684*fcf3ce44SJohn Forte * 1685*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1686*fcf3ce44SJohn Forte * Returned if 'ppList' is NULL or specifies a memory area to which 1687*fcf3ce44SJohn Forte * data cannot be written. 1688*fcf3ce44SJohn Forte * 1689*fcf3ce44SJohn Forte ******************************************************************************* 1690*fcf3ce44SJohn Forte */ 1691*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetLhbaOidList( 1692*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 1693*fcf3ce44SJohn Forte ); 1694*fcf3ce44SJohn Forte 1695*fcf3ce44SJohn Forte 1696*fcf3ce44SJohn Forte 1697*fcf3ce44SJohn Forte /** 1698*fcf3ce44SJohn Forte ******************************************************************************* 1699*fcf3ce44SJohn Forte * 1700*fcf3ce44SJohn Forte * Gets the properties of the specified logical HBA. 1701*fcf3ce44SJohn Forte * 1702*fcf3ce44SJohn Forte * @param lhbaOid 1703*fcf3ce44SJohn Forte * The object ID of the LHBA whose properties are being retrieved. 1704*fcf3ce44SJohn Forte * 1705*fcf3ce44SJohn Forte * @param pProps 1706*fcf3ce44SJohn Forte * A pointer to an IMA_LHBA_PROPERTIES structure. On successful 1707*fcf3ce44SJohn Forte * return this will contain the properties of the LHBA specified by 1708*fcf3ce44SJohn Forte * 'lhbaOid'. 1709*fcf3ce44SJohn Forte * 1710*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if 1711*fcf3ce44SJohn Forte * an error occurred. 1712*fcf3ce44SJohn Forte * 1713*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1714*fcf3ce44SJohn Forte * Returned if the properties of the specified LHBA have been 1715*fcf3ce44SJohn Forte * successfully retrieved. 1716*fcf3ce44SJohn Forte * 1717*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1718*fcf3ce44SJohn Forte * Returned if 'pProps' is NULL or specifies a memory area to which 1719*fcf3ce44SJohn Forte * data cannot be written. 1720*fcf3ce44SJohn Forte * 1721*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1722*fcf3ce44SJohn Forte * Returned if 'lhbaOid' does not specify any valid object type. 1723*fcf3ce44SJohn Forte * 1724*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1725*fcf3ce44SJohn Forte * Returned if 'lhbaOid' does not specify a LHBA. 1726*fcf3ce44SJohn Forte * 1727*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1728*fcf3ce44SJohn Forte * Returned if 'lhbaOid' does not specify a LHBA which is currently 1729*fcf3ce44SJohn Forte * known to the system. 1730*fcf3ce44SJohn Forte * 1731*fcf3ce44SJohn Forte ******************************************************************************* 1732*fcf3ce44SJohn Forte */ 1733*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetLhbaProperties( 1734*fcf3ce44SJohn Forte IMA_OID lhbaOid, 1735*fcf3ce44SJohn Forte IMA_LHBA_PROPERTIES *pProps 1736*fcf3ce44SJohn Forte ); 1737*fcf3ce44SJohn Forte 1738*fcf3ce44SJohn Forte 1739*fcf3ce44SJohn Forte 1740*fcf3ce44SJohn Forte /** 1741*fcf3ce44SJohn Forte ******************************************************************************* 1742*fcf3ce44SJohn Forte * 1743*fcf3ce44SJohn Forte * Gets a list of the object IDs of all the physical HBAs in the system. 1744*fcf3ce44SJohn Forte * 1745*fcf3ce44SJohn Forte * @param ppList 1746*fcf3ce44SJohn Forte * A pointer to a pointer to an IMA_OID_LIST structure. On successful 1747*fcf3ce44SJohn Forte * return this will contain a pointer to an IMA_OID_LIST which 1748*fcf3ce44SJohn Forte * contains the object IDs of all of the PHBAs currently in the system. 1749*fcf3ce44SJohn Forte * 1750*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if 1751*fcf3ce44SJohn Forte * an error occurred. 1752*fcf3ce44SJohn Forte * 1753*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1754*fcf3ce44SJohn Forte * Returned if the PHBA OID list has been successfully returned. 1755*fcf3ce44SJohn Forte * 1756*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1757*fcf3ce44SJohn Forte * Returned if 'ppList' is NULL or specifies a memory area to which 1758*fcf3ce44SJohn Forte * data cannot be written. 1759*fcf3ce44SJohn Forte * 1760*fcf3ce44SJohn Forte ******************************************************************************* 1761*fcf3ce44SJohn Forte */ 1762*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPhbaOidList( 1763*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 1764*fcf3ce44SJohn Forte ); 1765*fcf3ce44SJohn Forte 1766*fcf3ce44SJohn Forte 1767*fcf3ce44SJohn Forte 1768*fcf3ce44SJohn Forte /** 1769*fcf3ce44SJohn Forte ******************************************************************************* 1770*fcf3ce44SJohn Forte * 1771*fcf3ce44SJohn Forte * Gets the general properties of a physical HBA. 1772*fcf3ce44SJohn Forte * 1773*fcf3ce44SJohn Forte * @param phbaOid 1774*fcf3ce44SJohn Forte * The object ID of the PHBA whose properties are being queried. 1775*fcf3ce44SJohn Forte * 1776*fcf3ce44SJohn Forte * @param pProps 1777*fcf3ce44SJohn Forte * A pointer to an @ref IMA_PHBA_PROPERTIES structure. On successful 1778*fcf3ce44SJohn Forte * return this will contain the properties of the PHBA specified by 1779*fcf3ce44SJohn Forte * 'phbaOid'. 1780*fcf3ce44SJohn Forte # 1781*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or 1782*fcf3ce44SJohn Forte * if an error occurred. 1783*fcf3ce44SJohn Forte * 1784*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1785*fcf3ce44SJohn Forte * Returned if the properties of the specified PHBA have been 1786*fcf3ce44SJohn Forte * successfully retrieved. 1787*fcf3ce44SJohn Forte * 1788*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1789*fcf3ce44SJohn Forte * Returned if 'pProps' is NULL or specifies a memory area to which 1790*fcf3ce44SJohn Forte * data cannot be written. 1791*fcf3ce44SJohn Forte * 1792*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1793*fcf3ce44SJohn Forte * Returned if 'phbaOid' does not specify any valid object type. 1794*fcf3ce44SJohn Forte * 1795*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1796*fcf3ce44SJohn Forte * Returned if 'phbaOid' does not specify a PHBA. 1797*fcf3ce44SJohn Forte * 1798*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1799*fcf3ce44SJohn Forte * Returned if 'phbaOid' does not specify a PHBA which is currently 1800*fcf3ce44SJohn Forte * known to the system. 1801*fcf3ce44SJohn Forte * 1802*fcf3ce44SJohn Forte ******************************************************************************* 1803*fcf3ce44SJohn Forte */ 1804*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPhbaProperties( 1805*fcf3ce44SJohn Forte IMA_OID phbaOid, 1806*fcf3ce44SJohn Forte IMA_PHBA_PROPERTIES *pProps 1807*fcf3ce44SJohn Forte ); 1808*fcf3ce44SJohn Forte 1809*fcf3ce44SJohn Forte /** 1810*fcf3ce44SJohn Forte ******************************************************************************* 1811*fcf3ce44SJohn Forte * 1812*fcf3ce44SJohn Forte * Frees a previously allocated IMA_OID_LIST structure. 1813*fcf3ce44SJohn Forte * 1814*fcf3ce44SJohn Forte * @param pMemory A pointer to an IMA_OID_LIST structure allocated by the 1815*fcf3ce44SJohn Forte * library. On successful return the memory allocated by the 1816*fcf3ce44SJohn Forte * list is freed. 1817*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if an 1818*fcf3ce44SJohn Forte * error occurred. 1819*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1820*fcf3ce44SJohn Forte * Returned if the specified object ID list was successfully 1821*fcf3ce44SJohn Forte * freed. 1822*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1823*fcf3ce44SJohn Forte * Returned if pMemory is NULL or specifies a memory area from which 1824*fcf3ce44SJohn Forte * data cannot be read. 1825*fcf3ce44SJohn Forte * 1826*fcf3ce44SJohn Forte ******************************************************************************* 1827*fcf3ce44SJohn Forte */ 1828*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_FreeMemory( 1829*fcf3ce44SJohn Forte void *pMemory 1830*fcf3ce44SJohn Forte ); 1831*fcf3ce44SJohn Forte 1832*fcf3ce44SJohn Forte 1833*fcf3ce44SJohn Forte 1834*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetNonSharedNodeOidList( 1835*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 1836*fcf3ce44SJohn Forte ); 1837*fcf3ce44SJohn Forte 1838*fcf3ce44SJohn Forte 1839*fcf3ce44SJohn Forte 1840*fcf3ce44SJohn Forte 1841*fcf3ce44SJohn Forte /** 1842*fcf3ce44SJohn Forte ******************************************************************************* 1843*fcf3ce44SJohn Forte * 1844*fcf3ce44SJohn Forte * Gets the first burst length properties of the specified logical HBA. 1845*fcf3ce44SJohn Forte * 1846*fcf3ce44SJohn Forte * @param oid 1847*fcf3ce44SJohn Forte * The object ID of the logical HBA to get the first burst length 1848*fcf3ce44SJohn Forte * properties of. 1849*fcf3ce44SJohn Forte * 1850*fcf3ce44SJohn Forte * @param pProps 1851*fcf3ce44SJohn Forte * A pointer to a min/max values structure. 1852*fcf3ce44SJohn Forte * 1853*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if an 1854*fcf3ce44SJohn Forte * error occurred. 1855*fcf3ce44SJohn Forte * 1856*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1857*fcf3ce44SJohn Forte * Returned if the first burst length properties have been 1858*fcf3ce44SJohn Forte * successfully retrieved. 1859*fcf3ce44SJohn Forte * 1860*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1861*fcf3ce44SJohn Forte * Returned if pProps is NULL or specifies a memory area to which 1862*fcf3ce44SJohn Forte * data cannot be written. 1863*fcf3ce44SJohn Forte * 1864*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1865*fcf3ce44SJohn Forte * Returned if 'oid' does not specify any valid object type. 1866*fcf3ce44SJohn Forte * 1867*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1868*fcf3ce44SJohn Forte * Returned if 'oid' does not specify a LHBA. 1869*fcf3ce44SJohn Forte * 1870*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1871*fcf3ce44SJohn Forte * Returned if 'oid' does not specify a LHBA which is currently 1872*fcf3ce44SJohn Forte * known to the system. 1873*fcf3ce44SJohn Forte * 1874*fcf3ce44SJohn Forte ******************************************************************************* 1875*fcf3ce44SJohn Forte */ 1876*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetFirstBurstLengthProperties( 1877*fcf3ce44SJohn Forte IMA_OID oid, 1878*fcf3ce44SJohn Forte IMA_MIN_MAX_VALUE *pProps 1879*fcf3ce44SJohn Forte ); 1880*fcf3ce44SJohn Forte 1881*fcf3ce44SJohn Forte 1882*fcf3ce44SJohn Forte /** 1883*fcf3ce44SJohn Forte ******************************************************************************* 1884*fcf3ce44SJohn Forte * 1885*fcf3ce44SJohn Forte * Gets the max burst length properties of the specified logical HBA. 1886*fcf3ce44SJohn Forte * 1887*fcf3ce44SJohn Forte * @param oid 1888*fcf3ce44SJohn Forte * The object ID of the logical HBA to get the max burst length 1889*fcf3ce44SJohn Forte * properties of. 1890*fcf3ce44SJohn Forte * 1891*fcf3ce44SJohn Forte * @param pProps 1892*fcf3ce44SJohn Forte * A pointer to an IMA_MIN_MAX_VALUE structure allocated by the 1893*fcf3ce44SJohn Forte * caller. On successful return this structure will contain the max 1894*fcf3ce44SJohn Forte * burst length properties of this LHBA. 1895*fcf3ce44SJohn Forte * 1896*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if 1897*fcf3ce44SJohn Forte * an error occurred. 1898*fcf3ce44SJohn Forte * 1899*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1900*fcf3ce44SJohn Forte * Returned if the max burst length properties have been successfully 1901*fcf3ce44SJohn Forte * retrieved. 1902*fcf3ce44SJohn Forte * 1903*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1904*fcf3ce44SJohn Forte * Returned if pProps is NULL or specifies a memory area to which 1905*fcf3ce44SJohn Forte * data cannot be written. 1906*fcf3ce44SJohn Forte * 1907*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1908*fcf3ce44SJohn Forte * Returned if 'oid' does not specify any valid object type. 1909*fcf3ce44SJohn Forte * 1910*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1911*fcf3ce44SJohn Forte * Returned if 'oid' does not specify a LHBA. 1912*fcf3ce44SJohn Forte * 1913*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1914*fcf3ce44SJohn Forte * Returned if 'oid' does not specify a LHBA which is currently 1915*fcf3ce44SJohn Forte * known to the system. 1916*fcf3ce44SJohn Forte * 1917*fcf3ce44SJohn Forte ******************************************************************************* 1918*fcf3ce44SJohn Forte */ 1919*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetMaxBurstLengthProperties( 1920*fcf3ce44SJohn Forte IMA_OID Oid, 1921*fcf3ce44SJohn Forte IMA_MIN_MAX_VALUE *pProps 1922*fcf3ce44SJohn Forte ); 1923*fcf3ce44SJohn Forte 1924*fcf3ce44SJohn Forte /** 1925*fcf3ce44SJohn Forte ******************************************************************************* 1926*fcf3ce44SJohn Forte * 1927*fcf3ce44SJohn Forte * Gets the maximum receive data segment length properties of the specified 1928*fcf3ce44SJohn Forte * logical HBA. 1929*fcf3ce44SJohn Forte * 1930*fcf3ce44SJohn Forte * @param oid 1931*fcf3ce44SJohn Forte * The object ID of the logical HBA to get the max receive data 1932*fcf3ce44SJohn Forte * segment length properties of. 1933*fcf3ce44SJohn Forte * 1934*fcf3ce44SJohn Forte * @param pProps 1935*fcf3ce44SJohn Forte * A pointer to an @ref IMA_MIN_MAX_VALUE structure allocated by the 1936*fcf3ce44SJohn Forte * caller. On successful return this structure will contain the max 1937*fcf3ce44SJohn Forte * receive data segment length properties of this LHBA. 1938*fcf3ce44SJohn Forte * 1939*fcf3ce44SJohn Forte * @return An IMA_STATUS indicating if the operation was successful or if 1940*fcf3ce44SJohn Forte * an error occurred. 1941*fcf3ce44SJohn Forte * 1942*fcf3ce44SJohn Forte * @retval IMA_SUCCESS 1943*fcf3ce44SJohn Forte * Returned if the max receive data segment length properties 1944*fcf3ce44SJohn Forte * have been successfully retrieved. 1945*fcf3ce44SJohn Forte * 1946*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_PARAMETER 1947*fcf3ce44SJohn Forte * Returned if 'pProps' is NULL or specifies a memory area to which 1948*fcf3ce44SJohn Forte * data cannot be written. 1949*fcf3ce44SJohn Forte * 1950*fcf3ce44SJohn Forte * @retval IMA_ERROR_INVALID_OBJECT_TYPE 1951*fcf3ce44SJohn Forte * Returned if 'oid' does not specify any valid object type. 1952*fcf3ce44SJohn Forte * 1953*fcf3ce44SJohn Forte * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 1954*fcf3ce44SJohn Forte * Returned if 'oid' does not specify a LHBA. 1955*fcf3ce44SJohn Forte * 1956*fcf3ce44SJohn Forte * @retval IMA_ERROR_OBJECT_NOT_FOUND 1957*fcf3ce44SJohn Forte * Returned if 'oid' does not specify a LHBA which is currently 1958*fcf3ce44SJohn Forte * known to the system. 1959*fcf3ce44SJohn Forte * 1960*fcf3ce44SJohn Forte ******************************************************************************* 1961*fcf3ce44SJohn Forte */ 1962*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetMaxRecvDataSegmentLengthProperties( 1963*fcf3ce44SJohn Forte IMA_OID oid, 1964*fcf3ce44SJohn Forte IMA_MIN_MAX_VALUE *pProps 1965*fcf3ce44SJohn Forte ); 1966*fcf3ce44SJohn Forte 1967*fcf3ce44SJohn Forte 1968*fcf3ce44SJohn Forte /*---------------------------------------------*/ 1969*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_PluginIOCtl( 1970*fcf3ce44SJohn Forte IMA_OID pluginOid, 1971*fcf3ce44SJohn Forte IMA_UINT command, 1972*fcf3ce44SJohn Forte const void *pInputBuffer, 1973*fcf3ce44SJohn Forte IMA_UINT inputBufferLength, 1974*fcf3ce44SJohn Forte void *pOutputBuffer, 1975*fcf3ce44SJohn Forte IMA_UINT *pOutputBufferLength 1976*fcf3ce44SJohn Forte ); 1977*fcf3ce44SJohn Forte 1978*fcf3ce44SJohn Forte 1979*fcf3ce44SJohn Forte 1980*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetNetworkPortalOidList( 1981*fcf3ce44SJohn Forte IMA_OID oid, 1982*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 1983*fcf3ce44SJohn Forte ); 1984*fcf3ce44SJohn Forte 1985*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetFirstBurstLength( 1986*fcf3ce44SJohn Forte IMA_OID oid, 1987*fcf3ce44SJohn Forte IMA_UINT firstBurstLength 1988*fcf3ce44SJohn Forte ); 1989*fcf3ce44SJohn Forte 1990*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetMaxBurstLength( 1991*fcf3ce44SJohn Forte IMA_OID oid, 1992*fcf3ce44SJohn Forte IMA_UINT maxBurstLength 1993*fcf3ce44SJohn Forte ); 1994*fcf3ce44SJohn Forte 1995*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetMaxRecvDataSegmentLength( 1996*fcf3ce44SJohn Forte IMA_OID oid, 1997*fcf3ce44SJohn Forte IMA_UINT maxRecvDataSegmentLength 1998*fcf3ce44SJohn Forte ); 1999*fcf3ce44SJohn Forte 2000*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetMaxConnectionsProperties( 2001*fcf3ce44SJohn Forte IMA_OID oid, 2002*fcf3ce44SJohn Forte IMA_MIN_MAX_VALUE *pProps 2003*fcf3ce44SJohn Forte ); 2004*fcf3ce44SJohn Forte 2005*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetMaxConnections( 2006*fcf3ce44SJohn Forte IMA_OID oid, 2007*fcf3ce44SJohn Forte IMA_UINT maxConnections 2008*fcf3ce44SJohn Forte ); 2009*fcf3ce44SJohn Forte 2010*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetDefaultTime2RetainProperties( 2011*fcf3ce44SJohn Forte IMA_OID oid, 2012*fcf3ce44SJohn Forte IMA_MIN_MAX_VALUE *pProps 2013*fcf3ce44SJohn Forte ); 2014*fcf3ce44SJohn Forte 2015*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetDefaultTime2Retain( 2016*fcf3ce44SJohn Forte IMA_OID oid, 2017*fcf3ce44SJohn Forte IMA_UINT defaultTime2Retain 2018*fcf3ce44SJohn Forte ); 2019*fcf3ce44SJohn Forte 2020*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetDefaultTime2WaitProperties( 2021*fcf3ce44SJohn Forte IMA_OID oid, 2022*fcf3ce44SJohn Forte IMA_MIN_MAX_VALUE *pProps 2023*fcf3ce44SJohn Forte ); 2024*fcf3ce44SJohn Forte 2025*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetDefaultTime2Wait( 2026*fcf3ce44SJohn Forte IMA_OID oid, 2027*fcf3ce44SJohn Forte IMA_UINT defaultTime2Wait 2028*fcf3ce44SJohn Forte ); 2029*fcf3ce44SJohn Forte 2030*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetMaxOutstandingR2TProperties( 2031*fcf3ce44SJohn Forte IMA_OID oid, 2032*fcf3ce44SJohn Forte IMA_MIN_MAX_VALUE *pProps 2033*fcf3ce44SJohn Forte ); 2034*fcf3ce44SJohn Forte 2035*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetMaxOutstandingR2T( 2036*fcf3ce44SJohn Forte IMA_OID oid, 2037*fcf3ce44SJohn Forte IMA_UINT maxOutstandingR2T 2038*fcf3ce44SJohn Forte ); 2039*fcf3ce44SJohn Forte 2040*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetErrorRecoveryLevelProperties( 2041*fcf3ce44SJohn Forte IMA_OID oid, 2042*fcf3ce44SJohn Forte IMA_MIN_MAX_VALUE *pProps 2043*fcf3ce44SJohn Forte ); 2044*fcf3ce44SJohn Forte 2045*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetErrorRecoveryLevel( 2046*fcf3ce44SJohn Forte IMA_OID oid, 2047*fcf3ce44SJohn Forte IMA_UINT errorRecoveryLevel 2048*fcf3ce44SJohn Forte ); 2049*fcf3ce44SJohn Forte 2050*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetInitialR2TProperties( 2051*fcf3ce44SJohn Forte IMA_OID oid, 2052*fcf3ce44SJohn Forte IMA_BOOL_VALUE *pProps 2053*fcf3ce44SJohn Forte ); 2054*fcf3ce44SJohn Forte 2055*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetInitialR2T( 2056*fcf3ce44SJohn Forte IMA_OID oid, 2057*fcf3ce44SJohn Forte IMA_BOOL initialR2T 2058*fcf3ce44SJohn Forte ); 2059*fcf3ce44SJohn Forte 2060*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetImmediateDataProperties( 2061*fcf3ce44SJohn Forte IMA_OID oid, 2062*fcf3ce44SJohn Forte IMA_BOOL_VALUE *pProps 2063*fcf3ce44SJohn Forte ); 2064*fcf3ce44SJohn Forte 2065*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetImmediateData( 2066*fcf3ce44SJohn Forte IMA_OID oid, 2067*fcf3ce44SJohn Forte IMA_BOOL immediateData 2068*fcf3ce44SJohn Forte ); 2069*fcf3ce44SJohn Forte 2070*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetDataPduInOrderProperties( 2071*fcf3ce44SJohn Forte IMA_OID oid, 2072*fcf3ce44SJohn Forte IMA_BOOL_VALUE *pProps 2073*fcf3ce44SJohn Forte ); 2074*fcf3ce44SJohn Forte 2075*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetDataPduInOrder( 2076*fcf3ce44SJohn Forte IMA_OID oid, 2077*fcf3ce44SJohn Forte IMA_BOOL dataPduInOrder 2078*fcf3ce44SJohn Forte ); 2079*fcf3ce44SJohn Forte 2080*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetDataSequenceInOrderProperties( 2081*fcf3ce44SJohn Forte IMA_OID oid, 2082*fcf3ce44SJohn Forte IMA_BOOL_VALUE *pProps 2083*fcf3ce44SJohn Forte ); 2084*fcf3ce44SJohn Forte 2085*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetDataSequenceInOrder( 2086*fcf3ce44SJohn Forte IMA_OID oid, 2087*fcf3ce44SJohn Forte IMA_BOOL dataSequenceInOrder 2088*fcf3ce44SJohn Forte ); 2089*fcf3ce44SJohn Forte 2090*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetStatisticsCollection( 2091*fcf3ce44SJohn Forte IMA_OID oid, 2092*fcf3ce44SJohn Forte IMA_BOOL enableStatisticsCollection 2093*fcf3ce44SJohn Forte ); 2094*fcf3ce44SJohn Forte 2095*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetNetworkPortStatus( 2096*fcf3ce44SJohn Forte IMA_OID portOid, 2097*fcf3ce44SJohn Forte IMA_NETWORK_PORT_STATUS *pStatus 2098*fcf3ce44SJohn Forte ); 2099*fcf3ce44SJohn Forte 2100*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetTargetOidList( 2101*fcf3ce44SJohn Forte IMA_OID oid, 2102*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 2103*fcf3ce44SJohn Forte ); 2104*fcf3ce44SJohn Forte 2105*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_RemoveStaleData( 2106*fcf3ce44SJohn Forte IMA_OID lhbaOid 2107*fcf3ce44SJohn Forte ); 2108*fcf3ce44SJohn Forte 2109*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetIsnsDiscovery( 2110*fcf3ce44SJohn Forte IMA_OID phbaId, 2111*fcf3ce44SJohn Forte IMA_BOOL enableIsnsDiscovery, 2112*fcf3ce44SJohn Forte IMA_ISNS_DISCOVERY_METHOD discoveryMethod, 2113*fcf3ce44SJohn Forte const IMA_HOST_ID *iSnsHost 2114*fcf3ce44SJohn Forte ); 2115*fcf3ce44SJohn Forte 2116*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetSlpDiscovery( 2117*fcf3ce44SJohn Forte IMA_OID phbaOid, 2118*fcf3ce44SJohn Forte IMA_BOOL enableSlpDiscovery 2119*fcf3ce44SJohn Forte ); 2120*fcf3ce44SJohn Forte 2121*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetStaticDiscovery( 2122*fcf3ce44SJohn Forte IMA_OID phbaOid, 2123*fcf3ce44SJohn Forte IMA_BOOL enableStaticDiscovery 2124*fcf3ce44SJohn Forte ); 2125*fcf3ce44SJohn Forte 2126*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetSendTargetsDiscovery( 2127*fcf3ce44SJohn Forte IMA_OID oid, 2128*fcf3ce44SJohn Forte IMA_BOOL enableSendTargetsDiscovery 2129*fcf3ce44SJohn Forte ); 2130*fcf3ce44SJohn Forte 2131*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_RemoveStaticDiscoveryTarget( 2132*fcf3ce44SJohn Forte IMA_OID targetOid 2133*fcf3ce44SJohn Forte ); 2134*fcf3ce44SJohn Forte 2135*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetIpsecProperties( 2136*fcf3ce44SJohn Forte IMA_OID phbaOid, 2137*fcf3ce44SJohn Forte IMA_IPSEC_PROPERTIES *pProps 2138*fcf3ce44SJohn Forte ); 2139*fcf3ce44SJohn Forte 2140*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPnpOidList( 2141*fcf3ce44SJohn Forte IMA_OID oid, 2142*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 2143*fcf3ce44SJohn Forte ); 2144*fcf3ce44SJohn Forte 2145*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPhbaDownloadProperties( 2146*fcf3ce44SJohn Forte IMA_OID phbaOid, 2147*fcf3ce44SJohn Forte IMA_PHBA_DOWNLOAD_PROPERTIES *pProps 2148*fcf3ce44SJohn Forte ); 2149*fcf3ce44SJohn Forte 2150*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_IsPhbaDownloadFile( 2151*fcf3ce44SJohn Forte IMA_OID phbaOid, 2152*fcf3ce44SJohn Forte const IMA_WCHAR *pFileName, 2153*fcf3ce44SJohn Forte IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES *pProps 2154*fcf3ce44SJohn Forte ); 2155*fcf3ce44SJohn Forte 2156*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_PhbaDownload( 2157*fcf3ce44SJohn Forte IMA_OID phbaOid, 2158*fcf3ce44SJohn Forte IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType, 2159*fcf3ce44SJohn Forte const IMA_WCHAR *pFileName 2160*fcf3ce44SJohn Forte ); 2161*fcf3ce44SJohn Forte 2162*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetNetworkPortalProperties( 2163*fcf3ce44SJohn Forte IMA_OID networkPortalOid, 2164*fcf3ce44SJohn Forte IMA_NETWORK_PORTAL_PROPERTIES *pProps 2165*fcf3ce44SJohn Forte ); 2166*fcf3ce44SJohn Forte 2167*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetNetworkPortalIpAddress( 2168*fcf3ce44SJohn Forte IMA_OID networkPortalOid, 2169*fcf3ce44SJohn Forte const IMA_IP_ADDRESS NewIpAddress 2170*fcf3ce44SJohn Forte ); 2171*fcf3ce44SJohn Forte 2172*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetLnpOidList( 2173*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 2174*fcf3ce44SJohn Forte ); 2175*fcf3ce44SJohn Forte 2176*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetLnpProperties( 2177*fcf3ce44SJohn Forte IMA_OID lnpOid, 2178*fcf3ce44SJohn Forte IMA_LNP_PROPERTIES *pProps 2179*fcf3ce44SJohn Forte ); 2180*fcf3ce44SJohn Forte 2181*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPnpProperties( 2182*fcf3ce44SJohn Forte IMA_OID pnpOid, 2183*fcf3ce44SJohn Forte IMA_PNP_PROPERTIES *pProps 2184*fcf3ce44SJohn Forte ); 2185*fcf3ce44SJohn Forte 2186*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPnpStatistics( 2187*fcf3ce44SJohn Forte IMA_OID pnpOid, 2188*fcf3ce44SJohn Forte IMA_PNP_STATISTICS *pStats 2189*fcf3ce44SJohn Forte ); 2190*fcf3ce44SJohn Forte 2191*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetTargetProperties( 2192*fcf3ce44SJohn Forte IMA_OID targetOid, 2193*fcf3ce44SJohn Forte IMA_TARGET_PROPERTIES *pProps 2194*fcf3ce44SJohn Forte ); 2195*fcf3ce44SJohn Forte 2196*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetTargetErrorStatistics( 2197*fcf3ce44SJohn Forte IMA_OID targetOid, 2198*fcf3ce44SJohn Forte IMA_TARGET_ERROR_STATISTICS *pStats 2199*fcf3ce44SJohn Forte ); 2200*fcf3ce44SJohn Forte 2201*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetLuOidList( 2202*fcf3ce44SJohn Forte IMA_OID oid, 2203*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 2204*fcf3ce44SJohn Forte ); 2205*fcf3ce44SJohn Forte 2206*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetLuOid( 2207*fcf3ce44SJohn Forte IMA_OID targetOid, 2208*fcf3ce44SJohn Forte IMA_UINT64 lun, 2209*fcf3ce44SJohn Forte IMA_OID *pluOid 2210*fcf3ce44SJohn Forte ); 2211*fcf3ce44SJohn Forte 2212*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetLuProperties( 2213*fcf3ce44SJohn Forte IMA_OID luOid, 2214*fcf3ce44SJohn Forte IMA_LU_PROPERTIES *pProps 2215*fcf3ce44SJohn Forte ); 2216*fcf3ce44SJohn Forte 2217*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetStatisticsProperties( 2218*fcf3ce44SJohn Forte IMA_OID oid, 2219*fcf3ce44SJohn Forte IMA_STATISTICS_PROPERTIES *pProps 2220*fcf3ce44SJohn Forte ); 2221*fcf3ce44SJohn Forte 2222*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetDeviceStatistics( 2223*fcf3ce44SJohn Forte IMA_OID oid, 2224*fcf3ce44SJohn Forte IMA_DEVICE_STATISTICS *pStats 2225*fcf3ce44SJohn Forte ); 2226*fcf3ce44SJohn Forte 2227*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_LuInquiry( 2228*fcf3ce44SJohn Forte IMA_OID deviceOid, 2229*fcf3ce44SJohn Forte IMA_BOOL evpd, 2230*fcf3ce44SJohn Forte IMA_BOOL cmddt, 2231*fcf3ce44SJohn Forte IMA_BYTE pageCode, 2232*fcf3ce44SJohn Forte 2233*fcf3ce44SJohn Forte IMA_BYTE *pOutputBuffer, 2234*fcf3ce44SJohn Forte IMA_UINT *pOutputBufferLength, 2235*fcf3ce44SJohn Forte 2236*fcf3ce44SJohn Forte IMA_BYTE *pSenseBuffer, 2237*fcf3ce44SJohn Forte IMA_UINT *pSenseBufferLength 2238*fcf3ce44SJohn Forte ); 2239*fcf3ce44SJohn Forte 2240*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_LuReadCapacity( 2241*fcf3ce44SJohn Forte IMA_OID deviceOid, 2242*fcf3ce44SJohn Forte IMA_UINT cdbLength, 2243*fcf3ce44SJohn Forte IMA_BYTE *pOutputBuffer, 2244*fcf3ce44SJohn Forte IMA_UINT *pOutputBufferLength, 2245*fcf3ce44SJohn Forte 2246*fcf3ce44SJohn Forte IMA_BYTE *pSenseBuffer, 2247*fcf3ce44SJohn Forte IMA_UINT *pSenseBufferLength 2248*fcf3ce44SJohn Forte ); 2249*fcf3ce44SJohn Forte 2250*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_LuReportLuns( 2251*fcf3ce44SJohn Forte IMA_OID deviceOid, 2252*fcf3ce44SJohn Forte IMA_BOOL sendToWellKnownLun, 2253*fcf3ce44SJohn Forte IMA_BYTE selectReport, 2254*fcf3ce44SJohn Forte 2255*fcf3ce44SJohn Forte IMA_BYTE *pOutputBuffer, 2256*fcf3ce44SJohn Forte IMA_UINT *pOutputBufferLength, 2257*fcf3ce44SJohn Forte 2258*fcf3ce44SJohn Forte IMA_BYTE *pSenseBuffer, 2259*fcf3ce44SJohn Forte IMA_UINT *pSenseBufferLength 2260*fcf3ce44SJohn Forte ); 2261*fcf3ce44SJohn Forte 2262*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_ExposeLu( 2263*fcf3ce44SJohn Forte IMA_OID luOid 2264*fcf3ce44SJohn Forte ); 2265*fcf3ce44SJohn Forte 2266*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_UnexposeLu( 2267*fcf3ce44SJohn Forte IMA_OID luOid 2268*fcf3ce44SJohn Forte ); 2269*fcf3ce44SJohn Forte 2270*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetPhbaStatus( 2271*fcf3ce44SJohn Forte IMA_OID hbaOid, 2272*fcf3ce44SJohn Forte IMA_PHBA_STATUS *pStatus 2273*fcf3ce44SJohn Forte ); 2274*fcf3ce44SJohn Forte 2275*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_RegisterForObjectVisibilityChanges ( 2276*fcf3ce44SJohn Forte IMA_OBJECT_VISIBILITY_FN pClientFn 2277*fcf3ce44SJohn Forte ); 2278*fcf3ce44SJohn Forte 2279*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_DeregisterForObjectVisibilityChanges ( 2280*fcf3ce44SJohn Forte IMA_OBJECT_VISIBILITY_FN pClientFn 2281*fcf3ce44SJohn Forte ); 2282*fcf3ce44SJohn Forte 2283*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_RegisterForObjectPropertyChanges ( 2284*fcf3ce44SJohn Forte IMA_OBJECT_PROPERTY_FN pClientFn 2285*fcf3ce44SJohn Forte ); 2286*fcf3ce44SJohn Forte 2287*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_DeregisterForObjectPropertyChanges ( 2288*fcf3ce44SJohn Forte IMA_OBJECT_PROPERTY_FN pClientFn 2289*fcf3ce44SJohn Forte ); 2290*fcf3ce44SJohn Forte 2291*fcf3ce44SJohn Forte 2292*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetAddressKeyProperties( 2293*fcf3ce44SJohn Forte IMA_OID targetOid, 2294*fcf3ce44SJohn Forte IMA_ADDRESS_KEY_PROPERTIES **ppProps 2295*fcf3ce44SJohn Forte ); 2296*fcf3ce44SJohn Forte 2297*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetIpProperties( 2298*fcf3ce44SJohn Forte IMA_OID oid, 2299*fcf3ce44SJohn Forte IMA_IP_PROPERTIES *pProps 2300*fcf3ce44SJohn Forte ); 2301*fcf3ce44SJohn Forte 2302*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetIpConfigMethod( 2303*fcf3ce44SJohn Forte IMA_OID oid, 2304*fcf3ce44SJohn Forte IMA_BOOL enableDhcpIpConfiguration 2305*fcf3ce44SJohn Forte ); 2306*fcf3ce44SJohn Forte 2307*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetIsnsDiscovery( 2308*fcf3ce44SJohn Forte IMA_OID oid, 2309*fcf3ce44SJohn Forte IMA_BOOL enableIsnsDiscovery, 2310*fcf3ce44SJohn Forte IMA_ISNS_DISCOVERY_METHOD discoveryMethod, 2311*fcf3ce44SJohn Forte const IMA_HOST_ID *iSnsHost 2312*fcf3ce44SJohn Forte ); 2313*fcf3ce44SJohn Forte 2314*fcf3ce44SJohn Forte 2315*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetSubnetMask( 2316*fcf3ce44SJohn Forte IMA_OID oid, 2317*fcf3ce44SJohn Forte IMA_IP_ADDRESS subnetMask 2318*fcf3ce44SJohn Forte ); 2319*fcf3ce44SJohn Forte 2320*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetDnsServerAddress( 2321*fcf3ce44SJohn Forte IMA_OID oid, 2322*fcf3ce44SJohn Forte const IMA_IP_ADDRESS *pPrimaryDnsServerAddress, 2323*fcf3ce44SJohn Forte const IMA_IP_ADDRESS *pAlternateDnsServerAddress 2324*fcf3ce44SJohn Forte ); 2325*fcf3ce44SJohn Forte 2326*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetDefaultGateway( 2327*fcf3ce44SJohn Forte IMA_OID oid, 2328*fcf3ce44SJohn Forte IMA_IP_ADDRESS defaultGateway 2329*fcf3ce44SJohn Forte ); 2330*fcf3ce44SJohn Forte 2331*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetSupportedAuthMethods( 2332*fcf3ce44SJohn Forte IMA_OID lhbaOid, 2333*fcf3ce44SJohn Forte IMA_BOOL getSettableMethods, 2334*fcf3ce44SJohn Forte IMA_UINT *pMethodCount, 2335*fcf3ce44SJohn Forte IMA_AUTHMETHOD *pMethodList 2336*fcf3ce44SJohn Forte ); 2337*fcf3ce44SJohn Forte 2338*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetInUseInitiatorAuthMethods( 2339*fcf3ce44SJohn Forte IMA_OID lhbaOid, 2340*fcf3ce44SJohn Forte IMA_UINT *pMethodCount, 2341*fcf3ce44SJohn Forte IMA_AUTHMETHOD *pMethodList 2342*fcf3ce44SJohn Forte ); 2343*fcf3ce44SJohn Forte 2344*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetInitiatorAuthParms( 2345*fcf3ce44SJohn Forte IMA_OID lhbaOid, 2346*fcf3ce44SJohn Forte IMA_AUTHMETHOD method, 2347*fcf3ce44SJohn Forte IMA_INITIATOR_AUTHPARMS *pParms 2348*fcf3ce44SJohn Forte ); 2349*fcf3ce44SJohn Forte 2350*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetInitiatorAuthMethods( 2351*fcf3ce44SJohn Forte IMA_OID lhbaOid, 2352*fcf3ce44SJohn Forte IMA_UINT methodCount, 2353*fcf3ce44SJohn Forte const IMA_AUTHMETHOD *pMethodList 2354*fcf3ce44SJohn Forte ); 2355*fcf3ce44SJohn Forte 2356*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetInitiatorAuthParms( 2357*fcf3ce44SJohn Forte IMA_OID lhbaOid, 2358*fcf3ce44SJohn Forte IMA_AUTHMETHOD method, 2359*fcf3ce44SJohn Forte const IMA_INITIATOR_AUTHPARMS *pParms 2360*fcf3ce44SJohn Forte ); 2361*fcf3ce44SJohn Forte 2362*fcf3ce44SJohn Forte 2363*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetOidList ( 2364*fcf3ce44SJohn Forte IMA_OID oid, 2365*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 2366*fcf3ce44SJohn Forte ); 2367*fcf3ce44SJohn Forte 2368*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetProperties( 2369*fcf3ce44SJohn Forte IMA_OID staticDiscoveryTargetOid, 2370*fcf3ce44SJohn Forte IMA_STATIC_DISCOVERY_TARGET_PROPERTIES *pProps 2371*fcf3ce44SJohn Forte ); 2372*fcf3ce44SJohn Forte 2373*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_SetStaticDiscovery( 2374*fcf3ce44SJohn Forte IMA_OID oid, 2375*fcf3ce44SJohn Forte IMA_BOOL enableStaticDiscovery 2376*fcf3ce44SJohn Forte ); 2377*fcf3ce44SJohn Forte 2378*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetDiscoveryProperties( 2379*fcf3ce44SJohn Forte IMA_OID oid, 2380*fcf3ce44SJohn Forte IMA_DISCOVERY_PROPERTIES *pProps 2381*fcf3ce44SJohn Forte ); 2382*fcf3ce44SJohn Forte 2383*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_AddDiscoveryAddress( 2384*fcf3ce44SJohn Forte IMA_OID oid, 2385*fcf3ce44SJohn Forte const IMA_TARGET_ADDRESS discoveryAddress, 2386*fcf3ce44SJohn Forte IMA_OID *pDiscoveryAddressOid 2387*fcf3ce44SJohn Forte ); 2388*fcf3ce44SJohn Forte 2389*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_AddStaticDiscoveryTarget( 2390*fcf3ce44SJohn Forte IMA_OID oid, 2391*fcf3ce44SJohn Forte const IMA_STATIC_DISCOVERY_TARGET staticDiscoveryTarget, 2392*fcf3ce44SJohn Forte IMA_OID *pStaticDiscoveryTargetOid 2393*fcf3ce44SJohn Forte ); 2394*fcf3ce44SJohn Forte 2395*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetAddressKeys( 2396*fcf3ce44SJohn Forte IMA_OID targetOid, 2397*fcf3ce44SJohn Forte IMA_ADDRESS_KEYS **ppKeys 2398*fcf3ce44SJohn Forte ); 2399*fcf3ce44SJohn Forte 2400*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetSessionOidList ( 2401*fcf3ce44SJohn Forte IMA_OID oid, 2402*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 2403*fcf3ce44SJohn Forte ); 2404*fcf3ce44SJohn Forte 2405*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetConnectionOidList ( 2406*fcf3ce44SJohn Forte IMA_OID oid, 2407*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 2408*fcf3ce44SJohn Forte ); 2409*fcf3ce44SJohn Forte 2410*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetDiscoveryAddressOidList ( 2411*fcf3ce44SJohn Forte IMA_OID oid, 2412*fcf3ce44SJohn Forte IMA_OID_LIST **ppList 2413*fcf3ce44SJohn Forte ); 2414*fcf3ce44SJohn Forte 2415*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_GetDiscoveryAddressProperties ( 2416*fcf3ce44SJohn Forte IMA_OID discoveryAddressOid, 2417*fcf3ce44SJohn Forte IMA_DISCOVERY_ADDRESS_PROPERTIES *pProps 2418*fcf3ce44SJohn Forte ); 2419*fcf3ce44SJohn Forte 2420*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_RemoveDiscoveryAddress ( 2421*fcf3ce44SJohn Forte IMA_OID oid 2422*fcf3ce44SJohn Forte ); 2423*fcf3ce44SJohn Forte 2424*fcf3ce44SJohn Forte IMA_API IMA_STATUS QIMA_SetUpdateInterval(IMA_OID pluginOid, time_t interval); 2425*fcf3ce44SJohn Forte 2426*fcf3ce44SJohn Forte IMA_API IMA_STATUS IMA_CommitHbaParameters (IMA_OID lhba, IMA_COMMIT_LEVEL commitLevel); 2427*fcf3ce44SJohn Forte 2428*fcf3ce44SJohn Forte #endif 2429*fcf3ce44SJohn Forte 2430*fcf3ce44SJohn Forte #ifdef __cplusplus 2431*fcf3ce44SJohn Forte }; 2432*fcf3ce44SJohn Forte #endif 2433*fcf3ce44SJohn Forte 2434*fcf3ce44SJohn Forte 2435