%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 ! ! Definitions for the $AUTHENTICATE[W], $LOGON[W], and $SET_PASSWORD[W] ! system services. ! ! ! $LOGON[W] function codes. ! DECLARE LONG CONSTANT ACME$_MAP_TO_USERNAME = 1 ! Map userid to username DECLARE LONG CONSTANT ACME$_VERIFY_PASSWORD_ONLY = 2 ! Authenticate password DECLARE LONG CONSTANT ACME$_MAX_FUNCTION_CODE = 3 ! maximum legal function code + 1 ! ! Item codes. Codes specific to a particular service are noted: ! ! $AU = $AUTHENTICATE[W] ! $LO = $LOGON[W] ! $SP = $SET_PASSWORD[W] ! DECLARE LONG CONSTANT ACME$_NULL = 1 ! NULL item code ( skip item ) DECLARE LONG CONSTANT ACME$_DOMAIN = 2 ! Authentication domain DECLARE LONG CONSTANT ACME$_USERID = 3 ! User ID DECLARE LONG CONSTANT ACME$_PASSWORD = 4 ! Single password DECLARE LONG CONSTANT ACME$_PASSWORD_LIST = 5 ! Password list DECLARE LONG CONSTANT ACME$_NEW_PASSWORD = 6 ! New password ( $SP ) DECLARE LONG CONSTANT ACME$_OUTPUT_VMS_USERNAME = 7 ! Mapped OpenVMS username ( $LO ) DECLARE LONG CONSTANT ACME$_NOAUTHENTICATION = 8 ! No password authentication ( $SP ) DECLARE LONG CONSTANT ACME$_OVERRIDE_POLICY = 9 ! Override password policy ( $SP ) DECLARE LONG CONSTANT ACME$_SYNCHRONIZE = 10 ! Set password in all domains ( $SP ) DECLARE LONG CONSTANT ACME$_REASON_CODE = 11 ! ACME-specific reason code DECLARE LONG CONSTANT ACME$_VALIDATE_ONLY = 12 ! Validate user can login ( $LO ) DECLARE LONG CONSTANT ACME$_UAF_RECORD_LOCKED = 13 ! Advisory that UAF record is locked ( $LO ) DECLARE LONG CONSTANT ACME$_RESERVED_ITEM_1 = 14 ! Reserved 1 DECLARE LONG CONSTANT ACME$_RESERVED_ITEM_2 = 15 ! Reserved 2 DECLARE LONG CONSTANT ACME$_MAX_ITEM_CODE = 16 ! maximum legal item code + 1 ! ! Structures and constants. ! DECLARE LONG CONSTANT ACME$C_MAJOR_VERSION = 1 ! Major ACME version DECLARE LONG CONSTANT ACME$C_MINOR_VERSION = 0 ! Minor ACME version DECLARE LONG CONSTANT ACME$S_MAX_DOMAIN = 256 ! Maximum domain length DECLARE LONG CONSTANT ACME$S_MAX_USERID = 256 ! Maximum userid length DECLARE LONG CONSTANT ACME$S_MAX_PASSWORD = 256 ! Maximum password length ! ! The PASSWORD_LIST item code requires a list of password items with each ! item specified by a PWDITM structure definition. The list is terminated ! by a longword zero. ! DECLARE LONG CONSTANT ACME$S_PWDITM = 12 record ACME$R_PWDITM group ACME$R_PWDTRM variant case LONG ACME$L_TERMINATOR ! Termination longword case group ACME$R_PWDNUM_FIELDS WORD ACME$W_PWDNUM ! Password number ( 1=primary, etc. ) WORD ACME$W_RSRVD1 ! reserved for future use, MBZ end group ACME$R_PWDNUM_FIELDS end variant end group ACME$R_PWDTRM LONG ACME$A_OLDPWD ! Descriptor address for old password LONG ACME$A_NEWPWD ! Descriptor address for new password end record ACME$R_PWDITM ! ! Maximum password number to be used in password list ! DECLARE LONG CONSTANT ACME$C_MAX_PASSWORD_NUM = 8