--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:15 by OpenVMS SDL EV3-3 -- Source: 07-MAY-2001 13:54:39 $1$DGA8085:[LIB_ADA.LIS]ACMDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package ACMDEF is -- module $ACMDEF --+ -- ACMDEF - ACCOUNTING MANAGER DEFINITIONS --- ACM_S_ACMDEF : constant := 2; -- Old size name, synonym type ACMDEF_BITS_TYPE is record PROCESS : BOOLEAN; -- PROCESS ACCOUNTING ENABLED IMAGE : BOOLEAN; -- IMAGE ACCOUNTING ENABLED INTERACTIVE : BOOLEAN; -- INTERACTIVE ACCOUNTING ENABLED LOGFAIL : BOOLEAN; -- LOGIN FAILURE ACCOUNTING ENABLED SUBPROCESS : BOOLEAN; -- SUBPROCESS ACCOUNTING ENABLED DETACHED : BOOLEAN; -- DETACHED PROCESS ACCOUNTING ENABLED BATCH : BOOLEAN; -- BATCH ACCOUNTING ENABLED NETWORK : BOOLEAN; -- NETWORK PROCESS ACCOUNTING ENABLED PRINT : BOOLEAN; -- PRINT JOB ACCOUNTING ENABLED USER_DATA : BOOLEAN; -- USER_DATA ACCOUNTING ENABLED ACM_FUNC : BOOLEAN; -- ACM FUNCTION ACCOUNTING ENABLED SYS_FUNC : BOOLEAN; -- SYSTEM FUNCTION ACCOUNTING ENABLED CCAENAB : BOOLEAN; -- CHARGE CODE ACCOUNTING ENABLED CCVENAB : BOOLEAN; -- CHARGE CODE VALIDATION ENABLED FILLER_1 : UNSIGNED_2; end record; for ACMDEF_BITS_TYPE use record PROCESS at 0 range 0 .. 0; IMAGE at 0 range 1 .. 1; INTERACTIVE at 0 range 2 .. 2; LOGFAIL at 0 range 3 .. 3; SUBPROCESS at 0 range 4 .. 4; DETACHED at 0 range 5 .. 5; BATCH at 0 range 6 .. 6; NETWORK at 0 range 7 .. 7; PRINT at 1 range 0 .. 0; USER_DATA at 1 range 1 .. 1; ACM_FUNC at 1 range 2 .. 2; SYS_FUNC at 1 range 3 .. 3; CCAENAB at 1 range 4 .. 4; CCVENAB at 1 range 5 .. 5; FILLER_1 at 1 range 6 .. 7; end record; for ACMDEF_BITS_TYPE'SIZE use 16; ACMDEF_BITS_TYPE_INIT : constant ACMDEF_BITS_TYPE := (PROCESS => FALSE, IMAGE => FALSE, INTERACTIVE => FALSE, LOGFAIL => FALSE, SUBPROCESS => FALSE, DETACHED => FALSE, BATCH => FALSE, NETWORK => FALSE, PRINT => FALSE, USER_DATA => FALSE, ACM_FUNC => FALSE, SYS_FUNC => FALSE, CCAENAB => FALSE, CCVENAB => FALSE, FILLER_1 => 0); type ACM_TYPE is record ACMDEF_BITS : ACMDEF_BITS_TYPE; end record; for ACM_TYPE use record ACMDEF_BITS at 0 range 0 .. 15; end record; for ACM_TYPE'SIZE use 16; ACM_TYPE_INIT : constant ACM_TYPE := ( ACMDEF_BITS => ACMDEF_BITS_TYPE_INIT); type ACM_UIC_TYPE is -- PROCESS UIC record MEM : UNSIGNED_WORD; -- MEMBER UIC GRP : UNSIGNED_WORD; -- GROUP UIC end record; for ACM_UIC_TYPE use record MEM at 0 range 0 .. 15; GRP at 2 range 0 .. 15; end record; for ACM_UIC_TYPE'SIZE use 32; ACM_UIC_TYPE_INIT : constant ACM_UIC_TYPE := (MEM => 0, GRP => 0); type ACM_SECURITY_2_TYPE is -- ALTERNATE SECURITY PROFILE record PSB_ADDRESS : ADDRESS; -- ADDRESS OF CLONED PERSONA FILLER_1 : UNSIGNED_BYTE_ARRAY (1 .. 8); end record; for ACM_SECURITY_2_TYPE use record PSB_ADDRESS at 0 range 0 .. 31; FILLER_1 at 4 range 0 .. 63; end record; for ACM_SECURITY_2_TYPE'SIZE use 96; ACM_SECURITY_2_TYPE_INIT : constant ACM_SECURITY_2_TYPE := (PSB_ADDRESS => ADDRESS_ZERO, FILLER_1 => (others => 0)); type ACM_SECURITY_PROFILE_TYPE is -- SECURITY PROFILES record PRVMSK : UNSIGNED_QUADWORD; -- PROCESS PRIVILEGE MASK UIC : ACM_UIC_TYPE; -- PROCESS UIC ----Component(s) below are defined as comments since they ----overlap other fields ---- ----SECURITY_2 : ACM_SECURITY_2_TYPE; -- ALTERNATE SECURITY PROFILE end record; for ACM_SECURITY_PROFILE_TYPE use record PRVMSK at 0 range 0 .. 63; UIC at 8 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----SECURITY_2 at 0 range 0 .. 95; end record; for ACM_SECURITY_PROFILE_TYPE'SIZE use 96; ACM_SECURITY_PROFILE_TYPE_INIT : constant ACM_SECURITY_PROFILE_TYPE := (PRVMSK => (0, 0), UIC => ACM_UIC_TYPE_INIT ); type ACMHDR_TYPE is record TYP : UNSIGNED_WORD; -- MESSAGE TYPE MAILBOX : UNSIGNED_WORD; -- MAILBOX UNIT NUMBER SECURITY_PROFILE : ACM_SECURITY_PROFILE_TYPE; -- SECURITY PROFILES USERNAME : STRING(1 .. 12); -- USERNAME ACCOUNT : STRING(1 .. 8); -- ACCOUNT NAME PROCPRI : UNSIGNED_BYTE; -- PROCESS BASE PRIORITY RMOD : UNSIGNED_BYTE; -- REQUESTOR'S ACCESS MODE FILLER_1 : UNSIGNED_BYTE_ARRAY (1 .. 2); -- SPARE BYTES (LONGWORD ALIGNMENT) PID : UNSIGNED_LONGWORD; -- PROCESS ID STS : UNSIGNED_LONGWORD; -- PROCESS STATUS OWNER : UNSIGNED_LONGWORD; -- OWNER PROCESS ID (0 => NONE) TERMINAL : STRING(1 .. 8); -- TERMINAL NAME (COUNTED ASCII STRING) SYSTIME : UNSIGNED_QUADWORD; -- CURRENT SYSTEM TIME end record; for ACMHDR_TYPE use record TYP at 0 range 0 .. 15; MAILBOX at 2 range 0 .. 15; SECURITY_PROFILE at 4 range 0 .. 95; USERNAME at 16 range 0 .. 95; ACCOUNT at 28 range 0 .. 63; PROCPRI at 36 range 0 .. 7; RMOD at 37 range 0 .. 7; FILLER_1 at 38 range 0 .. 15; PID at 40 range 0 .. 31; STS at 44 range 0 .. 31; OWNER at 48 range 0 .. 31; TERMINAL at 52 range 0 .. 63; SYSTIME at 60 range 0 .. 63; end record; for ACMHDR_TYPE'SIZE use 544; ACMHDR_TYPE_INIT : constant ACMHDR_TYPE := (TYP => 0, MAILBOX => 0, SECURITY_PROFILE => ACM_SECURITY_PROFILE_TYPE_INIT, USERNAME => (others => ASCII.NUL), ACCOUNT => (others => ASCII.NUL), PROCPRI => 0, RMOD => 0, FILLER_1 => (others => 0), PID => 0, STS => 0, OWNER => 0, TERMINAL => (others => ASCII.NUL), SYSTIME => (0, 0)); ACM_S_ACMDEF1 : constant := 76; -- Old size name - synonym type ACM1_TYPE is record MSGSTS : UNSIGNED_WORD; -- MSG STATUS IN MAILBOX IOSB (JOBCTL SPECIFIC) MSGLEN : UNSIGNED_WORD; -- MSG LENGTH IN MAILBOX IOSB (JOBCTL SPECIFIC) PROCID : UNSIGNED_LONGWORD; -- PROCESS ID IN MAILBOX IOSB (JOBCTL SPECIFIC) ACMHDR : ACMHDR_TYPE; -- -- SEND TO ACCOUNTING MANAGER FIELDS -- end record; for ACM1_TYPE use record MSGSTS at 0 range 0 .. 15; MSGLEN at 2 range 0 .. 15; PROCID at 4 range 0 .. 31; ACMHDR at 8 range 0 .. 543; end record; for ACM1_TYPE'SIZE use 608; ACM1_TYPE_INIT : constant ACM1_TYPE := (MSGSTS => 0, MSGLEN => 0, PROCID => 0, ACMHDR => ACMHDR_TYPE_INIT); ACM_S_ACMDEF2 : constant := 326; -- Old size name - synonym type ACM2_TYPE is record ACMHDR : ACMHDR_TYPE; USERREQ : UNSIGNED_WORD; -- USER REQUEST TYPE DATA : STRING(1 .. 256); -- USER DATA -- -- PROCESS/IMAGE DELETE/PURGE FIELDS -- end record; for ACM2_TYPE use record ACMHDR at 0 range 0 .. 543; USERREQ at 68 range 0 .. 15; DATA at 70 range 0 .. 2047; end record; for ACM2_TYPE'SIZE use 2608; ACM2_TYPE_INIT : constant ACM2_TYPE := (ACMHDR => ACMHDR_TYPE_INIT, USERREQ => 0, DATA => (others => ASCII.NUL)); ACM_M_UIDGID : constant := 16#00000001#; ACM_K_PROCLEN : constant := 144; -- MIN. PROCESS/IMAGE TERMINATION MESSAGE LENGTH ACM_C_PROCLEN : constant := 144; -- MIN. PROCESS/IMAGE TERMINATION MESSAGE LENGTH ACM_S_ACMDEF3 : constant := 160; -- Old size name - synonym type ACM_FLAGS_TYPE is -- FLAGS record UIDGID : BOOLEAN; -- (0) NOT PRESENT/(1) = PRESENT FILLER_1 : UNSIGNED_31; end record; for ACM_FLAGS_TYPE use record UIDGID at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 31; end record; for ACM_FLAGS_TYPE'SIZE use 32; ACM_FLAGS_TYPE_INIT : constant ACM_FLAGS_TYPE := (UIDGID => FALSE, FILLER_1 => 0); type ACM3_TYPE is record ACMHDR : ACMHDR_TYPE; LOGIN : UNSIGNED_QUADWORD; -- PROCESS/IMAGE START TIME FINALSTS : UNSIGNED_LONGWORD; -- PROCESS FINAL STATUS IMGCNT : UNSIGNED_LONGWORD; -- IMAGE EXECUTION COUNT CPUTIME : UNSIGNED_LONGWORD; -- CPU USAGE PAGEFLTS : UNSIGNED_LONGWORD; -- PAGEFAULT COUNT PGFLTIO : UNSIGNED_LONGWORD; -- PAGEFAULT I/O WSPEAK : UNSIGNED_LONGWORD; -- WORKING SET PEAK PGFLPEAK : UNSIGNED_LONGWORD; -- PAGE FILE PEAK DIOCNT : UNSIGNED_LONGWORD; -- DIRECT I/O COUNT BIOCNT : UNSIGNED_LONGWORD; -- BUFFERED I/O COUNT VOLUMES : UNSIGNED_LONGWORD; -- VOLUME MOUNT COUNT VP_CPUTIME : UNSIGNED_LONGWORD; -- VECTOR CPU TIME NODEADDR : UNSIGNED_WORD; -- MESSAGE OFFSET TO REMOTE NODE ADDRESS NODENAME : UNSIGNED_WORD; -- MESSAGE OFFSET TO REMOTE NODE NAME REMOTEID : UNSIGNED_WORD; -- MESSAGE OFFSET TO REMOTE ID IMAGENAME : UNSIGNED_WORD; -- MESSAGE OFFSET TO IMAGE NAME FULLADDR : UNSIGNED_WORD; -- MESSAGE OFFSET to remote PhaseV address FULLNAME : UNSIGNED_WORD; -- MESSAGE OFFSET to remote Fullname FLAGS : ACM_FLAGS_TYPE; -- FLAGS POSIX_UID : UNSIGNED_LONGWORD; -- POSIX UID POSIX_GID : UNSIGNED_LONGWORD; -- POSIX GID QMGRS_USED : INTEGER_32_ARRAY (1 .. 4); -- BITMAP OF QUEUE MANAGERS ACCESSED BY PROCESS -- -- SNDJBC MESSAGE FIELDS -- end record; for ACM3_TYPE use record ACMHDR at 0 range 0 .. 543; LOGIN at 68 range 0 .. 63; FINALSTS at 76 range 0 .. 31; IMGCNT at 80 range 0 .. 31; CPUTIME at 84 range 0 .. 31; PAGEFLTS at 88 range 0 .. 31; PGFLTIO at 92 range 0 .. 31; WSPEAK at 96 range 0 .. 31; PGFLPEAK at 100 range 0 .. 31; DIOCNT at 104 range 0 .. 31; BIOCNT at 108 range 0 .. 31; VOLUMES at 112 range 0 .. 31; VP_CPUTIME at 116 range 0 .. 31; NODEADDR at 120 range 0 .. 15; NODENAME at 122 range 0 .. 15; REMOTEID at 124 range 0 .. 15; IMAGENAME at 126 range 0 .. 15; FULLADDR at 128 range 0 .. 15; FULLNAME at 130 range 0 .. 15; FLAGS at 132 range 0 .. 31; POSIX_UID at 136 range 0 .. 31; POSIX_GID at 140 range 0 .. 31; QMGRS_USED at 144 range 0 .. 127; end record; for ACM3_TYPE'SIZE use 1280; ACM3_TYPE_INIT : constant ACM3_TYPE := (ACMHDR => ACMHDR_TYPE_INIT, LOGIN => (0, 0), FINALSTS => 0, IMGCNT => 0, CPUTIME => 0, PAGEFLTS => 0, PGFLTIO => 0, WSPEAK => 0, PGFLPEAK => 0, DIOCNT => 0, BIOCNT => 0, VOLUMES => 0, VP_CPUTIME => 0, NODEADDR => 0, NODENAME => 0, REMOTEID => 0, IMAGENAME => 0, FULLADDR => 0, FULLNAME => 0, FLAGS => ACM_FLAGS_TYPE_INIT, POSIX_UID => 0, POSIX_GID => 0, QMGRS_USED => (others => 0)); ACM_S_SNDJBCDEF : constant := 90; ACM_S_ACMDEF4 : constant := 90; -- Old size name - synonym type ACM4_TYPE is record ACMHDR : ACMHDR_TYPE; IMAGECNT : UNSIGNED_LONGWORD; -- IMAGE COUNT FOR PROCESS EFN : UNSIGNED_LONGWORD; -- COMPLETION EVENT FLAG IOSB : ADDRESS; -- COMPLETION IOSB ADDRESS ASTADR : ADDRESS; -- COMPLETION AST ADRESS ASTPRM : UNSIGNED_LONGWORD; -- COMPLETION AST PARAMETER FUNC : UNSIGNED_WORD; -- SNDJBC/GETQUI FUNCTION CODE ITMLST : STRING(1 .. 0); -- START OF ITEMLIST DATA end record; for ACM4_TYPE use record ACMHDR at 0 range 0 .. 543; IMAGECNT at 68 range 0 .. 31; EFN at 72 range 0 .. 31; IOSB at 76 range 0 .. 31; ASTADR at 80 range 0 .. 31; ASTPRM at 84 range 0 .. 31; FUNC at 88 range 0 .. 15; ITMLST at 90 range 0 .. -1; end record; for ACM4_TYPE'SIZE use 720; ACM4_TYPE_INIT : constant ACM4_TYPE := (ACMHDR => ACMHDR_TYPE_INIT, IMAGECNT => 0, EFN => 0, IOSB => ADDRESS_ZERO, ASTADR => ADDRESS_ZERO, ASTPRM => 0, FUNC => 0, ITMLST => (others => ASCII.NUL)); end ACMDEF;