/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:51 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:22 $1$DGA7274:[STARLET_H.SRC]STARDEFFL.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $ISSDEF ***/ #ifndef __ISSDEF_LOADED #define __ISSDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #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$_INPUT_DATA 28 /* 28 Generic buffer for IN/OUT query */ #define ISS$_POSIX_UID 29 /* 29 POSIX User ID */ #define ISS$_POSIX_GID 30 /* 30 POSIX Group ID */ #define ISS$_MIN_ITEM_CODE 1 #define ISS$_MAX_ITEM_CODE 30 /*+ */ /* Bits within item code ISS$_FLAGS */ /*- */ #define ISS$M_FLAG_PERMANENT 0x1 #define ISS$M_FLAG_SECAUDIT 0x2 #ifdef __NEW_STARLET typedef 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; } ISSFLAGSDEF; #if !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) */ #else /* __OLD_STARLET */ 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) #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) */ #endif /* #ifdef __NEW_STARLET */ /* 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 /* Extension name */ #define ISS$_MAKE_TLV 1031 /* For NSA$MAKE_TLV */ #define ISS$_MIN_COMMON_ITEM_CODE 1024 #define ISS$_MAX_COMMON_ITEM_CODE 1031 /* 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 #ifdef __NEW_STARLET typedef 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; } ISSENABLEDDEF; #if !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) */ #else /* __OLD_STARLET */ 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) #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) */ #endif /* #ifdef __NEW_STARLET */ /* 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_FORCE 4 /* Ignore multiple usermode persona check */ #define ISS$C_ARB_MAX_CODE 4 #define ISS$C_ARB_MIN_CODE 0 /* Reserved Persona Ids */ #define ISS$C_ID_NATURAL 1 #define ISS$C_ID_POSIX_REAL -2 #define ISS$C_ID_IMAGE_PERSONA -2 /*+ */ /* 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_CREATE_AUTHPRIV 0x20 #define ISS$M_NOACCESS 0x100000 #ifdef __NEW_STARLET typedef 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_authpriv : 1; /* Create psb w/ auth. privs. */ unsigned iss$v_create_common_fill : 14; /* 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; } ISSSRVCFLG; #if !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_create_authpriv iss$r_create_flags.iss$v_create_authpriv #define iss$v_noaccess iss$r_create_flags.iss$v_noaccess #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ 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_authpriv : 1; /* Create psb w/ auth. privs. */ unsigned iss$v_create_common_fill : 14; /* 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) #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_create_authpriv iss$r_create_flags.iss$v_create_authpriv #define iss$v_noaccess iss$r_create_flags.iss$v_noaccess #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* NT TLV version number */ #define ISS$K_NT_VERSION_1 1 #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __ISSDEF_LOADED */