/********************************************************************************************************************************/ /* Created: 15-MAR-2001 23:37:59 by OpenVMS SDL EV1-33 */ /* Source: 15-MAR-2001 23:34:09 _$11$DUA933:[BUILD.SDL]STARDEFFL.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $ISSDEF ***/ #ifndef __ISSDEF_LOADED #define __ISSDEF_LOADED 1 #pragma nostandard #ifdef __cplusplus extern "C" { #define __unknown_params ... #else #define __unknown_params #endif #if !defined(__VAXC) && !defined(VAXC) #define __struct struct #define __union union #else #define __struct variant_struct #define __union variant_union #endif /*+ */ /* $PERSONA_CREATE, $PERSONA_CREATE_INT itemlist item codes */ /* These item codes must match the TLV item codes in [LIB]PSBDEF.SDL */ /* */ /*- */ /*+ */ /* At the time of this modules creation there are four CHP$ item codes which */ /* must have the same value as their ISS$ counterparts. They are as follows: */ /* */ /* ISS$_WORKPRIV = CHP$_PRIV = 3 */ /* ISS$_CLASS = CHP$_CLASS = 5 */ /* ISS$_ADD_RIGHTS = CHP$_ADD_RIGHTS = 7 */ /* ISS$_UIC = CHP$_UIC = 22 */ /* */ /* This is to preserve backward comptibility with $CREATE_USER_PROFILE. */ /*- */ #define ISS$_FLAGS 1 /* 1 Persona flags */ #define ISS$_ARBFLAGS 2 /* 2 Unused */ #define ISS$_WORKPRIV 3 /* 3 Working privileges */ #define ISS$_MODE 4 /* 4 Access mode */ #define ISS$_WORKCLASS 5 /* 5 Working classification */ #define ISS$_RIGHTS 6 /* 6 Rights */ #define ISS$_ADD_RIGHTS 7 /* 7 Add to the Rights */ #define ISS$_ADD_AUTHRIGHTS 8 /* 8 Add to the AuthRights */ #define ISS$_USERNAME 9 /* 9 Username */ #define ISS$_ACCOUNT 10 /* 10 Account */ #define ISS$_NOAUDIT 11 /* 11 No Audit setting */ #define ISS$_AUTHPRIV 12 /* 12 Authorized privileges */ #define ISS$_PERMPRIV 13 /* 13 Permanent privileges */ #define ISS$_IMAGE_WORKPRIV 14 /* 14 Image working privileges */ #define ISS$_ENABLED 15 /* 15 Rights enabled mask */ #define ISS$_AUTHRIGHTS 16 /* 16 Authorized rights */ #define ISS$_MINCLASS 17 /* 17 Minimum classification */ #define ISS$_MAXCLASS 18 /* 18 Maximum classification */ #define ISS$_UID 19 /* 19 UID */ #define ISS$_PERSONA_ID 20 /* 20 Persona ID */ #define ISS$_PRINCIPAL 21 /* 21 Principal Name */ #define ISS$_UIC 22 /* 22 UIC */ #define ISS$_SWITCH_EXTENSION 23 /* 23 Switch Extension directive */ #define ISS$_PRIMARY_EXTENSION 24 /* 24 PSB Primary Extension */ #define ISS$_EXTENSION_COUNT 25 /* 25 Count of valid extensions */ #define ISS$_EXTENSION_ARRAY 26 /* 26 Array of valid extension IDs */ #define ISS$_RIGHTS_INDEX 27 /* 27 Rights Chain Index - sets the */ /* chain for all rights list */ /* operations. */ #define ISS$_MIN_ITEM_CODE 1 #define ISS$_MAX_ITEM_CODE 27 /*+ */ /* Bits within item code ISS$_FLAGS */ /*- */ #define ISS$M_FLAG_PERMANENT 0x1 #define ISS$M_FLAG_SECAUDIT 0x2 union issflagsdef { __struct { unsigned iss$v_flag_permanent : 1; unsigned iss$v_flag_secaudit : 1; unsigned iss$v_fill_0 : 30; } iss$r_issflags_bits; } ; #if !defined(__VAXC) && !defined(VAXC) #define iss$v_flag_permanent iss$r_issflags_bits.iss$v_flag_permanent #define iss$v_flag_secaudit iss$r_issflags_bits.iss$v_flag_secaudit #endif /* #if !defined(__VAXC) && !defined(VAXC) */ /* Codes that represent common attributes that are normally */ /* present in all persona extensions */ #define ISS$_COMMON_FLAGS 1024 /* Flags */ #define ISS$_COMMON_USERNAME 1025 /* Username */ #define ISS$_COMMON_ACCOUNT 1026 /* Account */ #define ISS$_DOMAIN 1027 /* Domain */ #define ISS$_COMMON_PRINCIPAL 1028 /* principal */ #define ISS$_DOI 1029 #define ISS$_EXTENSION 1030 /* */ #define ISS$_MIN_COMMON_ITEM_CODE 1024 #define ISS$_MAX_COMMON_ITEM_CODE 1030 /* Codes that represent attributes specific to each persona extension. */ /* These codes are shared by all extensions. */ /* NT Persona extension item codes */ #define ISS$_NT_TOKEN 8192 /* token */ #define ISS$_NT_SECURITY_SUBJECT 8193 /* securtiy context */ #define ISS$_NT_FLAGS 8194 #define ISS$_NT_USER_REFCOUNT 8195 #define ISS$_NT_PRINCIPAL 8196 #define ISS$_NT_CREDENTIALS 8197 /* access token + security context */ #define ISS$_NT_NT_OWF_PASSWORD 8198 /* */ #define ISS$_NT_LM_OWF_PASSWORD 8199 /* */ #define ISS$_NT_UNPACK_CRED_SIZE 8200 #define ISS$_NT_TOKEN_TOKENID 8201 #define ISS$_NT_TOKEN_IMPERSONATELEVEL 8202 #define ISS$_NT_TOKEN_AUTHENTICATIONID 8203 #define ISS$_NT_TOKEN_USERANDGROUPCOUNT 8204 #define ISS$_NT_TOKEN_VARIABLELENGTH 8205 #define ISS$_NT_TOKEN_USERANDGROUPS 8206 #define ISS$_NT_TOKEN_USERANDGROUPS_SID 8207 #define ISS$_NT_TOKEN_PRIMARYGROUP 8208 #define ISS$_NT_TOKEN_PRIVILEGES 8209 #define ISS$_NT_TOKEN_DEFAULTDACL 8210 #define ISS$_NT_TOKEN_UNIXUID 8211 #define ISS$_NT_TOKEN_UNIXGID 8212 #define ISS$_NT_TOKEN_GIDINFO 8213 #define ISS$_NT_TOKEN_GIDINFO_GIDS 8214 #define ISS$_NT_TOKEN_UNIXNAME 8215 #define ISS$_NT_TOKEN_DOMAINNAME 8216 #define ISS$_NT_TOKEN_USERNAME 8217 #define ISS$_NT_TOKEN_USERSESSIONKEY 8218 #define ISS$_NT_TOKEN_LMSESSIONKEY 8219 #define ISS$_NT_TOKEN_VARIABLEPART 8220 #define ISS$_NT_TOKEN_GROUP_LIST 8221 #define ISS$_NT_TOKEN_PRIVILEGES_LIST 8222 #define ISS$_NT_SECURITY_SIGNATURE 8223 #define ISS$_NT_SECURITY_SMBUID 8224 #define ISS$_NT_SECURITY_PROCESSAUDITID 8225 #define ISS$_NT_SECURITY_PROCESSID 8226 #define ISS$_NT_SECURITY_LOGONID 8227 #define ISS$_NT_SECURITY_LOGONTYPE 8228 #define ISS$_NT_SECURITY_SUBJECTFLAGS 8229 #define ISS$_NT_SECURITY_CONTEXT_OTHER 8230 #define ISS$_MIN_NT_ITEM_CODE 8192 #define ISS$_MAX_NT_ITEM_CODE 8230 /*+ */ /* Bits within item code ISS$_ENABLED */ /*- */ #define ISS$M_ENABLED_PERSONA 0x1 #define ISS$M_ENABLED_SUBSYSTEM 0x2 #define ISS$M_ENABLED_IMAGE 0x4 #define ISS$M_ENABLED_SYSTEM 0x8 #define ISS$M_ENABLED_TEMPORARY 0x10 union issenableddef { __struct { unsigned iss$v_enabled_persona : 1; unsigned iss$v_enabled_subsystem : 1; unsigned iss$v_enabled_image : 1; unsigned iss$v_enabled_system : 1; unsigned iss$v_enabled_temporary : 1; unsigned iss$v_fill_0 : 27; } iss$r_issenabled_bits; } ; #if !defined(__VAXC) && !defined(VAXC) #define iss$v_enabled_persona iss$r_issenabled_bits.iss$v_enabled_persona #define iss$v_enabled_subsystem iss$r_issenabled_bits.iss$v_enabled_subsystem #define iss$v_enabled_image iss$r_issenabled_bits.iss$v_enabled_image #define iss$v_enabled_system iss$r_issenabled_bits.iss$v_enabled_system #define iss$v_enabled_temporary iss$r_issenabled_bits.iss$v_enabled_temporary #endif /* #if !defined(__VAXC) && !defined(VAXC) */ /* ARB_SUPPORT constants */ #define ISS$C_ARB_UNSPECIFIED -1 #define ISS$C_ARB_NONE 0 #define ISS$C_ARB_CLEAR 1 #define ISS$C_ARB_READ_ONLY 2 #define ISS$C_ARB_FULL 3 #define ISS$C_ARB_MAX_CODE 3 #define ISS$C_ARB_MIN_CODE 0 /* Reserved Persona Ids */ #define ISS$C_ID_NATURAL 1 /*+ */ /* Persona services control flags */ /*- */ #define ISS$M_IMP_FLAGS 0x7F #define ISS$M_ASSUME_NODEREF_OLD 0x10000 #define ISS$M_ASSUME_NOREF_NEW 0x20000 #define ISS$M_CREATE_DEFPRIV 0x8 #define ISS$M_CREATE_DEFCLASS 0x10 #define ISS$M_NOACCESS 0x100000 union isssrvcflg { /* */ /* Common flags */ /* */ __struct { unsigned iss$v_imp_flags : 7; /* Previously defined IMP flags */ unsigned iss$v_common_rsvd : 25; } iss$r_common_flags; /* */ /* ASSUME service control flags */ /* */ __struct { unsigned iss$v_assume_common : 16; /* Start past common flags */ unsigned iss$v_assume_noderef_old : 1; /* Do not drop a reference to */ /* the old (pre-ASSUME) persona */ unsigned iss$v_assume_noref_new : 1; /* Do not add a reference to */ /* the new (post-ASSUME) persona */ unsigned iss$v_assume_rsvd_1 : 1; /* Reserved for the future. */ unsigned iss$v_assume_rsvd_2 : 1; /* Reserved for the future. */ unsigned iss$v_assume_fill : 12; } iss$r_assume_flags; /* */ /* CREATE service control flags */ /* */ __struct { unsigned iss$v_create_common_rsvd_0 : 1; unsigned iss$v_create_common_rsvd_1 : 1; unsigned iss$v_create_common_rsvd_2 : 1; unsigned iss$v_create_defpriv : 1; /* Create psb w/ def. privs. */ unsigned iss$v_create_defclass : 1; /* Create psb w/ def. class. */ unsigned iss$v_create_common_fill : 15; /* Start past common flags */ /* and the assume flags. */ unsigned iss$v_noaccess : 1; /* When set, do not access */ /* the SYSUAF or RIGHTSLIST. */ /* This is similar to */ /* CREATE_USER_PROFILE. */ unsigned iss$v_create_rsvd_1 : 1; /* Reserved for the future. */ unsigned iss$v_create_rsvd_2 : 1; /* Reserved for the future. */ unsigned iss$v_create_fill : 9; } iss$r_create_flags; } ; #if !defined(__VAXC) && !defined(VAXC) #define iss$v_imp_flags iss$r_common_flags.iss$v_imp_flags #define iss$v_assume_noderef_old iss$r_assume_flags.iss$v_assume_noderef_old #define iss$v_assume_noref_new iss$r_assume_flags.iss$v_assume_noref_new #define iss$v_create_defpriv iss$r_create_flags.iss$v_create_defpriv #define iss$v_create_defclass iss$r_create_flags.iss$v_create_defclass #define iss$v_noaccess iss$r_create_flags.iss$v_noaccess #endif /* #if !defined(__VAXC) && !defined(VAXC) */ /* NT TLV version number */ #define ISS$K_NT_VERSION_1 1 #ifdef __cplusplus } #endif #pragma standard #endif /* __ISSDEF_LOADED */