17836SJohn.Forte@Sun.COM /* 27836SJohn.Forte@Sun.COM * CDDL HEADER START 37836SJohn.Forte@Sun.COM * 47836SJohn.Forte@Sun.COM * The contents of this file are subject to the terms of the 57836SJohn.Forte@Sun.COM * Common Development and Distribution License (the "License"). 67836SJohn.Forte@Sun.COM * You may not use this file except in compliance with the License. 77836SJohn.Forte@Sun.COM * 87836SJohn.Forte@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97836SJohn.Forte@Sun.COM * or http://www.opensolaris.org/os/licensing. 107836SJohn.Forte@Sun.COM * See the License for the specific language governing permissions 117836SJohn.Forte@Sun.COM * and limitations under the License. 127836SJohn.Forte@Sun.COM * 137836SJohn.Forte@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 147836SJohn.Forte@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157836SJohn.Forte@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 167836SJohn.Forte@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 177836SJohn.Forte@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 187836SJohn.Forte@Sun.COM * 197836SJohn.Forte@Sun.COM * CDDL HEADER END 207836SJohn.Forte@Sun.COM */ 217836SJohn.Forte@Sun.COM /* 22*10156SZhang.Yi@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 237836SJohn.Forte@Sun.COM * Use is subject to license terms. 247836SJohn.Forte@Sun.COM */ 257836SJohn.Forte@Sun.COM 267836SJohn.Forte@Sun.COM /****************************************************************************** 277836SJohn.Forte@Sun.COM * 287836SJohn.Forte@Sun.COM * Description 297836SJohn.Forte@Sun.COM * Ima.h - general header file for client 307836SJohn.Forte@Sun.COM * and library developers 317836SJohn.Forte@Sun.COM * 327836SJohn.Forte@Sun.COM * License: 337836SJohn.Forte@Sun.COM * The contents of this file are subject to the SNIA Public License 347836SJohn.Forte@Sun.COM * Version 1.0 (the "License"); you may not use this file except in 357836SJohn.Forte@Sun.COM * compliance with the License. You may obtain a copy of the License at 367836SJohn.Forte@Sun.COM * 377836SJohn.Forte@Sun.COM * /http://www.snia.org/English/Resources/Code/OpenSource.html 387836SJohn.Forte@Sun.COM * 397836SJohn.Forte@Sun.COM * Software distributed under the License is distributed on an "AS IS" 407836SJohn.Forte@Sun.COM * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 417836SJohn.Forte@Sun.COM * the License for the specific language governing rights and limitations 427836SJohn.Forte@Sun.COM * under the License. 437836SJohn.Forte@Sun.COM * 447836SJohn.Forte@Sun.COM * The Original Code is SNIA HBA API and IMA general header file 457836SJohn.Forte@Sun.COM * 467836SJohn.Forte@Sun.COM * The Initial Developer of the Original Code is: 477836SJohn.Forte@Sun.COM * Benjamin F. Kuo, Troika Networks, Inc. (benk@troikanetworks.com) 487836SJohn.Forte@Sun.COM * David Dillard VERITAS Software david.dillard@veritas.com 497836SJohn.Forte@Sun.COM * 507836SJohn.Forte@Sun.COM * Contributor(s): 517836SJohn.Forte@Sun.COM * Jeff Ding, Adaptec, Inc. (jding@corp.adaptec.com) 527836SJohn.Forte@Sun.COM * Dave Wysochanski, Network Appliance, Inc. (davidw@netapp.com) 537836SJohn.Forte@Sun.COM * 547836SJohn.Forte@Sun.COM ****************************************************************************** 557836SJohn.Forte@Sun.COM * 567836SJohn.Forte@Sun.COM * Changes: 577836SJohn.Forte@Sun.COM * 09/24/2003 Initial Draft 587836SJohn.Forte@Sun.COM * (for other changes... see the CVS logs) 597836SJohn.Forte@Sun.COM * 12/15/2003 corrected the defined parameter in IMA_SetPhbaIsnsDiscovery(). 607836SJohn.Forte@Sun.COM * lower case the computer name as iscsi name in 617836SJohn.Forte@Sun.COM * IMA_GenerateNodeName(). 627836SJohn.Forte@Sun.COM * 03/01/2004 Brought up to date with respect to IMA v1.0.1; made formatting 637836SJohn.Forte@Sun.COM * changes - lines to 80 cols - for readability. 647836SJohn.Forte@Sun.COM * 657836SJohn.Forte@Sun.COM * 01/21/2005 Updated to support IMA 1.1.3. 667836SJohn.Forte@Sun.COM *****************************************************************************/ 677836SJohn.Forte@Sun.COM #ifdef __cplusplus 687836SJohn.Forte@Sun.COM extern "C" { 697836SJohn.Forte@Sun.COM #endif 707836SJohn.Forte@Sun.COM 717836SJohn.Forte@Sun.COM #ifndef IMA_H 727836SJohn.Forte@Sun.COM #define IMA_H 737836SJohn.Forte@Sun.COM 747836SJohn.Forte@Sun.COM #include <time.h> 757836SJohn.Forte@Sun.COM #include <wchar.h> 767836SJohn.Forte@Sun.COM 777836SJohn.Forte@Sun.COM 787836SJohn.Forte@Sun.COM /* Library version string */ 797836SJohn.Forte@Sun.COM #define HBA_LIBVERSION 2 807836SJohn.Forte@Sun.COM 81*10156SZhang.Yi@Sun.COM #define IMA_MAX_CALLBACK_PER_PLUGIN 64 82*10156SZhang.Yi@Sun.COM #define IMA_MAX_NUM_PLUGINS 32 83*10156SZhang.Yi@Sun.COM 847836SJohn.Forte@Sun.COM /* DLL imports for WIN32 operation */ 857836SJohn.Forte@Sun.COM #ifdef WIN32 867836SJohn.Forte@Sun.COM #ifdef IMA_EXPORTS 877836SJohn.Forte@Sun.COM #define IMA_API __declspec(dllexport) 887836SJohn.Forte@Sun.COM #else 897836SJohn.Forte@Sun.COM #define IMA_API __declspec(dllimport) 907836SJohn.Forte@Sun.COM #endif 917836SJohn.Forte@Sun.COM #else 927836SJohn.Forte@Sun.COM #define IMA_API 937836SJohn.Forte@Sun.COM #endif 947836SJohn.Forte@Sun.COM 957836SJohn.Forte@Sun.COM /* OS specific definitions */ 967836SJohn.Forte@Sun.COM 977836SJohn.Forte@Sun.COM #ifdef WIN32 987836SJohn.Forte@Sun.COM typedef unsigned char IMA_UINT8; // Unsigned 8 bits 997836SJohn.Forte@Sun.COM typedef char IMA_INT8; // Signed 8 bits 1007836SJohn.Forte@Sun.COM typedef unsigned short IMA_UINT16; // Unsigned 16 bits 1017836SJohn.Forte@Sun.COM typedef short IMA_INT16; // Signed 16 bits 1027836SJohn.Forte@Sun.COM typedef unsigned int IMA_UINT32; // Unsigned 32 bits 1037836SJohn.Forte@Sun.COM typedef int IMA_INT32; // Signed 32 bits 1047836SJohn.Forte@Sun.COM typedef void* IMA_PVOID; // Pointer to void 1057836SJohn.Forte@Sun.COM typedef IMA_UINT32 IMA_VOID32; // Opaque 32 bits 1067836SJohn.Forte@Sun.COM 1077836SJohn.Forte@Sun.COM 1087836SJohn.Forte@Sun.COM /* Don't confuse, _WIN32 with WIN32... OK, how do you accompish that */ 1097836SJohn.Forte@Sun.COM #ifdef _WIN32 1107836SJohn.Forte@Sun.COM typedef __int64 IMA_INT64; 1117836SJohn.Forte@Sun.COM typedef unsigned __int64 IMA_UINT64; 1127836SJohn.Forte@Sun.COM #else 1137836SJohn.Forte@Sun.COM typedef struct { 1147836SJohn.Forte@Sun.COM TN_UINT32 lo_val; 1157836SJohn.Forte@Sun.COM TN_UINT32 hi_val; 1167836SJohn.Forte@Sun.COM } IMA_INT64; 1177836SJohn.Forte@Sun.COM 1187836SJohn.Forte@Sun.COM typedef struct { 1197836SJohn.Forte@Sun.COM TN_UINT32 lo_val; 1207836SJohn.Forte@Sun.COM TN_UINT32 hi_val; 1217836SJohn.Forte@Sun.COM } IMA_UINT64; 1227836SJohn.Forte@Sun.COM #endif /* #ifdef _WIN32 */ 1237836SJohn.Forte@Sun.COM 1247836SJohn.Forte@Sun.COM 1257836SJohn.Forte@Sun.COM #else 1267836SJohn.Forte@Sun.COM 1277836SJohn.Forte@Sun.COM /* Note this section needs to be cleaned up for various Unix platforms */ 1287836SJohn.Forte@Sun.COM typedef unsigned char IMA_UINT8; /* Unsigned 8 bits */ 1297836SJohn.Forte@Sun.COM typedef char IMA_INT8; /* Signed 8 bits */ 1307836SJohn.Forte@Sun.COM typedef unsigned short IMA_UINT16; /* Unsigned 16 bits */ 1317836SJohn.Forte@Sun.COM typedef short IMA_INT16; /* Signed 16 bits */ 1327836SJohn.Forte@Sun.COM typedef unsigned int IMA_UINT32; /* Unsigned 32 bits */ 1337836SJohn.Forte@Sun.COM typedef int IMA_INT32; /* Signed 32 bits */ 1347836SJohn.Forte@Sun.COM typedef void* IMA_PVOID; /* Pointer to void */ 1357836SJohn.Forte@Sun.COM typedef IMA_UINT32 IMA_VOID32; /* Opaque 32 bits */ 1367836SJohn.Forte@Sun.COM typedef long long IMA_INT64; 1377836SJohn.Forte@Sun.COM typedef long long IMA_UINT64; 1387836SJohn.Forte@Sun.COM 1397836SJohn.Forte@Sun.COM #endif /* #ifdef WIN32 */ 1407836SJohn.Forte@Sun.COM 1417836SJohn.Forte@Sun.COM 1427836SJohn.Forte@Sun.COM 1437836SJohn.Forte@Sun.COM /** 1447836SJohn.Forte@Sun.COM ******************************************************************************* 1457836SJohn.Forte@Sun.COM * 1467836SJohn.Forte@Sun.COM * Generic IMA Constant Definitions 1477836SJohn.Forte@Sun.COM * 1487836SJohn.Forte@Sun.COM ******************************************************************************* 1497836SJohn.Forte@Sun.COM */ 1507836SJohn.Forte@Sun.COM #define RL_LIBRARY_SEQNUM 0 1517836SJohn.Forte@Sun.COM #define RL_SHARED_NODE_SEQNUM 0 1527836SJohn.Forte@Sun.COM 1537836SJohn.Forte@Sun.COM /** 1547836SJohn.Forte@Sun.COM * Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL. 1557836SJohn.Forte@Sun.COM */ 1567836SJohn.Forte@Sun.COM #define IMA_TRUE 1 1577836SJohn.Forte@Sun.COM 1587836SJohn.Forte@Sun.COM /** 1597836SJohn.Forte@Sun.COM * Value which can be assigned to an IMA_BOOL and or an IMA_XBOOL. 1607836SJohn.Forte@Sun.COM */ 1617836SJohn.Forte@Sun.COM #define IMA_FALSE 0 1627836SJohn.Forte@Sun.COM 1637836SJohn.Forte@Sun.COM /** 1647836SJohn.Forte@Sun.COM * Value which can be assigned to an IMA_XBOOL. 1657836SJohn.Forte@Sun.COM */ 1667836SJohn.Forte@Sun.COM #define IMA_UNKNOWN 0xFFFFFFFF 1677836SJohn.Forte@Sun.COM 1687836SJohn.Forte@Sun.COM 1697836SJohn.Forte@Sun.COM 1707836SJohn.Forte@Sun.COM /** 1717836SJohn.Forte@Sun.COM ******************************************************************************* 1727836SJohn.Forte@Sun.COM * 1737836SJohn.Forte@Sun.COM * Base IMA Type Definitions 1747836SJohn.Forte@Sun.COM * 1757836SJohn.Forte@Sun.COM * @note Types that have a specific size must be defined ImaOsTypes.h which is 1767836SJohn.Forte@Sun.COM * an OS specific include file which is included by this file. 1777836SJohn.Forte@Sun.COM * 1787836SJohn.Forte@Sun.COM ******************************************************************************* 1797836SJohn.Forte@Sun.COM */ 1807836SJohn.Forte@Sun.COM 1817836SJohn.Forte@Sun.COM /** 1827836SJohn.Forte@Sun.COM * A character. 1837836SJohn.Forte@Sun.COM */ 1847836SJohn.Forte@Sun.COM typedef char IMA_CHAR; 1857836SJohn.Forte@Sun.COM 1867836SJohn.Forte@Sun.COM /** 1877836SJohn.Forte@Sun.COM * A wide character. 1887836SJohn.Forte@Sun.COM */ 1897836SJohn.Forte@Sun.COM typedef wchar_t IMA_WCHAR; 1907836SJohn.Forte@Sun.COM 1917836SJohn.Forte@Sun.COM /** 1927836SJohn.Forte@Sun.COM * An integer. Spec states this is 32 bits on 32-bit systems, and 64-bit 1937836SJohn.Forte@Sun.COM * on 64-bit systems. 1947836SJohn.Forte@Sun.COM */ 1957836SJohn.Forte@Sun.COM typedef unsigned long IMA_UINT; 1967836SJohn.Forte@Sun.COM 1977836SJohn.Forte@Sun.COM /** 1987836SJohn.Forte@Sun.COM * A boolean. 1997836SJohn.Forte@Sun.COM */ 2007836SJohn.Forte@Sun.COM typedef IMA_UINT32 IMA_BOOL; 2017836SJohn.Forte@Sun.COM 2027836SJohn.Forte@Sun.COM /** 2037836SJohn.Forte@Sun.COM * An extended boolean: can have the values @ref IMA_TRUE, @ref IMA_FALSE, and 2047836SJohn.Forte@Sun.COM * @ref IMA_UNKNOWN. 2057836SJohn.Forte@Sun.COM */ 2067836SJohn.Forte@Sun.COM typedef IMA_UINT32 IMA_XBOOL; 2077836SJohn.Forte@Sun.COM 2087836SJohn.Forte@Sun.COM /** 2097836SJohn.Forte@Sun.COM * A date and time. 2107836SJohn.Forte@Sun.COM */ 2117836SJohn.Forte@Sun.COM typedef struct tm IMA_DATETIME; 2127836SJohn.Forte@Sun.COM 2137836SJohn.Forte@Sun.COM typedef unsigned char IMA_BYTE; 2147836SJohn.Forte@Sun.COM 2157836SJohn.Forte@Sun.COM /** 2167836SJohn.Forte@Sun.COM ******************************************************************************* 2177836SJohn.Forte@Sun.COM * 2187836SJohn.Forte@Sun.COM * Constants and macros declarations related to IMA_STATUS 2197836SJohn.Forte@Sun.COM * 2207836SJohn.Forte@Sun.COM ******************************************************************************* 2217836SJohn.Forte@Sun.COM */ 2227836SJohn.Forte@Sun.COM #ifdef SOLARIS 2237836SJohn.Forte@Sun.COM typedef IMA_UINT IMA_STATUS; 2247836SJohn.Forte@Sun.COM 2257836SJohn.Forte@Sun.COM #define IMA_STATUS_SUCCESS 0x00000000 2267836SJohn.Forte@Sun.COM #define IMA_STATUS_ERROR 0x80000000 2277836SJohn.Forte@Sun.COM 2287836SJohn.Forte@Sun.COM #define IMA_SUCCESS(status) (((IMA_STATUS)(status) & \ 2297836SJohn.Forte@Sun.COM (IMA_STATUS)IMA_STATUS_ERROR) == 0 ? IMA_TRUE : IMA_FALSE) 2307836SJohn.Forte@Sun.COM #define IMA_ERROR(status) (((IMA_STATUS)(status) & \ 2317836SJohn.Forte@Sun.COM (IMA_STATUS)IMA_STATUS_ERROR) == 0x8000000 ? IMA_TRUE : IMA_FALSE) 2327836SJohn.Forte@Sun.COM 2337836SJohn.Forte@Sun.COM #define MAKE_IMA_STATUS(x) ((IMA_STATUS)(x)) 2347836SJohn.Forte@Sun.COM #define MAKE_IMA_ERROR(x) ((IMA_STATUS)(IMA_STATUS_ERROR | (x))) 2357836SJohn.Forte@Sun.COM #define GET_SYSTEM_ERROR(x) (((IMA_STATUS)(x) & 0x0000FFFF)) 2367836SJohn.Forte@Sun.COM 2377836SJohn.Forte@Sun.COM #define IMA_STATUS_REBOOT_NECESSARY MAKE_IMA_STATUS(0x01) 2387836SJohn.Forte@Sun.COM #define IMA_STATUS_INCONSISTENT_NODE_PROPERTIES MAKE_IMA_STATUS(0x02) 2397836SJohn.Forte@Sun.COM #define IMA_STATUS_SCSI_STATUS_CONDITION_MET MAKE_IMA_STATUS(0x100) 2407836SJohn.Forte@Sun.COM 2417836SJohn.Forte@Sun.COM #define IMA_ERROR_NOT_SUPPORTED MAKE_IMA_ERROR(0x01) 2427836SJohn.Forte@Sun.COM #define IMA_ERROR_INSUFFICIENT_MEMORY MAKE_IMA_ERROR(0x02) 2437836SJohn.Forte@Sun.COM #define IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD MAKE_IMA_ERROR(0x03) 2447836SJohn.Forte@Sun.COM #define IMA_ERROR_UNEXPECTED_OS_ERROR MAKE_IMA_ERROR(0x04) 2457836SJohn.Forte@Sun.COM #define IMA_ERROR_SYNC_TIMEOUT MAKE_IMA_ERROR(0x05) 2467836SJohn.Forte@Sun.COM #define IMA_ERROR_LU_EXPOSED MAKE_IMA_ERROR(0x06) 2477836SJohn.Forte@Sun.COM #define IMA_ERROR_LU_NOT_EXPOSED MAKE_IMA_ERROR(0x07) 2487836SJohn.Forte@Sun.COM #define IMA_ERROR_LU_IN_USE MAKE_IMA_ERROR(0x08) 2497836SJohn.Forte@Sun.COM #define IMA_ERROR_TARGET_TIMEOUT MAKE_IMA_ERROR(0x09) 2507836SJohn.Forte@Sun.COM #define IMA_ERROR_LOGIN_REJECTED MAKE_IMA_ERROR(0x0A) 2517836SJohn.Forte@Sun.COM #define IMA_ERROR_STATS_COLLECTION_NOT_ENABLED MAKE_IMA_ERROR(0x0B) 2527836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_CHECK_CONDITION MAKE_IMA_ERROR(0x100) 2537836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_BUSY MAKE_IMA_ERROR(0x101) 2547836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT MAKE_IMA_ERROR(0x102) 2557836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_TASK_SET_FULL MAKE_IMA_ERROR(0x103) 2567836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_ACA_ACTIVE MAKE_IMA_ERROR(0x104) 2577836SJohn.Forte@Sun.COM #define IMA_ERROR_SCSI_STATUS_TASK_ABORTED MAKE_IMA_ERROR(0x105) 2587836SJohn.Forte@Sun.COM #define IMA_ERROR_INVALID_PARAMETER MAKE_IMA_ERROR(0x40000000) 2597836SJohn.Forte@Sun.COM #define IMA_ERROR_INVALID_OBJECT_TYPE MAKE_IMA_ERROR(0x40000001) 2607836SJohn.Forte@Sun.COM #define IMA_ERROR_INCORRECT_OBJECT_TYPE MAKE_IMA_ERROR(0x40000002) 2617836SJohn.Forte@Sun.COM #define IMA_ERROR_OBJECT_NOT_FOUND MAKE_IMA_ERROR(0x40000003) 2627836SJohn.Forte@Sun.COM #define IMA_ERROR_NAME_TOO_LONG MAKE_IMA_ERROR(0x40000004) 2637836SJohn.Forte@Sun.COM #define IMA_ERROR_UNKNOWN_ERROR MAKE_IMA_ERROR(0x0fffffff) 2647836SJohn.Forte@Sun.COM 2657836SJohn.Forte@Sun.COM #else 2667836SJohn.Forte@Sun.COM 2677836SJohn.Forte@Sun.COM typedef enum { 2687836SJohn.Forte@Sun.COM IMA_STATUS_SUCCESS = 0x00000000, 2697836SJohn.Forte@Sun.COM IMA_STATUS_REBOOT_NECESSARY = 0x00000001, 2707836SJohn.Forte@Sun.COM IMA_STATUS_INCONSISTENT_NODE_PROPERTIES = 0x00000002, 2717836SJohn.Forte@Sun.COM IMA_STATUS_SCSI_STATUS_CONDITION_MET = 0x00000100, 2727836SJohn.Forte@Sun.COM 2737836SJohn.Forte@Sun.COM IMA_STATUS_ERROR = 0x80000000, 2747836SJohn.Forte@Sun.COM IMA_ERROR_NOT_SUPPORTED = 0x80000001, 2757836SJohn.Forte@Sun.COM IMA_ERROR_INSUFFICIENT_MEMORY = 0x80000002, 2767836SJohn.Forte@Sun.COM IMA_ERROR_LAST_PRIMARY_DISCOVERY_METHOD = 0x80000003, 2777836SJohn.Forte@Sun.COM IMA_ERROR_UNEXPECTED_OS_ERROR = 0x80000004, 2787836SJohn.Forte@Sun.COM IMA_ERROR_SYNC_TIMEOUT = 0x80000005, 2797836SJohn.Forte@Sun.COM IMA_ERROR_LU_EXPOSED = 0x80000006, 2807836SJohn.Forte@Sun.COM IMA_ERROR_LU_NOT_EXPOSED = 0x80000007, 2817836SJohn.Forte@Sun.COM IMA_ERROR_LU_IN_USE = 0x80000008, 2827836SJohn.Forte@Sun.COM IMA_ERROR_TARGET_TIMEOUT = 0x80000009, 2837836SJohn.Forte@Sun.COM IMA_ERROR_LOGIN_REJECTED = 0x8000000A, 2847836SJohn.Forte@Sun.COM IMA_ERROR_STATS_COLLECTION_NOT_ENABLED = 0x8000000B, 2857836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_CHECK_CONDITION = 0x80000100, 2867836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_BUSY = 0x80000101, 2877836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_RESERVATION_CONFLICT = 0x80000102, 2887836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_TASK_SET_FULL = 0x80000103, 2897836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_ACA_ACTIVE = 0x80000104, 2907836SJohn.Forte@Sun.COM IMA_ERROR_SCSI_STATUS_TASK_ABORTED = 0x80000105, 2917836SJohn.Forte@Sun.COM IMA_ERROR_INVALID_PARAMETER = 0xC0000000, 2927836SJohn.Forte@Sun.COM IMA_ERROR_INVALID_OBJECT_TYPE = 0xC0000001, 2937836SJohn.Forte@Sun.COM IMA_ERROR_INCORRECT_OBJECT_TYPE = 0xC0000002, 2947836SJohn.Forte@Sun.COM IMA_ERROR_OBJECT_NOT_FOUND = 0xC0000003, 2957836SJohn.Forte@Sun.COM IMA_ERROR_NAME_TOO_LONG = 0xC0000004, 2967836SJohn.Forte@Sun.COM IMA_ERROR_UNKNOWN_ERROR = 0x8FFFFFFF 2977836SJohn.Forte@Sun.COM } IMA_STATUS; 2987836SJohn.Forte@Sun.COM 2997836SJohn.Forte@Sun.COM /* 3007836SJohn.Forte@Sun.COM #define IMA_SUCCESS(status) ( (IMA_UINT32)(status) & \ 3017836SJohn.Forte@Sun.COM (IMA_UINT32)IMA_STATUS_ERROR == 0 ? \ 3027836SJohn.Forte@Sun.COM IMA_TRUE : IMA_FALSE ) 3037836SJohn.Forte@Sun.COM #define IMA_ERROR(status) ( (IMA_UINT32)(status) & \ 3047836SJohn.Forte@Sun.COM (IMA_UINT32)IMA_STATUS_ERROR == 0x8000000 ? \ 3057836SJohn.Forte@Sun.COM IMA_TRUE : IMA_FALSE ) 3067836SJohn.Forte@Sun.COM */ 3077836SJohn.Forte@Sun.COM 3087836SJohn.Forte@Sun.COM #define IMA_SUCCESS(status) !((status) & IMA_STATUS_ERROR) 3097836SJohn.Forte@Sun.COM #define IMA_ERROR(status) ((status) & IMA_STATUS_ERROR) 3107836SJohn.Forte@Sun.COM 3117836SJohn.Forte@Sun.COM #endif 3127836SJohn.Forte@Sun.COM 3137836SJohn.Forte@Sun.COM /** 3147836SJohn.Forte@Sun.COM ******************************************************************************* 3157836SJohn.Forte@Sun.COM * 3167836SJohn.Forte@Sun.COM * Declaration of the IMA_OBJECT_TYPE enumeration 3177836SJohn.Forte@Sun.COM * 3187836SJohn.Forte@Sun.COM ******************************************************************************* 3197836SJohn.Forte@Sun.COM */ 3207836SJohn.Forte@Sun.COM typedef enum 3217836SJohn.Forte@Sun.COM { 3227836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_UNKNOWN = 0, 3237836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_PLUGIN = 1, 3247836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_NODE = 2, 3257836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_LHBA = 3, 3267836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_PHBA = 4, 3277836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_NETWORK_PORTAL = 5, 3287836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_PORTAL_GROUP = 6, 3297836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_LNP = 7, 3307836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_PNP = 8, 3317836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_TARGET = 9, 3327836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_LU = 10, 3337836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_DISCOVERY_ADDRESS = 11, 3347836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_STATIC_DISCOVERY_TARGET = 12, 3357836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_CONNECTION = 13, 3367836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE_SESSION = 14 3377836SJohn.Forte@Sun.COM } IMA_OBJECT_TYPE; 3387836SJohn.Forte@Sun.COM 3397836SJohn.Forte@Sun.COM typedef enum 3407836SJohn.Forte@Sun.COM { 3417836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD_STATIC = 0, 3427836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD_DHCP = 1, 3437836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD_SLP = 2 3447836SJohn.Forte@Sun.COM } IMA_ISNS_DISCOVERY_METHOD; 3457836SJohn.Forte@Sun.COM 3467836SJohn.Forte@Sun.COM typedef enum 3477836SJohn.Forte@Sun.COM { 3487836SJohn.Forte@Sun.COM IMA_DOWNLOAD_IMAGE_TYPE_FIRMWARE = 0, 3497836SJohn.Forte@Sun.COM IMA_DOWNLOAD_IMAGE_TYPE_OPTION_ROM = 1, 3507836SJohn.Forte@Sun.COM IMA_DOWNLOAD_IMAGE_TYPE_ALL = 2, 3517836SJohn.Forte@Sun.COM IMA_DOWNLOAD_IMAGE_TYPE_BOOTCODE = 3 3527836SJohn.Forte@Sun.COM } IMA_PHBA_DOWNLOAD_IMAGE_TYPE; 3537836SJohn.Forte@Sun.COM 3547836SJohn.Forte@Sun.COM typedef enum 3557836SJohn.Forte@Sun.COM { 3567836SJohn.Forte@Sun.COM IMA_PHBA_STATUS_WORKING = 0, 3577836SJohn.Forte@Sun.COM IMA_PHBA_STATUS_FAILED = 1 3587836SJohn.Forte@Sun.COM } IMA_PHBA_STATUS; 3597836SJohn.Forte@Sun.COM 3607836SJohn.Forte@Sun.COM typedef enum 3617836SJohn.Forte@Sun.COM { 3627836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_WORKING = 0, 3637836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_DEGRADED = 1, 3647836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_CRITICAL = 2, 3657836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_FAILED = 3, 3667836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS_DISCONNECTED = 4 3677836SJohn.Forte@Sun.COM } IMA_NETWORK_PORT_STATUS; 3687836SJohn.Forte@Sun.COM 3697836SJohn.Forte@Sun.COM typedef enum 3707836SJohn.Forte@Sun.COM { 3717836SJohn.Forte@Sun.COM IMA_TARGET_DISCOVERY_METHOD_STATIC = 1, 3727836SJohn.Forte@Sun.COM IMA_TARGET_DISCOVERY_METHOD_SLP = 2, 3737836SJohn.Forte@Sun.COM IMA_TARGET_DISCOVERY_METHOD_ISNS = 4, 3747836SJohn.Forte@Sun.COM IMA_TARGET_DISCOVERY_METHOD_SENDTARGETS = 8 3757836SJohn.Forte@Sun.COM } IMA_TARGET_DISCOVERY_METHOD; 3767836SJohn.Forte@Sun.COM 3777836SJohn.Forte@Sun.COM typedef enum 3787836SJohn.Forte@Sun.COM { 3797836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_NONE = 0, 3807836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_CHAP = 1, 3817836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_SRP = 2, 3827836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_KRB5 = 3, 3837836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_SPKM1 = 4, 3847836SJohn.Forte@Sun.COM IMA_AUTHMETHOD_SPKM2 = 5 3857836SJohn.Forte@Sun.COM } IMA_AUTHMETHOD; 3867836SJohn.Forte@Sun.COM 3877836SJohn.Forte@Sun.COM typedef enum 3887836SJohn.Forte@Sun.COM { 3897836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_AUTO = 0, 3907836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_ACTIVE, 3917836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_PERSISTENT, 3927836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_ACTIVE_AND_PERSISTENT, 3937836SJohn.Forte@Sun.COM IMA_COMMIT_TYPE_ALL_WITH_RESET 3947836SJohn.Forte@Sun.COM } IMA_COMMIT_LEVEL; 3957836SJohn.Forte@Sun.COM 3967836SJohn.Forte@Sun.COM typedef enum 3977836SJohn.Forte@Sun.COM { 3987836SJohn.Forte@Sun.COM IMA_DIGEST_NONE = 0, 3997836SJohn.Forte@Sun.COM IMA_DIGEST_CRC32C = 1 4007836SJohn.Forte@Sun.COM } IMA_DIGEST_TYPE; 4017836SJohn.Forte@Sun.COM 4027836SJohn.Forte@Sun.COM 4037836SJohn.Forte@Sun.COM /** 4047836SJohn.Forte@Sun.COM ******************************************************************************* 4057836SJohn.Forte@Sun.COM * 4067836SJohn.Forte@Sun.COM * Declaration of the IMA_OID structure 4077836SJohn.Forte@Sun.COM * 4087836SJohn.Forte@Sun.COM * This structure should be treated as opaque by clients of the API. 4097836SJohn.Forte@Sun.COM * Appropriate APIs should be used to extract information from the structure. 4107836SJohn.Forte@Sun.COM * 4117836SJohn.Forte@Sun.COM ******************************************************************************* 4127836SJohn.Forte@Sun.COM */ 4137836SJohn.Forte@Sun.COM typedef struct _IMA_OID 4147836SJohn.Forte@Sun.COM { 4157836SJohn.Forte@Sun.COM /** 4167836SJohn.Forte@Sun.COM * The type of the object. When an object ID is supplied as a parameter 4177836SJohn.Forte@Sun.COM * to an API the library uses this value to insure that the supplied 4187836SJohn.Forte@Sun.COM * object's type is appropriate for the API. 4197836SJohn.Forte@Sun.COM */ 4207836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE objectType; 4217836SJohn.Forte@Sun.COM 4227836SJohn.Forte@Sun.COM /** 4237836SJohn.Forte@Sun.COM * A value determined by the library which it uses to uniquely identify the 4247836SJohn.Forte@Sun.COM * owner of an object. The owner of an object is either the library itself 4257836SJohn.Forte@Sun.COM * or a plugin. When an object ID is supplied as a parameter to an API the 4267836SJohn.Forte@Sun.COM * library uses this value to determine if it should handle the call itself 4277836SJohn.Forte@Sun.COM * or direct the call to one or more plugins. 4287836SJohn.Forte@Sun.COM */ 4297836SJohn.Forte@Sun.COM IMA_UINT32 ownerId; 4307836SJohn.Forte@Sun.COM 4317836SJohn.Forte@Sun.COM /** 4327836SJohn.Forte@Sun.COM * A value determined by a plugin which a plugin uses, perhaps in 4337836SJohn.Forte@Sun.COM * combination with the object type, to uniquely identify one of its 4347836SJohn.Forte@Sun.COM * objects. 4357836SJohn.Forte@Sun.COM */ 4367836SJohn.Forte@Sun.COM IMA_UINT64 objectSequenceNumber; 4377836SJohn.Forte@Sun.COM 4387836SJohn.Forte@Sun.COM } IMA_OID; 4397836SJohn.Forte@Sun.COM 4407836SJohn.Forte@Sun.COM 4417836SJohn.Forte@Sun.COM 4427836SJohn.Forte@Sun.COM /** 4437836SJohn.Forte@Sun.COM ******************************************************************************* 4447836SJohn.Forte@Sun.COM * 4457836SJohn.Forte@Sun.COM * Declaration of the IMA_OID_LIST structure 4467836SJohn.Forte@Sun.COM * 4477836SJohn.Forte@Sun.COM * This structure is used by a number of APIs to return lists of objects. Any 4487836SJohn.Forte@Sun.COM * instance of this structure returned by an API must be freed by a client 4497836SJohn.Forte@Sun.COM * using the IMA_FreeObjectIdList API. Although oids is declared to be an 4507836SJohn.Forte@Sun.COM * array of one 4517836SJohn.Forte@Sun.COM * @ref IMA_OID structure it can in fact contain any number of 4527836SJohn.Forte@Sun.COM * @ref IMA_OID structures. 4537836SJohn.Forte@Sun.COM * 4547836SJohn.Forte@Sun.COM * @note The @a oids array is a variable length array, despite its declaration 4557836SJohn.Forte@Sun.COM * below it can be of any length. 4567836SJohn.Forte@Sun.COM * 4577836SJohn.Forte@Sun.COM ******************************************************************************* 4587836SJohn.Forte@Sun.COM */ 4597836SJohn.Forte@Sun.COM typedef struct _IMA_OID_LIST 4607836SJohn.Forte@Sun.COM { 4617836SJohn.Forte@Sun.COM /** 4627836SJohn.Forte@Sun.COM * The number of object IDs in the @a oids array. 4637836SJohn.Forte@Sun.COM */ 4647836SJohn.Forte@Sun.COM IMA_UINT oidCount; 4657836SJohn.Forte@Sun.COM 4667836SJohn.Forte@Sun.COM /** 4677836SJohn.Forte@Sun.COM * A variable length array of zero or more object IDs. There are 4687836SJohn.Forte@Sun.COM * 'oidCount' object IDs in this array. 4697836SJohn.Forte@Sun.COM */ 4707836SJohn.Forte@Sun.COM IMA_OID oids[1]; 4717836SJohn.Forte@Sun.COM 4727836SJohn.Forte@Sun.COM } IMA_OID_LIST; 4737836SJohn.Forte@Sun.COM 4747836SJohn.Forte@Sun.COM #define IMA_HOST_NAME_LEN 256 4757836SJohn.Forte@Sun.COM typedef IMA_WCHAR IMA_HOST_NAME[IMA_HOST_NAME_LEN]; 4767836SJohn.Forte@Sun.COM typedef IMA_BYTE IMA_MAC_ADDRESS[6]; 4777836SJohn.Forte@Sun.COM 4787836SJohn.Forte@Sun.COM /** 4797836SJohn.Forte@Sun.COM ******************************************************************************* 4807836SJohn.Forte@Sun.COM * 4817836SJohn.Forte@Sun.COM * Declaration of the IMA_LIBRARY_PROPERTIES structure 4827836SJohn.Forte@Sun.COM * 4837836SJohn.Forte@Sun.COM ******************************************************************************* 4847836SJohn.Forte@Sun.COM */ 4857836SJohn.Forte@Sun.COM typedef struct _IMA_LIBRARY_PROPERTIES 4867836SJohn.Forte@Sun.COM { 4877836SJohn.Forte@Sun.COM /** 4887836SJohn.Forte@Sun.COM * The version of the iSCSI Management API implemented by the library. 4897836SJohn.Forte@Sun.COM * The value returned by a library for the API as described in this 4907836SJohn.Forte@Sun.COM * document is one. 4917836SJohn.Forte@Sun.COM */ 4927836SJohn.Forte@Sun.COM IMA_UINT supportedImaVersion; 4937836SJohn.Forte@Sun.COM 4947836SJohn.Forte@Sun.COM /** 4957836SJohn.Forte@Sun.COM * A nul terminated ASCII string containing the name of the vendor that 4967836SJohn.Forte@Sun.COM * created the binary version of the library. 4977836SJohn.Forte@Sun.COM */ 4987836SJohn.Forte@Sun.COM IMA_WCHAR vendor[256]; 4997836SJohn.Forte@Sun.COM 5007836SJohn.Forte@Sun.COM /** 5017836SJohn.Forte@Sun.COM * A nul terminated ASCII string containing the implementation version 5027836SJohn.Forte@Sun.COM * of the library from the vendor specified in the 'vendor' field. 5037836SJohn.Forte@Sun.COM */ 5047836SJohn.Forte@Sun.COM IMA_WCHAR implementationVersion[256]; 5057836SJohn.Forte@Sun.COM 5067836SJohn.Forte@Sun.COM /** 5077836SJohn.Forte@Sun.COM * A nul terminated ASCII string ideally containing the path and file 5087836SJohn.Forte@Sun.COM * name of the library that is being used by the currently executing 5097836SJohn.Forte@Sun.COM * process can be found. If the path cannot be determined then it is 5107836SJohn.Forte@Sun.COM * acceptable to fill this field with only the name (and extension if 5117836SJohn.Forte@Sun.COM * applicable) of the file of the library. If this cannot be determined 5127836SJohn.Forte@Sun.COM * then this field should be an empty string. 5137836SJohn.Forte@Sun.COM */ 5147836SJohn.Forte@Sun.COM IMA_WCHAR fileName[256]; 5157836SJohn.Forte@Sun.COM 5167836SJohn.Forte@Sun.COM /** 5177836SJohn.Forte@Sun.COM * The time and date that the library that is executing was built. 5187836SJohn.Forte@Sun.COM */ 5197836SJohn.Forte@Sun.COM IMA_DATETIME buildTime; 5207836SJohn.Forte@Sun.COM 5217836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 5227836SJohn.Forte@Sun.COM } IMA_LIBRARY_PROPERTIES; 5237836SJohn.Forte@Sun.COM 5247836SJohn.Forte@Sun.COM 5257836SJohn.Forte@Sun.COM 5267836SJohn.Forte@Sun.COM /** 5277836SJohn.Forte@Sun.COM ******************************************************************************* 5287836SJohn.Forte@Sun.COM * 5297836SJohn.Forte@Sun.COM * Declaration of the IMA_PLUGIN_PROPERTIES structure 5307836SJohn.Forte@Sun.COM * 5317836SJohn.Forte@Sun.COM ******************************************************************************* 5327836SJohn.Forte@Sun.COM */ 5337836SJohn.Forte@Sun.COM typedef struct _IMA_PLUGIN_PROPERTIES 5347836SJohn.Forte@Sun.COM { 5357836SJohn.Forte@Sun.COM IMA_UINT supportedImaVersion; 5367836SJohn.Forte@Sun.COM IMA_WCHAR vendor[256]; 5377836SJohn.Forte@Sun.COM IMA_WCHAR implementationVersion[256]; 5387836SJohn.Forte@Sun.COM IMA_WCHAR fileName[256]; 5397836SJohn.Forte@Sun.COM IMA_DATETIME buildTime; 5407836SJohn.Forte@Sun.COM 5417836SJohn.Forte@Sun.COM IMA_BOOL lhbasCanBeCreatedAndDestroyed; 5427836SJohn.Forte@Sun.COM 5437836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 5447836SJohn.Forte@Sun.COM 5457836SJohn.Forte@Sun.COM } IMA_PLUGIN_PROPERTIES; 5467836SJohn.Forte@Sun.COM 5477836SJohn.Forte@Sun.COM 5487836SJohn.Forte@Sun.COM typedef struct _IMA_IP_ADDRESS 5497836SJohn.Forte@Sun.COM { 5507836SJohn.Forte@Sun.COM IMA_BOOL ipv4Address; 5517836SJohn.Forte@Sun.COM IMA_BYTE ipAddress[16]; 5527836SJohn.Forte@Sun.COM 5537836SJohn.Forte@Sun.COM } IMA_IP_ADDRESS; 5547836SJohn.Forte@Sun.COM 5557836SJohn.Forte@Sun.COM typedef struct _IMA_ADDRESS_KEY 5567836SJohn.Forte@Sun.COM { 5577836SJohn.Forte@Sun.COM IMA_IP_ADDRESS ipAddress; 5587836SJohn.Forte@Sun.COM IMA_UINT16 portNumber; 5597836SJohn.Forte@Sun.COM 5607836SJohn.Forte@Sun.COM } IMA_ADDRESS_KEY; 5617836SJohn.Forte@Sun.COM 5627836SJohn.Forte@Sun.COM typedef struct _IMA_ADDRESS_KEYS 5637836SJohn.Forte@Sun.COM { 5647836SJohn.Forte@Sun.COM IMA_UINT addressKeyCount; 5657836SJohn.Forte@Sun.COM IMA_ADDRESS_KEY addressKeys[1]; 5667836SJohn.Forte@Sun.COM 5677836SJohn.Forte@Sun.COM } IMA_ADDRESS_KEYS; 5687836SJohn.Forte@Sun.COM 5697836SJohn.Forte@Sun.COM typedef struct _IMA_ADDRESS_KEY_PROPERTIES 5707836SJohn.Forte@Sun.COM { 5717836SJohn.Forte@Sun.COM IMA_UINT addressKeyCount; 5727836SJohn.Forte@Sun.COM IMA_ADDRESS_KEY addressKeys[1]; 5737836SJohn.Forte@Sun.COM 5747836SJohn.Forte@Sun.COM } IMA_ADDRESS_KEY_PROPERTIES; 5757836SJohn.Forte@Sun.COM 5767836SJohn.Forte@Sun.COM typedef struct _IMA_IP_PROPERTIES 5777836SJohn.Forte@Sun.COM { 5787836SJohn.Forte@Sun.COM IMA_BOOL ipConfigurationMethodSettable; 5797836SJohn.Forte@Sun.COM IMA_BOOL dhcpConfigurationEnabled; 5807836SJohn.Forte@Sun.COM 5817836SJohn.Forte@Sun.COM IMA_BOOL subnetMaskSettable; 5827836SJohn.Forte@Sun.COM IMA_BOOL subnetMaskValid; 5837836SJohn.Forte@Sun.COM IMA_IP_ADDRESS subnetMask; 5847836SJohn.Forte@Sun.COM 5857836SJohn.Forte@Sun.COM IMA_BOOL defaultGatewaySettable; 5867836SJohn.Forte@Sun.COM IMA_BOOL defaultGatewayValid; 5877836SJohn.Forte@Sun.COM IMA_IP_ADDRESS defaultGateway; 5887836SJohn.Forte@Sun.COM 5897836SJohn.Forte@Sun.COM IMA_BOOL primaryDnsServerAddressSettable; 5907836SJohn.Forte@Sun.COM IMA_BOOL primaryDnsServerAddressValid; 5917836SJohn.Forte@Sun.COM IMA_IP_ADDRESS primaryDnsServerAddress; 5927836SJohn.Forte@Sun.COM 5937836SJohn.Forte@Sun.COM IMA_BOOL alternateDnsServerAddressSettable; 5947836SJohn.Forte@Sun.COM IMA_BOOL alternateDnsServerAddressValid; 5957836SJohn.Forte@Sun.COM IMA_IP_ADDRESS alternateDnsServerAddress; 5967836SJohn.Forte@Sun.COM 5977836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 5987836SJohn.Forte@Sun.COM 5997836SJohn.Forte@Sun.COM } IMA_IP_PROPERTIES; 6007836SJohn.Forte@Sun.COM 6017836SJohn.Forte@Sun.COM typedef struct _IMA_HOST_ID 6027836SJohn.Forte@Sun.COM { 6037836SJohn.Forte@Sun.COM IMA_BOOL hostnameInUse; 6047836SJohn.Forte@Sun.COM union { 6057836SJohn.Forte@Sun.COM 6067836SJohn.Forte@Sun.COM IMA_HOST_NAME hostname; 6077836SJohn.Forte@Sun.COM IMA_IP_ADDRESS ipAddress; 6087836SJohn.Forte@Sun.COM 6097836SJohn.Forte@Sun.COM } id; 6107836SJohn.Forte@Sun.COM 6117836SJohn.Forte@Sun.COM } IMA_HOST_ID; 6127836SJohn.Forte@Sun.COM 6137836SJohn.Forte@Sun.COM typedef struct _IMA_TARGET_ADDRESS 6147836SJohn.Forte@Sun.COM { 6157836SJohn.Forte@Sun.COM IMA_HOST_ID hostnameIpAddress; 6167836SJohn.Forte@Sun.COM IMA_UINT16 portNumber; 6177836SJohn.Forte@Sun.COM 6187836SJohn.Forte@Sun.COM } IMA_TARGET_ADDRESS; 6197836SJohn.Forte@Sun.COM 6207836SJohn.Forte@Sun.COM /** 6217836SJohn.Forte@Sun.COM ******************************************************************************* 6227836SJohn.Forte@Sun.COM * 6237836SJohn.Forte@Sun.COM * Declaration of the IMA_NODE_NAME type 6247836SJohn.Forte@Sun.COM * 6257836SJohn.Forte@Sun.COM ******************************************************************************* 6267836SJohn.Forte@Sun.COM */ 6277836SJohn.Forte@Sun.COM #define IMA_NODE_NAME_LEN 224 6287836SJohn.Forte@Sun.COM typedef IMA_WCHAR IMA_NODE_NAME[IMA_NODE_NAME_LEN]; 6297836SJohn.Forte@Sun.COM 6307836SJohn.Forte@Sun.COM 6317836SJohn.Forte@Sun.COM 6327836SJohn.Forte@Sun.COM /** 6337836SJohn.Forte@Sun.COM ******************************************************************************* 6347836SJohn.Forte@Sun.COM * 6357836SJohn.Forte@Sun.COM * Declaration of the IMA_NODE_ALIAS type 6367836SJohn.Forte@Sun.COM * 6377836SJohn.Forte@Sun.COM ******************************************************************************* 6387836SJohn.Forte@Sun.COM */ 6397836SJohn.Forte@Sun.COM #define IMA_NODE_ALIAS_LEN 256 6407836SJohn.Forte@Sun.COM typedef IMA_WCHAR IMA_NODE_ALIAS[IMA_NODE_ALIAS_LEN]; 6417836SJohn.Forte@Sun.COM 6427836SJohn.Forte@Sun.COM 6437836SJohn.Forte@Sun.COM 6447836SJohn.Forte@Sun.COM /** 6457836SJohn.Forte@Sun.COM ******************************************************************************* 6467836SJohn.Forte@Sun.COM * 6477836SJohn.Forte@Sun.COM * Declaration of the IMA_DOMAIN_NAME type 6487836SJohn.Forte@Sun.COM * 6497836SJohn.Forte@Sun.COM * A variable of this type may be formatted in any of the following four ways: 6507836SJohn.Forte@Sun.COM * 1. An empty string, which indicates that no host or IP address is 6517836SJohn.Forte@Sun.COM * specified 6527836SJohn.Forte@Sun.COM * 2. A DNS host name 6537836SJohn.Forte@Sun.COM * 3. A dotted-decimal IPv4 address 6547836SJohn.Forte@Sun.COM * 4. A bracketed IPv6 address as specified in RFC 2732 6557836SJohn.Forte@Sun.COM * 6567836SJohn.Forte@Sun.COM * In all cases a domain name is terminated by a nul character. 6577836SJohn.Forte@Sun.COM * This type is used by several APIs: IMA_SetPhbaSnsDiscovery(), 6587836SJohn.Forte@Sun.COM * IMA_SetNetworkPortalIpAddress(), and indirectly by 6597836SJohn.Forte@Sun.COM * IMA_GetPhbaDiscoveryProperties(). 6607836SJohn.Forte@Sun.COM * 6617836SJohn.Forte@Sun.COM ******************************************************************************* 6627836SJohn.Forte@Sun.COM */ 6637836SJohn.Forte@Sun.COM typedef wchar_t IMA_DOMAIN_NAME[256]; 6647836SJohn.Forte@Sun.COM 6657836SJohn.Forte@Sun.COM typedef struct _IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES 6667836SJohn.Forte@Sun.COM { 6677836SJohn.Forte@Sun.COM IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType; 6687836SJohn.Forte@Sun.COM IMA_WCHAR version[32]; 6697836SJohn.Forte@Sun.COM IMA_WCHAR description[512]; 6707836SJohn.Forte@Sun.COM IMA_XBOOL upgrade; 6717836SJohn.Forte@Sun.COM } IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES; 6727836SJohn.Forte@Sun.COM 6737836SJohn.Forte@Sun.COM 6747836SJohn.Forte@Sun.COM /** 6757836SJohn.Forte@Sun.COM ******************************************************************************* 6767836SJohn.Forte@Sun.COM * 6777836SJohn.Forte@Sun.COM * Declaration of the IMA_NODE_PROPERTIES structure 6787836SJohn.Forte@Sun.COM * 6797836SJohn.Forte@Sun.COM * This structure is returned by the IMA_GetNodeProperties() API. 6807836SJohn.Forte@Sun.COM * 6817836SJohn.Forte@Sun.COM * NOTE: It is possible for both 'runningInInitiatorMode' and 6827836SJohn.Forte@Sun.COM * 'runningInTargetMode' to be set to @c IMA_TRUE. This means that 6837836SJohn.Forte@Sun.COM * the node is operating both as an initiator and as a target. 6847836SJohn.Forte@Sun.COM * 6857836SJohn.Forte@Sun.COM ******************************************************************************* 6867836SJohn.Forte@Sun.COM */ 6877836SJohn.Forte@Sun.COM typedef struct _IMA_NODE_PROPERTIES 6887836SJohn.Forte@Sun.COM { 6897836SJohn.Forte@Sun.COM /** 6907836SJohn.Forte@Sun.COM * A boolean indicating if the node is running as initiator or not. 6917836SJohn.Forte@Sun.COM */ 6927836SJohn.Forte@Sun.COM IMA_BOOL runningInInitiatorMode; 6937836SJohn.Forte@Sun.COM 6947836SJohn.Forte@Sun.COM /** 6957836SJohn.Forte@Sun.COM * A boolean indicating if the node is running as a target or not. 6967836SJohn.Forte@Sun.COM */ 6977836SJohn.Forte@Sun.COM IMA_BOOL runningInTargetMode; 6987836SJohn.Forte@Sun.COM 6997836SJohn.Forte@Sun.COM /** 7007836SJohn.Forte@Sun.COM * A boolean which indicates if the node's name is set or not. 7017836SJohn.Forte@Sun.COM */ 7027836SJohn.Forte@Sun.COM IMA_BOOL nameValid; 7037836SJohn.Forte@Sun.COM 7047836SJohn.Forte@Sun.COM /** 7057836SJohn.Forte@Sun.COM * A nul terminated Unicode string which contains the name of the node. 7067836SJohn.Forte@Sun.COM * The value in this field is only valid if 'nameValid' is set to 7077836SJohn.Forte@Sun.COM * IMA_TRUE, in which case it will be Unicode NULL terminated. If 7087836SJohn.Forte@Sun.COM * 'nameValid' is set to IMA_FALSE then this field will contain an 7097836SJohn.Forte@Sun.COM * empty string. 7107836SJohn.Forte@Sun.COM */ 7117836SJohn.Forte@Sun.COM IMA_NODE_NAME name; 7127836SJohn.Forte@Sun.COM 7137836SJohn.Forte@Sun.COM /** 7147836SJohn.Forte@Sun.COM * A boolean which indicates if the node's alias is set or not. 7157836SJohn.Forte@Sun.COM */ 7167836SJohn.Forte@Sun.COM IMA_BOOL aliasValid; 7177836SJohn.Forte@Sun.COM 7187836SJohn.Forte@Sun.COM /** 7197836SJohn.Forte@Sun.COM * A nul terminated Unicode string which contains the alias of the node. 7207836SJohn.Forte@Sun.COM * This field is only valid if 'aliasValid' is set to IMA_TRUE, in which 7217836SJohn.Forte@Sun.COM * case it will be Unicode NULL terminated. If 'aliasValid' is set to 7227836SJohn.Forte@Sun.COM * IMA_FALSE then this field will contain an empty string. 7237836SJohn.Forte@Sun.COM */ 7247836SJohn.Forte@Sun.COM IMA_NODE_ALIAS alias; 7257836SJohn.Forte@Sun.COM 7267836SJohn.Forte@Sun.COM /* 7277836SJohn.Forte@Sun.COM * Boolean indicating if both the name and alias are settable using 7287836SJohn.Forte@Sun.COM * IMA_SetNodeName() and IMA_SetNodeAlias(). 7297836SJohn.Forte@Sun.COM */ 7307836SJohn.Forte@Sun.COM IMA_BOOL nameAndAliasSettable; 7317836SJohn.Forte@Sun.COM 7327836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 7337836SJohn.Forte@Sun.COM 7347836SJohn.Forte@Sun.COM } IMA_NODE_PROPERTIES; 7357836SJohn.Forte@Sun.COM 7367836SJohn.Forte@Sun.COM 7377836SJohn.Forte@Sun.COM 7387836SJohn.Forte@Sun.COM /** 7397836SJohn.Forte@Sun.COM ******************************************************************************* 7407836SJohn.Forte@Sun.COM * 7417836SJohn.Forte@Sun.COM * Declaration of the IMA_LHBA_PROPERTIES structure 7427836SJohn.Forte@Sun.COM * 7437836SJohn.Forte@Sun.COM * This structure is returned by the IMA_GetLhbaProperties() API. 7447836SJohn.Forte@Sun.COM * 7457836SJohn.Forte@Sun.COM ******************************************************************************* 7467836SJohn.Forte@Sun.COM */ 7477836SJohn.Forte@Sun.COM typedef struct _IMA_LHBA_PROPERTIES 7487836SJohn.Forte@Sun.COM { 7497836SJohn.Forte@Sun.COM IMA_WCHAR osDeviceName[256]; 7507836SJohn.Forte@Sun.COM IMA_BOOL luExposingSupported; 7517836SJohn.Forte@Sun.COM IMA_BOOL isDestroyable; 7527836SJohn.Forte@Sun.COM 7537836SJohn.Forte@Sun.COM IMA_BOOL staleDataRemovable; 7547836SJohn.Forte@Sun.COM IMA_UINT staleDataSize; 7557836SJohn.Forte@Sun.COM 7567836SJohn.Forte@Sun.COM IMA_BOOL initiatorAuthMethodsSettable; 7577836SJohn.Forte@Sun.COM IMA_BOOL targetAuthMethodsSettable; 7587836SJohn.Forte@Sun.COM 7597836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 7607836SJohn.Forte@Sun.COM } IMA_LHBA_PROPERTIES; 7617836SJohn.Forte@Sun.COM 7627836SJohn.Forte@Sun.COM 7637836SJohn.Forte@Sun.COM 7647836SJohn.Forte@Sun.COM /** 7657836SJohn.Forte@Sun.COM ******************************************************************************* 7667836SJohn.Forte@Sun.COM * 7677836SJohn.Forte@Sun.COM * Declaration of the IMA_ULP_xxx constants 7687836SJohn.Forte@Sun.COM * 7697836SJohn.Forte@Sun.COM ******************************************************************************* 7707836SJohn.Forte@Sun.COM */ 7717836SJohn.Forte@Sun.COM #define IMA_ULP_TCP 0x01 7727836SJohn.Forte@Sun.COM #define IMA_ULP_SCTP 0x02 7737836SJohn.Forte@Sun.COM #define IMA_ULP_UDP 0x04 7747836SJohn.Forte@Sun.COM 7757836SJohn.Forte@Sun.COM 7767836SJohn.Forte@Sun.COM 7777836SJohn.Forte@Sun.COM /** 7787836SJohn.Forte@Sun.COM ******************************************************************************* 7797836SJohn.Forte@Sun.COM * 7807836SJohn.Forte@Sun.COM * Declaration of the IMA_MIN_MAX_VALUE structure 7817836SJohn.Forte@Sun.COM * 7827836SJohn.Forte@Sun.COM * Note: If the 'currentValueValid' field is IMA_FALSE then the value of 7837836SJohn.Forte@Sun.COM * 'settable' must also be set to IMA_FALSE. 7847836SJohn.Forte@Sun.COM * 7857836SJohn.Forte@Sun.COM * Note: The fields in this structure contain values which are defined by the 7867836SJohn.Forte@Sun.COM * implementation and not by the iSCSI specification. It is possible 7877836SJohn.Forte@Sun.COM * that an implementation may be more or less restrictive in the values 7887836SJohn.Forte@Sun.COM * that it can accept than the iSCSI specification allows. 7897836SJohn.Forte@Sun.COM * 7907836SJohn.Forte@Sun.COM * Note: An example of how to use 'incrementValue': Suppose that a structure is 7917836SJohn.Forte@Sun.COM * obtained where 'currentValueValid' is IMA_TRUE, 'settable' is 7927836SJohn.Forte@Sun.COM * IMA_TRUE, 'currentValue' is 50, 'defaultValue' is 50, 'minimumValue' 7937836SJohn.Forte@Sun.COM * is 30, 'maximumValue' is 70 and 'incrementValue' is 10. In this case, 7947836SJohn.Forte@Sun.COM * the possible values that the property can be set to are 30, 40, 50, 7957836SJohn.Forte@Sun.COM * 60, and 70. The new value must be the current value plus or minus 7967836SJohn.Forte@Sun.COM * some multiple of 'incrementValue'. 7977836SJohn.Forte@Sun.COM * 7987836SJohn.Forte@Sun.COM ******************************************************************************* 7997836SJohn.Forte@Sun.COM */ 8007836SJohn.Forte@Sun.COM typedef struct _IMA_MIN_MAX_VALUE 8017836SJohn.Forte@Sun.COM { 8027836SJohn.Forte@Sun.COM /** 8037836SJohn.Forte@Sun.COM * A boolean indicating if the @a currentValue field contains a valid value. 8047836SJohn.Forte@Sun.COM */ 8057836SJohn.Forte@Sun.COM IMA_BOOL currentValueValid; 8067836SJohn.Forte@Sun.COM 8077836SJohn.Forte@Sun.COM /** 8087836SJohn.Forte@Sun.COM * Indicates if the corresponding property is settable. If this field 8097836SJohn.Forte@Sun.COM * has the value IMA_TRUE then the 'defaultValue', 'minimumValue', 8107836SJohn.Forte@Sun.COM * 'maximumValue', and 'incrementValue' fields shall contain valid 8117836SJohn.Forte@Sun.COM * values. If this field has the value IMA_FALSE then these fields 8127836SJohn.Forte@Sun.COM * have undefined values. 8137836SJohn.Forte@Sun.COM */ 8147836SJohn.Forte@Sun.COM IMA_BOOL settable; 8157836SJohn.Forte@Sun.COM 8167836SJohn.Forte@Sun.COM /** 8177836SJohn.Forte@Sun.COM * If currentValueValid has the value IMA_TRUE then this field contains 8187836SJohn.Forte@Sun.COM * the current value of the associated property. If 'currentValueValid' has 8197836SJohn.Forte@Sun.COM * the value IMA_FALSE then the value of this field is undefined. 8207836SJohn.Forte@Sun.COM */ 8217836SJohn.Forte@Sun.COM IMA_UINT32 currentValue; 8227836SJohn.Forte@Sun.COM 8237836SJohn.Forte@Sun.COM /** 8247836SJohn.Forte@Sun.COM * If 'settable' has the value IMA_TRUE then this field contains the 8257836SJohn.Forte@Sun.COM * implementation's default value of the associated property. If 'settable' 8267836SJohn.Forte@Sun.COM * has the value IMA_FALSE then the value of this field is undefined. 8277836SJohn.Forte@Sun.COM */ 8287836SJohn.Forte@Sun.COM IMA_UINT32 defaultValue; 8297836SJohn.Forte@Sun.COM 8307836SJohn.Forte@Sun.COM /** 8317836SJohn.Forte@Sun.COM * If 'settable' has the value IMA_TRUE then this field contains the 8327836SJohn.Forte@Sun.COM * implementation's minimum value of the associated property. If 'settable' 8337836SJohn.Forte@Sun.COM * has the value IMA_FALSE then the value of this field is undefined. 8347836SJohn.Forte@Sun.COM */ 8357836SJohn.Forte@Sun.COM IMA_UINT32 minimumValue; 8367836SJohn.Forte@Sun.COM 8377836SJohn.Forte@Sun.COM /** 8387836SJohn.Forte@Sun.COM * If 'settable' has the value IMA_TRUE then this field contains the 8397836SJohn.Forte@Sun.COM * implementation's maximum value of the associated property. If 'settable' 8407836SJohn.Forte@Sun.COM * has the value IMA_FALSE then the value of this field is undefined. 8417836SJohn.Forte@Sun.COM */ 8427836SJohn.Forte@Sun.COM IMA_UINT32 maximumValue; 8437836SJohn.Forte@Sun.COM 8447836SJohn.Forte@Sun.COM /** 8457836SJohn.Forte@Sun.COM * If 'settable' has the value IMA_TRUE then this field contains a value 8467836SJohn.Forte@Sun.COM * which can be added to or subtracted from 'currentValue' to obtain other 8477836SJohn.Forte@Sun.COM * possible values of the associated property. If 'settable' has the value 8487836SJohn.Forte@Sun.COM * IMA_FALSE then the value of this field is undefined. 8497836SJohn.Forte@Sun.COM */ 8507836SJohn.Forte@Sun.COM IMA_UINT32 incrementValue; 8517836SJohn.Forte@Sun.COM 8527836SJohn.Forte@Sun.COM } IMA_MIN_MAX_VALUE; 8537836SJohn.Forte@Sun.COM 8547836SJohn.Forte@Sun.COM typedef struct _IMA_BOOL_VALUE 8557836SJohn.Forte@Sun.COM { 8567836SJohn.Forte@Sun.COM IMA_BOOL currentValueValid; 8577836SJohn.Forte@Sun.COM IMA_BOOL settable; 8587836SJohn.Forte@Sun.COM IMA_BOOL currentValue; 8597836SJohn.Forte@Sun.COM IMA_BOOL defaultValue; 8607836SJohn.Forte@Sun.COM } IMA_BOOL_VALUE; 8617836SJohn.Forte@Sun.COM 8627836SJohn.Forte@Sun.COM /** 8637836SJohn.Forte@Sun.COM ******************************************************************************* 8647836SJohn.Forte@Sun.COM * 8657836SJohn.Forte@Sun.COM * Declaration of the IMA_PHBA_PROPERTIES structure 8667836SJohn.Forte@Sun.COM * 8677836SJohn.Forte@Sun.COM * This structure is returned by the IMA_GetPhbaProperties() API. 8687836SJohn.Forte@Sun.COM * 8697836SJohn.Forte@Sun.COM * Note: Both 'isInitiator' and 'isTarget' cannot be set to IMA_FALSE as this 8707836SJohn.Forte@Sun.COM * would mean that the PHBA was not functioning as either an initiator or 8717836SJohn.Forte@Sun.COM * target, which means that its not functioning at all. 8727836SJohn.Forte@Sun.COM * 8737836SJohn.Forte@Sun.COM ******************************************************************************* 8747836SJohn.Forte@Sun.COM */ 8757836SJohn.Forte@Sun.COM typedef struct _IMA_PHBA_PROPERTIES 8767836SJohn.Forte@Sun.COM { 8777836SJohn.Forte@Sun.COM /** 8787836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the name of the vendor 8797836SJohn.Forte@Sun.COM * of a PHBA. If the first character in this field is nul then the 8807836SJohn.Forte@Sun.COM * vendor is unknown. 8817836SJohn.Forte@Sun.COM */ 8827836SJohn.Forte@Sun.COM IMA_WCHAR vendor[64]; 8837836SJohn.Forte@Sun.COM 8847836SJohn.Forte@Sun.COM /** 8857836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the name of the model of 8867836SJohn.Forte@Sun.COM * a PHBA. If the first character in this field is nul then the model is 8877836SJohn.Forte@Sun.COM * unknown. 8887836SJohn.Forte@Sun.COM */ 8897836SJohn.Forte@Sun.COM IMA_WCHAR model[256]; 8907836SJohn.Forte@Sun.COM 8917836SJohn.Forte@Sun.COM /** 8927836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains a description of a PHBA. 8937836SJohn.Forte@Sun.COM * This is a user friendly description of the PHBA. If the first character 8947836SJohn.Forte@Sun.COM * in this field is nul then there is no description. 8957836SJohn.Forte@Sun.COM */ 8967836SJohn.Forte@Sun.COM IMA_WCHAR description[256]; 8977836SJohn.Forte@Sun.COM 8987836SJohn.Forte@Sun.COM /** 8997836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the serial number of a 9007836SJohn.Forte@Sun.COM * PHBA. If the first character in this field is nul then the serial 9017836SJohn.Forte@Sun.COM * number is unknown. 9027836SJohn.Forte@Sun.COM */ 9037836SJohn.Forte@Sun.COM IMA_WCHAR serialNumber[64]; 9047836SJohn.Forte@Sun.COM 9057836SJohn.Forte@Sun.COM /** 9067836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the hardware version of 9077836SJohn.Forte@Sun.COM * a PHBA. If the first character in this field is nul then the hardware 9087836SJohn.Forte@Sun.COM * version is unknown. 9097836SJohn.Forte@Sun.COM */ 9107836SJohn.Forte@Sun.COM IMA_WCHAR hardwareVersion[256]; 9117836SJohn.Forte@Sun.COM 9127836SJohn.Forte@Sun.COM /** 9137836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the ASIC version of a 9147836SJohn.Forte@Sun.COM * PHBA. If the first character in this field is nul then the ASIC 9157836SJohn.Forte@Sun.COM * version is unknown or is not applicable. 9167836SJohn.Forte@Sun.COM */ 9177836SJohn.Forte@Sun.COM IMA_WCHAR asicVersion[256]; 9187836SJohn.Forte@Sun.COM 9197836SJohn.Forte@Sun.COM /** 9207836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the firmware version of 9217836SJohn.Forte@Sun.COM * a PHBA. If the first character in this field is nul then the firmware 9227836SJohn.Forte@Sun.COM * version is unknown or is not applicable. 9237836SJohn.Forte@Sun.COM */ 9247836SJohn.Forte@Sun.COM IMA_WCHAR firmwareVersion[256]; 9257836SJohn.Forte@Sun.COM 9267836SJohn.Forte@Sun.COM /** 9277836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the option ROM version 9287836SJohn.Forte@Sun.COM * of a PHBA. If the first character in this field is nul then the option 9297836SJohn.Forte@Sun.COM * ROM version is unknown or is not applicable. 9307836SJohn.Forte@Sun.COM */ 9317836SJohn.Forte@Sun.COM IMA_WCHAR optionRomVersion[256]; 9327836SJohn.Forte@Sun.COM 9337836SJohn.Forte@Sun.COM /** 9347836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the name of the driver 9357836SJohn.Forte@Sun.COM * controlling a PHBA. If the first character in this field is nul then 9367836SJohn.Forte@Sun.COM * the name of the driver is unknown. 9377836SJohn.Forte@Sun.COM */ 9387836SJohn.Forte@Sun.COM IMA_WCHAR driverName[256]; 9397836SJohn.Forte@Sun.COM 9407836SJohn.Forte@Sun.COM /** 9417836SJohn.Forte@Sun.COM * A nul terminated ASCII string which contains the version of the driver 9427836SJohn.Forte@Sun.COM * specified in 'driverName'. If the first character in this field is nul 9437836SJohn.Forte@Sun.COM * then the version of the driver is unknown. 9447836SJohn.Forte@Sun.COM * 9457836SJohn.Forte@Sun.COM * This field can have a known value only if @a driverName has a known 9467836SJohn.Forte@Sun.COM * value as well. 9477836SJohn.Forte@Sun.COM */ 9487836SJohn.Forte@Sun.COM IMA_WCHAR driverVersion[256]; 9497836SJohn.Forte@Sun.COM 9507836SJohn.Forte@Sun.COM /** 9517836SJohn.Forte@Sun.COM * A field containing flags which indicate what upper level protocols 9527836SJohn.Forte@Sun.COM * are supported by a PHBA. Examples of upper level protocols include: 9537836SJohn.Forte@Sun.COM * 9547836SJohn.Forte@Sun.COM * - TCP, represented by IMA_ULP_TCP 9557836SJohn.Forte@Sun.COM * - SCTP, represented by IMA_ULP_SCTP 9567836SJohn.Forte@Sun.COM * - UDP, represented by IMA_ULP_UDP 9577836SJohn.Forte@Sun.COM */ 9587836SJohn.Forte@Sun.COM IMA_UINT supportedUlps; 9597836SJohn.Forte@Sun.COM 9607836SJohn.Forte@Sun.COM /** 9617836SJohn.Forte@Sun.COM * A extended boolean which indicates if a PHBA supports executing SCSI 9627836SJohn.Forte@Sun.COM * commands which cause bidirectional transfers. 9637836SJohn.Forte@Sun.COM * 9647836SJohn.Forte@Sun.COM * Note: The value of this field applies to the entire stack: 9657836SJohn.Forte@Sun.COM * the hardware, ASIC, firmware, driver, etc. All must support SCSI 9667836SJohn.Forte@Sun.COM * commands which cause bidirectional transfers for this field to be 9677836SJohn.Forte@Sun.COM * set to IMA_TRUE. 9687836SJohn.Forte@Sun.COM */ 9697836SJohn.Forte@Sun.COM IMA_XBOOL bidirectionalTransfersSupported; 9707836SJohn.Forte@Sun.COM 9717836SJohn.Forte@Sun.COM /** 9727836SJohn.Forte@Sun.COM * The maximum length, in bytes, of a CDB that can be transferred by 9737836SJohn.Forte@Sun.COM * this PHBA. If this field has a value of zero that indicates that 9747836SJohn.Forte@Sun.COM * this value is unknown. 9757836SJohn.Forte@Sun.COM * 9767836SJohn.Forte@Sun.COM * Note: The value of this field applies to the entire stack: 9777836SJohn.Forte@Sun.COM * the hardware, ASIC, firmware, driver, etc. All must support the 9787836SJohn.Forte@Sun.COM * maximum CDB length returned in this field. 9797836SJohn.Forte@Sun.COM */ 9807836SJohn.Forte@Sun.COM IMA_UINT maximumCdbLength; 9817836SJohn.Forte@Sun.COM 9827836SJohn.Forte@Sun.COM /** 9837836SJohn.Forte@Sun.COM * An extended boolean which indicates if a PHBA can also function as 9847836SJohn.Forte@Sun.COM * a standard NIC concurrently with functioning as an iSCSI PHBA. 9857836SJohn.Forte@Sun.COM */ 9867836SJohn.Forte@Sun.COM IMA_XBOOL canBeNic; 9877836SJohn.Forte@Sun.COM 9887836SJohn.Forte@Sun.COM /** 9897836SJohn.Forte@Sun.COM * A extended boolean which indicates if a PHBA is functioning as a 9907836SJohn.Forte@Sun.COM * standard NIC concurrently with functioning as an iSCSI PHBA. 9917836SJohn.Forte@Sun.COM */ 9927836SJohn.Forte@Sun.COM IMA_XBOOL isNic; 9937836SJohn.Forte@Sun.COM 9947836SJohn.Forte@Sun.COM /** 9957836SJohn.Forte@Sun.COM * An extended boolean indicating if the PHBA is functioning as an 9967836SJohn.Forte@Sun.COM * initiator. 9977836SJohn.Forte@Sun.COM */ 9987836SJohn.Forte@Sun.COM IMA_XBOOL isInitiator; 9997836SJohn.Forte@Sun.COM 10007836SJohn.Forte@Sun.COM /** 10017836SJohn.Forte@Sun.COM * An extended boolean indicating if the PHBA is functioning as a target. 10027836SJohn.Forte@Sun.COM */ 10037836SJohn.Forte@Sun.COM IMA_XBOOL isTarget; 10047836SJohn.Forte@Sun.COM 10057836SJohn.Forte@Sun.COM /** 10067836SJohn.Forte@Sun.COM * An extended boolean indicating if the PHBA is using a TCP offload engine. 10077836SJohn.Forte@Sun.COM * 10087836SJohn.Forte@Sun.COM * Note: This value should only be set to @c IMA_TRUE if a TCP offload 10097836SJohn.Forte@Sun.COM * engine is present and is being used. If it can be determined that a 10107836SJohn.Forte@Sun.COM * TCP offload engine is present, but it cannot be determined if that 10117836SJohn.Forte@Sun.COM * offload engine is being used then this value should be set to 10127836SJohn.Forte@Sun.COM * IMA_UNKNOWN. 10137836SJohn.Forte@Sun.COM */ 10147836SJohn.Forte@Sun.COM IMA_XBOOL usingTcpOffloadEngine; 10157836SJohn.Forte@Sun.COM 10167836SJohn.Forte@Sun.COM /** 10177836SJohn.Forte@Sun.COM * An extended boolean indicating if the PHBA is using a iSCSI offload 10187836SJohn.Forte@Sun.COM * engine. 10197836SJohn.Forte@Sun.COM * 10207836SJohn.Forte@Sun.COM * Note: This value should only be set to @c IMA_TRUE if a iSCSI offload 10217836SJohn.Forte@Sun.COM * engine is present and is being used. If it can be determined that an 10227836SJohn.Forte@Sun.COM * iSCSI offload engine is present, but it cannot be determined if that 10237836SJohn.Forte@Sun.COM * offload engine is being used then this value should be set to 10247836SJohn.Forte@Sun.COM * IMA_UNKNOWN. 10257836SJohn.Forte@Sun.COM */ 10267836SJohn.Forte@Sun.COM IMA_XBOOL usingIscsiOffloadEngine; 10277836SJohn.Forte@Sun.COM 10287836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 10297836SJohn.Forte@Sun.COM 10307836SJohn.Forte@Sun.COM } IMA_PHBA_PROPERTIES; 10317836SJohn.Forte@Sun.COM 10327836SJohn.Forte@Sun.COM /** 10337836SJohn.Forte@Sun.COM ******************************************************************************* 10347836SJohn.Forte@Sun.COM * 10357836SJohn.Forte@Sun.COM * Declaration of the IMA_DISCOVERY_PROPERTIES structure 10367836SJohn.Forte@Sun.COM * 10377836SJohn.Forte@Sun.COM ******************************************************************************* 10387836SJohn.Forte@Sun.COM */ 10397836SJohn.Forte@Sun.COM typedef struct _IMA_DISCOVERY_PROPERTIES 10407836SJohn.Forte@Sun.COM { 10417836SJohn.Forte@Sun.COM IMA_BOOL iSnsDiscoverySettable; 10427836SJohn.Forte@Sun.COM IMA_XBOOL iSnsDiscoveryEnabled; 10437836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD iSnsDiscoveryMethod; 10447836SJohn.Forte@Sun.COM IMA_HOST_ID iSnsHost; 10457836SJohn.Forte@Sun.COM 10467836SJohn.Forte@Sun.COM IMA_BOOL slpDiscoverySettable; 10477836SJohn.Forte@Sun.COM IMA_XBOOL slpDiscoveryEnabled; 10487836SJohn.Forte@Sun.COM 10497836SJohn.Forte@Sun.COM IMA_BOOL staticDiscoverySettable; 10507836SJohn.Forte@Sun.COM IMA_XBOOL staticDiscoveryEnabled; 10517836SJohn.Forte@Sun.COM 10527836SJohn.Forte@Sun.COM IMA_BOOL sendTargetsDiscoverySettable; 10537836SJohn.Forte@Sun.COM IMA_XBOOL sendTargetsDiscoveryEnabled; 10547836SJohn.Forte@Sun.COM 10557836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 10567836SJohn.Forte@Sun.COM } IMA_DISCOVERY_PROPERTIES; 10577836SJohn.Forte@Sun.COM 10587836SJohn.Forte@Sun.COM 10597836SJohn.Forte@Sun.COM typedef struct _IMA_PHBA_DOWNLOAD_PROPERTIES 10607836SJohn.Forte@Sun.COM { 10617836SJohn.Forte@Sun.COM IMA_BOOL isPhbaDownloadFileSupported; 10627836SJohn.Forte@Sun.COM IMA_BOOL optionRomDownloadSupported; 10637836SJohn.Forte@Sun.COM IMA_BOOL firmwareDownloadSupported; 10647836SJohn.Forte@Sun.COM 10657836SJohn.Forte@Sun.COM IMA_BYTE reserved[32]; 10667836SJohn.Forte@Sun.COM } IMA_PHBA_DOWNLOAD_PROPERTIES; 10677836SJohn.Forte@Sun.COM 10687836SJohn.Forte@Sun.COM typedef struct _IMA_IPSEC_PROPERTIES 10697836SJohn.Forte@Sun.COM { 10707836SJohn.Forte@Sun.COM IMA_BOOL ipsecSupported; 10717836SJohn.Forte@Sun.COM IMA_BOOL implementedInHardware; 10727836SJohn.Forte@Sun.COM IMA_BOOL implementedInSoftware; 10737836SJohn.Forte@Sun.COM 10747836SJohn.Forte@Sun.COM IMA_BYTE reserved[32]; 10757836SJohn.Forte@Sun.COM 10767836SJohn.Forte@Sun.COM } IMA_IPSEC_PROPERTIES; 10777836SJohn.Forte@Sun.COM 10787836SJohn.Forte@Sun.COM typedef struct _IMA_LNP_PROPERTIES 10797836SJohn.Forte@Sun.COM { 10807836SJohn.Forte@Sun.COM IMA_MAC_ADDRESS macAddress; 10817836SJohn.Forte@Sun.COM IMA_BOOL macAddressSettable; 10827836SJohn.Forte@Sun.COM IMA_BYTE reserved[32]; 10837836SJohn.Forte@Sun.COM 10847836SJohn.Forte@Sun.COM } IMA_LNP_PROPERTIES; 10857836SJohn.Forte@Sun.COM 10867836SJohn.Forte@Sun.COM typedef struct _IMA_PNP_PROPERTIES 10877836SJohn.Forte@Sun.COM { 10887836SJohn.Forte@Sun.COM IMA_OID associatedPhbaOid; 10897836SJohn.Forte@Sun.COM 10907836SJohn.Forte@Sun.COM IMA_MAC_ADDRESS macAddress; 10917836SJohn.Forte@Sun.COM IMA_BOOL macAddressSettable; 10927836SJohn.Forte@Sun.COM 10937836SJohn.Forte@Sun.COM IMA_UINT maximumTransferRate; 10947836SJohn.Forte@Sun.COM IMA_UINT currentTransferRate; 10957836SJohn.Forte@Sun.COM 10967836SJohn.Forte@Sun.COM IMA_UINT maximumFrameSize; 10977836SJohn.Forte@Sun.COM 10987836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 10997836SJohn.Forte@Sun.COM } IMA_PNP_PROPERTIES; 11007836SJohn.Forte@Sun.COM 11017836SJohn.Forte@Sun.COM typedef struct _IMA_PNP_STATISTICS 11027836SJohn.Forte@Sun.COM { 11037836SJohn.Forte@Sun.COM IMA_UINT64 bytesSent; 11047836SJohn.Forte@Sun.COM IMA_UINT32 pdusSent; 11057836SJohn.Forte@Sun.COM IMA_UINT64 bytesReceived; 11067836SJohn.Forte@Sun.COM IMA_UINT32 pdusReceived; 11077836SJohn.Forte@Sun.COM 11087836SJohn.Forte@Sun.COM } IMA_PNP_STATISTICS; 11097836SJohn.Forte@Sun.COM 11107836SJohn.Forte@Sun.COM typedef struct _IMA_TARGET_PROPERTIES 11117836SJohn.Forte@Sun.COM { 11127836SJohn.Forte@Sun.COM IMA_OID associatedNodeOid; 11137836SJohn.Forte@Sun.COM IMA_OID associatedLhbaOid; 11147836SJohn.Forte@Sun.COM 11157836SJohn.Forte@Sun.COM IMA_NODE_NAME name; 11167836SJohn.Forte@Sun.COM IMA_NODE_ALIAS alias; 11177836SJohn.Forte@Sun.COM IMA_UINT32 discoveryMethodFlags; 11187836SJohn.Forte@Sun.COM 11197836SJohn.Forte@Sun.COM IMA_BOOL sendTargetsDiscoverySettable; 11207836SJohn.Forte@Sun.COM IMA_BOOL sendTargetsDiscoveryEnabled; 11217836SJohn.Forte@Sun.COM 11227836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 11237836SJohn.Forte@Sun.COM 11247836SJohn.Forte@Sun.COM } IMA_TARGET_PROPERTIES; 11257836SJohn.Forte@Sun.COM 11267836SJohn.Forte@Sun.COM typedef struct _IMA_CONNECTION_PROPERTIES 11277836SJohn.Forte@Sun.COM { 11287836SJohn.Forte@Sun.COM IMA_OID associatedSessionOid; 11297836SJohn.Forte@Sun.COM IMA_UINT16 connectionId; 11307836SJohn.Forte@Sun.COM IMA_DIGEST_TYPE dataDigest; 11317836SJohn.Forte@Sun.COM IMA_DIGEST_TYPE headerDigest; 11327836SJohn.Forte@Sun.COM IMA_BOOL ifMarker; 11337836SJohn.Forte@Sun.COM IMA_UINT32 ifMarkInt; 11347836SJohn.Forte@Sun.COM IMA_UINT32 maxRecvDataSegmentLength; 11357836SJohn.Forte@Sun.COM IMA_UINT32 maxTransmitDataSegmentLength; 11367836SJohn.Forte@Sun.COM IMA_BOOL ofMarker; 11377836SJohn.Forte@Sun.COM IMA_UINT32 ofMarkInt; 11387836SJohn.Forte@Sun.COM } IMA_CONNECTION_PROPERTIES; 11397836SJohn.Forte@Sun.COM 11407836SJohn.Forte@Sun.COM 11417836SJohn.Forte@Sun.COM typedef struct _IMA_SESSION_PROPERTIES 11427836SJohn.Forte@Sun.COM { 11437836SJohn.Forte@Sun.COM IMA_OID associatedLhbaOid; 11447836SJohn.Forte@Sun.COM IMA_AUTHMETHOD authMethod; 11457836SJohn.Forte@Sun.COM IMA_BOOL dataPduInOrder; 11467836SJohn.Forte@Sun.COM IMA_BOOL dataSequenceInOrder; 11477836SJohn.Forte@Sun.COM IMA_UINT16 defaultTime2Retain; 11487836SJohn.Forte@Sun.COM IMA_UINT16 defaultTime2Wait; 11497836SJohn.Forte@Sun.COM IMA_UINT16 errorRecoveryLevel; 11507836SJohn.Forte@Sun.COM IMA_UINT32 firstBurstLength; 11517836SJohn.Forte@Sun.COM IMA_BOOL immediateData; 11527836SJohn.Forte@Sun.COM IMA_BOOL initialR2T; 11537836SJohn.Forte@Sun.COM IMA_BYTE isid[6]; 11547836SJohn.Forte@Sun.COM IMA_UINT32 maxBurstLength; 11557836SJohn.Forte@Sun.COM IMA_UINT16 maxConnections; 11567836SJohn.Forte@Sun.COM IMA_UINT16 maxOutstandingR2T; 11577836SJohn.Forte@Sun.COM IMA_UINT16 targetPortalGroupTag; 11587836SJohn.Forte@Sun.COM IMA_UINT16 tsih; 11597836SJohn.Forte@Sun.COM } IMA_SESSION_PROPERTIES; 11607836SJohn.Forte@Sun.COM 11617836SJohn.Forte@Sun.COM 11627836SJohn.Forte@Sun.COM typedef struct _IMA_TARGET_ERROR_STATISTICS 11637836SJohn.Forte@Sun.COM { 11647836SJohn.Forte@Sun.COM IMA_BOOL loginFailedCountValid; 11657836SJohn.Forte@Sun.COM IMA_UINT32 loginFailedCount; 11667836SJohn.Forte@Sun.COM 11677836SJohn.Forte@Sun.COM IMA_BOOL sessionFailedCountValid; 11687836SJohn.Forte@Sun.COM IMA_UINT32 sessionFailedCount; 11697836SJohn.Forte@Sun.COM 11707836SJohn.Forte@Sun.COM IMA_BOOL headerOrDigestSessionFailedCountValid; 11717836SJohn.Forte@Sun.COM IMA_UINT32 headerOrDigestSessionFailedCount; 11727836SJohn.Forte@Sun.COM 11737836SJohn.Forte@Sun.COM IMA_BOOL timeLimitExceededSessionFailedCountValid; 11747836SJohn.Forte@Sun.COM IMA_UINT32 timeLimitExceededSessionFailedCount; 11757836SJohn.Forte@Sun.COM 11767836SJohn.Forte@Sun.COM IMA_BOOL formatErrorSessionFailedCountValid; 11777836SJohn.Forte@Sun.COM IMA_UINT32 formatErrorSessionFailedCount; 11787836SJohn.Forte@Sun.COM 11797836SJohn.Forte@Sun.COM IMA_BOOL closedConnectionDueToTimeoutCountValid; 11807836SJohn.Forte@Sun.COM IMA_UINT32 closedConnectionDueToTimeoutCount; 11817836SJohn.Forte@Sun.COM 11827836SJohn.Forte@Sun.COM IMA_BOOL lastLoginFailureTimeValid; 11837836SJohn.Forte@Sun.COM IMA_DATETIME lastLoginFailureTime; 11847836SJohn.Forte@Sun.COM 11857836SJohn.Forte@Sun.COM IMA_BYTE reserved[64]; 11867836SJohn.Forte@Sun.COM 11877836SJohn.Forte@Sun.COM } IMA_TARGET_ERROR_STATISTICS; 11887836SJohn.Forte@Sun.COM 11897836SJohn.Forte@Sun.COM typedef struct _IMA_LU_PROPERTIES 11907836SJohn.Forte@Sun.COM { 11917836SJohn.Forte@Sun.COM IMA_OID associatedTargetOid; 11927836SJohn.Forte@Sun.COM IMA_UINT64 targetLun; 11937836SJohn.Forte@Sun.COM 11947836SJohn.Forte@Sun.COM IMA_BOOL exposedToOs; 11957836SJohn.Forte@Sun.COM IMA_DATETIME timeExposedToOs; 11967836SJohn.Forte@Sun.COM 11977836SJohn.Forte@Sun.COM IMA_BOOL osDeviceNameValid; 11987836SJohn.Forte@Sun.COM IMA_WCHAR osDeviceName[64]; 11997836SJohn.Forte@Sun.COM 12007836SJohn.Forte@Sun.COM IMA_BOOL osParallelIdsValid; 12017836SJohn.Forte@Sun.COM IMA_UINT32 osBusNumber; 12027836SJohn.Forte@Sun.COM IMA_UINT32 osTargetId; 12037836SJohn.Forte@Sun.COM IMA_UINT32 osLun; 12047836SJohn.Forte@Sun.COM 12057836SJohn.Forte@Sun.COM IMA_BYTE reserved[128]; 12067836SJohn.Forte@Sun.COM 12077836SJohn.Forte@Sun.COM } IMA_LU_PROPERTIES; 12087836SJohn.Forte@Sun.COM 12097836SJohn.Forte@Sun.COM typedef struct _IMA_STATISTICS_PROPERTIES 12107836SJohn.Forte@Sun.COM { 12117836SJohn.Forte@Sun.COM IMA_BOOL statisticsCollectionSettable; 12127836SJohn.Forte@Sun.COM IMA_BOOL statisticsCollectionEnabled; 12137836SJohn.Forte@Sun.COM 12147836SJohn.Forte@Sun.COM } IMA_STATISTICS_PROPERTIES; 12157836SJohn.Forte@Sun.COM 12167836SJohn.Forte@Sun.COM typedef struct _IMA_DEVICE_STATISTICS 12177836SJohn.Forte@Sun.COM { 12187836SJohn.Forte@Sun.COM IMA_UINT64 scsiPayloadBytesSent; 12197836SJohn.Forte@Sun.COM IMA_UINT64 scsiPayloadBytesReceived; 12207836SJohn.Forte@Sun.COM 12217836SJohn.Forte@Sun.COM IMA_UINT64 iScsiPduBytesSent; 12227836SJohn.Forte@Sun.COM IMA_UINT64 iScsiPduBytesReceived; 12237836SJohn.Forte@Sun.COM 12247836SJohn.Forte@Sun.COM IMA_UINT64 iScsiPdusSent; 12257836SJohn.Forte@Sun.COM IMA_UINT64 iScsiPdusReceived; 12267836SJohn.Forte@Sun.COM 12277836SJohn.Forte@Sun.COM IMA_UINT64 millisecondsSpentSending; 12287836SJohn.Forte@Sun.COM IMA_UINT64 millisecondsSpentReceiving; 12297836SJohn.Forte@Sun.COM 12307836SJohn.Forte@Sun.COM } IMA_DEVICE_STATISTICS; 12317836SJohn.Forte@Sun.COM 12327836SJohn.Forte@Sun.COM typedef struct _IMA_NETWORK_PORTAL_PROPERTIES 12337836SJohn.Forte@Sun.COM { 12347836SJohn.Forte@Sun.COM IMA_IP_ADDRESS ipAddress; 12357836SJohn.Forte@Sun.COM IMA_OID associatedLnp; 12367836SJohn.Forte@Sun.COM 12377836SJohn.Forte@Sun.COM IMA_BYTE reserved[32]; 12387836SJohn.Forte@Sun.COM } IMA_NETWORK_PORTAL_PROPERTIES; 12397836SJohn.Forte@Sun.COM 12407836SJohn.Forte@Sun.COM typedef void (* IMA_OBJECT_VISIBILITY_FN)( 12417836SJohn.Forte@Sun.COM IMA_BOOL becomingVisible, 12427836SJohn.Forte@Sun.COM IMA_OID oid 12437836SJohn.Forte@Sun.COM ); 12447836SJohn.Forte@Sun.COM 12457836SJohn.Forte@Sun.COM typedef void (* IMA_OBJECT_PROPERTY_FN)( 12467836SJohn.Forte@Sun.COM IMA_OID oid 12477836SJohn.Forte@Sun.COM ); 12487836SJohn.Forte@Sun.COM 12497836SJohn.Forte@Sun.COM typedef struct _IMA_CHAP_INITIATOR_AUTHPARMS 12507836SJohn.Forte@Sun.COM { 12517836SJohn.Forte@Sun.COM 12527836SJohn.Forte@Sun.COM IMA_UINT retries; 12537836SJohn.Forte@Sun.COM 12547836SJohn.Forte@Sun.COM IMA_BYTE name[512]; 12557836SJohn.Forte@Sun.COM IMA_UINT nameLength; 12567836SJohn.Forte@Sun.COM 12577836SJohn.Forte@Sun.COM IMA_UINT minValueLength; 12587836SJohn.Forte@Sun.COM IMA_UINT maxValueLength; 12597836SJohn.Forte@Sun.COM 12607836SJohn.Forte@Sun.COM IMA_BYTE challengeSecret[256]; 12617836SJohn.Forte@Sun.COM IMA_UINT challengeSecretLength; 12627836SJohn.Forte@Sun.COM 12637836SJohn.Forte@Sun.COM IMA_BYTE reserved[512]; 12647836SJohn.Forte@Sun.COM 12657836SJohn.Forte@Sun.COM } IMA_CHAP_INITIATOR_AUTHPARMS; 12667836SJohn.Forte@Sun.COM 12677836SJohn.Forte@Sun.COM typedef struct _IMA_SRP_INITIATOR_AUTHPARMS 12687836SJohn.Forte@Sun.COM { 12697836SJohn.Forte@Sun.COM 12707836SJohn.Forte@Sun.COM IMA_BYTE userName[512]; 12717836SJohn.Forte@Sun.COM IMA_UINT userNameLength; 12727836SJohn.Forte@Sun.COM 12737836SJohn.Forte@Sun.COM IMA_BYTE reserved[512]; 12747836SJohn.Forte@Sun.COM 12757836SJohn.Forte@Sun.COM } IMA_SRP_INITIATOR_AUTHPARMS; 12767836SJohn.Forte@Sun.COM 12777836SJohn.Forte@Sun.COM typedef struct _IMA_KRB5_INITIATOR_AUTHPARMS 12787836SJohn.Forte@Sun.COM { 12797836SJohn.Forte@Sun.COM 12807836SJohn.Forte@Sun.COM IMA_BYTE clientKey[1024]; 12817836SJohn.Forte@Sun.COM IMA_UINT clientKeyLength; 12827836SJohn.Forte@Sun.COM 12837836SJohn.Forte@Sun.COM IMA_BYTE reserved[2048]; 12847836SJohn.Forte@Sun.COM 12857836SJohn.Forte@Sun.COM } IMA_KRB5_INITIATOR_AUTHPARMS; 12867836SJohn.Forte@Sun.COM 12877836SJohn.Forte@Sun.COM typedef struct _IMA_SPKM_INITIATOR_AUTHPARMS 12887836SJohn.Forte@Sun.COM { 12897836SJohn.Forte@Sun.COM 12907836SJohn.Forte@Sun.COM IMA_BYTE privateKey[4096]; 12917836SJohn.Forte@Sun.COM IMA_UINT privateKeyLength; 12927836SJohn.Forte@Sun.COM 12937836SJohn.Forte@Sun.COM IMA_BYTE publicKey[4096]; 12947836SJohn.Forte@Sun.COM IMA_UINT publicKeyLength; 12957836SJohn.Forte@Sun.COM 12967836SJohn.Forte@Sun.COM IMA_BYTE reserved[4096]; 12977836SJohn.Forte@Sun.COM 12987836SJohn.Forte@Sun.COM } IMA_SPKM_INITIATOR_AUTHPARMS; 12997836SJohn.Forte@Sun.COM 13007836SJohn.Forte@Sun.COM typedef union _IMA_INITIATOR_AUTHPARMS 13017836SJohn.Forte@Sun.COM { 13027836SJohn.Forte@Sun.COM 13037836SJohn.Forte@Sun.COM IMA_CHAP_INITIATOR_AUTHPARMS chapParms; 13047836SJohn.Forte@Sun.COM IMA_SRP_INITIATOR_AUTHPARMS srpParms; 13057836SJohn.Forte@Sun.COM IMA_KRB5_INITIATOR_AUTHPARMS kerberosParms; 13067836SJohn.Forte@Sun.COM IMA_SPKM_INITIATOR_AUTHPARMS spkmParms; 13077836SJohn.Forte@Sun.COM 13087836SJohn.Forte@Sun.COM } IMA_INITIATOR_AUTHPARMS; 13097836SJohn.Forte@Sun.COM 13107836SJohn.Forte@Sun.COM 13117836SJohn.Forte@Sun.COM typedef struct _IMA_STATIC_DISCOVERY_TARGET 13127836SJohn.Forte@Sun.COM { 13137836SJohn.Forte@Sun.COM IMA_NODE_NAME targetName; 13147836SJohn.Forte@Sun.COM IMA_TARGET_ADDRESS targetAddress; 13157836SJohn.Forte@Sun.COM 13167836SJohn.Forte@Sun.COM } IMA_STATIC_DISCOVERY_TARGET; 13177836SJohn.Forte@Sun.COM 13187836SJohn.Forte@Sun.COM typedef struct _IMA_DISCOVERY_ADDRESS_PROPERTIES 13197836SJohn.Forte@Sun.COM { 13207836SJohn.Forte@Sun.COM IMA_OID associatedNodeOid; 13217836SJohn.Forte@Sun.COM IMA_OID associatedLhbaOid; 13227836SJohn.Forte@Sun.COM IMA_TARGET_ADDRESS discoveryAddress; 13237836SJohn.Forte@Sun.COM 13247836SJohn.Forte@Sun.COM } IMA_DISCOVERY_ADDRESS_PROPERTIES; 13257836SJohn.Forte@Sun.COM 13267836SJohn.Forte@Sun.COM typedef struct _IMA_STATIC_TGT_PROPERTIES 13277836SJohn.Forte@Sun.COM { 13287836SJohn.Forte@Sun.COM IMA_OID associatedNodeOid; 13297836SJohn.Forte@Sun.COM IMA_OID associatedLhbaOid; 13307836SJohn.Forte@Sun.COM IMA_STATIC_DISCOVERY_TARGET staticTarget; 13317836SJohn.Forte@Sun.COM 13327836SJohn.Forte@Sun.COM } IMA_STATIC_DISCOVERY_TARGET_PROPERTIES; 13337836SJohn.Forte@Sun.COM 1334*10156SZhang.Yi@Sun.COM typedef struct ima_plugin_info { 1335*10156SZhang.Yi@Sun.COM char PluginName[64]; 1336*10156SZhang.Yi@Sun.COM char PluginPath[256]; 1337*10156SZhang.Yi@Sun.COM #ifdef WIN32 1338*10156SZhang.Yi@Sun.COM HINSTANCE hPlugin; /* Handle to a loaded DLL */ 1339*10156SZhang.Yi@Sun.COM #else 1340*10156SZhang.Yi@Sun.COM void* hPlugin; /* Handle to a loaded DLL */ 1341*10156SZhang.Yi@Sun.COM #endif 1342*10156SZhang.Yi@Sun.COM IMA_UINT32 ownerId; 1343*10156SZhang.Yi@Sun.COM #ifdef WIN32 1344*10156SZhang.Yi@Sun.COM HANDLE pluginMutex; 1345*10156SZhang.Yi@Sun.COM #else 1346*10156SZhang.Yi@Sun.COM int pluginMutex; 1347*10156SZhang.Yi@Sun.COM #endif 1348*10156SZhang.Yi@Sun.COM IMA_UINT number_of_vbcallbacks; 1349*10156SZhang.Yi@Sun.COM IMA_OBJECT_VISIBILITY_FN vbcallback[IMA_MAX_CALLBACK_PER_PLUGIN]; 1350*10156SZhang.Yi@Sun.COM IMA_UINT number_of_pccallbacks; 1351*10156SZhang.Yi@Sun.COM IMA_OBJECT_PROPERTY_FN pccallback[IMA_MAX_CALLBACK_PER_PLUGIN]; 1352*10156SZhang.Yi@Sun.COM } IMA_PLUGIN_INFO, *PIMA_PLUGIN_INFO; 1353*10156SZhang.Yi@Sun.COM 13547836SJohn.Forte@Sun.COM 13557836SJohn.Forte@Sun.COM /** 13567836SJohn.Forte@Sun.COM ******************************************************************************* 13577836SJohn.Forte@Sun.COM * 13587836SJohn.Forte@Sun.COM * The individual APIs of the IMA are declared below. 13597836SJohn.Forte@Sun.COM * 13607836SJohn.Forte@Sun.COM ******************************************************************************* 13617836SJohn.Forte@Sun.COM */ 13627836SJohn.Forte@Sun.COM 13637836SJohn.Forte@Sun.COM /** 13647836SJohn.Forte@Sun.COM ******************************************************************************* 13657836SJohn.Forte@Sun.COM * 13667836SJohn.Forte@Sun.COM * Gets the properties of the IMA library that is being used. 13677836SJohn.Forte@Sun.COM * 13687836SJohn.Forte@Sun.COM * @param pProps 13697836SJohn.Forte@Sun.COM * A pointer to an IMA_LIBRARY_PROPERTIES structure allocated by 13707836SJohn.Forte@Sun.COM * the caller. On successful return this structure will contain the 13717836SJohn.Forte@Sun.COM * properties of the IMA library. 13727836SJohn.Forte@Sun.COM * 13737836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 13747836SJohn.Forte@Sun.COM * an error occurred. 13757836SJohn.Forte@Sun.COM * 13767836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 13777836SJohn.Forte@Sun.COM * Returned if the library properties were successfully returned. 13787836SJohn.Forte@Sun.COM * 13797836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 13807836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 13817836SJohn.Forte@Sun.COM * data cannot be written. 13827836SJohn.Forte@Sun.COM * 13837836SJohn.Forte@Sun.COM ******************************************************************************* 13847836SJohn.Forte@Sun.COM */ 13857836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLibraryProperties( 13867836SJohn.Forte@Sun.COM IMA_LIBRARY_PROPERTIES *pProps 13877836SJohn.Forte@Sun.COM ); 13887836SJohn.Forte@Sun.COM 13897836SJohn.Forte@Sun.COM 13907836SJohn.Forte@Sun.COM 13917836SJohn.Forte@Sun.COM /** 13927836SJohn.Forte@Sun.COM ******************************************************************************* 13937836SJohn.Forte@Sun.COM * 13947836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all currently loaded plugins. 13957836SJohn.Forte@Sun.COM * 13967836SJohn.Forte@Sun.COM * @param ppList 13977836SJohn.Forte@Sun.COM * A pointer to a pointer to an IMA_OID_LIST. On successful 13987836SJohn.Forte@Sun.COM * return this will contain a pointer to an @ref IMA_OID_LIST 13997836SJohn.Forte@Sun.COM * which contains the object IDs of all of the plugins currently 14007836SJohn.Forte@Sun.COM * loaded by the library. 14017836SJohn.Forte@Sun.COM * 14027836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 14037836SJohn.Forte@Sun.COM * if an error occurred. 14047836SJohn.Forte@Sun.COM * 14057836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 14067836SJohn.Forte@Sun.COM * Returned if the plugin ID list was successfully returned. 14077836SJohn.Forte@Sun.COM * 14087836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 14097836SJohn.Forte@Sun.COM * Returned if 'ppList' is NULL or specifies a memory area to 14107836SJohn.Forte@Sun.COM * which data cannot be written. 14117836SJohn.Forte@Sun.COM * 14127836SJohn.Forte@Sun.COM ******************************************************************************* 14137836SJohn.Forte@Sun.COM */ 14147836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPluginOidList( 14157836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 14167836SJohn.Forte@Sun.COM ); 14177836SJohn.Forte@Sun.COM 14187836SJohn.Forte@Sun.COM 14197836SJohn.Forte@Sun.COM 14207836SJohn.Forte@Sun.COM /** 14217836SJohn.Forte@Sun.COM ******************************************************************************* 14227836SJohn.Forte@Sun.COM * 14237836SJohn.Forte@Sun.COM * Gets the properties of the specified vendor plugin. 14247836SJohn.Forte@Sun.COM * 14257836SJohn.Forte@Sun.COM * @param pluginOid 14267836SJohn.Forte@Sun.COM * The ID of the plugin whose properties are being retrieved. 14277836SJohn.Forte@Sun.COM * 14287836SJohn.Forte@Sun.COM * @param pProps 14297836SJohn.Forte@Sun.COM * A pointer to an @ref IMA_PLUGIN_PROPERTIES structure allocated by 14307836SJohn.Forte@Sun.COM * the caller. On successful return this will contain the properties 14317836SJohn.Forte@Sun.COM * of the plugin specified by pluginOid. 14327836SJohn.Forte@Sun.COM * 14337836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if an 14347836SJohn.Forte@Sun.COM * error occurred. 14357836SJohn.Forte@Sun.COM * 14367836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 14377836SJohn.Forte@Sun.COM * Returned if the plugin properties were successfully returned. 14387836SJohn.Forte@Sun.COM * 14397836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 14407836SJohn.Forte@Sun.COM * Returned if 'pluginOid' does not specify any valid object type. 14417836SJohn.Forte@Sun.COM * 14427836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 14437836SJohn.Forte@Sun.COM * Returned if 'pluginOid' does not specify a plugin object. 14447836SJohn.Forte@Sun.COM * 14457836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 14467836SJohn.Forte@Sun.COM * Returned if 'pluginOid' refers to a plugin, but not one that 14477836SJohn.Forte@Sun.COM * is currently loaded. 14487836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 14497836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to 14507836SJohn.Forte@Sun.COM * which data cannot be written. 14517836SJohn.Forte@Sun.COM * 14527836SJohn.Forte@Sun.COM ******************************************************************************* 14537836SJohn.Forte@Sun.COM */ 14547836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPluginProperties( 14557836SJohn.Forte@Sun.COM IMA_OID pluginOid, 14567836SJohn.Forte@Sun.COM IMA_PLUGIN_PROPERTIES *pProps 14577836SJohn.Forte@Sun.COM ); 14587836SJohn.Forte@Sun.COM 14597836SJohn.Forte@Sun.COM 14607836SJohn.Forte@Sun.COM 14617836SJohn.Forte@Sun.COM /** 14627836SJohn.Forte@Sun.COM ******************************************************************************* 14637836SJohn.Forte@Sun.COM * 14647836SJohn.Forte@Sun.COM * Gets the object ID for the plugin associated with the specified object ID. 14657836SJohn.Forte@Sun.COM * 14667836SJohn.Forte@Sun.COM * @param oid 14677836SJohn.Forte@Sun.COM * The object ID of an object that has been received from a previous 14687836SJohn.Forte@Sun.COM * library call. 14697836SJohn.Forte@Sun.COM * 14707836SJohn.Forte@Sun.COM * @param pPluginOid 14717836SJohn.Forte@Sun.COM * A pointer to an IMA_OID structure allocated by the caller. On 14727836SJohn.Forte@Sun.COM * successful return this will contain the object ID of the plugin 14737836SJohn.Forte@Sun.COM * associated with the object specified by @a objectId. This 14747836SJohn.Forte@Sun.COM * can then be used to work with the plugin, e.g., to get the 14757836SJohn.Forte@Sun.COM * properties of the plugin or the send the plugin an IOCtl. 14767836SJohn.Forte@Sun.COM * 14777836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 14787836SJohn.Forte@Sun.COM * an error occurred. 14797836SJohn.Forte@Sun.COM * 14807836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 14817836SJohn.Forte@Sun.COM * Returned if the associated plugin ID was successfully returned. 14827836SJohn.Forte@Sun.COM * 14837836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 14847836SJohn.Forte@Sun.COM * Returned if 'pPluginOid' is NULL or specifies a memory area to 14857836SJohn.Forte@Sun.COM * which data cannot be written. 14867836SJohn.Forte@Sun.COM * 14877836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 14887836SJohn.Forte@Sun.COM * Returned if 'oid' specifies an object not owned by a plugin, but 14897836SJohn.Forte@Sun.COM * instead one that is owned by the library. 14907836SJohn.Forte@Sun.COM * 14917836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 14927836SJohn.Forte@Sun.COM * Returned if 'oid' specifies an object with an invalid type. 14937836SJohn.Forte@Sun.COM * 14947836SJohn.Forte@Sun.COM ******************************************************************************* 14957836SJohn.Forte@Sun.COM */ 14967836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetAssociatedPluginOid( 14977836SJohn.Forte@Sun.COM IMA_OID oid, 14987836SJohn.Forte@Sun.COM IMA_OID *pPluginOid 14997836SJohn.Forte@Sun.COM ); 15007836SJohn.Forte@Sun.COM 15017836SJohn.Forte@Sun.COM 15027836SJohn.Forte@Sun.COM 15037836SJohn.Forte@Sun.COM /** 15047836SJohn.Forte@Sun.COM ******************************************************************************* 15057836SJohn.Forte@Sun.COM * 15067836SJohn.Forte@Sun.COM * Gets the object ID of the shared node. 15077836SJohn.Forte@Sun.COM * 15087836SJohn.Forte@Sun.COM * @param pSharedNodeOid 15097836SJohn.Forte@Sun.COM * A pointer to an IMA_OID structure allocated by the caller. On 15107836SJohn.Forte@Sun.COM * successful return it will contain the object ID of the 15117836SJohn.Forte@Sun.COM * shared node of the currently executing system is placed. 15127836SJohn.Forte@Sun.COM * 15137836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 15147836SJohn.Forte@Sun.COM * if an error occurred. 15157836SJohn.Forte@Sun.COM * 15167836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 15177836SJohn.Forte@Sun.COM * Returned if the shared node ID has been successfully retrieved. 15187836SJohn.Forte@Sun.COM * 15197836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 15207836SJohn.Forte@Sun.COM * Returned if 'pSharedNodeOid' is NULL or specifies a memory area 15217836SJohn.Forte@Sun.COM * to which data cannot be written. 15227836SJohn.Forte@Sun.COM * 15237836SJohn.Forte@Sun.COM ******************************************************************************* 15247836SJohn.Forte@Sun.COM */ 15257836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetSharedNodeOid( 15267836SJohn.Forte@Sun.COM IMA_OID *pSharedNodeOid 15277836SJohn.Forte@Sun.COM ); 15287836SJohn.Forte@Sun.COM 15297836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetObjectType( 15307836SJohn.Forte@Sun.COM IMA_OID oid, 15317836SJohn.Forte@Sun.COM IMA_OBJECT_TYPE *pObjectType 15327836SJohn.Forte@Sun.COM ); 15337836SJohn.Forte@Sun.COM 15347836SJohn.Forte@Sun.COM 15357836SJohn.Forte@Sun.COM /** 15367836SJohn.Forte@Sun.COM ******************************************************************************* 15377836SJohn.Forte@Sun.COM * 15387836SJohn.Forte@Sun.COM * Gets the properties of the specified iSCSI node. 15397836SJohn.Forte@Sun.COM * 15407836SJohn.Forte@Sun.COM * @param nodeOid 15417836SJohn.Forte@Sun.COM * The ID of the node to get the properties of. 15427836SJohn.Forte@Sun.COM * 15437836SJohn.Forte@Sun.COM * @param pProps 15447836SJohn.Forte@Sun.COM * A pointer to an @ref IMA_NODE_PROPERTIES structure which on 15457836SJohn.Forte@Sun.COM * successful return will contain the properties of the specified node. 15467836SJohn.Forte@Sun.COM * 15477836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 15487836SJohn.Forte@Sun.COM * an error occurred. 15497836SJohn.Forte@Sun.COM * 15507836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 15517836SJohn.Forte@Sun.COM * Returned if the node properties have been successfully retrieved. 15527836SJohn.Forte@Sun.COM * 15537836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 15547836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 15557836SJohn.Forte@Sun.COM * data cannot be written. 15567836SJohn.Forte@Sun.COM * 15577836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 15587836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify any valid object type. 15597836SJohn.Forte@Sun.COM * 15607836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 15617836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node object. 15627836SJohn.Forte@Sun.COM * 15637836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 15647836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node which is currently 15657836SJohn.Forte@Sun.COM * known to the system. 15667836SJohn.Forte@Sun.COM * 15677836SJohn.Forte@Sun.COM ******************************************************************************* 15687836SJohn.Forte@Sun.COM */ 15697836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNodeProperties( 15707836SJohn.Forte@Sun.COM IMA_OID nodeOid, 15717836SJohn.Forte@Sun.COM IMA_NODE_PROPERTIES *pProps 15727836SJohn.Forte@Sun.COM ); 15737836SJohn.Forte@Sun.COM 15747836SJohn.Forte@Sun.COM 15757836SJohn.Forte@Sun.COM 15767836SJohn.Forte@Sun.COM /** 15777836SJohn.Forte@Sun.COM ******************************************************************************* 15787836SJohn.Forte@Sun.COM * 15797836SJohn.Forte@Sun.COM * Sets the name of the specified node. 15807836SJohn.Forte@Sun.COM * 15817836SJohn.Forte@Sun.COM * @param nodeOid 15827836SJohn.Forte@Sun.COM * The object ID of the node whose name is being set. 15837836SJohn.Forte@Sun.COM * 15847836SJohn.Forte@Sun.COM * @param newName 15857836SJohn.Forte@Sun.COM * The new name of the node. 15867836SJohn.Forte@Sun.COM * 15877836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 15887836SJohn.Forte@Sun.COM * if an error occurred. 15897836SJohn.Forte@Sun.COM * 15907836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 15917836SJohn.Forte@Sun.COM * Returned if the node name was successfully changed. 15927836SJohn.Forte@Sun.COM * 15937836SJohn.Forte@Sun.COM * @retval IMA_STATUS_REBOOT_NECESSARY 15947836SJohn.Forte@Sun.COM * Returned if a reboot is necessary before the setting of the 15957836SJohn.Forte@Sun.COM * name actually takes affect. 15967836SJohn.Forte@Sun.COM * 15977836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 15987836SJohn.Forte@Sun.COM * Returned if 'newName' is NULL, or specifies a memory area 15997836SJohn.Forte@Sun.COM * to which data cannot be written, or has a length of 0. 16007836SJohn.Forte@Sun.COM * 16017836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 16027836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify any valid object type. 16037836SJohn.Forte@Sun.COM * 16047836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 16057836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node object. 16067836SJohn.Forte@Sun.COM * 16077836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 16087836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node which is 16097836SJohn.Forte@Sun.COM * currently known to the system. 16107836SJohn.Forte@Sun.COM * 16117836SJohn.Forte@Sun.COM * @retval IMA_ERROR_NAME_TOO_LONG 16127836SJohn.Forte@Sun.COM * Returned if 'newName' contains too many characters. 16137836SJohn.Forte@Sun.COM * 16147836SJohn.Forte@Sun.COM ******************************************************************************* 16157836SJohn.Forte@Sun.COM */ 16167836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetNodeName( 16177836SJohn.Forte@Sun.COM IMA_OID nodeOid, 16187836SJohn.Forte@Sun.COM const IMA_NODE_NAME newName 16197836SJohn.Forte@Sun.COM ); 16207836SJohn.Forte@Sun.COM 16217836SJohn.Forte@Sun.COM 16227836SJohn.Forte@Sun.COM 16237836SJohn.Forte@Sun.COM /** 16247836SJohn.Forte@Sun.COM ******************************************************************************* 16257836SJohn.Forte@Sun.COM * 16267836SJohn.Forte@Sun.COM * Generates a unique node name for the currently running system. 16277836SJohn.Forte@Sun.COM * 16287836SJohn.Forte@Sun.COM * @param generatedName 16297836SJohn.Forte@Sun.COM * On successful return contains the generated node name. 16307836SJohn.Forte@Sun.COM * 16317836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if an 16327836SJohn.Forte@Sun.COM * error occurred. 16337836SJohn.Forte@Sun.COM * 16347836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 16357836SJohn.Forte@Sun.COM * Returned if 'generatedname is NULL or 16367836SJohn.Forte@Sun.COM * specifies a memory area to which data cannot be written. 16377836SJohn.Forte@Sun.COM * 16387836SJohn.Forte@Sun.COM ******************************************************************************* 16397836SJohn.Forte@Sun.COM */ 16407836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GenerateNodeName( 16417836SJohn.Forte@Sun.COM IMA_NODE_NAME generatedName 16427836SJohn.Forte@Sun.COM ); 16437836SJohn.Forte@Sun.COM 16447836SJohn.Forte@Sun.COM 16457836SJohn.Forte@Sun.COM 16467836SJohn.Forte@Sun.COM /** 16477836SJohn.Forte@Sun.COM ******************************************************************************* 16487836SJohn.Forte@Sun.COM * 16497836SJohn.Forte@Sun.COM * Sets the alias of the specified node. 16507836SJohn.Forte@Sun.COM * 16517836SJohn.Forte@Sun.COM * @param nodeOid 16527836SJohn.Forte@Sun.COM * The object ID of the node whose alias is being set. 16537836SJohn.Forte@Sun.COM * 16547836SJohn.Forte@Sun.COM * @param newAlias 16557836SJohn.Forte@Sun.COM * A pointer to a Unicode string which contains the new node alias. 16567836SJohn.Forte@Sun.COM * If this parameter is NULL then the current alias is deleted, in which 16577836SJohn.Forte@Sun.COM * case the specified node no longer has an alias. 16587836SJohn.Forte@Sun.COM * 16597836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 16607836SJohn.Forte@Sun.COM * if an error occurred. 16617836SJohn.Forte@Sun.COM * 16627836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 16637836SJohn.Forte@Sun.COM * Returned if the node's alias has been successfully set. 16647836SJohn.Forte@Sun.COM * 16657836SJohn.Forte@Sun.COM * @retval IMA_STATUS_REBOOT_NECESSARY 16667836SJohn.Forte@Sun.COM * A reboot is necessary before the setting of the alias actually 16677836SJohn.Forte@Sun.COM * takes effect. 16687836SJohn.Forte@Sun.COM * 16697836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 16707836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify any valid object type. 16717836SJohn.Forte@Sun.COM * 16727836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 16737836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node object. 16747836SJohn.Forte@Sun.COM * 16757836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 16767836SJohn.Forte@Sun.COM * Returned if 'nodeOid' does not specify a node which is currently 16777836SJohn.Forte@Sun.COM * known to the system. 16787836SJohn.Forte@Sun.COM * 16797836SJohn.Forte@Sun.COM * @retval IMA_ERROR_NAME_TOO_LONG 16807836SJohn.Forte@Sun.COM * Returned if 'newAlias' contains too many characters. 16817836SJohn.Forte@Sun.COM * 16827836SJohn.Forte@Sun.COM ******************************************************************************* 16837836SJohn.Forte@Sun.COM */ 16847836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetNodeAlias( 16857836SJohn.Forte@Sun.COM IMA_OID nodeOid, 16867836SJohn.Forte@Sun.COM const IMA_NODE_ALIAS newAlias 16877836SJohn.Forte@Sun.COM ); 16887836SJohn.Forte@Sun.COM 16897836SJohn.Forte@Sun.COM 16907836SJohn.Forte@Sun.COM 16917836SJohn.Forte@Sun.COM /** 16927836SJohn.Forte@Sun.COM ******************************************************************************* 16937836SJohn.Forte@Sun.COM * 16947836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the logical HBAs in the system. 16957836SJohn.Forte@Sun.COM * 16967836SJohn.Forte@Sun.COM * @param ppList 16977836SJohn.Forte@Sun.COM * A pointer to a pointer to an @ref IMA_OID_LIST structure. On 16987836SJohn.Forte@Sun.COM * successful return this will contain a pointer to an 16997836SJohn.Forte@Sun.COM * IMA_OID_LIST which contains the object IDs of all of the 17007836SJohn.Forte@Sun.COM * LHBAs currently in the system. 17017836SJohn.Forte@Sun.COM * 17027836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 17037836SJohn.Forte@Sun.COM * an error occurred. 17047836SJohn.Forte@Sun.COM * 17057836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 17067836SJohn.Forte@Sun.COM * Returned if the LHBA ID list has been successfully returned. 17077836SJohn.Forte@Sun.COM * 17087836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 17097836SJohn.Forte@Sun.COM * Returned if 'ppList' is NULL or specifies a memory area to which 17107836SJohn.Forte@Sun.COM * data cannot be written. 17117836SJohn.Forte@Sun.COM * 17127836SJohn.Forte@Sun.COM ******************************************************************************* 17137836SJohn.Forte@Sun.COM */ 17147836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLhbaOidList( 17157836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 17167836SJohn.Forte@Sun.COM ); 17177836SJohn.Forte@Sun.COM 17187836SJohn.Forte@Sun.COM 17197836SJohn.Forte@Sun.COM 17207836SJohn.Forte@Sun.COM /** 17217836SJohn.Forte@Sun.COM ******************************************************************************* 17227836SJohn.Forte@Sun.COM * 17237836SJohn.Forte@Sun.COM * Gets the properties of the specified logical HBA. 17247836SJohn.Forte@Sun.COM * 17257836SJohn.Forte@Sun.COM * @param lhbaOid 17267836SJohn.Forte@Sun.COM * The object ID of the LHBA whose properties are being retrieved. 17277836SJohn.Forte@Sun.COM * 17287836SJohn.Forte@Sun.COM * @param pProps 17297836SJohn.Forte@Sun.COM * A pointer to an IMA_LHBA_PROPERTIES structure. On successful 17307836SJohn.Forte@Sun.COM * return this will contain the properties of the LHBA specified by 17317836SJohn.Forte@Sun.COM * 'lhbaOid'. 17327836SJohn.Forte@Sun.COM * 17337836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 17347836SJohn.Forte@Sun.COM * an error occurred. 17357836SJohn.Forte@Sun.COM * 17367836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 17377836SJohn.Forte@Sun.COM * Returned if the properties of the specified LHBA have been 17387836SJohn.Forte@Sun.COM * successfully retrieved. 17397836SJohn.Forte@Sun.COM * 17407836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 17417836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 17427836SJohn.Forte@Sun.COM * data cannot be written. 17437836SJohn.Forte@Sun.COM * 17447836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 17457836SJohn.Forte@Sun.COM * Returned if 'lhbaOid' does not specify any valid object type. 17467836SJohn.Forte@Sun.COM * 17477836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 17487836SJohn.Forte@Sun.COM * Returned if 'lhbaOid' does not specify a LHBA. 17497836SJohn.Forte@Sun.COM * 17507836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 17517836SJohn.Forte@Sun.COM * Returned if 'lhbaOid' does not specify a LHBA which is currently 17527836SJohn.Forte@Sun.COM * known to the system. 17537836SJohn.Forte@Sun.COM * 17547836SJohn.Forte@Sun.COM ******************************************************************************* 17557836SJohn.Forte@Sun.COM */ 17567836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLhbaProperties( 17577836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 17587836SJohn.Forte@Sun.COM IMA_LHBA_PROPERTIES *pProps 17597836SJohn.Forte@Sun.COM ); 17607836SJohn.Forte@Sun.COM 17617836SJohn.Forte@Sun.COM 17627836SJohn.Forte@Sun.COM 17637836SJohn.Forte@Sun.COM /** 17647836SJohn.Forte@Sun.COM ******************************************************************************* 17657836SJohn.Forte@Sun.COM * 17667836SJohn.Forte@Sun.COM * Gets a list of the object IDs of all the physical HBAs in the system. 17677836SJohn.Forte@Sun.COM * 17687836SJohn.Forte@Sun.COM * @param ppList 17697836SJohn.Forte@Sun.COM * A pointer to a pointer to an IMA_OID_LIST structure. On successful 17707836SJohn.Forte@Sun.COM * return this will contain a pointer to an IMA_OID_LIST which 17717836SJohn.Forte@Sun.COM * contains the object IDs of all of the PHBAs currently in the system. 17727836SJohn.Forte@Sun.COM * 17737836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 17747836SJohn.Forte@Sun.COM * an error occurred. 17757836SJohn.Forte@Sun.COM * 17767836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 17777836SJohn.Forte@Sun.COM * Returned if the PHBA OID list has been successfully returned. 17787836SJohn.Forte@Sun.COM * 17797836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 17807836SJohn.Forte@Sun.COM * Returned if 'ppList' is NULL or specifies a memory area to which 17817836SJohn.Forte@Sun.COM * data cannot be written. 17827836SJohn.Forte@Sun.COM * 17837836SJohn.Forte@Sun.COM ******************************************************************************* 17847836SJohn.Forte@Sun.COM */ 17857836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPhbaOidList( 17867836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 17877836SJohn.Forte@Sun.COM ); 17887836SJohn.Forte@Sun.COM 17897836SJohn.Forte@Sun.COM 17907836SJohn.Forte@Sun.COM 17917836SJohn.Forte@Sun.COM /** 17927836SJohn.Forte@Sun.COM ******************************************************************************* 17937836SJohn.Forte@Sun.COM * 17947836SJohn.Forte@Sun.COM * Gets the general properties of a physical HBA. 17957836SJohn.Forte@Sun.COM * 17967836SJohn.Forte@Sun.COM * @param phbaOid 17977836SJohn.Forte@Sun.COM * The object ID of the PHBA whose properties are being queried. 17987836SJohn.Forte@Sun.COM * 17997836SJohn.Forte@Sun.COM * @param pProps 18007836SJohn.Forte@Sun.COM * A pointer to an @ref IMA_PHBA_PROPERTIES structure. On successful 18017836SJohn.Forte@Sun.COM * return this will contain the properties of the PHBA specified by 18027836SJohn.Forte@Sun.COM * 'phbaOid'. 18037836SJohn.Forte@Sun.COM # 18047836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or 18057836SJohn.Forte@Sun.COM * if an error occurred. 18067836SJohn.Forte@Sun.COM * 18077836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 18087836SJohn.Forte@Sun.COM * Returned if the properties of the specified PHBA have been 18097836SJohn.Forte@Sun.COM * successfully retrieved. 18107836SJohn.Forte@Sun.COM * 18117836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 18127836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 18137836SJohn.Forte@Sun.COM * data cannot be written. 18147836SJohn.Forte@Sun.COM * 18157836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 18167836SJohn.Forte@Sun.COM * Returned if 'phbaOid' does not specify any valid object type. 18177836SJohn.Forte@Sun.COM * 18187836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 18197836SJohn.Forte@Sun.COM * Returned if 'phbaOid' does not specify a PHBA. 18207836SJohn.Forte@Sun.COM * 18217836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 18227836SJohn.Forte@Sun.COM * Returned if 'phbaOid' does not specify a PHBA which is currently 18237836SJohn.Forte@Sun.COM * known to the system. 18247836SJohn.Forte@Sun.COM * 18257836SJohn.Forte@Sun.COM ******************************************************************************* 18267836SJohn.Forte@Sun.COM */ 18277836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPhbaProperties( 18287836SJohn.Forte@Sun.COM IMA_OID phbaOid, 18297836SJohn.Forte@Sun.COM IMA_PHBA_PROPERTIES *pProps 18307836SJohn.Forte@Sun.COM ); 18317836SJohn.Forte@Sun.COM 18327836SJohn.Forte@Sun.COM /** 18337836SJohn.Forte@Sun.COM ******************************************************************************* 18347836SJohn.Forte@Sun.COM * 18357836SJohn.Forte@Sun.COM * Frees a previously allocated IMA_OID_LIST structure. 18367836SJohn.Forte@Sun.COM * 18377836SJohn.Forte@Sun.COM * @param pMemory A pointer to an IMA_OID_LIST structure allocated by the 18387836SJohn.Forte@Sun.COM * library. On successful return the memory allocated by the 18397836SJohn.Forte@Sun.COM * list is freed. 18407836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if an 18417836SJohn.Forte@Sun.COM * error occurred. 18427836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 18437836SJohn.Forte@Sun.COM * Returned if the specified object ID list was successfully 18447836SJohn.Forte@Sun.COM * freed. 18457836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 18467836SJohn.Forte@Sun.COM * Returned if pMemory is NULL or specifies a memory area from which 18477836SJohn.Forte@Sun.COM * data cannot be read. 18487836SJohn.Forte@Sun.COM * 18497836SJohn.Forte@Sun.COM ******************************************************************************* 18507836SJohn.Forte@Sun.COM */ 18517836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_FreeMemory( 18527836SJohn.Forte@Sun.COM void *pMemory 18537836SJohn.Forte@Sun.COM ); 18547836SJohn.Forte@Sun.COM 18557836SJohn.Forte@Sun.COM 18567836SJohn.Forte@Sun.COM 18577836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNonSharedNodeOidList( 18587836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 18597836SJohn.Forte@Sun.COM ); 18607836SJohn.Forte@Sun.COM 18617836SJohn.Forte@Sun.COM 18627836SJohn.Forte@Sun.COM 18637836SJohn.Forte@Sun.COM 18647836SJohn.Forte@Sun.COM /** 18657836SJohn.Forte@Sun.COM ******************************************************************************* 18667836SJohn.Forte@Sun.COM * 18677836SJohn.Forte@Sun.COM * Gets the first burst length properties of the specified logical HBA. 18687836SJohn.Forte@Sun.COM * 18697836SJohn.Forte@Sun.COM * @param oid 18707836SJohn.Forte@Sun.COM * The object ID of the logical HBA to get the first burst length 18717836SJohn.Forte@Sun.COM * properties of. 18727836SJohn.Forte@Sun.COM * 18737836SJohn.Forte@Sun.COM * @param pProps 18747836SJohn.Forte@Sun.COM * A pointer to a min/max values structure. 18757836SJohn.Forte@Sun.COM * 18767836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if an 18777836SJohn.Forte@Sun.COM * error occurred. 18787836SJohn.Forte@Sun.COM * 18797836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 18807836SJohn.Forte@Sun.COM * Returned if the first burst length properties have been 18817836SJohn.Forte@Sun.COM * successfully retrieved. 18827836SJohn.Forte@Sun.COM * 18837836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 18847836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to which 18857836SJohn.Forte@Sun.COM * data cannot be written. 18867836SJohn.Forte@Sun.COM * 18877836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 18887836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify any valid object type. 18897836SJohn.Forte@Sun.COM * 18907836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 18917836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA. 18927836SJohn.Forte@Sun.COM * 18937836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 18947836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA which is currently 18957836SJohn.Forte@Sun.COM * known to the system. 18967836SJohn.Forte@Sun.COM * 18977836SJohn.Forte@Sun.COM ******************************************************************************* 18987836SJohn.Forte@Sun.COM */ 18997836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetFirstBurstLengthProperties( 19007836SJohn.Forte@Sun.COM IMA_OID oid, 19017836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 19027836SJohn.Forte@Sun.COM ); 19037836SJohn.Forte@Sun.COM 19047836SJohn.Forte@Sun.COM 19057836SJohn.Forte@Sun.COM /** 19067836SJohn.Forte@Sun.COM ******************************************************************************* 19077836SJohn.Forte@Sun.COM * 19087836SJohn.Forte@Sun.COM * Gets the max burst length properties of the specified logical HBA. 19097836SJohn.Forte@Sun.COM * 19107836SJohn.Forte@Sun.COM * @param oid 19117836SJohn.Forte@Sun.COM * The object ID of the logical HBA to get the max burst length 19127836SJohn.Forte@Sun.COM * properties of. 19137836SJohn.Forte@Sun.COM * 19147836SJohn.Forte@Sun.COM * @param pProps 19157836SJohn.Forte@Sun.COM * A pointer to an IMA_MIN_MAX_VALUE structure allocated by the 19167836SJohn.Forte@Sun.COM * caller. On successful return this structure will contain the max 19177836SJohn.Forte@Sun.COM * burst length properties of this LHBA. 19187836SJohn.Forte@Sun.COM * 19197836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 19207836SJohn.Forte@Sun.COM * an error occurred. 19217836SJohn.Forte@Sun.COM * 19227836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 19237836SJohn.Forte@Sun.COM * Returned if the max burst length properties have been successfully 19247836SJohn.Forte@Sun.COM * retrieved. 19257836SJohn.Forte@Sun.COM * 19267836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 19277836SJohn.Forte@Sun.COM * Returned if pProps is NULL or specifies a memory area to which 19287836SJohn.Forte@Sun.COM * data cannot be written. 19297836SJohn.Forte@Sun.COM * 19307836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 19317836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify any valid object type. 19327836SJohn.Forte@Sun.COM * 19337836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 19347836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA. 19357836SJohn.Forte@Sun.COM * 19367836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 19377836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA which is currently 19387836SJohn.Forte@Sun.COM * known to the system. 19397836SJohn.Forte@Sun.COM * 19407836SJohn.Forte@Sun.COM ******************************************************************************* 19417836SJohn.Forte@Sun.COM */ 19427836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetMaxBurstLengthProperties( 19437836SJohn.Forte@Sun.COM IMA_OID Oid, 19447836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 19457836SJohn.Forte@Sun.COM ); 19467836SJohn.Forte@Sun.COM 19477836SJohn.Forte@Sun.COM /** 19487836SJohn.Forte@Sun.COM ******************************************************************************* 19497836SJohn.Forte@Sun.COM * 19507836SJohn.Forte@Sun.COM * Gets the maximum receive data segment length properties of the specified 19517836SJohn.Forte@Sun.COM * logical HBA. 19527836SJohn.Forte@Sun.COM * 19537836SJohn.Forte@Sun.COM * @param oid 19547836SJohn.Forte@Sun.COM * The object ID of the logical HBA to get the max receive data 19557836SJohn.Forte@Sun.COM * segment length properties of. 19567836SJohn.Forte@Sun.COM * 19577836SJohn.Forte@Sun.COM * @param pProps 19587836SJohn.Forte@Sun.COM * A pointer to an @ref IMA_MIN_MAX_VALUE structure allocated by the 19597836SJohn.Forte@Sun.COM * caller. On successful return this structure will contain the max 19607836SJohn.Forte@Sun.COM * receive data segment length properties of this LHBA. 19617836SJohn.Forte@Sun.COM * 19627836SJohn.Forte@Sun.COM * @return An IMA_STATUS indicating if the operation was successful or if 19637836SJohn.Forte@Sun.COM * an error occurred. 19647836SJohn.Forte@Sun.COM * 19657836SJohn.Forte@Sun.COM * @retval IMA_SUCCESS 19667836SJohn.Forte@Sun.COM * Returned if the max receive data segment length properties 19677836SJohn.Forte@Sun.COM * have been successfully retrieved. 19687836SJohn.Forte@Sun.COM * 19697836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_PARAMETER 19707836SJohn.Forte@Sun.COM * Returned if 'pProps' is NULL or specifies a memory area to which 19717836SJohn.Forte@Sun.COM * data cannot be written. 19727836SJohn.Forte@Sun.COM * 19737836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INVALID_OBJECT_TYPE 19747836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify any valid object type. 19757836SJohn.Forte@Sun.COM * 19767836SJohn.Forte@Sun.COM * @retval IMA_ERROR_INCORRECT_OBJECT_TYPE 19777836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA. 19787836SJohn.Forte@Sun.COM * 19797836SJohn.Forte@Sun.COM * @retval IMA_ERROR_OBJECT_NOT_FOUND 19807836SJohn.Forte@Sun.COM * Returned if 'oid' does not specify a LHBA which is currently 19817836SJohn.Forte@Sun.COM * known to the system. 19827836SJohn.Forte@Sun.COM * 19837836SJohn.Forte@Sun.COM ******************************************************************************* 19847836SJohn.Forte@Sun.COM */ 19857836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetMaxRecvDataSegmentLengthProperties( 19867836SJohn.Forte@Sun.COM IMA_OID oid, 19877836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 19887836SJohn.Forte@Sun.COM ); 19897836SJohn.Forte@Sun.COM 19907836SJohn.Forte@Sun.COM 19917836SJohn.Forte@Sun.COM /*---------------------------------------------*/ 19927836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_PluginIOCtl( 19937836SJohn.Forte@Sun.COM IMA_OID pluginOid, 19947836SJohn.Forte@Sun.COM IMA_UINT command, 19957836SJohn.Forte@Sun.COM const void *pInputBuffer, 19967836SJohn.Forte@Sun.COM IMA_UINT inputBufferLength, 19977836SJohn.Forte@Sun.COM void *pOutputBuffer, 19987836SJohn.Forte@Sun.COM IMA_UINT *pOutputBufferLength 19997836SJohn.Forte@Sun.COM ); 20007836SJohn.Forte@Sun.COM 20017836SJohn.Forte@Sun.COM 20027836SJohn.Forte@Sun.COM 20037836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNetworkPortalOidList( 20047836SJohn.Forte@Sun.COM IMA_OID oid, 20057836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 20067836SJohn.Forte@Sun.COM ); 20077836SJohn.Forte@Sun.COM 20087836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetFirstBurstLength( 20097836SJohn.Forte@Sun.COM IMA_OID oid, 20107836SJohn.Forte@Sun.COM IMA_UINT firstBurstLength 20117836SJohn.Forte@Sun.COM ); 20127836SJohn.Forte@Sun.COM 20137836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetMaxBurstLength( 20147836SJohn.Forte@Sun.COM IMA_OID oid, 20157836SJohn.Forte@Sun.COM IMA_UINT maxBurstLength 20167836SJohn.Forte@Sun.COM ); 20177836SJohn.Forte@Sun.COM 20187836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetMaxRecvDataSegmentLength( 20197836SJohn.Forte@Sun.COM IMA_OID oid, 20207836SJohn.Forte@Sun.COM IMA_UINT maxRecvDataSegmentLength 20217836SJohn.Forte@Sun.COM ); 20227836SJohn.Forte@Sun.COM 20237836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetMaxConnectionsProperties( 20247836SJohn.Forte@Sun.COM IMA_OID oid, 20257836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 20267836SJohn.Forte@Sun.COM ); 20277836SJohn.Forte@Sun.COM 20287836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetMaxConnections( 20297836SJohn.Forte@Sun.COM IMA_OID oid, 20307836SJohn.Forte@Sun.COM IMA_UINT maxConnections 20317836SJohn.Forte@Sun.COM ); 20327836SJohn.Forte@Sun.COM 20337836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDefaultTime2RetainProperties( 20347836SJohn.Forte@Sun.COM IMA_OID oid, 20357836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 20367836SJohn.Forte@Sun.COM ); 20377836SJohn.Forte@Sun.COM 20387836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDefaultTime2Retain( 20397836SJohn.Forte@Sun.COM IMA_OID oid, 20407836SJohn.Forte@Sun.COM IMA_UINT defaultTime2Retain 20417836SJohn.Forte@Sun.COM ); 20427836SJohn.Forte@Sun.COM 20437836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDefaultTime2WaitProperties( 20447836SJohn.Forte@Sun.COM IMA_OID oid, 20457836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 20467836SJohn.Forte@Sun.COM ); 20477836SJohn.Forte@Sun.COM 20487836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDefaultTime2Wait( 20497836SJohn.Forte@Sun.COM IMA_OID oid, 20507836SJohn.Forte@Sun.COM IMA_UINT defaultTime2Wait 20517836SJohn.Forte@Sun.COM ); 20527836SJohn.Forte@Sun.COM 20537836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetMaxOutstandingR2TProperties( 20547836SJohn.Forte@Sun.COM IMA_OID oid, 20557836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 20567836SJohn.Forte@Sun.COM ); 20577836SJohn.Forte@Sun.COM 20587836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetMaxOutstandingR2T( 20597836SJohn.Forte@Sun.COM IMA_OID oid, 20607836SJohn.Forte@Sun.COM IMA_UINT maxOutstandingR2T 20617836SJohn.Forte@Sun.COM ); 20627836SJohn.Forte@Sun.COM 20637836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetErrorRecoveryLevelProperties( 20647836SJohn.Forte@Sun.COM IMA_OID oid, 20657836SJohn.Forte@Sun.COM IMA_MIN_MAX_VALUE *pProps 20667836SJohn.Forte@Sun.COM ); 20677836SJohn.Forte@Sun.COM 20687836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetErrorRecoveryLevel( 20697836SJohn.Forte@Sun.COM IMA_OID oid, 20707836SJohn.Forte@Sun.COM IMA_UINT errorRecoveryLevel 20717836SJohn.Forte@Sun.COM ); 20727836SJohn.Forte@Sun.COM 20737836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetInitialR2TProperties( 20747836SJohn.Forte@Sun.COM IMA_OID oid, 20757836SJohn.Forte@Sun.COM IMA_BOOL_VALUE *pProps 20767836SJohn.Forte@Sun.COM ); 20777836SJohn.Forte@Sun.COM 20787836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetInitialR2T( 20797836SJohn.Forte@Sun.COM IMA_OID oid, 20807836SJohn.Forte@Sun.COM IMA_BOOL initialR2T 20817836SJohn.Forte@Sun.COM ); 20827836SJohn.Forte@Sun.COM 20837836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetImmediateDataProperties( 20847836SJohn.Forte@Sun.COM IMA_OID oid, 20857836SJohn.Forte@Sun.COM IMA_BOOL_VALUE *pProps 20867836SJohn.Forte@Sun.COM ); 20877836SJohn.Forte@Sun.COM 20887836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetImmediateData( 20897836SJohn.Forte@Sun.COM IMA_OID oid, 20907836SJohn.Forte@Sun.COM IMA_BOOL immediateData 20917836SJohn.Forte@Sun.COM ); 20927836SJohn.Forte@Sun.COM 20937836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDataPduInOrderProperties( 20947836SJohn.Forte@Sun.COM IMA_OID oid, 20957836SJohn.Forte@Sun.COM IMA_BOOL_VALUE *pProps 20967836SJohn.Forte@Sun.COM ); 20977836SJohn.Forte@Sun.COM 20987836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDataPduInOrder( 20997836SJohn.Forte@Sun.COM IMA_OID oid, 21007836SJohn.Forte@Sun.COM IMA_BOOL dataPduInOrder 21017836SJohn.Forte@Sun.COM ); 21027836SJohn.Forte@Sun.COM 21037836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDataSequenceInOrderProperties( 21047836SJohn.Forte@Sun.COM IMA_OID oid, 21057836SJohn.Forte@Sun.COM IMA_BOOL_VALUE *pProps 21067836SJohn.Forte@Sun.COM ); 21077836SJohn.Forte@Sun.COM 21087836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDataSequenceInOrder( 21097836SJohn.Forte@Sun.COM IMA_OID oid, 21107836SJohn.Forte@Sun.COM IMA_BOOL dataSequenceInOrder 21117836SJohn.Forte@Sun.COM ); 21127836SJohn.Forte@Sun.COM 21137836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetStatisticsCollection( 21147836SJohn.Forte@Sun.COM IMA_OID oid, 21157836SJohn.Forte@Sun.COM IMA_BOOL enableStatisticsCollection 21167836SJohn.Forte@Sun.COM ); 21177836SJohn.Forte@Sun.COM 21187836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNetworkPortStatus( 21197836SJohn.Forte@Sun.COM IMA_OID portOid, 21207836SJohn.Forte@Sun.COM IMA_NETWORK_PORT_STATUS *pStatus 21217836SJohn.Forte@Sun.COM ); 21227836SJohn.Forte@Sun.COM 21237836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetTargetOidList( 21247836SJohn.Forte@Sun.COM IMA_OID oid, 21257836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 21267836SJohn.Forte@Sun.COM ); 21277836SJohn.Forte@Sun.COM 21287836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RemoveStaleData( 21297836SJohn.Forte@Sun.COM IMA_OID lhbaOid 21307836SJohn.Forte@Sun.COM ); 21317836SJohn.Forte@Sun.COM 21327836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetIsnsDiscovery( 21337836SJohn.Forte@Sun.COM IMA_OID phbaId, 21347836SJohn.Forte@Sun.COM IMA_BOOL enableIsnsDiscovery, 21357836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD discoveryMethod, 21367836SJohn.Forte@Sun.COM const IMA_HOST_ID *iSnsHost 21377836SJohn.Forte@Sun.COM ); 21387836SJohn.Forte@Sun.COM 21397836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetSlpDiscovery( 21407836SJohn.Forte@Sun.COM IMA_OID phbaOid, 21417836SJohn.Forte@Sun.COM IMA_BOOL enableSlpDiscovery 21427836SJohn.Forte@Sun.COM ); 21437836SJohn.Forte@Sun.COM 21447836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetStaticDiscovery( 21457836SJohn.Forte@Sun.COM IMA_OID phbaOid, 21467836SJohn.Forte@Sun.COM IMA_BOOL enableStaticDiscovery 21477836SJohn.Forte@Sun.COM ); 21487836SJohn.Forte@Sun.COM 21497836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetSendTargetsDiscovery( 21507836SJohn.Forte@Sun.COM IMA_OID oid, 21517836SJohn.Forte@Sun.COM IMA_BOOL enableSendTargetsDiscovery 21527836SJohn.Forte@Sun.COM ); 21537836SJohn.Forte@Sun.COM 21547836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RemoveStaticDiscoveryTarget( 21557836SJohn.Forte@Sun.COM IMA_OID targetOid 21567836SJohn.Forte@Sun.COM ); 21577836SJohn.Forte@Sun.COM 21587836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetIpsecProperties( 21597836SJohn.Forte@Sun.COM IMA_OID phbaOid, 21607836SJohn.Forte@Sun.COM IMA_IPSEC_PROPERTIES *pProps 21617836SJohn.Forte@Sun.COM ); 21627836SJohn.Forte@Sun.COM 21637836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPnpOidList( 21647836SJohn.Forte@Sun.COM IMA_OID oid, 21657836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 21667836SJohn.Forte@Sun.COM ); 21677836SJohn.Forte@Sun.COM 21687836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPhbaDownloadProperties( 21697836SJohn.Forte@Sun.COM IMA_OID phbaOid, 21707836SJohn.Forte@Sun.COM IMA_PHBA_DOWNLOAD_PROPERTIES *pProps 21717836SJohn.Forte@Sun.COM ); 21727836SJohn.Forte@Sun.COM 21737836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_IsPhbaDownloadFile( 21747836SJohn.Forte@Sun.COM IMA_OID phbaOid, 21757836SJohn.Forte@Sun.COM const IMA_WCHAR *pFileName, 21767836SJohn.Forte@Sun.COM IMA_PHBA_DOWNLOAD_IMAGE_PROPERTIES *pProps 21777836SJohn.Forte@Sun.COM ); 21787836SJohn.Forte@Sun.COM 21797836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_PhbaDownload( 21807836SJohn.Forte@Sun.COM IMA_OID phbaOid, 21817836SJohn.Forte@Sun.COM IMA_PHBA_DOWNLOAD_IMAGE_TYPE imageType, 21827836SJohn.Forte@Sun.COM const IMA_WCHAR *pFileName 21837836SJohn.Forte@Sun.COM ); 21847836SJohn.Forte@Sun.COM 21857836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetNetworkPortalProperties( 21867836SJohn.Forte@Sun.COM IMA_OID networkPortalOid, 21877836SJohn.Forte@Sun.COM IMA_NETWORK_PORTAL_PROPERTIES *pProps 21887836SJohn.Forte@Sun.COM ); 21897836SJohn.Forte@Sun.COM 21907836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetNetworkPortalIpAddress( 21917836SJohn.Forte@Sun.COM IMA_OID networkPortalOid, 21927836SJohn.Forte@Sun.COM const IMA_IP_ADDRESS NewIpAddress 21937836SJohn.Forte@Sun.COM ); 21947836SJohn.Forte@Sun.COM 21957836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLnpOidList( 21967836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 21977836SJohn.Forte@Sun.COM ); 21987836SJohn.Forte@Sun.COM 21997836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLnpProperties( 22007836SJohn.Forte@Sun.COM IMA_OID lnpOid, 22017836SJohn.Forte@Sun.COM IMA_LNP_PROPERTIES *pProps 22027836SJohn.Forte@Sun.COM ); 22037836SJohn.Forte@Sun.COM 22047836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPnpProperties( 22057836SJohn.Forte@Sun.COM IMA_OID pnpOid, 22067836SJohn.Forte@Sun.COM IMA_PNP_PROPERTIES *pProps 22077836SJohn.Forte@Sun.COM ); 22087836SJohn.Forte@Sun.COM 22097836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPnpStatistics( 22107836SJohn.Forte@Sun.COM IMA_OID pnpOid, 22117836SJohn.Forte@Sun.COM IMA_PNP_STATISTICS *pStats 22127836SJohn.Forte@Sun.COM ); 22137836SJohn.Forte@Sun.COM 22147836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetTargetProperties( 22157836SJohn.Forte@Sun.COM IMA_OID targetOid, 22167836SJohn.Forte@Sun.COM IMA_TARGET_PROPERTIES *pProps 22177836SJohn.Forte@Sun.COM ); 22187836SJohn.Forte@Sun.COM 22197836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetTargetErrorStatistics( 22207836SJohn.Forte@Sun.COM IMA_OID targetOid, 22217836SJohn.Forte@Sun.COM IMA_TARGET_ERROR_STATISTICS *pStats 22227836SJohn.Forte@Sun.COM ); 22237836SJohn.Forte@Sun.COM 22247836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLuOidList( 22257836SJohn.Forte@Sun.COM IMA_OID oid, 22267836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 22277836SJohn.Forte@Sun.COM ); 22287836SJohn.Forte@Sun.COM 22297836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLuOid( 22307836SJohn.Forte@Sun.COM IMA_OID targetOid, 22317836SJohn.Forte@Sun.COM IMA_UINT64 lun, 22327836SJohn.Forte@Sun.COM IMA_OID *pluOid 22337836SJohn.Forte@Sun.COM ); 22347836SJohn.Forte@Sun.COM 22357836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetLuProperties( 22367836SJohn.Forte@Sun.COM IMA_OID luOid, 22377836SJohn.Forte@Sun.COM IMA_LU_PROPERTIES *pProps 22387836SJohn.Forte@Sun.COM ); 22397836SJohn.Forte@Sun.COM 22407836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetStatisticsProperties( 22417836SJohn.Forte@Sun.COM IMA_OID oid, 22427836SJohn.Forte@Sun.COM IMA_STATISTICS_PROPERTIES *pProps 22437836SJohn.Forte@Sun.COM ); 22447836SJohn.Forte@Sun.COM 22457836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDeviceStatistics( 22467836SJohn.Forte@Sun.COM IMA_OID oid, 22477836SJohn.Forte@Sun.COM IMA_DEVICE_STATISTICS *pStats 22487836SJohn.Forte@Sun.COM ); 22497836SJohn.Forte@Sun.COM 22507836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_LuInquiry( 22517836SJohn.Forte@Sun.COM IMA_OID deviceOid, 22527836SJohn.Forte@Sun.COM IMA_BOOL evpd, 22537836SJohn.Forte@Sun.COM IMA_BOOL cmddt, 22547836SJohn.Forte@Sun.COM IMA_BYTE pageCode, 22557836SJohn.Forte@Sun.COM 22567836SJohn.Forte@Sun.COM IMA_BYTE *pOutputBuffer, 22577836SJohn.Forte@Sun.COM IMA_UINT *pOutputBufferLength, 22587836SJohn.Forte@Sun.COM 22597836SJohn.Forte@Sun.COM IMA_BYTE *pSenseBuffer, 22607836SJohn.Forte@Sun.COM IMA_UINT *pSenseBufferLength 22617836SJohn.Forte@Sun.COM ); 22627836SJohn.Forte@Sun.COM 22637836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_LuReadCapacity( 22647836SJohn.Forte@Sun.COM IMA_OID deviceOid, 22657836SJohn.Forte@Sun.COM IMA_UINT cdbLength, 22667836SJohn.Forte@Sun.COM IMA_BYTE *pOutputBuffer, 22677836SJohn.Forte@Sun.COM IMA_UINT *pOutputBufferLength, 22687836SJohn.Forte@Sun.COM 22697836SJohn.Forte@Sun.COM IMA_BYTE *pSenseBuffer, 22707836SJohn.Forte@Sun.COM IMA_UINT *pSenseBufferLength 22717836SJohn.Forte@Sun.COM ); 22727836SJohn.Forte@Sun.COM 22737836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_LuReportLuns( 22747836SJohn.Forte@Sun.COM IMA_OID deviceOid, 22757836SJohn.Forte@Sun.COM IMA_BOOL sendToWellKnownLun, 22767836SJohn.Forte@Sun.COM IMA_BYTE selectReport, 22777836SJohn.Forte@Sun.COM 22787836SJohn.Forte@Sun.COM IMA_BYTE *pOutputBuffer, 22797836SJohn.Forte@Sun.COM IMA_UINT *pOutputBufferLength, 22807836SJohn.Forte@Sun.COM 22817836SJohn.Forte@Sun.COM IMA_BYTE *pSenseBuffer, 22827836SJohn.Forte@Sun.COM IMA_UINT *pSenseBufferLength 22837836SJohn.Forte@Sun.COM ); 22847836SJohn.Forte@Sun.COM 22857836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_ExposeLu( 22867836SJohn.Forte@Sun.COM IMA_OID luOid 22877836SJohn.Forte@Sun.COM ); 22887836SJohn.Forte@Sun.COM 22897836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_UnexposeLu( 22907836SJohn.Forte@Sun.COM IMA_OID luOid 22917836SJohn.Forte@Sun.COM ); 22927836SJohn.Forte@Sun.COM 22937836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetPhbaStatus( 22947836SJohn.Forte@Sun.COM IMA_OID hbaOid, 22957836SJohn.Forte@Sun.COM IMA_PHBA_STATUS *pStatus 22967836SJohn.Forte@Sun.COM ); 22977836SJohn.Forte@Sun.COM 22987836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RegisterForObjectVisibilityChanges ( 22997836SJohn.Forte@Sun.COM IMA_OBJECT_VISIBILITY_FN pClientFn 23007836SJohn.Forte@Sun.COM ); 23017836SJohn.Forte@Sun.COM 23027836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_DeregisterForObjectVisibilityChanges ( 23037836SJohn.Forte@Sun.COM IMA_OBJECT_VISIBILITY_FN pClientFn 23047836SJohn.Forte@Sun.COM ); 23057836SJohn.Forte@Sun.COM 23067836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RegisterForObjectPropertyChanges ( 23077836SJohn.Forte@Sun.COM IMA_OBJECT_PROPERTY_FN pClientFn 23087836SJohn.Forte@Sun.COM ); 23097836SJohn.Forte@Sun.COM 23107836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_DeregisterForObjectPropertyChanges ( 23117836SJohn.Forte@Sun.COM IMA_OBJECT_PROPERTY_FN pClientFn 23127836SJohn.Forte@Sun.COM ); 23137836SJohn.Forte@Sun.COM 23147836SJohn.Forte@Sun.COM 23157836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetAddressKeyProperties( 23167836SJohn.Forte@Sun.COM IMA_OID targetOid, 23177836SJohn.Forte@Sun.COM IMA_ADDRESS_KEY_PROPERTIES **ppProps 23187836SJohn.Forte@Sun.COM ); 23197836SJohn.Forte@Sun.COM 23207836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetIpProperties( 23217836SJohn.Forte@Sun.COM IMA_OID oid, 23227836SJohn.Forte@Sun.COM IMA_IP_PROPERTIES *pProps 23237836SJohn.Forte@Sun.COM ); 23247836SJohn.Forte@Sun.COM 23257836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetIpConfigMethod( 23267836SJohn.Forte@Sun.COM IMA_OID oid, 23277836SJohn.Forte@Sun.COM IMA_BOOL enableDhcpIpConfiguration 23287836SJohn.Forte@Sun.COM ); 23297836SJohn.Forte@Sun.COM 23307836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetIsnsDiscovery( 23317836SJohn.Forte@Sun.COM IMA_OID oid, 23327836SJohn.Forte@Sun.COM IMA_BOOL enableIsnsDiscovery, 23337836SJohn.Forte@Sun.COM IMA_ISNS_DISCOVERY_METHOD discoveryMethod, 23347836SJohn.Forte@Sun.COM const IMA_HOST_ID *iSnsHost 23357836SJohn.Forte@Sun.COM ); 23367836SJohn.Forte@Sun.COM 23377836SJohn.Forte@Sun.COM 23387836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetSubnetMask( 23397836SJohn.Forte@Sun.COM IMA_OID oid, 23407836SJohn.Forte@Sun.COM IMA_IP_ADDRESS subnetMask 23417836SJohn.Forte@Sun.COM ); 23427836SJohn.Forte@Sun.COM 23437836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDnsServerAddress( 23447836SJohn.Forte@Sun.COM IMA_OID oid, 23457836SJohn.Forte@Sun.COM const IMA_IP_ADDRESS *pPrimaryDnsServerAddress, 23467836SJohn.Forte@Sun.COM const IMA_IP_ADDRESS *pAlternateDnsServerAddress 23477836SJohn.Forte@Sun.COM ); 23487836SJohn.Forte@Sun.COM 23497836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetDefaultGateway( 23507836SJohn.Forte@Sun.COM IMA_OID oid, 23517836SJohn.Forte@Sun.COM IMA_IP_ADDRESS defaultGateway 23527836SJohn.Forte@Sun.COM ); 23537836SJohn.Forte@Sun.COM 23547836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetSupportedAuthMethods( 23557836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 23567836SJohn.Forte@Sun.COM IMA_BOOL getSettableMethods, 23577836SJohn.Forte@Sun.COM IMA_UINT *pMethodCount, 23587836SJohn.Forte@Sun.COM IMA_AUTHMETHOD *pMethodList 23597836SJohn.Forte@Sun.COM ); 23607836SJohn.Forte@Sun.COM 23617836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetInUseInitiatorAuthMethods( 23627836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 23637836SJohn.Forte@Sun.COM IMA_UINT *pMethodCount, 23647836SJohn.Forte@Sun.COM IMA_AUTHMETHOD *pMethodList 23657836SJohn.Forte@Sun.COM ); 23667836SJohn.Forte@Sun.COM 23677836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetInitiatorAuthParms( 23687836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 23697836SJohn.Forte@Sun.COM IMA_AUTHMETHOD method, 23707836SJohn.Forte@Sun.COM IMA_INITIATOR_AUTHPARMS *pParms 23717836SJohn.Forte@Sun.COM ); 23727836SJohn.Forte@Sun.COM 23737836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetInitiatorAuthMethods( 23747836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 23757836SJohn.Forte@Sun.COM IMA_UINT methodCount, 23767836SJohn.Forte@Sun.COM const IMA_AUTHMETHOD *pMethodList 23777836SJohn.Forte@Sun.COM ); 23787836SJohn.Forte@Sun.COM 23797836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetInitiatorAuthParms( 23807836SJohn.Forte@Sun.COM IMA_OID lhbaOid, 23817836SJohn.Forte@Sun.COM IMA_AUTHMETHOD method, 23827836SJohn.Forte@Sun.COM const IMA_INITIATOR_AUTHPARMS *pParms 23837836SJohn.Forte@Sun.COM ); 23847836SJohn.Forte@Sun.COM 23857836SJohn.Forte@Sun.COM 23867836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetOidList ( 23877836SJohn.Forte@Sun.COM IMA_OID oid, 23887836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 23897836SJohn.Forte@Sun.COM ); 23907836SJohn.Forte@Sun.COM 23917836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetStaticDiscoveryTargetProperties( 23927836SJohn.Forte@Sun.COM IMA_OID staticDiscoveryTargetOid, 23937836SJohn.Forte@Sun.COM IMA_STATIC_DISCOVERY_TARGET_PROPERTIES *pProps 23947836SJohn.Forte@Sun.COM ); 23957836SJohn.Forte@Sun.COM 23967836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_SetStaticDiscovery( 23977836SJohn.Forte@Sun.COM IMA_OID oid, 23987836SJohn.Forte@Sun.COM IMA_BOOL enableStaticDiscovery 23997836SJohn.Forte@Sun.COM ); 24007836SJohn.Forte@Sun.COM 24017836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDiscoveryProperties( 24027836SJohn.Forte@Sun.COM IMA_OID oid, 24037836SJohn.Forte@Sun.COM IMA_DISCOVERY_PROPERTIES *pProps 24047836SJohn.Forte@Sun.COM ); 24057836SJohn.Forte@Sun.COM 24067836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_AddDiscoveryAddress( 24077836SJohn.Forte@Sun.COM IMA_OID oid, 24087836SJohn.Forte@Sun.COM const IMA_TARGET_ADDRESS discoveryAddress, 24097836SJohn.Forte@Sun.COM IMA_OID *pDiscoveryAddressOid 24107836SJohn.Forte@Sun.COM ); 24117836SJohn.Forte@Sun.COM 24127836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_AddStaticDiscoveryTarget( 24137836SJohn.Forte@Sun.COM IMA_OID oid, 24147836SJohn.Forte@Sun.COM const IMA_STATIC_DISCOVERY_TARGET staticDiscoveryTarget, 24157836SJohn.Forte@Sun.COM IMA_OID *pStaticDiscoveryTargetOid 24167836SJohn.Forte@Sun.COM ); 24177836SJohn.Forte@Sun.COM 24187836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetAddressKeys( 24197836SJohn.Forte@Sun.COM IMA_OID targetOid, 24207836SJohn.Forte@Sun.COM IMA_ADDRESS_KEYS **ppKeys 24217836SJohn.Forte@Sun.COM ); 24227836SJohn.Forte@Sun.COM 24237836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetSessionOidList ( 24247836SJohn.Forte@Sun.COM IMA_OID oid, 24257836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 24267836SJohn.Forte@Sun.COM ); 24277836SJohn.Forte@Sun.COM 24287836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetConnectionOidList ( 24297836SJohn.Forte@Sun.COM IMA_OID oid, 24307836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 24317836SJohn.Forte@Sun.COM ); 24327836SJohn.Forte@Sun.COM 24337836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDiscoveryAddressOidList ( 24347836SJohn.Forte@Sun.COM IMA_OID oid, 24357836SJohn.Forte@Sun.COM IMA_OID_LIST **ppList 24367836SJohn.Forte@Sun.COM ); 24377836SJohn.Forte@Sun.COM 24387836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_GetDiscoveryAddressProperties ( 24397836SJohn.Forte@Sun.COM IMA_OID discoveryAddressOid, 24407836SJohn.Forte@Sun.COM IMA_DISCOVERY_ADDRESS_PROPERTIES *pProps 24417836SJohn.Forte@Sun.COM ); 24427836SJohn.Forte@Sun.COM 24437836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_RemoveDiscoveryAddress ( 24447836SJohn.Forte@Sun.COM IMA_OID oid 24457836SJohn.Forte@Sun.COM ); 24467836SJohn.Forte@Sun.COM 24477836SJohn.Forte@Sun.COM IMA_API IMA_STATUS QIMA_SetUpdateInterval(IMA_OID pluginOid, time_t interval); 24487836SJohn.Forte@Sun.COM 24497836SJohn.Forte@Sun.COM IMA_API IMA_STATUS IMA_CommitHbaParameters (IMA_OID lhba, IMA_COMMIT_LEVEL commitLevel); 24507836SJohn.Forte@Sun.COM 24517836SJohn.Forte@Sun.COM #endif 24527836SJohn.Forte@Sun.COM 24537836SJohn.Forte@Sun.COM #ifdef __cplusplus 24547836SJohn.Forte@Sun.COM }; 24557836SJohn.Forte@Sun.COM #endif 24567836SJohn.Forte@Sun.COM 24577836SJohn.Forte@Sun.COM 2458