1*7836SJohn.Forte@Sun.COM /* 2*7836SJohn.Forte@Sun.COM * CDDL HEADER START 3*7836SJohn.Forte@Sun.COM * 4*7836SJohn.Forte@Sun.COM * The contents of this file are subject to the terms of the 5*7836SJohn.Forte@Sun.COM * Common Development and Distribution License (the "License"). 6*7836SJohn.Forte@Sun.COM * You may not use this file except in compliance with the License. 7*7836SJohn.Forte@Sun.COM * 8*7836SJohn.Forte@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*7836SJohn.Forte@Sun.COM * or http://www.opensolaris.org/os/licensing. 10*7836SJohn.Forte@Sun.COM * See the License for the specific language governing permissions 11*7836SJohn.Forte@Sun.COM * and limitations under the License. 12*7836SJohn.Forte@Sun.COM * 13*7836SJohn.Forte@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 14*7836SJohn.Forte@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*7836SJohn.Forte@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 16*7836SJohn.Forte@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 17*7836SJohn.Forte@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 18*7836SJohn.Forte@Sun.COM * 19*7836SJohn.Forte@Sun.COM * CDDL HEADER END 20*7836SJohn.Forte@Sun.COM */ 21*7836SJohn.Forte@Sun.COM /* 22*7836SJohn.Forte@Sun.COM * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*7836SJohn.Forte@Sun.COM * Use is subject to license terms. 24*7836SJohn.Forte@Sun.COM */ 25*7836SJohn.Forte@Sun.COM 26*7836SJohn.Forte@Sun.COM #ifndef _LIBSTMF_H 27*7836SJohn.Forte@Sun.COM #define _LIBSTMF_H 28*7836SJohn.Forte@Sun.COM 29*7836SJohn.Forte@Sun.COM #include <time.h> 30*7836SJohn.Forte@Sun.COM #include <sys/param.h> 31*7836SJohn.Forte@Sun.COM #include <libnvpair.h> 32*7836SJohn.Forte@Sun.COM 33*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 34*7836SJohn.Forte@Sun.COM extern "C" { 35*7836SJohn.Forte@Sun.COM #endif 36*7836SJohn.Forte@Sun.COM 37*7836SJohn.Forte@Sun.COM /* Constants and Types */ 38*7836SJohn.Forte@Sun.COM 39*7836SJohn.Forte@Sun.COM /* LU and Local Port states */ 40*7836SJohn.Forte@Sun.COM #define STMF_LOGICAL_UNIT_OFFLINE 0 41*7836SJohn.Forte@Sun.COM #define STMF_LOGICAL_UNIT_OFFLINING 1 42*7836SJohn.Forte@Sun.COM #define STMF_LOGICAL_UNIT_ONLINE 2 43*7836SJohn.Forte@Sun.COM #define STMF_LOGICAL_UNIT_ONLINING 3 44*7836SJohn.Forte@Sun.COM #define STMF_LOGICAL_UNIT_UNREGISTERED 4 45*7836SJohn.Forte@Sun.COM #define STMF_TARGET_PORT_OFFLINE 5 46*7836SJohn.Forte@Sun.COM #define STMF_TARGET_PORT_OFFLINING 6 47*7836SJohn.Forte@Sun.COM #define STMF_TARGET_PORT_ONLINE 7 48*7836SJohn.Forte@Sun.COM #define STMF_TARGET_PORT_ONLINING 8 49*7836SJohn.Forte@Sun.COM #define STMF_SERVICE_STATE_ONLINE 9 50*7836SJohn.Forte@Sun.COM #define STMF_SERVICE_STATE_OFFLINE 10 51*7836SJohn.Forte@Sun.COM #define STMF_SERVICE_STATE_ONLINING 11 52*7836SJohn.Forte@Sun.COM #define STMF_SERVICE_STATE_OFFLINING 12 53*7836SJohn.Forte@Sun.COM #define STMF_SERVICE_STATE_UNKNOWN 13 54*7836SJohn.Forte@Sun.COM #define STMF_CONFIG_STATE_NONE 14 55*7836SJohn.Forte@Sun.COM #define STMF_CONFIG_STATE_INIT 15 56*7836SJohn.Forte@Sun.COM #define STMF_CONFIG_STATE_INIT_DONE 16 57*7836SJohn.Forte@Sun.COM #define STMF_CONFIG_STATE_UNKNOWN 17 58*7836SJohn.Forte@Sun.COM 59*7836SJohn.Forte@Sun.COM #define STMF_IDENT_LENGTH 255 60*7836SJohn.Forte@Sun.COM 61*7836SJohn.Forte@Sun.COM /* API status return values */ 62*7836SJohn.Forte@Sun.COM #define STMF_STATUS_SUCCESS 0x0000 63*7836SJohn.Forte@Sun.COM #define STMF_STATUS_ERROR 0x8000 64*7836SJohn.Forte@Sun.COM #define STMF_ERROR_BUSY (STMF_STATUS_ERROR | 0x01) 65*7836SJohn.Forte@Sun.COM #define STMF_ERROR_NOT_FOUND (STMF_STATUS_ERROR | 0x02) 66*7836SJohn.Forte@Sun.COM #define STMF_ERROR_MEMBER_NOT_FOUND (STMF_STATUS_ERROR | 0x03) 67*7836SJohn.Forte@Sun.COM #define STMF_ERROR_GROUP_NOT_FOUND (STMF_STATUS_ERROR | 0x04) 68*7836SJohn.Forte@Sun.COM #define STMF_ERROR_PERM (STMF_STATUS_ERROR | 0x05) 69*7836SJohn.Forte@Sun.COM #define STMF_ERROR_NOMEM (STMF_STATUS_ERROR | 0x06) 70*7836SJohn.Forte@Sun.COM #define STMF_ERROR_INVALID_ARG (STMF_STATUS_ERROR | 0x07) 71*7836SJohn.Forte@Sun.COM #define STMF_ERROR_EXISTS (STMF_STATUS_ERROR | 0x08) 72*7836SJohn.Forte@Sun.COM #define STMF_ERROR_SERVICE_NOT_FOUND (STMF_STATUS_ERROR | 0x09) 73*7836SJohn.Forte@Sun.COM #define STMF_ERROR_SERVICE_ONLINE (STMF_STATUS_ERROR | 0x0a) 74*7836SJohn.Forte@Sun.COM #define STMF_ERROR_SERVICE_OFFLINE (STMF_STATUS_ERROR | 0x0b) 75*7836SJohn.Forte@Sun.COM #define STMF_ERROR_GROUP_IN_USE (STMF_STATUS_ERROR | 0x0c) 76*7836SJohn.Forte@Sun.COM #define STMF_ERROR_LUN_IN_USE (STMF_STATUS_ERROR | 0x0d) 77*7836SJohn.Forte@Sun.COM #define STMF_ERROR_VE_CONFLICT (STMF_STATUS_ERROR | 0x0e) 78*7836SJohn.Forte@Sun.COM #define STMF_ERROR_CONFIG_NONE (STMF_STATUS_ERROR | 0x0f) 79*7836SJohn.Forte@Sun.COM #define STMF_ERROR_SERVICE_DATA_VERSION (STMF_STATUS_ERROR | 0x10) 80*7836SJohn.Forte@Sun.COM #define STMF_ERROR_INVALID_HG (STMF_STATUS_ERROR | 0x11) 81*7836SJohn.Forte@Sun.COM #define STMF_ERROR_INVALID_TG (STMF_STATUS_ERROR | 0x12) 82*7836SJohn.Forte@Sun.COM #define STMF_ERROR_PROV_DATA_STALE (STMF_STATUS_ERROR | 0x13) 83*7836SJohn.Forte@Sun.COM 84*7836SJohn.Forte@Sun.COM /* Initiator Name Types */ 85*7836SJohn.Forte@Sun.COM #define STMF_FC_PORT_WWN 1 86*7836SJohn.Forte@Sun.COM #define STMF_ISCSI_NAME 2 87*7836SJohn.Forte@Sun.COM 88*7836SJohn.Forte@Sun.COM /* protected data flag for provider store */ 89*7836SJohn.Forte@Sun.COM #define STMF_PROTECTED_DATA 0x0001 90*7836SJohn.Forte@Sun.COM 91*7836SJohn.Forte@Sun.COM /* provider types */ 92*7836SJohn.Forte@Sun.COM #define STMF_LU_PROVIDER_TYPE 1 93*7836SJohn.Forte@Sun.COM #define STMF_PORT_PROVIDER_TYPE 2 94*7836SJohn.Forte@Sun.COM 95*7836SJohn.Forte@Sun.COM 96*7836SJohn.Forte@Sun.COM /* devid code set and name types */ 97*7836SJohn.Forte@Sun.COM #define EUI_64_TYPE 2 98*7836SJohn.Forte@Sun.COM #define NAA_TYPE 3 99*7836SJohn.Forte@Sun.COM #define SCSI_NAME_TYPE 8 100*7836SJohn.Forte@Sun.COM 101*7836SJohn.Forte@Sun.COM #define BINARY_CODE_SET 1 102*7836SJohn.Forte@Sun.COM #define ASCII_CODE_SET 2 103*7836SJohn.Forte@Sun.COM #define UTF_8_CODE_SET 3 104*7836SJohn.Forte@Sun.COM 105*7836SJohn.Forte@Sun.COM typedef enum _stmfProtocol 106*7836SJohn.Forte@Sun.COM { 107*7836SJohn.Forte@Sun.COM STMF_PROTOCOL_FIBRE_CHANNEL = 0, 108*7836SJohn.Forte@Sun.COM STMF_PROTOCOL_ISCSI = 1, 109*7836SJohn.Forte@Sun.COM STMF_PROTOCOL_SAS = 2 110*7836SJohn.Forte@Sun.COM } stmfProtocol; 111*7836SJohn.Forte@Sun.COM 112*7836SJohn.Forte@Sun.COM 113*7836SJohn.Forte@Sun.COM typedef struct _stmfGuid 114*7836SJohn.Forte@Sun.COM { 115*7836SJohn.Forte@Sun.COM uchar_t guid[16]; 116*7836SJohn.Forte@Sun.COM } stmfGuid; 117*7836SJohn.Forte@Sun.COM 118*7836SJohn.Forte@Sun.COM typedef struct _stmfGuidList 119*7836SJohn.Forte@Sun.COM { 120*7836SJohn.Forte@Sun.COM uint32_t cnt; 121*7836SJohn.Forte@Sun.COM stmfGuid guid[1]; 122*7836SJohn.Forte@Sun.COM } stmfGuidList; 123*7836SJohn.Forte@Sun.COM 124*7836SJohn.Forte@Sun.COM typedef struct _stmfState 125*7836SJohn.Forte@Sun.COM { 126*7836SJohn.Forte@Sun.COM int operationalState; 127*7836SJohn.Forte@Sun.COM int configState; 128*7836SJohn.Forte@Sun.COM } stmfState; 129*7836SJohn.Forte@Sun.COM 130*7836SJohn.Forte@Sun.COM typedef struct _stmfDevid 131*7836SJohn.Forte@Sun.COM { 132*7836SJohn.Forte@Sun.COM uint8_t identLength; /* length of ident */ 133*7836SJohn.Forte@Sun.COM uint8_t ident[STMF_IDENT_LENGTH]; /* SCSI name string ident */ 134*7836SJohn.Forte@Sun.COM } stmfDevid; 135*7836SJohn.Forte@Sun.COM 136*7836SJohn.Forte@Sun.COM typedef struct _stmfDevidList 137*7836SJohn.Forte@Sun.COM { 138*7836SJohn.Forte@Sun.COM uint32_t cnt; 139*7836SJohn.Forte@Sun.COM stmfDevid devid[1]; 140*7836SJohn.Forte@Sun.COM } stmfDevidList; 141*7836SJohn.Forte@Sun.COM 142*7836SJohn.Forte@Sun.COM typedef char stmfGroupName[256]; 143*7836SJohn.Forte@Sun.COM typedef char stmfProviderName[256]; 144*7836SJohn.Forte@Sun.COM 145*7836SJohn.Forte@Sun.COM typedef struct _stmfGroupList 146*7836SJohn.Forte@Sun.COM { 147*7836SJohn.Forte@Sun.COM uint32_t cnt; 148*7836SJohn.Forte@Sun.COM stmfGroupName name[1]; 149*7836SJohn.Forte@Sun.COM } stmfGroupList; 150*7836SJohn.Forte@Sun.COM 151*7836SJohn.Forte@Sun.COM typedef struct _stmfProvider 152*7836SJohn.Forte@Sun.COM { 153*7836SJohn.Forte@Sun.COM int providerType; 154*7836SJohn.Forte@Sun.COM stmfProviderName name; 155*7836SJohn.Forte@Sun.COM } stmfProvider; 156*7836SJohn.Forte@Sun.COM 157*7836SJohn.Forte@Sun.COM typedef struct _stmfProviderList 158*7836SJohn.Forte@Sun.COM { 159*7836SJohn.Forte@Sun.COM uint32_t cnt; 160*7836SJohn.Forte@Sun.COM stmfProvider provider[1]; 161*7836SJohn.Forte@Sun.COM } stmfProviderList; 162*7836SJohn.Forte@Sun.COM 163*7836SJohn.Forte@Sun.COM typedef struct _stmfSession 164*7836SJohn.Forte@Sun.COM { 165*7836SJohn.Forte@Sun.COM stmfDevid initiator; 166*7836SJohn.Forte@Sun.COM char alias[256]; 167*7836SJohn.Forte@Sun.COM time_t creationTime; 168*7836SJohn.Forte@Sun.COM } stmfSession; 169*7836SJohn.Forte@Sun.COM 170*7836SJohn.Forte@Sun.COM typedef struct _stmfSessionList 171*7836SJohn.Forte@Sun.COM { 172*7836SJohn.Forte@Sun.COM uint32_t cnt; 173*7836SJohn.Forte@Sun.COM stmfSession session[1]; 174*7836SJohn.Forte@Sun.COM } stmfSessionList; 175*7836SJohn.Forte@Sun.COM 176*7836SJohn.Forte@Sun.COM 177*7836SJohn.Forte@Sun.COM typedef struct _stmfViewEntry 178*7836SJohn.Forte@Sun.COM { 179*7836SJohn.Forte@Sun.COM boolean_t veIndexValid; /* if B_TRUE, veIndex is valid value */ 180*7836SJohn.Forte@Sun.COM uint32_t veIndex; /* View Entry index */ 181*7836SJohn.Forte@Sun.COM boolean_t allHosts; /* all initiator ports */ 182*7836SJohn.Forte@Sun.COM stmfGroupName hostGroup; /* Host Group Name */ 183*7836SJohn.Forte@Sun.COM boolean_t allTargets; /* B_TRUE = targetGroup is invalid */ 184*7836SJohn.Forte@Sun.COM stmfGroupName targetGroup; /* Target Group Name */ 185*7836SJohn.Forte@Sun.COM boolean_t luNbrValid; /* if B_TRUE, luNbr is a valid value */ 186*7836SJohn.Forte@Sun.COM uchar_t luNbr[8]; /* LU number for this view entry */ 187*7836SJohn.Forte@Sun.COM } stmfViewEntry; 188*7836SJohn.Forte@Sun.COM 189*7836SJohn.Forte@Sun.COM typedef struct _stmfViewEntryList 190*7836SJohn.Forte@Sun.COM { 191*7836SJohn.Forte@Sun.COM uint32_t cnt; 192*7836SJohn.Forte@Sun.COM stmfViewEntry ve[1]; 193*7836SJohn.Forte@Sun.COM } stmfViewEntryList; 194*7836SJohn.Forte@Sun.COM 195*7836SJohn.Forte@Sun.COM typedef struct _stmfViewEntryProperties 196*7836SJohn.Forte@Sun.COM { 197*7836SJohn.Forte@Sun.COM stmfGuid associatedLogicalUnitGuid; 198*7836SJohn.Forte@Sun.COM stmfViewEntry viewEntry; 199*7836SJohn.Forte@Sun.COM } stmfViewEntryProperties; 200*7836SJohn.Forte@Sun.COM 201*7836SJohn.Forte@Sun.COM typedef struct _stmfGroupProperties 202*7836SJohn.Forte@Sun.COM { 203*7836SJohn.Forte@Sun.COM uint32_t cnt; 204*7836SJohn.Forte@Sun.COM stmfDevid name[1]; 205*7836SJohn.Forte@Sun.COM } stmfGroupProperties; 206*7836SJohn.Forte@Sun.COM 207*7836SJohn.Forte@Sun.COM typedef struct _stmfTargetProperties 208*7836SJohn.Forte@Sun.COM { 209*7836SJohn.Forte@Sun.COM stmfProviderName providerName; 210*7836SJohn.Forte@Sun.COM char alias[256]; 211*7836SJohn.Forte@Sun.COM uint16_t status; 212*7836SJohn.Forte@Sun.COM stmfProtocol protocol; 213*7836SJohn.Forte@Sun.COM stmfDevid devid; 214*7836SJohn.Forte@Sun.COM } stmfTargetProperties; 215*7836SJohn.Forte@Sun.COM 216*7836SJohn.Forte@Sun.COM typedef struct _stmfLogicalUnitProperties 217*7836SJohn.Forte@Sun.COM { 218*7836SJohn.Forte@Sun.COM char alias[256]; 219*7836SJohn.Forte@Sun.COM uchar_t vendor[8]; 220*7836SJohn.Forte@Sun.COM uchar_t product[16]; 221*7836SJohn.Forte@Sun.COM uchar_t revision[4]; 222*7836SJohn.Forte@Sun.COM uint32_t status; 223*7836SJohn.Forte@Sun.COM char providerName[256]; 224*7836SJohn.Forte@Sun.COM stmfGuid luid; 225*7836SJohn.Forte@Sun.COM } stmfLogicalUnitProperties; 226*7836SJohn.Forte@Sun.COM 227*7836SJohn.Forte@Sun.COM typedef struct _stmfLogicalUnitProviderProperties 228*7836SJohn.Forte@Sun.COM { 229*7836SJohn.Forte@Sun.COM char providerName[MAXPATHLEN]; 230*7836SJohn.Forte@Sun.COM uint32_t instance; 231*7836SJohn.Forte@Sun.COM uint32_t status; 232*7836SJohn.Forte@Sun.COM uchar_t rsvd[64]; 233*7836SJohn.Forte@Sun.COM } stmfLogicalUnitProviderProperties; 234*7836SJohn.Forte@Sun.COM 235*7836SJohn.Forte@Sun.COM typedef struct _stmfLocalPortProviderProperties 236*7836SJohn.Forte@Sun.COM { 237*7836SJohn.Forte@Sun.COM char providerName[MAXPATHLEN]; 238*7836SJohn.Forte@Sun.COM uint32_t instance; 239*7836SJohn.Forte@Sun.COM uint32_t status; 240*7836SJohn.Forte@Sun.COM uchar_t rsvd[64]; 241*7836SJohn.Forte@Sun.COM } stmfLocalPortProviderProperties; 242*7836SJohn.Forte@Sun.COM 243*7836SJohn.Forte@Sun.COM 244*7836SJohn.Forte@Sun.COM /* API prototypes */ 245*7836SJohn.Forte@Sun.COM int stmfAddToHostGroup(stmfGroupName *hostGroupName, stmfDevid *name); 246*7836SJohn.Forte@Sun.COM int stmfAddToTargetGroup(stmfGroupName *targetGroupName, stmfDevid *targetName); 247*7836SJohn.Forte@Sun.COM int stmfAddViewEntry(stmfGuid *lu, stmfViewEntry *viewEntry); 248*7836SJohn.Forte@Sun.COM int stmfClearProviderData(char *providerName, int providerType); 249*7836SJohn.Forte@Sun.COM int stmfCreateHostGroup(stmfGroupName *hostGroupName); 250*7836SJohn.Forte@Sun.COM int stmfCreateTargetGroup(stmfGroupName *targetGroupName); 251*7836SJohn.Forte@Sun.COM int stmfDeleteHostGroup(stmfGroupName *hostGroupName); 252*7836SJohn.Forte@Sun.COM int stmfDeleteTargetGroup(stmfGroupName *targetGroupName); 253*7836SJohn.Forte@Sun.COM int stmfDevidFromIscsiName(char *iscsiName, stmfDevid *devid); 254*7836SJohn.Forte@Sun.COM int stmfDevidFromWwn(uchar_t wwn[8], stmfDevid *devid); 255*7836SJohn.Forte@Sun.COM void stmfFreeMemory(void *); 256*7836SJohn.Forte@Sun.COM int stmfGetHostGroupList(stmfGroupList **initiatorGroupList); 257*7836SJohn.Forte@Sun.COM int stmfGetHostGroupMembers(stmfGroupName *hostGroupName, 258*7836SJohn.Forte@Sun.COM stmfGroupProperties **groupProperties); 259*7836SJohn.Forte@Sun.COM int stmfGetLocalPortProviderList(stmfProviderList **localPortProviderList); 260*7836SJohn.Forte@Sun.COM int stmfGetLocalPortProviderProperties(stmfProviderName *providerName, 261*7836SJohn.Forte@Sun.COM stmfLocalPortProviderProperties *providerProperties); 262*7836SJohn.Forte@Sun.COM int stmfGetLogicalUnitList(stmfGuidList **logicalUnitList); 263*7836SJohn.Forte@Sun.COM int stmfGetLogicalUnitProperties(stmfGuid *logicalUnit, 264*7836SJohn.Forte@Sun.COM stmfLogicalUnitProperties *logicalUnitProps); 265*7836SJohn.Forte@Sun.COM int stmfGetLogicalUnitProviderList(stmfProviderList **logicalUnitProviderList); 266*7836SJohn.Forte@Sun.COM int stmfGetLogicalUnitProviderProperties(stmfProviderName *providerName, 267*7836SJohn.Forte@Sun.COM stmfLogicalUnitProviderProperties *providerProperties); 268*7836SJohn.Forte@Sun.COM int stmfGetProviderData(char *providerName, nvlist_t **nvl, int providerType); 269*7836SJohn.Forte@Sun.COM int stmfGetProviderDataProt(char *providerName, nvlist_t **nvl, 270*7836SJohn.Forte@Sun.COM int providerType, uint64_t *setToken); 271*7836SJohn.Forte@Sun.COM int stmfGetSessionList(stmfDevid *target, stmfSessionList **sessionList); 272*7836SJohn.Forte@Sun.COM int stmfGetState(stmfState *); 273*7836SJohn.Forte@Sun.COM int stmfGetTargetGroupList(stmfGroupList **targetGroupList); 274*7836SJohn.Forte@Sun.COM int stmfGetTargetGroupMembers(stmfGroupName *targetGroupName, 275*7836SJohn.Forte@Sun.COM stmfGroupProperties **groupProperties); 276*7836SJohn.Forte@Sun.COM int stmfGetTargetList(stmfDevidList **targetList); 277*7836SJohn.Forte@Sun.COM int stmfGetTargetProperties(stmfDevid *target, 278*7836SJohn.Forte@Sun.COM stmfTargetProperties *targetProps); 279*7836SJohn.Forte@Sun.COM int stmfGetViewEntryList(stmfGuid *lu, stmfViewEntryList **viewEntryList); 280*7836SJohn.Forte@Sun.COM int stmfLoadConfig(void); 281*7836SJohn.Forte@Sun.COM int stmfOffline(void); 282*7836SJohn.Forte@Sun.COM int stmfOfflineTarget(stmfDevid *devid); 283*7836SJohn.Forte@Sun.COM int stmfOfflineLogicalUnit(stmfGuid *logicalUnit); 284*7836SJohn.Forte@Sun.COM int stmfOnline(void); 285*7836SJohn.Forte@Sun.COM int stmfOnlineTarget(stmfDevid *devid); 286*7836SJohn.Forte@Sun.COM int stmfOnlineLogicalUnit(stmfGuid *logicalUnit); 287*7836SJohn.Forte@Sun.COM int stmfRemoveFromHostGroup(stmfGroupName *hostGroupName, 288*7836SJohn.Forte@Sun.COM stmfDevid *initiatorName); 289*7836SJohn.Forte@Sun.COM int stmfRemoveFromTargetGroup(stmfGroupName *targetGroupName, 290*7836SJohn.Forte@Sun.COM stmfDevid *targetName); 291*7836SJohn.Forte@Sun.COM int stmfRemoveViewEntry(stmfGuid *lu, uint32_t viewEntryIndex); 292*7836SJohn.Forte@Sun.COM int stmfSetProviderData(char *providerName, nvlist_t *nvl, int providerType); 293*7836SJohn.Forte@Sun.COM int stmfSetProviderDataProt(char *providerName, nvlist_t *nvl, 294*7836SJohn.Forte@Sun.COM int providerType, uint64_t *setToken); 295*7836SJohn.Forte@Sun.COM 296*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 297*7836SJohn.Forte@Sun.COM } 298*7836SJohn.Forte@Sun.COM #endif 299*7836SJohn.Forte@Sun.COM 300*7836SJohn.Forte@Sun.COM #endif /* _LIBSTMF_H */ 301