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