! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! + ! $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. ! - DECLARE LONG CONSTANT ISS$_FLAGS = 1 ! 1 Persona flags DECLARE LONG CONSTANT ISS$_ARBFLAGS = 2 ! 2 Unused DECLARE LONG CONSTANT ISS$_WORKPRIV = 3 ! 3 Working privileges DECLARE LONG CONSTANT ISS$_MODE = 4 ! 4 Access mode DECLARE LONG CONSTANT ISS$_WORKCLASS = 5 ! 5 Working classification DECLARE LONG CONSTANT ISS$_RIGHTS = 6 ! 6 Rights DECLARE LONG CONSTANT ISS$_ADD_RIGHTS = 7 ! 7 Add to the Rights DECLARE LONG CONSTANT ISS$_ADD_AUTHRIGHTS = 8 ! 8 Add to the AuthRights DECLARE LONG CONSTANT ISS$_USERNAME = 9 ! 9 Username DECLARE LONG CONSTANT ISS$_ACCOUNT = 10 ! 10 Account DECLARE LONG CONSTANT ISS$_NOAUDIT = 11 ! 11 No Audit setting DECLARE LONG CONSTANT ISS$_AUTHPRIV = 12 ! 12 Authorized privileges DECLARE LONG CONSTANT ISS$_PERMPRIV = 13 ! 13 Permanent privileges DECLARE LONG CONSTANT ISS$_IMAGE_WORKPRIV = 14 ! 14 Image working privileges DECLARE LONG CONSTANT ISS$_ENABLED = 15 ! 15 Rights enabled mask DECLARE LONG CONSTANT ISS$_AUTHRIGHTS = 16 ! 16 Authorized rights DECLARE LONG CONSTANT ISS$_MINCLASS = 17 ! 17 Minimum classification DECLARE LONG CONSTANT ISS$_MAXCLASS = 18 ! 18 Maximum classification DECLARE LONG CONSTANT ISS$_UID = 19 ! 19 UID DECLARE LONG CONSTANT ISS$_PERSONA_ID = 20 ! 20 Persona ID DECLARE LONG CONSTANT ISS$_PRINCIPAL = 21 ! 21 Principal Name DECLARE LONG CONSTANT ISS$_UIC = 22 ! 22 UIC DECLARE LONG CONSTANT ISS$_SWITCH_EXTENSION = 23 ! 23 Switch Extension directive DECLARE LONG CONSTANT ISS$_PRIMARY_EXTENSION = 24 ! 24 PSB Primary Extension DECLARE LONG CONSTANT ISS$_EXTENSION_COUNT = 25 ! 25 Count of valid extensions DECLARE LONG CONSTANT ISS$_EXTENSION_ARRAY = 26 ! 26 Array of valid extension IDs DECLARE LONG CONSTANT ISS$_RIGHTS_INDEX = 27 ! 27 Rights Chain Index - sets the ! chain for all rights list ! operations. DECLARE LONG CONSTANT ISS$_INPUT_DATA = 28 ! 28 Generic buffer for IN/OUT query DECLARE LONG CONSTANT ISS$_POSIX_UID = 29 ! 29 POSIX User ID DECLARE LONG CONSTANT ISS$_POSIX_GID = 30 ! 30 POSIX Group ID DECLARE LONG CONSTANT ISS$_MIN_ITEM_CODE = 1 DECLARE LONG CONSTANT ISS$_MAX_ITEM_CODE = 30 ! + ! Bits within item code ISS$_FLAGS ! - DECLARE LONG CONSTANT ISS$M_FLAG_PERMANENT = x'00000001' DECLARE LONG CONSTANT ISS$M_FLAG_SECAUDIT = x'00000002' DECLARE LONG CONSTANT ISS$S_ISSFLAGSDEF = 4 record ISSFLAGSDEF variant case group ISS$R_ISSFLAGS_BITS LONG FLAG_PERMANENT_bits ! COMMENT ADDED BY SDL - FLAG_PERMANENT_bits contains bits FLAG_PERMANENT through & ! FILL_0 end group ISS$R_ISSFLAGS_BITS end variant end record ISSFLAGSDEF ! Codes that represent common attributes that are normally ! present in all persona extensions DECLARE LONG CONSTANT ISS$_COMMON_FLAGS = 1024 ! Flags DECLARE LONG CONSTANT ISS$_COMMON_USERNAME = 1025 ! Username DECLARE LONG CONSTANT ISS$_COMMON_ACCOUNT = 1026 ! Account DECLARE LONG CONSTANT ISS$_DOMAIN = 1027 ! Domain DECLARE LONG CONSTANT ISS$_COMMON_PRINCIPAL = 1028 ! principal DECLARE LONG CONSTANT ISS$_DOI = 1029 DECLARE LONG CONSTANT ISS$_EXTENSION = 1030 ! Extension name DECLARE LONG CONSTANT ISS$_MAKE_TLV = 1031 ! For NSA$MAKE_TLV DECLARE LONG CONSTANT ISS$_MIN_COMMON_ITEM_CODE = 1024 DECLARE LONG CONSTANT 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 DECLARE LONG CONSTANT ISS$_NT_TOKEN = 8192 ! token DECLARE LONG CONSTANT ISS$_NT_SECURITY_SUBJECT = 8193 ! securtiy context DECLARE LONG CONSTANT ISS$_NT_FLAGS = 8194 DECLARE LONG CONSTANT ISS$_NT_USER_REFCOUNT = 8195 DECLARE LONG CONSTANT ISS$_NT_PRINCIPAL = 8196 DECLARE LONG CONSTANT ISS$_NT_CREDENTIALS = 8197 ! access token + security context DECLARE LONG CONSTANT ISS$_NT_NT_OWF_PASSWORD = 8198 ! DECLARE LONG CONSTANT ISS$_NT_LM_OWF_PASSWORD = 8199 ! DECLARE LONG CONSTANT ISS$_NT_UNPACK_CRED_SIZE = 8200 DECLARE LONG CONSTANT ISS$_NT_TOKEN_TOKENID = 8201 DECLARE LONG CONSTANT ISS$_NT_TOKEN_IMPERSONATELEVEL = 8202 DECLARE LONG CONSTANT ISS$_NT_TOKEN_AUTHENTICATIONID = 8203 DECLARE LONG CONSTANT ISS$_NT_TOKEN_USERANDGROUPCOUNT = 8204 DECLARE LONG CONSTANT ISS$_NT_TOKEN_VARIABLELENGTH = 8205 DECLARE LONG CONSTANT ISS$_NT_TOKEN_USERANDGROUPS = 8206 DECLARE LONG CONSTANT ISS$_NT_TOKEN_USERANDGROUPS_SID = 8207 DECLARE LONG CONSTANT ISS$_NT_TOKEN_PRIMARYGROUP = 8208 DECLARE LONG CONSTANT ISS$_NT_TOKEN_PRIVILEGES = 8209 DECLARE LONG CONSTANT ISS$_NT_TOKEN_DEFAULTDACL = 8210 DECLARE LONG CONSTANT ISS$_NT_TOKEN_UNIXUID = 8211 DECLARE LONG CONSTANT ISS$_NT_TOKEN_UNIXGID = 8212 DECLARE LONG CONSTANT ISS$_NT_TOKEN_GIDINFO = 8213 DECLARE LONG CONSTANT ISS$_NT_TOKEN_GIDINFO_GIDS = 8214 DECLARE LONG CONSTANT ISS$_NT_TOKEN_UNIXNAME = 8215 DECLARE LONG CONSTANT ISS$_NT_TOKEN_DOMAINNAME = 8216 DECLARE LONG CONSTANT ISS$_NT_TOKEN_USERNAME = 8217 DECLARE LONG CONSTANT ISS$_NT_TOKEN_USERSESSIONKEY = 8218 DECLARE LONG CONSTANT ISS$_NT_TOKEN_LMSESSIONKEY = 8219 DECLARE LONG CONSTANT ISS$_NT_TOKEN_VARIABLEPART = 8220 DECLARE LONG CONSTANT ISS$_NT_TOKEN_GROUP_LIST = 8221 DECLARE LONG CONSTANT ISS$_NT_TOKEN_PRIVILEGES_LIST = 8222 DECLARE LONG CONSTANT ISS$_NT_SECURITY_SIGNATURE = 8223 DECLARE LONG CONSTANT ISS$_NT_SECURITY_SMBUID = 8224 DECLARE LONG CONSTANT ISS$_NT_SECURITY_PROCESSAUDITID = 8225 DECLARE LONG CONSTANT ISS$_NT_SECURITY_PROCESSID = 8226 DECLARE LONG CONSTANT ISS$_NT_SECURITY_LOGONID = 8227 DECLARE LONG CONSTANT ISS$_NT_SECURITY_LOGONTYPE = 8228 DECLARE LONG CONSTANT ISS$_NT_SECURITY_SUBJECTFLAGS = 8229 DECLARE LONG CONSTANT ISS$_NT_SECURITY_CONTEXT_OTHER = 8230 DECLARE LONG CONSTANT ISS$_MIN_NT_ITEM_CODE = 8192 DECLARE LONG CONSTANT ISS$_MAX_NT_ITEM_CODE = 8230 ! + ! Bits within item code ISS$_ENABLED ! - DECLARE LONG CONSTANT ISS$M_ENABLED_PERSONA = x'00000001' DECLARE LONG CONSTANT ISS$M_ENABLED_SUBSYSTEM = x'00000002' DECLARE LONG CONSTANT ISS$M_ENABLED_IMAGE = x'00000004' DECLARE LONG CONSTANT ISS$M_ENABLED_SYSTEM = x'00000008' DECLARE LONG CONSTANT ISS$M_ENABLED_TEMPORARY = x'00000010' DECLARE LONG CONSTANT ISS$S_ISSENABLEDDEF = 4 record ISSENABLEDDEF variant case group ISS$R_ISSENABLED_BITS LONG ENABLED_PERSONA_bits ! COMMENT ADDED BY SDL - ENABLED_PERSONA_bits contains bits ENABLED_PERSONA through & ! FILL_0 end group ISS$R_ISSENABLED_BITS end variant end record ISSENABLEDDEF ! ARB_SUPPORT constants DECLARE LONG CONSTANT ISS$C_ARB_UNSPECIFIED = -1 DECLARE LONG CONSTANT ISS$C_ARB_NONE = 0 DECLARE LONG CONSTANT ISS$C_ARB_CLEAR = 1 DECLARE LONG CONSTANT ISS$C_ARB_READ_ONLY = 2 DECLARE LONG CONSTANT ISS$C_ARB_FULL = 3 DECLARE LONG CONSTANT ISS$C_ARB_FORCE = 4 ! Ignore multiple usermode persona check DECLARE LONG CONSTANT ISS$C_ARB_MAX_CODE = 4 DECLARE LONG CONSTANT ISS$C_ARB_MIN_CODE = 0 ! Reserved Persona Ids DECLARE LONG CONSTANT ISS$C_ID_NATURAL = 1 DECLARE LONG CONSTANT ISS$C_ID_POSIX_REAL = -2 DECLARE LONG CONSTANT ISS$C_ID_IMAGE_PERSONA = -2 ! + ! Persona services control flags ! - DECLARE LONG CONSTANT ISS$M_IMP_FLAGS = x'0000007F' DECLARE LONG CONSTANT ISS$M_ASSUME_NODEREF_OLD = x'00010000' DECLARE LONG CONSTANT ISS$M_ASSUME_NOREF_NEW = x'00020000' DECLARE LONG CONSTANT ISS$M_CREATE_DEFPRIV = x'00000008' DECLARE LONG CONSTANT ISS$M_CREATE_DEFCLASS = x'00000010' DECLARE LONG CONSTANT ISS$M_CREATE_AUTHPRIV = x'00000020' DECLARE LONG CONSTANT ISS$M_NOACCESS = x'00100000' DECLARE LONG CONSTANT ISS$S_ISSSRVCFLG = 4 record ISSSRVCFLG variant ! ! Common flags ! case group ISS$R_COMMON_FLAGS ! Previously defined IMP flags LONG IMP_FLAGS_bits ! COMMENT ADDED BY SDL - IMP_FLAGS_bits contains bits IMP_FLAGS through COMMON_RSVD end group ISS$R_COMMON_FLAGS ! ! ASSUME service control flags ! case group ISS$R_ASSUME_FLAGS ! Start past common flags ! Do not drop a reference to ! the old (pre-ASSUME) persona ! Do not add a reference to ! the new (post-ASSUME) persona ! Reserved for the future. ! Reserved for the future. LONG ASSUME_COMMON_bits ! COMMENT ADDED BY SDL - ASSUME_COMMON_bits contains bits ASSUME_COMMON through & ! ASSUME_FILL end group ISS$R_ASSUME_FLAGS ! ! CREATE service control flags ! case group ISS$R_CREATE_FLAGS ! Create psb w/ def. privs. ! Create psb w/ def. class. ! Create psb w/ auth. privs. ! Start past common flags ! and the assume flags. ! When set, do not access ! the SYSUAF or RIGHTSLIST. ! This is similar to ! CREATE_USER_PROFILE. ! Reserved for the future. ! Reserved for the future. LONG CREATE_COMMON_RSVD_0_bits ! COMMENT ADDED BY SDL - CREATE_COMMON_RSVD_0_bits contains bits & ! CREATE_COMMON_RSVD_0 through CREATE_FILL end group ISS$R_CREATE_FLAGS end variant end record ISSSRVCFLG ! NT TLV version number DECLARE LONG CONSTANT ISS$K_NT_VERSION_1 = 1