--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:15 by OpenVMS SDL EV3-3 -- Source: 11-FEB-2004 12:48:29 $1$DGA8085:[LIB_ADA.LIS]ACMEAGENT_DATA_DEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; with ACMEDEF;use ACMEDEF; with UTCBLKDEF;use UTCBLKDEF; with ILEDEF;use ILEDEF; package ACMEAGENT_DATA_DEF is -- module $ACMEAGENT_DATA_DEF IDENT X-1 --+ -- -- Miscellaneous constants -- --- ACME_K_MAXCHAR_ACME_IDENT : constant := 64; -- Maximum length (in characters) of -- ACME ident ACME_K_MAXCHAR_ACME_ACTIVITY : constant := 64; -- Maximum length (in characters) of -- ACME activity (status) information --+ -- -- ACMEWQE - ACM Work Queue Entry. -- --- ACMEWQEFLG_K_MIN_ACME_FLAG : constant := 0; -- ACMEWQEFLG_K_MIN_FI_FLAG : constant := 0; ACMEWQEFLG_K_PHASE_DONE : constant := 0; ACMEWQEFLG_M_PHASE_DONE : constant := 16#00000001#; ACMEWQEFLG_K_NO_RETRY : constant := 1; ACMEWQEFLG_M_NO_RETRY : constant := 16#00000002#; ACMEWQEFLG_K_MAX_FI_FLAG : constant := 1; ACMEWQEFLG_K_MIN_AUTH_FLAG : constant := 12; ACMEWQEFLG_K_PREAUTHENTICATED : constant := 12; ACMEWQEFLG_M_PREAUTHENTICATED : constant := 16#00001000#; ACMEWQEFLG_K_NO_EXTERNAL_AUTH : constant := 13; ACMEWQEFLG_M_NO_EXTERNAL_AUTH : constant := 16#00002000#; ACMEWQEFLG_K_SKIP_NEW_PASSWORD : constant := 14; ACMEWQEFLG_M_SKIP_NEW_PASSWORD : constant := 16#00004000#; ACMEWQEFLG_K_NULL_NET_USER : constant := 15; ACMEWQEFLG_M_NULL_NET_USER : constant := 16#00008000#; ACMEWQEFLG_K_MAX_AUTH_FLAG : constant := 15; ACMEWQEFLG_K_MAX_ACME_FLAG : constant := 15; -- ACMEWQEFLG_M_DIALOGUE_POSSIBLE : constant := 16#00010000#; ACMEWQEFLG_M_AST_RECEIVED : constant := 16#00020000#; ACMEWQEFLG_M_REPORT_PHASE_EVENT : constant := 16#00040000#; ACMEWQEFLG_M_MASK_STATUS : constant := 16#00080000#; ACMEWQEFLG_M_TRACE_ENABLED : constant := 16#00100000#; ACMEWQEFLG_M_ABORT_REQUEST : constant := 16#40000000#; ACMEWQEFLG_M_FAILED_REQUEST : constant := 16#80000000#; type ACMEWQEFLG_TYPE is record -- -- Bits [15:0] = ACME settable -- Function independent flags are assigned upward. -- Function dependent flags are assigned downward. -- -- ACME setable, function independent flags -- PHASE_DONE : BOOLEAN; -- Phase completed NO_RETRY : BOOLEAN; -- Retry not possible -- -- Flags applicable to AUTHENTICATE_PRINCIPAL/CHANGE_PASSWORD -- FILLER_1 : UNSIGNED_10; PREAUTHENTICATED : BOOLEAN; -- Pre-authenticated NO_EXTERNAL_AUTH : BOOLEAN; -- Authenticate natively SKIP_NEW_PASSWORD : BOOLEAN; -- Skip new password processing NULL_NET_USER : BOOLEAN; -- Special no-username request -- Bits [31:16] = ACM Dispatcher controlled -- DIALOGUE_POSSIBLE : BOOLEAN; -- Dialogue possible/flags are valid AST_RECEIVED : BOOLEAN; -- AST recieved REPORT_PHASE_EVENT : BOOLEAN; -- Phase transition event -- processing has already been -- requested for this WQE. MASK_STATUS : BOOLEAN; -- Indicates $ACM[W] service will mask -- the reporting of privileged status TRACE_ENABLED : BOOLEAN; -- Server tracing is enabled FILLER_2 : UNSIGNED_9; ABORT_REQUEST : BOOLEAN; -- Abort request FAILED_REQUEST : BOOLEAN; -- An ACME returned a non-success status -- (failed request processing should occur) end record; for ACMEWQEFLG_TYPE use record PHASE_DONE at 0 range 0 .. 0; NO_RETRY at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 11; PREAUTHENTICATED at 1 range 4 .. 4; NO_EXTERNAL_AUTH at 1 range 5 .. 5; SKIP_NEW_PASSWORD at 1 range 6 .. 6; NULL_NET_USER at 1 range 7 .. 7; DIALOGUE_POSSIBLE at 2 range 0 .. 0; AST_RECEIVED at 2 range 1 .. 1; REPORT_PHASE_EVENT at 2 range 2 .. 2; MASK_STATUS at 2 range 3 .. 3; TRACE_ENABLED at 2 range 4 .. 4; FILLER_2 at 2 range 5 .. 13; ABORT_REQUEST at 3 range 6 .. 6; FAILED_REQUEST at 3 range 7 .. 7; end record; for ACMEWQEFLG_TYPE'SIZE use 32; ACMEWQEFLG_TYPE_INIT : constant ACMEWQEFLG_TYPE := (PHASE_DONE => FALSE, NO_RETRY => FALSE, FILLER_1 => 0, PREAUTHENTICATED => FALSE, NO_EXTERNAL_AUTH => FALSE, SKIP_NEW_PASSWORD => FALSE, NULL_NET_USER => FALSE, DIALOGUE_POSSIBLE => FALSE, AST_RECEIVED => FALSE, REPORT_PHASE_EVENT => FALSE, MASK_STATUS => FALSE, TRACE_ENABLED => FALSE, FILLER_2 => 0, ABORT_REQUEST => FALSE, FAILED_REQUEST => FALSE); type ACMEWQEVAL_TYPE is record ACME_ID : ACMEID_TYPE; -- ID of ACME which set the value PHASE : UNSIGNED_LONGWORD; -- Phase during which value was set VALUE : UNSIGNED_LONGWORD; -- Value end record; for ACMEWQEVAL_TYPE use record ACME_ID at 0 range 0 .. 31; PHASE at 4 range 0 .. 31; VALUE at 8 range 0 .. 31; end record; for ACMEWQEVAL_TYPE'SIZE use 96; ACMEWQEVAL_TYPE_INIT : constant ACMEWQEVAL_TYPE := (ACME_ID => ACMEID_TYPE_INIT, PHASE => 0, VALUE => 0); ACMEWQEVAL_K_LENGTH : constant := 12; type ACMEWQEITM_TYPE is record ACME_ID : ACMEID_TYPE; -- ID of ACME which set the item PHASE : UNSIGNED_LONGWORD; -- Phase during which item was set LENGTH : UNSIGNED_LONGWORD; -- Size, in bytes, of data POINTER : ADDRESS; -- Address of data end record; for ACMEWQEITM_TYPE use record ACME_ID at 0 range 0 .. 31; PHASE at 4 range 0 .. 31; LENGTH at 8 range 0 .. 31; POINTER at 12 range 0 .. 31; end record; for ACMEWQEITM_TYPE'SIZE use 128; ACMEWQEITM_TYPE_INIT : constant ACMEWQEITM_TYPE := (ACME_ID => ACMEID_TYPE_INIT, PHASE => 0, LENGTH => 0, POINTER => ADDRESS_ZERO); ACMEWQEITM_K_LENGTH : constant := 16; -- -- Function independent WQE extension -- -- Note: -- -- The function independent WQE extension contains no fields -- at present, the structure declaration is specified simply -- to declare the applicable datatype. -- ACMEWQEFIX_K_LENGTH : constant := 0; type ACMEWQEFIX_OVERLAY_TYPE is record FILLER_1 : UNSIGNED_LONGWORD_ARRAY (0 .. 0); -- Null structure end record; for ACMEWQEFIX_OVERLAY_TYPE use record FILLER_1 at 0 range 0 .. 31; end record; for ACMEWQEFIX_OVERLAY_TYPE'SIZE use 32; ACMEWQEFIX_OVERLAY_TYPE_INIT : constant ACMEWQEFIX_OVERLAY_TYPE := (FILLER_1 => (others => 0)); type ACMEWQEFIX_TYPE is record OVERLAY : ACMEWQEFIX_OVERLAY_TYPE; end record; for ACMEWQEFIX_TYPE use record OVERLAY at 0 range 0 .. 31; end record; for ACMEWQEFIX_TYPE'SIZE use 32; ACMEWQEFIX_TYPE_INIT : constant ACMEWQEFIX_TYPE := ( OVERLAY => ACMEWQEFIX_OVERLAY_TYPE_INIT ); -- -- WQE extension applicable to AUTHENTICATE_PRINCIPAL/CHANGE_PASSWORD -- ACMEWQE_K_MIN_AUTH_PARAM : constant := 256; ACMEWQE_K_SYSTEM_PASSWORD : constant := 256; ACMEWQE_K_PRINCIPAL_NAME : constant := 257; ACMEWQE_K_PRINCIPAL_NAME_OUT : constant := 258; ACMEWQE_K_VMS_USERNAME : constant := 259; ACMEWQE_K_PASSWORD_1 : constant := 260; ACMEWQE_K_PASSWORD_2 : constant := 261; ACMEWQE_K_NEW_PASSWORD_1 : constant := 262; ACMEWQE_K_NEW_PASSWORD_2 : constant := 263; ACMEWQE_K_MAX_AUTH_PARAM : constant := 263; type ACMEWQEAX_TYPE is record NEW_PASSWORD_FLAGS : ACMEPWDFLG_TYPE; -- Password change request flags LOGON_FLAGS : ACMELGIFLG_TYPE; -- Logon flags LOGON_STATS_VMS : ACMELIVMS_TYPE; -- Native (OpenVMS) logon statistics LOGON_STATS_DOI : ACMELIDOI_TYPE; -- Non-native (non-OpenVMS) logon statistics SYSTEM_PASSWORD : ACMEWQEITM_TYPE; -- System password PRINCIPAL_NAME : ACMEWQEITM_TYPE; -- Raw (unprocessed) principal name PRINCIPAL_NAME_OUT : ACMEWQEITM_TYPE; -- Principal name VMS_USERNAME : ACMEWQEITM_TYPE; -- Mapped OpenVMS username PASSWORD_1 : ACMEWQEITM_TYPE; -- Password 1 PASSWORD_2 : ACMEWQEITM_TYPE; -- Password 2 NEW_PASSWORD_1 : ACMEWQEITM_TYPE; -- New password 1 NEW_PASSWORD_2 : ACMEWQEITM_TYPE; -- New password 2 end record; for ACMEWQEAX_TYPE use record NEW_PASSWORD_FLAGS at 0 range 0 .. 31; LOGON_FLAGS at 4 range 0 .. 31; LOGON_STATS_VMS at 8 range 0 .. 383; LOGON_STATS_DOI at 56 range 0 .. 895; SYSTEM_PASSWORD at 168 range 0 .. 127; PRINCIPAL_NAME at 184 range 0 .. 127; PRINCIPAL_NAME_OUT at 200 range 0 .. 127; VMS_USERNAME at 216 range 0 .. 127; PASSWORD_1 at 232 range 0 .. 127; PASSWORD_2 at 248 range 0 .. 127; NEW_PASSWORD_1 at 264 range 0 .. 127; NEW_PASSWORD_2 at 280 range 0 .. 127; end record; for ACMEWQEAX_TYPE'SIZE use 2368; ACMEWQEAX_TYPE_INIT : constant ACMEWQEAX_TYPE := (NEW_PASSWORD_FLAGS => ACMEPWDFLG_TYPE_INIT, LOGON_FLAGS => ACMELGIFLG_TYPE_INIT, LOGON_STATS_VMS => ACMELIVMS_TYPE_INIT, LOGON_STATS_DOI => ACMELIDOI_TYPE_INIT, SYSTEM_PASSWORD => ACMEWQEITM_TYPE_INIT, PRINCIPAL_NAME => ACMEWQEITM_TYPE_INIT, PRINCIPAL_NAME_OUT => ACMEWQEITM_TYPE_INIT, VMS_USERNAME => ACMEWQEITM_TYPE_INIT, PASSWORD_1 => ACMEWQEITM_TYPE_INIT, PASSWORD_2 => ACMEWQEITM_TYPE_INIT, NEW_PASSWORD_1 => ACMEWQEITM_TYPE_INIT, NEW_PASSWORD_2 => ACMEWQEITM_TYPE_INIT); ACMEWQEAX_K_LENGTH : constant := 296; -- -- WQE extension applicable to Agent Initialization -- type ACMEWQEAIX_TYPE is record AGENT_NAME : ADDRESS; -- address of string descriptor end record; for ACMEWQEAIX_TYPE use record AGENT_NAME at 0 range 0 .. 31; end record; for ACMEWQEAIX_TYPE'SIZE use 32; ACMEWQEAIX_TYPE_INIT : constant ACMEWQEAIX_TYPE := (AGENT_NAME => ADDRESS_ZERO); ACMEWQEAIX_K_LENGTH : constant := 4; -- -- WQE extension applicable to Agent startup (Enabling) -- type ACMEWQEAEX_TYPE is record CONCURRENT_REQUESTS : UNSIGNED_LONGWORD; -- maximum at a time end record; for ACMEWQEAEX_TYPE use record CONCURRENT_REQUESTS at 0 range 0 .. 31; end record; for ACMEWQEAEX_TYPE'SIZE use 32; ACMEWQEAEX_TYPE_INIT : constant ACMEWQEAEX_TYPE := (CONCURRENT_REQUESTS => 0); ACMEWQEAEX_K_LENGTH : constant := 4; -- -- WQE extension applicable to Agent shutdown (Disabling) -- type ACMEWQEADX_TYPE is record FILLER_1 : UNSIGNED_LONGWORD_ARRAY (0 .. 0); -- Null structure end record; for ACMEWQEADX_TYPE use record FILLER_1 at 0 range 0 .. 31; end record; for ACMEWQEADX_TYPE'SIZE use 32; ACMEWQEADX_TYPE_INIT : constant ACMEWQEADX_TYPE := (FILLER_1 => (others => 0)); ACMEWQEADX_K_LENGTH : constant := 4; -- -- WQE extension applicable to Agent Standby -- type ACMEWQEASX_TYPE is record FILLER_1 : UNSIGNED_LONGWORD_ARRAY (0 .. 0); -- Null structure end record; for ACMEWQEASX_TYPE use record FILLER_1 at 0 range 0 .. 31; end record; for ACMEWQEASX_TYPE'SIZE use 32; ACMEWQEASX_TYPE_INIT : constant ACMEWQEASX_TYPE := (FILLER_1 => (others => 0)); ACMEWQEASX_K_LENGTH : constant := 4; -- -- Function dependent WQE extension -- type ACMEWQEFDX_OVERLAY_TYPE is record NEW_PASSWORD_FLAGS : ACMEPWDFLG_TYPE; -- Password change request flags LOGON_FLAGS : ACMELGIFLG_TYPE; -- Logon flags LOGON_STATS_VMS : ACMELIVMS_TYPE; -- Native (OpenVMS) logon statistics LOGON_STATS_DOI : ACMELIDOI_TYPE; -- Non-native (non-OpenVMS) logon statistics SYSTEM_PASSWORD : ACMEWQEITM_TYPE; -- System password PRINCIPAL_NAME : ACMEWQEITM_TYPE; -- Raw (unprocessed) principal name PRINCIPAL_NAME_OUT : ACMEWQEITM_TYPE; -- Principal name VMS_USERNAME : ACMEWQEITM_TYPE; -- Mapped OpenVMS username PASSWORD_1 : ACMEWQEITM_TYPE; -- Password 1 PASSWORD_2 : ACMEWQEITM_TYPE; -- Password 2 NEW_PASSWORD_1 : ACMEWQEITM_TYPE; -- New password 1 NEW_PASSWORD_2 : ACMEWQEITM_TYPE; -- New password 2 end record; for ACMEWQEFDX_OVERLAY_TYPE use record NEW_PASSWORD_FLAGS at 0 range 0 .. 31; LOGON_FLAGS at 4 range 0 .. 31; LOGON_STATS_VMS at 8 range 0 .. 383; LOGON_STATS_DOI at 56 range 0 .. 895; SYSTEM_PASSWORD at 168 range 0 .. 127; PRINCIPAL_NAME at 184 range 0 .. 127; PRINCIPAL_NAME_OUT at 200 range 0 .. 127; VMS_USERNAME at 216 range 0 .. 127; PASSWORD_1 at 232 range 0 .. 127; PASSWORD_2 at 248 range 0 .. 127; NEW_PASSWORD_1 at 264 range 0 .. 127; NEW_PASSWORD_2 at 280 range 0 .. 127; end record; for ACMEWQEFDX_OVERLAY_TYPE'SIZE use 2368; ACMEWQEFDX_OVERLAY_TYPE_INIT : constant ACMEWQEFDX_OVERLAY_TYPE := (NEW_PASSWORD_FLAGS => ACMEPWDFLG_TYPE_INIT, LOGON_FLAGS => ACMELGIFLG_TYPE_INIT, LOGON_STATS_VMS => ACMELIVMS_TYPE_INIT, LOGON_STATS_DOI => ACMELIDOI_TYPE_INIT, SYSTEM_PASSWORD => ACMEWQEITM_TYPE_INIT, PRINCIPAL_NAME => ACMEWQEITM_TYPE_INIT, PRINCIPAL_NAME_OUT => ACMEWQEITM_TYPE_INIT, VMS_USERNAME => ACMEWQEITM_TYPE_INIT, PASSWORD_1 => ACMEWQEITM_TYPE_INIT, PASSWORD_2 => ACMEWQEITM_TYPE_INIT, NEW_PASSWORD_1 => ACMEWQEITM_TYPE_INIT, NEW_PASSWORD_2 => ACMEWQEITM_TYPE_INIT); type ACMEWQEFDX_TYPE is record OVERLAY : ACMEWQEFDX_OVERLAY_TYPE; end record; for ACMEWQEFDX_TYPE use record OVERLAY at 0 range 0 .. 2367; end record; for ACMEWQEFDX_TYPE'SIZE use 2368; ACMEWQEFDX_TYPE_INIT : constant ACMEWQEFDX_TYPE := ( OVERLAY => ACMEWQEFDX_OVERLAY_TYPE_INIT ); ACMEWQEFDX_K_LENGTH : constant := 296; ACMEWQE_K_MINOR_ID_000 : constant := 0; -- original V7.2-1 WQE supporting only COM ACMEWQE_K_MINOR_ID_001 : constant := 1; -- subsequent extension of the WQE ACMEWQE_K_MINOR_ID : constant := 0; ACMEWQE_K_MAJOR_ID_001 : constant := 1; ACMEWQE_K_MAJOR_ID : constant := 1; ACMEWQE_K_REVISION : constant := 256; type ACMEWQE_TYPE is record FLINK : ADDRESS; -- WQE list forward link BLINK : ADDRESS; -- WQE list backward link -- -- ACME visible fields -- SIZE : UNSIGNED_WORD; -- Structure size, in bytes REVISION_LEVEL : ACMEREVLVL_TYPE; -- Structure revision level FLAGS : ACMEWQEFLG_TYPE; -- Status/control flags FUNCTIO : ACMEFC_TYPE; -- Function code/modifiers DIALOGUE_FLAGS : ACMEDLOGFLG_TYPE; -- Dialogue support flags REQUESTOR_PROFILE : UNSIGNED_LONGWORD; -- Requestor's security profile -- (Persona ID) REQUESTOR_MODE : UNSIGNED_LONGWORD; -- Requestor's mode REQUESTOR_PID : UNSIGNED_LONGWORD; -- Requestor's PID TARGET_ACME_ID : ACMEID_TYPE; -- Agent id of ACME at which -- this request is directed DESIGNATED_ACME_ID : ACMEID_TYPE; -- Agent id of ACME that -- assumed processing control DESIGNATED_CRED : UNSIGNED_LONGWORD; -- Type of credentials associated -- with the designated ACME CURRENT_ACME_ID : ACMEID_TYPE; -- Agent id of current ACME STATUS : ACMEWQEVAL_TYPE; -- First non-success status returned by an ACME SECONDARY_STATUS : ACMEWQEVAL_TYPE; -- Seondary (protected) status ACME_STATUS : ACMEWQEVAL_TYPE; -- ACME specific status FUNC_IND_PARAMS : ADDRESS; -- Function independent extension FUNC_DEP_PARAMS : ADDRESS; -- Function dependent extension ITEMLIST : ADDRESS; -- ACME independent item list ACME_ITEMLIST : ADDRESS; -- ACME specific item list AST_CONTEXT : UNSIGNED_QUADWORD; -- AST context for which the -- AST has been recieved LOCALE : ACMEWQEITM_TYPE; -- Locale specifier SERVICE_NAME : ACMEWQEITM_TYPE; -- Service (client) specifier TIMEOUT_SECONDS : UNSIGNED_LONGWORD; -- seconds since system boot -- at which this request can -- be timed out. FILLER_1 : UNSIGNED_BYTE_ARRAY (0 .. 3); end record; for ACMEWQE_TYPE use record FLINK at 0 range 0 .. 31; BLINK at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; REVISION_LEVEL at 10 range 0 .. 15; FLAGS at 12 range 0 .. 31; FUNCTIO at 16 range 0 .. 31; DIALOGUE_FLAGS at 20 range 0 .. 31; REQUESTOR_PROFILE at 24 range 0 .. 31; REQUESTOR_MODE at 28 range 0 .. 31; REQUESTOR_PID at 32 range 0 .. 31; TARGET_ACME_ID at 36 range 0 .. 31; DESIGNATED_ACME_ID at 40 range 0 .. 31; DESIGNATED_CRED at 44 range 0 .. 31; CURRENT_ACME_ID at 48 range 0 .. 31; STATUS at 52 range 0 .. 95; SECONDARY_STATUS at 64 range 0 .. 95; ACME_STATUS at 76 range 0 .. 95; FUNC_IND_PARAMS at 88 range 0 .. 31; FUNC_DEP_PARAMS at 92 range 0 .. 31; ITEMLIST at 96 range 0 .. 31; ACME_ITEMLIST at 100 range 0 .. 31; AST_CONTEXT at 104 range 0 .. 63; LOCALE at 112 range 0 .. 127; SERVICE_NAME at 128 range 0 .. 127; TIMEOUT_SECONDS at 144 range 0 .. 31; FILLER_1 at 148 range 0 .. 31; end record; for ACMEWQE_TYPE'SIZE use 1216; ACMEWQE_TYPE_INIT : constant ACMEWQE_TYPE := (FLINK => ADDRESS_ZERO, BLINK => ADDRESS_ZERO, SIZE => 0, REVISION_LEVEL => ACMEREVLVL_TYPE_INIT, FLAGS => ACMEWQEFLG_TYPE_INIT, FUNCTIO => ACMEFC_TYPE_INIT, DIALOGUE_FLAGS => ACMEDLOGFLG_TYPE_INIT, REQUESTOR_PROFILE => 0, REQUESTOR_MODE => 0, REQUESTOR_PID => 0, TARGET_ACME_ID => ACMEID_TYPE_INIT, DESIGNATED_ACME_ID => ACMEID_TYPE_INIT, DESIGNATED_CRED => 0, CURRENT_ACME_ID => ACMEID_TYPE_INIT, STATUS => ACMEWQEVAL_TYPE_INIT, SECONDARY_STATUS => ACMEWQEVAL_TYPE_INIT, ACME_STATUS => ACMEWQEVAL_TYPE_INIT, FUNC_IND_PARAMS => ADDRESS_ZERO, FUNC_DEP_PARAMS => ADDRESS_ZERO, ITEMLIST => ADDRESS_ZERO, ACME_ITEMLIST => ADDRESS_ZERO, AST_CONTEXT => (0, 0), LOCALE => ACMEWQEITM_TYPE_INIT, SERVICE_NAME => ACMEWQEITM_TYPE_INIT, TIMEOUT_SECONDS => 0, FILLER_1 => (others => 0)); ACMEWQE_K_LENGTH : constant := 152; -- Length of fixed portion SUBTYPE ACM_WORK_QUEUE_ENTRY_TYPE is ACMEWQE_TYPE; ACM_WORK_QUEUE_ENTRY_TYPE_INIT : constant ACM_WORK_QUEUE_ENTRY_TYPE := ACMEWQE_TYPE_INIT; --+ -- -- ACMEOUTITM - Item list output item data buffer -- --- ACMEOUTITM_K_LENGTH : constant := 16; -- Length of fixed portion type ACMEOUTITM_TYPE_UNSIGNED_WORD_INDEXING_UNSIGNED_BYTE_ARRAY is array (UNSIGNED_WORD range <>) of UNSIGNED_BYTE; type ACMEOUTITM_TYPE ( MAX_LENGTH : UNSIGNED_WORD := 0 ) is record ACME_ID : ACMEID_TYPE; -- ID of ACME which set the item entry PHASE : UNSIGNED_LONGWORD; -- Phase during which item was set SIZE : UNSIGNED_WORD; -- Structure size, in bytes FILLER_1 : UNSIGNED_WORD; LENGTH : UNSIGNED_WORD; -- Actual size, in bytes, of data ----MAX_LENGTH : UNSIGNED_WORD; -- Size, in bytes, of data buffer DATA : ACMEOUTITM_TYPE_UNSIGNED_WORD_INDEXING_UNSIGNED_BYTE_ARRAY ( 1 .. MAX_LENGTH ); -- Data end record; for ACMEOUTITM_TYPE use record ACME_ID at 0 range 0 .. 31; PHASE at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; FILLER_1 at 10 range 0 .. 15; LENGTH at 12 range 0 .. 15; MAX_LENGTH at 14 range 0 .. 15; ----DATA at 16 range 0 .. 7; end record; ACMEOUTITM_TYPE_INIT : constant ACMEOUTITM_TYPE := (ACME_ID => ACMEID_TYPE_INIT, PHASE => 0, SIZE => 0, FILLER_1 => 0, LENGTH => 0, MAX_LENGTH => 0, DATA => (others => 0)); --+ -- -- ACMERSRC - ACME Agent Resource Requirements Block -- --- type ACMEPQ_TYPE is -- Process quota requirements record MEMORY : UNSIGNED_LONGWORD; -- Virtual address space use CHANNEL : UNSIGNED_LONGWORD; -- I/O channels DIRECT_IO : UNSIGNED_LONGWORD; -- Direct I/O count BUFFER_IO : UNSIGNED_LONGWORD; -- Buffered I/O count BUFFER_IO_MEM : UNSIGNED_LONGWORD; -- Buffered I/O memory usage AST : UNSIGNED_LONGWORD; -- AST count TQE : UNSIGNED_LONGWORD; -- TQE count LOCK : UNSIGNED_LONGWORD; -- Lock count end record; for ACMEPQ_TYPE use record MEMORY at 0 range 0 .. 31; CHANNEL at 4 range 0 .. 31; DIRECT_IO at 8 range 0 .. 31; BUFFER_IO at 12 range 0 .. 31; BUFFER_IO_MEM at 16 range 0 .. 31; AST at 20 range 0 .. 31; TQE at 24 range 0 .. 31; LOCK at 28 range 0 .. 31; end record; for ACMEPQ_TYPE'SIZE use 256; ACMEPQ_TYPE_INIT : constant ACMEPQ_TYPE := (MEMORY => 0, CHANNEL => 0, DIRECT_IO => 0, BUFFER_IO => 0, BUFFER_IO_MEM => 0, AST => 0, TQE => 0, LOCK => 0); ACMERSRC_K_MINOR_ID_000 : constant := 0; ACMERSRC_K_MINOR_ID : constant := 0; ACMERSRC_K_MAJOR_ID_001 : constant := 1; -- VMS V7.2-1 ACMERSRC_K_MAJOR_ID : constant := 1; ACMERSRC_K_REVISION : constant := 256; type ACMERSRC_TYPE is record -- -- General resource requirements -- PRIVILEGES : UNSIGNED_QUADWORD; -- Operating privilege SIZE : UNSIGNED_WORD; -- Structure size, in bytes REVISION_LEVEL : ACMEREVLVL_TYPE; -- Structure revision level STACK_SIZE : UNSIGNED_LONGWORD; -- Maximum operating stack AGENT_QUOTAS : ACMEPQ_TYPE; -- General process quotas -- -- Per-request resource requirements -- REQUEST_QUOTAS : ACMEPQ_TYPE; -- Per-request process quotas end record; for ACMERSRC_TYPE use record PRIVILEGES at 0 range 0 .. 63; SIZE at 8 range 0 .. 15; REVISION_LEVEL at 10 range 0 .. 15; STACK_SIZE at 12 range 0 .. 31; AGENT_QUOTAS at 16 range 0 .. 255; REQUEST_QUOTAS at 48 range 0 .. 255; end record; for ACMERSRC_TYPE'SIZE use 640; ACMERSRC_TYPE_INIT : constant ACMERSRC_TYPE := (PRIVILEGES => (0, 0), SIZE => 0, REVISION_LEVEL => ACMEREVLVL_TYPE_INIT, STACK_SIZE => 0, AGENT_QUOTAS => ACMEPQ_TYPE_INIT, REQUEST_QUOTAS => ACMEPQ_TYPE_INIT); ACMERSRC_K_LENGTH : constant := 80; SUBTYPE ACME_RESOURCE_REQUIREMENTS_TYPE is ACMERSRC_TYPE; ACME_RESOURCE_REQUIREMENTS_TYPE_INIT : constant ACME_RESOURCE_REQUIREMENTS_TYPE := ACMERSRC_TYPE_INIT; --+ -- -- ACMEDTFLG - Formatting control flags for ACME$CB_FORMAT_DATE_TIME callback -- --- ACMEDTFLG_M_TIME_FIELDS : constant := 16#00000001#; ACMEDTFLG_M_DATE_FIELDS : constant := 16#00000002#; ACMEDTFLG_M_LOCAL : constant := 16#40000000#; ACMEDTFLG_M_UCS : constant := 16#80000000#; type ACMEDTFLG_TYPE is record TIME_FIELDS : BOOLEAN; -- Include time fields DATE_FIELDS : BOOLEAN; -- Include date fields FILLER_1 : UNSIGNED_28; LOCAL : BOOLEAN; -- Use default locale for the local -- system in lieu of WQE locale UCS : BOOLEAN; -- Convert to UCS-4 encoding end record; for ACMEDTFLG_TYPE use record TIME_FIELDS at 0 range 0 .. 0; DATE_FIELDS at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 29; LOCAL at 3 range 6 .. 6; UCS at 3 range 7 .. 7; end record; for ACMEDTFLG_TYPE'SIZE use 32; ACMEDTFLG_TYPE_INIT : constant ACMEDTFLG_TYPE := (TIME_FIELDS => FALSE, DATE_FIELDS => FALSE, FILLER_1 => 0, LOCAL => FALSE, UCS => FALSE); ACMEDTFLG_K_LENGTH : constant := 4; --+ -- -- ACMEKCV - ACM Kernel Callback Vector -- --- ACME_K_MINOR_ID_000 : constant := 0; ACME_K_MINOR_ID_001 : constant := 0; ACME_K_MINOR_ID : constant := 0; -- The default is still 000 ACME_K_MAJOR_ID_001 : constant := 1; ACME_K_MAJOR_ID : constant := 1; ACME_K_REVISION : constant := 256; ACMEKCV_K_MINOR_ID_000 : constant := 0; -- original V7.2-1 callback list ACMEKCV_K_MINOR_ID_001 : constant := 1; -- supporting Latin1<->UCS conversion ACMEKCV_K_MINOR_ID : constant := 1; ACMEKCV_K_MAJOR_ID_001 : constant := 1; ACMEKCV_K_MAJOR_ID : constant := 1; ACMEKCV_K_REVISION : constant := 257; ACME_K_REPORT_ATTRIBUTES : constant := 0; ACME_K_SEND_OPERATOR : constant := 1; ACME_K_SEND_LOGFILE : constant := 2; ACME_K_ALLOCATE_ACME_VM : constant := 3; ACME_K_DEALLOCATE_ACME_VM : constant := 4; ACME_K_ALLOCATE_WQE_VM : constant := 5; ACME_K_DEALLOCATE_WQE_VM : constant := 6; ACME_K_SET_DESIGNATED_DOI : constant := 7; ACME_K_SET_2ND_STATUS : constant := 8; ACME_K_SET_ACME_STATUS : constant := 9; ACME_K_SET_WQE_FLAG : constant := 10; ACME_K_SET_WQE_PARAMETER : constant := 11; ACME_K_SET_OUTPUT_ITEM : constant := 12; ACME_K_SET_LOGON_FLAG : constant := 13; ACME_K_SET_LOGON_STATS_VMS : constant := 14; ACME_K_SET_LOGON_STATS_DOI : constant := 15; ACME_K_SET_PHASE_EVENT : constant := 16; ACME_K_QUEUE_DIALOGUE : constant := 17; ACME_K_CANCEL_DIALOGUE : constant := 18; ACME_K_ACQUIRE_ACME_AST : constant := 19; ACME_K_RELEASE_ACME_AST : constant := 20; ACME_K_ACQUIRE_WQE_AST : constant := 21; ACME_K_RELEASE_WQE_AST : constant := 22; ACME_K_ACQUIRE_ACME_RMSAST : constant := 23; ACME_K_RELEASE_ACME_RMSAST : constant := 24; ACME_K_ACQUIRE_WQE_RMSAST : constant := 25; ACME_K_RELEASE_WQE_RMSAST : constant := 26; ACME_K_ACQUIRE_RESOURCE : constant := 27; ACME_K_RELEASE_RESOURCE : constant := 28; ACME_K_ISSUE_CREDENTIALS : constant := 29; ACME_K_FORMAT_DATE_TIME : constant := 30; ACME_K_REPORT_ACTIVITY : constant := 31; ACME_K_UCS_TO_LATIN1 : constant := 32; ACME_K_LATIN1_TO_UCS : constant := 33; ACME_K_SET_NEW_PWD_FLAGS : constant := 34; ACME_K_KCV_COUNT : constant := 35; type ACMEKCV_TYPE is record ACM_REVISION_LEVEL : ACMEREVLVL_TYPE; -- ACM kernel revision level REVISION_LEVEL : ACMEREVLVL_TYPE; -- Structure revision level REPORT_ATTRIBUTES : ADDRESS; -- Report resource requirements SEND_OPERATOR : ADDRESS; -- Send a message to the operator SEND_LOGFILE : ADDRESS; -- Write a message in the log file ALLOCATE_ACME_VM : ADDRESS; -- Allocate a block of memory DEALLOCATE_ACME_VM : ADDRESS; -- Deallocate a block of memory ALLOCATE_WQE_VM : ADDRESS; -- Allocate a block of memory DEALLOCATE_WQE_VM : ADDRESS; -- Deallocate a block of memory SET_DESIGNATED_DOI : ADDRESS; -- Declare DOI accepting request SET_2ND_STATUS : ADDRESS; -- Report secondary (protected) status SET_ACME_STATUS : ADDRESS; -- Report ACME specific status SET_WQE_FLAG : ADDRESS; -- Set WQE status/control flag SET_WQE_PARAMETER : ADDRESS; -- Set WQE data item SET_OUTPUT_ITEM : ADDRESS; -- Set output item SET_LOGON_FLAG : ADDRESS; -- Set logon status flag SET_LOGON_STATS_VMS : ADDRESS; -- Report native (OpenVMS) logon statistics SET_LOGON_STATS_DOI : ADDRESS; -- Reprot non-native (non-OpenVMS) logon statistics SET_PHASE_EVENT : ADDRESS; -- Set phase transition notification QUEUE_DIALOGUE : ADDRESS; -- Queue a dialogue item set CANCEL_DIALOGUE : ADDRESS; -- Dismiss pending dialogue ACQUIRE_ACME_AST : ADDRESS; -- Establish a non-RMS AST context RELEASE_ACME_AST : ADDRESS; -- Dismiss non-RMS AST context ACQUIRE_WQE_AST : ADDRESS; -- Establish a non-RMS AST context RELEASE_WQE_AST : ADDRESS; -- Dismiss non-RMS AST context ACQUIRE_ACME_RMSAST : ADDRESS; -- Establish an RMS AST context RELEASE_ACME_RMSAST : ADDRESS; -- Dismiss RMS AST context ACQUIRE_WQE_RMSAST : ADDRESS; -- Establish an RMS AST context RELEASE_WQE_RMSAST : ADDRESS; -- Dismiss RMS AST context ACQUIRE_RESOURCE : ADDRESS; -- Acquire an ACME specific resource RELEASE_RESOURCE : ADDRESS; -- Release an ACME specific resource ISSUE_CREDENTIALS : ADDRESS; -- Issue security credentials FORMAT_DATE_TIME : ADDRESS; -- Format date and time REPORT_ACTIVITY : ADDRESS; -- Report resource requirements -- -- The following cells are only meaningful if ACMEKCV$W_REVISION_LEVEL -- contains ACMEKCV$K_MAJOR_ID_001/ACMEKCV$K_MINOR_ID_001 or higher. -- UCS_TO_LATIN1 : ADDRESS; -- Convert UCS2_4 to Latin1 LATIN1_TO_UCS : ADDRESS; -- Convert Latin1 to UCS2_4 SET_NEW_PWD_FLAGS : ADDRESS; -- Set new password flag end record; for ACMEKCV_TYPE use record ACM_REVISION_LEVEL at 0 range 0 .. 15; REVISION_LEVEL at 2 range 0 .. 15; REPORT_ATTRIBUTES at 4 range 0 .. 31; SEND_OPERATOR at 8 range 0 .. 31; SEND_LOGFILE at 12 range 0 .. 31; ALLOCATE_ACME_VM at 16 range 0 .. 31; DEALLOCATE_ACME_VM at 20 range 0 .. 31; ALLOCATE_WQE_VM at 24 range 0 .. 31; DEALLOCATE_WQE_VM at 28 range 0 .. 31; SET_DESIGNATED_DOI at 32 range 0 .. 31; SET_2ND_STATUS at 36 range 0 .. 31; SET_ACME_STATUS at 40 range 0 .. 31; SET_WQE_FLAG at 44 range 0 .. 31; SET_WQE_PARAMETER at 48 range 0 .. 31; SET_OUTPUT_ITEM at 52 range 0 .. 31; SET_LOGON_FLAG at 56 range 0 .. 31; SET_LOGON_STATS_VMS at 60 range 0 .. 31; SET_LOGON_STATS_DOI at 64 range 0 .. 31; SET_PHASE_EVENT at 68 range 0 .. 31; QUEUE_DIALOGUE at 72 range 0 .. 31; CANCEL_DIALOGUE at 76 range 0 .. 31; ACQUIRE_ACME_AST at 80 range 0 .. 31; RELEASE_ACME_AST at 84 range 0 .. 31; ACQUIRE_WQE_AST at 88 range 0 .. 31; RELEASE_WQE_AST at 92 range 0 .. 31; ACQUIRE_ACME_RMSAST at 96 range 0 .. 31; RELEASE_ACME_RMSAST at 100 range 0 .. 31; ACQUIRE_WQE_RMSAST at 104 range 0 .. 31; RELEASE_WQE_RMSAST at 108 range 0 .. 31; ACQUIRE_RESOURCE at 112 range 0 .. 31; RELEASE_RESOURCE at 116 range 0 .. 31; ISSUE_CREDENTIALS at 120 range 0 .. 31; FORMAT_DATE_TIME at 124 range 0 .. 31; REPORT_ACTIVITY at 128 range 0 .. 31; UCS_TO_LATIN1 at 132 range 0 .. 31; LATIN1_TO_UCS at 136 range 0 .. 31; SET_NEW_PWD_FLAGS at 140 range 0 .. 31; end record; for ACMEKCV_TYPE'SIZE use 1152; ACMEKCV_TYPE_INIT : constant ACMEKCV_TYPE := (ACM_REVISION_LEVEL => ACMEREVLVL_TYPE_INIT, REVISION_LEVEL => ACMEREVLVL_TYPE_INIT, REPORT_ATTRIBUTES => ADDRESS_ZERO, SEND_OPERATOR => ADDRESS_ZERO, SEND_LOGFILE => ADDRESS_ZERO, ALLOCATE_ACME_VM => ADDRESS_ZERO, DEALLOCATE_ACME_VM => ADDRESS_ZERO, ALLOCATE_WQE_VM => ADDRESS_ZERO, DEALLOCATE_WQE_VM => ADDRESS_ZERO, SET_DESIGNATED_DOI => ADDRESS_ZERO, SET_2ND_STATUS => ADDRESS_ZERO, SET_ACME_STATUS => ADDRESS_ZERO, SET_WQE_FLAG => ADDRESS_ZERO, SET_WQE_PARAMETER => ADDRESS_ZERO, SET_OUTPUT_ITEM => ADDRESS_ZERO, SET_LOGON_FLAG => ADDRESS_ZERO, SET_LOGON_STATS_VMS => ADDRESS_ZERO, SET_LOGON_STATS_DOI => ADDRESS_ZERO, SET_PHASE_EVENT => ADDRESS_ZERO, QUEUE_DIALOGUE => ADDRESS_ZERO, CANCEL_DIALOGUE => ADDRESS_ZERO, ACQUIRE_ACME_AST => ADDRESS_ZERO, RELEASE_ACME_AST => ADDRESS_ZERO, ACQUIRE_WQE_AST => ADDRESS_ZERO, RELEASE_WQE_AST => ADDRESS_ZERO, ACQUIRE_ACME_RMSAST => ADDRESS_ZERO, RELEASE_ACME_RMSAST => ADDRESS_ZERO, ACQUIRE_WQE_RMSAST => ADDRESS_ZERO, RELEASE_WQE_RMSAST => ADDRESS_ZERO, ACQUIRE_RESOURCE => ADDRESS_ZERO, RELEASE_RESOURCE => ADDRESS_ZERO, ISSUE_CREDENTIALS => ADDRESS_ZERO, FORMAT_DATE_TIME => ADDRESS_ZERO, REPORT_ACTIVITY => ADDRESS_ZERO, UCS_TO_LATIN1 => ADDRESS_ZERO, LATIN1_TO_UCS => ADDRESS_ZERO, SET_NEW_PWD_FLAGS => ADDRESS_ZERO); ACMEKCV_K_LENGTH : constant := 144; SUBTYPE ACM_CALLBACK_VECTOR_TYPE is ACMEKCV_TYPE; ACM_CALLBACK_VECTOR_TYPE_INIT : constant ACM_CALLBACK_VECTOR_TYPE := ACMEKCV_TYPE_INIT; end ACMEAGENT_DATA_DEF;