%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$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_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX HFLOAT REAL_PART HFLOAT IMAGINARY_PART END RECORD %LET %BASIC$H_FLOATING_COMPLEX_DECL = 1 %END %IF ! ! ACMEVMSIC structures mirror an ACMEDEF declaration ! until SDL READ works for Ada. ! ! + ! ! $ACM Item Codes ! ! Item codes are 16-bit unsigned values, encoded as follows: ! ! 1 ! 5 8 7 0 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! | | | | | | | | | | | | | | | | | ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ^ ^ ^ ! | | | ! | | +-- Bit [13] = 0 ==> not subject to VTF-7 <-> UCS conversion ! | | 1 ==> subject to VTF-7 <-> UCS conversion ! | | ! | +---- Bit [14] = 0 ==> input item ! | 1 ==> output item ! | ! +------ Bit [15] = 0 ==> common item ! 1 ==> ACME specific item ! ! - DECLARE LONG CONSTANT acmevmsic$M_ITEM = x'00001FFF' DECLARE LONG CONSTANT acmevmsic$m_ucs = x'00002000' DECLARE LONG CONSTANT acmevmsic$m_output = x'00004000' DECLARE LONG CONSTANT acmevmsic$m_acme_specific = x'00008000' DECLARE LONG CONSTANT acmevmsic$k_length = 2 DECLARE LONG CONSTANT acmevmsic$s_acmevmsic = 2 record acmevmsic group acmevmsic$r_fill_13 variant case WORD acmevmsic$w_item_code ! Composite field case group acmevmsic$r_fill_14 ! Ranged value ! 0 ==> not subject to VTF-7 <-> UCS conversion ! 1 ==> subject to VTF-7 <-> UCS conversion ! 0 ==> input item ! 1 ==> output item ! 0 ==> common item ! 1 ==> ACME specific item WORD ITEM_bits ! COMMENT ADDED BY SDL - ITEM_bits contains bits ITEM through acme_specific end group acmevmsic$r_fill_14 end variant end group acmevmsic$r_fill_13 end record acmevmsic ! ! Item code biasing factors ! ! Backward-compatibility ! Not for initial call ! Contemporary supported ! $CREPRC argument items ! UAI data ! ! ACME-specific output data types ! ! These codes are provided by the VMS ACME for return ! in field MAX_LENGTH of an output Item Set. ! ! The field MAX_LENGTH is named for its purpose within ! Input Item Sets, but for Output Item Sets it allows ! SYS$ACM[W] clients to categorize the output they receive ! and dispatch to specialized handling. ! ! These ACME-specific values are provided only where the caller ! is one the VMS ACME knows can handle these particular binary ! codes, i.e. LOGINOUT. ! ! These data types are defined exclusively to provide backward compatibility ! with interface methods used prior to the introduction of SYS$ACM[W] by ! TNT$SERVER, LOGINOUT LGI-callouts and LOGINOUT DECwindows interfaces. ! They will not be provided to other clients which call SYS$ACM[W]. ! DECLARE LONG CONSTANT acmevms$k_min_msg_type = 32768 DECLARE LONG CONSTANT acmevms$k_old_decw_pwd_exp_1 = 32768 ! Binary expiration warning DECLARE LONG CONSTANT acmevms$k_old_decw_pwd_exp_2 = 32769 ! Binary expiration warning DECLARE LONG CONSTANT acmevms$k_old_decw_pwd_quality = 32770 ! Binary password quality status DECLARE LONG CONSTANT acmevms$k_old_sysuaf_070 = 32771 ! Authorization Record DECLARE LONG CONSTANT acmevms$k_old_auth_flags = 32772 ! Password requirement flags DECLARE LONG CONSTANT acmevms$k_max_msg_type = 32772 ! ! ACME-specific Item Codes for the VMS ACME ! ! Items with these codes from the callr of SYS$ACM[W] will ! be provided to the VMS ACME (exclusively) if they follow ! an instance of General Item Code ACME_TARGET_ACME_ID which ! specifies the VMS ACME. ! ! ACME-specific Item Codes have the high bit (15) set, whereas ! General Item Codes have it clear. ! ! ! Input Item Codes ! ! While SYS$ACM does not specify semantics for the handling ! of multiple input item codes of the same value, the semantics ! of the VMS ACME are uniform for all input item codes -- ! the value associated with the last input item prevails. ! ! ! Input item codes not subject to VTF-7 <-> UCS conversion ! ! ! Backward-compatibility Input Item Codes ! ! These codes are defined exclusively to provide backward compatibility ! with interface methods used prior to the introduction of SYS$ACM[W] by ! TNT$SERVER, LOGINOUT LGI-callouts and LOGINOUT DECwindows interfaces. ! They will not be honored from other clients which call SYS$ACM[W]. ! DECLARE LONG CONSTANT acmevms$_min_old_in = 32768 DECLARE LONG CONSTANT acmevms$_old_decwindows_flag = 32768 ! old DECwindows authentication mechanism DECLARE LONG CONSTANT acmevms$_old_hashed_password_1 = 32769 ! old ARGUS authentication mechanism DECLARE LONG CONSTANT acmevms$_old_hashed_password_2 = 32770 ! old ARGUS authentication mechanism DECLARE LONG CONSTANT acmevms$_old_lgi_phase = 32771 ! old LGI-callout authentication mechanism DECLARE LONG CONSTANT acmevms$_old_lgi_status = 32772 ! old LGI-callout authentication mechanism DECLARE LONG CONSTANT acmevms$_max_old_in = 32772 ! ! Solicited Input Item Codes ! ! These codes support historic LOGINOUT behavour and in addition to ! being retricted to LOGINOUT are not honored on initial calls from ! LOGINOUT. They can only be provided in response to an Input Item Set. ! DECLARE LONG CONSTANT acmevms$_min_solicited_in = 33024 DECLARE LONG CONSTANT acmevms$_loginout_local_flag = 33024 ! LOGINOUT received /LOCAL_PASSWORD DECLARE LONG CONSTANT acmevms$_loginout_reconn_flag = 33025 ! LOGINOUT is authenticating for reconnection DECLARE LONG CONSTANT acmevms$_max_solicited_in = 33025 ! ! General Input Items ! ! These non-converting input item codes are permanent features ! of the VMS ACME, although some require particular privileges. ! ! LOGINOUT_CREPRC_FLAGS is only honored from LOGINOUT, although ! other clients can achieve the same results using other Item Codes. ! The reason LOGINOUT_CREPRC_FLAGS exists is to minimize coding ! changes for the transition of LOGINOUT to using SYS$ACM[W]. ! DECLARE LONG CONSTANT acmevms$_min_general_in = 33280 DECLARE LONG CONSTANT acmevms$_autologin_allowed_flag = 33280 ! autologin is allowed for this request DECLARE LONG CONSTANT acmevms$_default_principal_flag = 33281 ! default principal name if possible DECLARE LONG CONSTANT acmevms$_genpwd_count = 33282 ! desired number of generated passwords DECLARE LONG CONSTANT acmevms$_genpwd_mandatory_flag = 33283 ! generated password must be chosen DECLARE LONG CONSTANT acmevms$_genpwd_maxlength = 33284 ! maximum length of generated password DECLARE LONG CONSTANT acmevms$_genpwd_minlength = 33285 ! minimum length of generated password DECLARE LONG CONSTANT acmevms$_loginout_creprc_flags = 33286 ! CTL$GL_CREPRC_FLAGS from LOGINOUT DECLARE LONG CONSTANT acmevms$_parent_pid = 33287 ! PID of client process DECLARE LONG CONSTANT acmevms$_preauthentication_flag = 33288 ! preauthenticated request DECLARE LONG CONSTANT acmevms$_uses_system_password = 33289 ! this connection uses system passwords DECLARE LONG CONSTANT acmevms$_max_general_in = 33289 ! ! Input item codes subject to VTF-7 <-> UCS conversion ! DECLARE LONG CONSTANT acmevms$_min_general_in_ucs = 41984 DECLARE LONG CONSTANT acmevms$_net_proxy = 41984 ! network proxy username string from LOGINOUT DECLARE LONG CONSTANT acmevms$_parent_username = 41985 ! Username of client process DECLARE LONG CONSTANT acmevms$_confirm_password_sys = 41986 ! Reenter New System Password DECLARE LONG CONSTANT acmevms$_confirm_password_1 = 41987 ! Reenter New Primary Password DECLARE LONG CONSTANT acmevms$_confirm_password_2 = 41988 ! Reenter New Secondary Password DECLARE LONG CONSTANT acmevms$_max_general_in_ucs = 41988 ! ! Output Item Codes ! ! While SYS$ACM does not specify semantics for the handling ! of multiple output item codes of the same value, the semantics ! of the VMS ACME are uniform for all output item codes -- ! all such codes are honored independently. ! ! ! Output item codes not subject to VTF-7 <-> UCS conversion ! ! ! CREPRC-based output items ! ! These Output Item Codes provide information in a format suitable ! for passing to the $CREPRC System service, freeing callers of any ! need to track the introduction of new VMS process quotas. ! DECLARE LONG CONSTANT acmevms$_min_creprc_out = 49920 DECLARE LONG CONSTANT acmevms$_creprc_baspri = 49920 ! Process base priority DECLARE LONG CONSTANT acmevms$_creprc_image = 49921 ! Image name ( LOGINOUT ) DECLARE LONG CONSTANT acmevms$_creprc_prcnam = 49922 ! Process name ( blank ) DECLARE LONG CONSTANT acmevms$_creprc_prvadr = 49923 ! Process privilege DECLARE LONG CONSTANT acmevms$_creprc_quota = 49924 ! Process quota list DECLARE LONG CONSTANT acmevms$_creprc_uic = 49925 ! UIC for detached process DECLARE LONG CONSTANT acmevms$_max_creprc_out = 49925 ! ! UAI-based output items ! ! These codes provide the same information returned by $GETUAI, ! but synchronized with the UAI data as used for authentication. ! ! Correspondence between these codes and those from UAIDEF is ! tested in the private part of module STARLET_WE_USE_ by arrays ! ENSURE_UAI_NO_BIGGER_THAN_ACMEVMS_UAI and also by the array ! ENSURE_ACMEVMS_UAI_NO_BIGGER_THAN_UAI. ! ! The UAI_BASE constant defined below, added to normal UAI$_ codes ! used for the $SETUAI and $GETUAI system services will produce ! the following values: ! DECLARE LONG CONSTANT acmevms$_min_uai_out = 50176 DECLARE LONG CONSTANT acmevms$_uai_rtype = 50176 ! UAF record type DECLARE LONG CONSTANT acmevms$_uai_version = 50177 ! UAF format version DECLARE LONG CONSTANT acmevms$_uai_usrdatoff = 50178 ! offset of counted string of user data DECLARE LONG CONSTANT acmevms$_uai_username = 50179 ! username DECLARE LONG CONSTANT acmevms$_uai_username_tag = 50180 ! tag to differentiate records DECLARE LONG CONSTANT acmevms$_uai_uic = 50181 ! user ID code DECLARE LONG CONSTANT acmevms$_uai_mem = 50182 ! member subfield DECLARE LONG CONSTANT acmevms$_uai_grp = 50183 ! group subfield DECLARE LONG CONSTANT acmevms$_uai_sub_id = 50184 ! user sub-identifier DECLARE LONG CONSTANT acmevms$_uai_parent_id = 50185 ! identifier of owner of this account DECLARE LONG CONSTANT acmevms$_uai_account = 50186 ! account name DECLARE LONG CONSTANT acmevms$_uai_owner = 50187 ! owner's name DECLARE LONG CONSTANT acmevms$_uai_defdev = 50188 ! default device DECLARE LONG CONSTANT acmevms$_uai_defdir = 50189 ! default directory DECLARE LONG CONSTANT acmevms$_uai_lgicmd = 50190 ! login command file DECLARE LONG CONSTANT acmevms$_uai_defcli = 50191 ! default command interpreter DECLARE LONG CONSTANT acmevms$_uai_clitables = 50192 ! user CLI tables DECLARE LONG CONSTANT acmevms$_uai_pwd = 50193 ! hashed password DECLARE LONG CONSTANT acmevms$_uai_pwd2 = 50194 ! second password DECLARE LONG CONSTANT acmevms$_uai_logfails = 50195 ! count of login failures DECLARE LONG CONSTANT acmevms$_uai_salt = 50196 ! random password salt DECLARE LONG CONSTANT acmevms$_uai_encrypt = 50197 ! primary password hash algorithm DECLARE LONG CONSTANT acmevms$_uai_encrypt2 = 50198 ! secondary password hash algorithm DECLARE LONG CONSTANT acmevms$_uai_pwd_length = 50199 ! minimum password length DECLARE LONG CONSTANT acmevms$_uai_expiration = 50200 ! expiration date for account DECLARE LONG CONSTANT acmevms$_uai_pwd_lifetime = 50201 ! password lifetime DECLARE LONG CONSTANT acmevms$_uai_pwd_date = 50202 ! date of password change DECLARE LONG CONSTANT acmevms$_uai_pwd2_date = 50203 ! date of 2nd password change DECLARE LONG CONSTANT acmevms$_uai_lastlogin_i = 50204 ! date of last interactive login DECLARE LONG CONSTANT acmevms$_uai_lastlogin_n = 50205 ! date of last non-interactive login DECLARE LONG CONSTANT acmevms$_uai_priv = 50206 ! process privilege vector DECLARE LONG CONSTANT acmevms$_uai_def_priv = 50207 ! default process privileges DECLARE LONG CONSTANT acmevms$_uai_min_class = 50208 ! minimum security class DECLARE LONG CONSTANT acmevms$_uai_max_class = 50209 ! maximum security class DECLARE LONG CONSTANT acmevms$_uai_flags = 50210 ! user flags longword DECLARE LONG CONSTANT acmevms$_uai_network_access_p = 50211 ! hourly network access, primary DECLARE LONG CONSTANT acmevms$_uai_network_access_s = 50212 ! hourly network access, secondary DECLARE LONG CONSTANT acmevms$_uai_batch_access_p = 50213 ! hourly batch access, primary DECLARE LONG CONSTANT acmevms$_uai_batch_access_s = 50214 ! hourly batch access, secondary DECLARE LONG CONSTANT acmevms$_uai_local_access_p = 50215 ! hourly local access, primary DECLARE LONG CONSTANT acmevms$_uai_local_access_s = 50216 ! hourly local access, secondary DECLARE LONG CONSTANT acmevms$_uai_dialup_access_p = 50217 ! hourly dialup access, primary DECLARE LONG CONSTANT acmevms$_uai_dialup_access_s = 50218 ! hourly dialup access, secondary DECLARE LONG CONSTANT acmevms$_uai_remote_access_p = 50219 ! hourly remote access, primary DECLARE LONG CONSTANT acmevms$_uai_remote_access_s = 50220 ! hourly remote access, secondary DECLARE LONG CONSTANT acmevms$_uai_primedays = 50221 ! bits representing primary days DECLARE LONG CONSTANT acmevms$_uai_pri = 50222 ! base process priority DECLARE LONG CONSTANT acmevms$_uai_quepri = 50223 ! maximum job queuing priority DECLARE LONG CONSTANT acmevms$_uai_maxjobs = 50224 ! maximum jobs for UIC allowed DECLARE LONG CONSTANT acmevms$_uai_maxacctjobs = 50225 ! maximum jobs for account allowed DECLARE LONG CONSTANT acmevms$_uai_maxdetach = 50226 ! maximum detached processes for UIC DECLARE LONG CONSTANT acmevms$_uai_prccnt = 50227 ! subprocess creation limit DECLARE LONG CONSTANT acmevms$_uai_biolm = 50228 ! buffered I/O limit DECLARE LONG CONSTANT acmevms$_uai_diolm = 50229 ! direct I/O limit DECLARE LONG CONSTANT acmevms$_uai_tqcnt = 50230 ! timer queue entry limit DECLARE LONG CONSTANT acmevms$_uai_astlm = 50231 ! AST queue limit DECLARE LONG CONSTANT acmevms$_uai_enqlm = 50232 ! enqueue limit DECLARE LONG CONSTANT acmevms$_uai_fillm = 50233 ! open file limit DECLARE LONG CONSTANT acmevms$_uai_shrfillm = 50234 ! shared file limit DECLARE LONG CONSTANT acmevms$_uai_wsquota = 50235 ! working set size quota DECLARE LONG CONSTANT acmevms$_uai_dfwscnt = 50236 ! default working set size DECLARE LONG CONSTANT acmevms$_uai_wsextent = 50237 ! working set size limit DECLARE LONG CONSTANT acmevms$_uai_pgflquota = 50238 ! page file quota DECLARE LONG CONSTANT acmevms$_uai_cputim = 50239 ! CPU time quota DECLARE LONG CONSTANT acmevms$_uai_bytlm = 50240 ! buffered I/O byte count limit DECLARE LONG CONSTANT acmevms$_uai_pbytlm = 50241 ! paged buffer I/O byte count limit DECLARE LONG CONSTANT acmevms$_uai_jtquota = 50242 ! job-wide logical name table creation quota DECLARE LONG CONSTANT acmevms$_uai_proxy_lim = 50243 ! number of proxies user can grant DECLARE LONG CONSTANT acmevms$_uai_proxies = 50244 ! number of proxies granted DECLARE LONG CONSTANT acmevms$_uai_account_lim = 50245 ! number of sub-accounts allowed DECLARE LONG CONSTANT acmevms$_uai_accounts = 50246 ! number of sub-accounts in use DECLARE LONG CONSTANT acmevms$_uai_user_data = 50247 ! user data area ! Next two codes not supported for output DECLARE LONG CONSTANT acmevms$_uai_password = 50248 ! plaintext primary password DECLARE LONG CONSTANT acmevms$_uai_password2 = 50249 ! plaintext secondary password ! Previous two codes not supported for output DECLARE LONG CONSTANT acmevms$_uai_def_class = 50250 ! default security classification DECLARE LONG CONSTANT acmevms$_max_uai_out = 50250 ! ! Output item codes subject to VTF-7 <-> UCS conversion ! ! + ! ! Miscellaneous constants ! ! - DECLARE LONG CONSTANT acmevms$k_auth_mech_argus = 13860864 ! Authentication mechanism for TNT$SERVER DECLARE LONG CONSTANT acmevms$k_uai_base = 50175 ! Base to which UAI$_ codes can be added DECLARE LONG CONSTANT acmevms$k_maxchar_vms_username = 32 ! Maximum size of a Mapped VMS Username