%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 ! + ! ! Access Control list Entry structure definitions ! ! - DECLARE LONG CONSTANT ACE$C_KEYID = 1 ! Key identifier entry DECLARE LONG CONSTANT ACE$C_RMSJNL_BI = 2 ! RMS BI journal DECLARE LONG CONSTANT ACE$C_RMSJNL_AI = 3 ! RMS AI journal DECLARE LONG CONSTANT ACE$C_RMSJNL_AT = 4 ! RMS AT journal DECLARE LONG CONSTANT ACE$C_AUDIT = 5 ! Security audit journal entry DECLARE LONG CONSTANT ACE$C_ALARM = 6 ! Security alarm entry DECLARE LONG CONSTANT ACE$C_INFO = 7 ! General purpose information DECLARE LONG CONSTANT ACE$C_RMSJNL_RU_DEFAULT = 8 ! RU journal default volume DECLARE LONG CONSTANT ACE$C_DIRDEF = 9 ! Directory default protection DECLARE LONG CONSTANT ACE$C_RMSJNL_RU = 10 ! RU journal ( many per file ) DECLARE LONG CONSTANT ACE$C_SUBSYSTEM_IDS = 11 ! Protected subsystem ids DECLARE LONG CONSTANT ACE$C_OIL = 12 ! Object Information Label DECLARE LONG CONSTANT ACE$C_NEW_OWNER = 13 ! Protection for owner ACE DECLARE LONG CONSTANT ACE$C_MAX_CODE = 14 ! Maximum ACE type code plus 1 ! ACE types registered to DECLARE LONG CONSTANT ACE$C_PATHWORKS = 128 ! Pathworks common ACE DECLARE LONG CONSTANT ACE$C_LANMAN_SECURITY = 129 ! LANMAN security DECLARE LONG CONSTANT ACE$C_LANMAN_ATTRIB = 130 ! LANMAN extended attributes DECLARE LONG CONSTANT ACE$C_NETWARE = 131 ! Netware trustee DECLARE LONG CONSTANT ACE$C_MAC_COMMENT = 132 ! MacIntosh comment DECLARE LONG CONSTANT ACE$C_PATHWORKS_1 = 133 ! reserved to Pathworks DECLARE LONG CONSTANT ACE$C_PATHWORKS_2 = 134 ! reserved to Pathworks DECLARE LONG CONSTANT ACE$C_PATHWORKS_3 = 135 ! reserved to Pathworks DECLARE LONG CONSTANT ACE$C_RESERVED = 255 ! Reserved ACE type DECLARE LONG CONSTANT ACE$C_APPLICATION = 7 ! Alternate application ACE code DECLARE LONG CONSTANT ACE$C_CUST = 1 ! Customer defined DECLARE LONG CONSTANT ACE$C_CSS = 2 ! CSS defined DECLARE LONG CONSTANT ACE$C_VMS = 3 ! VMS defined DECLARE LONG CONSTANT ACE$M_SUCCESS = x'00000001' DECLARE LONG CONSTANT ACE$M_FAILURE = x'00000002' DECLARE LONG CONSTANT ACE$M_DEFAULT = x'00000100' DECLARE LONG CONSTANT ACE$M_PROTECTED = x'00000200' DECLARE LONG CONSTANT ACE$M_HIDDEN = x'00000400' DECLARE LONG CONSTANT ACE$M_NOPROPAGATE = x'00000800' DECLARE LONG CONSTANT ACE$M_READ = x'00000001' DECLARE LONG CONSTANT ACE$M_WRITE = x'00000002' DECLARE LONG CONSTANT ACE$M_EXECUTE = x'00000004' DECLARE LONG CONSTANT ACE$M_DELETE = x'00000008' DECLARE LONG CONSTANT ACE$M_CONTROL = x'00000010' DECLARE LONG CONSTANT ACE$K_LENGTH = 8 ! Length of the overhead area DECLARE LONG CONSTANT ACE$C_LENGTH = 8 ! Length of the overhead area DECLARE LONG CONSTANT ACE$C_RMS_ATTRIBUTES = 0 ! variant of ACE for file attributes DECLARE LONG CONSTANT ACE$K_RMS_ATTRIBUTES = 0 ! variant of ACE for file attributes DECLARE LONG CONSTANT ACE$K_RMSATR_MINOR_V50 = 2 ! minor ID for VMS 5.0 DECLARE LONG CONSTANT ACE$K_RMSATR_MINOR_VDW = 2 ! minor ID for DECwindows V1.0 DECLARE LONG CONSTANT ACE$C_RMSATR_MINOR_ID = 2 ! current minor ID ( obsolete symbol ) DECLARE LONG CONSTANT ACE$K_RMSATR_MINOR_ID = 2 DECLARE LONG CONSTANT ACE$C_RMSATR_MAJOR_ID = 1 ! current major ID DECLARE LONG CONSTANT ACE$K_RMSATR_MAJOR_ID = 1 DECLARE LONG CONSTANT ACE$M_STATISTICS = x'00000001' DECLARE LONG CONSTANT ACE$M_XLATE_DEC = x'00000002' DECLARE LONG CONSTANT ACE$S_RMSATR = 20 ! size of RMS file attributes ACE ( fixed fields ) DECLARE LONG CONSTANT ACE$S_RMSATR_V50 = 20 ! size of RMS file attributes ACE ( fixed fields ) DECLARE LONG CONSTANT ACE$S_RMSATR_VDW = 20 ! size of RMS file attributes ACE ( fixed fields ) ! Beyond the fixed fields, variable length information will by stored DECLARE LONG CONSTANT ACE$_RMSATR_ORGANIZATION = 1 ! organizational extension object ID DECLARE LONG CONSTANT ACE$_RMSATR_SEMANTICS = 2 ! file semantics object ID DECLARE LONG CONSTANT ACE$K_RMSATR_ORG_MAX_LEN = 64 DECLARE LONG CONSTANT ACE$K_RMSATR_SEM_MAX_LEN = 64 DECLARE LONG CONSTANT ACE$S_RMSJNL_RU_DEFAULT = 17 ! length of RMSJNL RU default ACE DECLARE LONG CONSTANT ACE$M_JOURNAL_DISABLED = x'00000001' DECLARE LONG CONSTANT ACE$M_BACKUP_DONE = x'00000002' DECLARE LONG CONSTANT ACE$S_RMSJNL_RU = 38 ! length of RMSJNL RU ACE DECLARE LONG CONSTANT ACE$S_RMSJNL = 50 ! length of RMSJNL AI/BI/AT ACE DECLARE LONG CONSTANT ACE$S_OIL_S64I64 = 32 ! Length of Type 0 OIL ACE DECLARE LONG CONSTANT ACE$S_OIL_S128 = 32 ! Length of Type 1 OIL ACE DECLARE LONG CONSTANT ACE$S_OIL = 32 ! Maximum OIL ACE Size DECLARE LONG CONSTANT ACE$S_ACEDEF = 50 record ACEDEF BYTE ACE$B_SIZE ! Size of the entry BYTE ACE$B_TYPE ! Type of entry ! outside products. Not ! recognized by VMS software. ! Registered for Pathworks... group ACE$R_FLAGS_OVERLAY variant case WORD ACE$W_FLAGS ! Type dependent ? independent flags case group ACE$R_FLAGS_INFO ! Flags for INFO type ACE ! INFO ACE subtype BYTE INFO_TYPE_bits ! COMMENT ADDED BY SDL - INFO_TYPE_bits contains bits INFO_TYPE through fill_0 end group ACE$R_FLAGS_INFO case group ACE$R_FLAGS_KEYID ! Flags for KEYID type ! Count of reserved longwords BYTE RESERVED_bits ! COMMENT ADDED BY SDL - RESERVED_bits contains bits RESERVED through fill_1 end group ACE$R_FLAGS_KEYID case group ACE$R_FLAGS_BITS0 ! Audit or alarm upon success ! Audit ot alarm upon failure BYTE SUCCESS_bits ! COMMENT ADDED BY SDL - SUCCESS_bits contains bits SUCCESS through fill_2 end group ACE$R_FLAGS_BITS0 case group ACE$R_FLAGS_BITS ! Type independent flags ! Directory default entry ! Protected ACE ! Hidden ACE ! No propagation between versions WORD FILL_A_bits ! COMMENT ADDED BY SDL - FILL_A_bits contains bits FILL_A through fill_3 end group ACE$R_FLAGS_BITS end variant end group ACE$R_FLAGS_OVERLAY group ACE$R_ACE_FIELDS ! Start of ACE overlayed area variant case group ACE$R_KEY_AUD_TYPE ! KEY-ID and security audit types group ACE$r_fill_4 variant case LONG ACE$L_ACCESS ! Access rights bitmask case group ACE$r_fill_5 ! Allowed to read ! Allowed to write ! Allowed to execute ! Allowed to delete ! All privileges of the owner BYTE READ_bits ! COMMENT ADDED BY SDL - READ_bits contains bits READ through fill_6 end group ACE$r_fill_5 end variant end group ACE$r_fill_4 group ACE$R_KEY_OVERLAY variant case LONG ACE$L_KEY ! Start of the key fields case STRING ACE$T_AUDITNAME = 16 ! Start of the security journal name end variant end group ACE$R_KEY_OVERLAY end group ACE$R_KEY_AUD_TYPE case group ACE$R_INFO_TYPE group ACE$r_fill_7 variant case LONG ACE$L_INFO_FLAGS ! INFO type application flags case group ACE$r_fill_8 WORD ACE$W_APPLICATION_FLAGS ! VMS application flags word WORD ACE$W_APPLICATION_FACILITY ! VMS application facility code end group ACE$r_fill_8 end variant end group ACE$r_fill_7 group ACE$R_INFO_DATA variant case STRING ACE$T_INFO_START = 1 ! Start of the information case group ACE$R_RMSATR_TYPE WORD ACE$W_RMSATR_VARIANT ! Which variant of the RMS attributes ACE BYTE ACE$B_RMSATR_FIXLEN ! length of fixed format fields ! (introduced at minor ID 3. Older ! ACE's are assumed to be all fixed form) BYTE ACE$B_RMSATR_SPARE1 ! currectly unused WORD ACE$W_RMSATR_MINOR_ID ! RMS file attributes ACE minor ID WORD ACE$W_RMSATR_MAJOR_ID ! RMS file attributes ACE major ID group ACE$r_fill_9 variant case LONG ACE$L_RMS_ATTRIBUTE_FLAGS ! RMS file attributes flags definitions case group ACE$r_fill_10 ! Statistics monitoring enabled on this file ! File semantics are DEC-local BYTE STATISTICS_bits ! COMMENT ADDED BY SDL - STATISTICS_bits contains bits STATISTICS & ! through fill_11 end group ACE$r_fill_10 end variant end group ACE$r_fill_9 ! using a {field-type, length, value} scheme. This allows extensibility ! and compact representation. ! ! field types are: end group ACE$R_RMSATR_TYPE end variant end group ACE$R_INFO_DATA end group ACE$R_INFO_TYPE case group ACE$R_RMSJNL_TYPE ! Used for all 5 RMSJNL_xxx ACEs STRING ACE$T_VOLNAM = 12 ! Volume name of journal file BYTE ACE$B_VOLNAM_LEN ! Length of volume name of journal file BYTE ACE$B_RJRVER ! RMS journal file structure level group ACE$R_FID_OVERLAY ! File-id of journal file variant case WORD ACE$W_FID ( 1 to 3 ) ! file id case group ACE$R_FID_FIELDS WORD ACE$W_FID_NUM ! file number WORD ACE$W_FID_SEQ ! sequence number group ACE$R_FID_RVN_OVERLAY variant case WORD ACE$W_FID_RVN ! relative volume number case group ACE$R_FID_RVN_FIELDS BYTE ACE$B_FID_RVN ! alternate format RVN BYTE ACE$B_FID_NMX ! alternate format file number extension end group ACE$R_FID_RVN_FIELDS end variant end group ACE$R_FID_RVN_OVERLAY end group ACE$R_FID_FIELDS end variant end group ACE$R_FID_OVERLAY group ACE$R_RMSJNL_FLAGS_OVERLAY variant case WORD ACE$W_RMSJNL_FLAGS case group ACE$R_RMSJNL_FLAGS_BITS ! journaling disabled ! (AI, BI, AT only; set by BACKUP) ! BACKUP done on this file; ! RMS needs to write a backup marker ! (AI, BI, AT only; set by BACKUP) BYTE JOURNAL_DISABLED_bits ! COMMENT ADDED BY SDL - JOURNAL_DISABLED_bits contains bits & ! JOURNAL_DISABLED through fill_12 end group ACE$R_RMSJNL_FLAGS_BITS end variant end group ACE$R_RMSJNL_FLAGS_OVERLAY LONG ACE$L_JNLIDX ! journal stream index number BASIC$QUADWORD ACE$Q_CDATE ! creation date/time of journal LONG ACE$L_BACKUP_SEQNO ! BACKUP sequence number (to ! find where to start in journal). BASIC$QUADWORD ACE$Q_MODIFICATION_TIME ! timestamp of last backup or last ! journal entry recovered. end group ACE$R_RMSJNL_TYPE case group ACE$R_DIRDEF_TYPE LONG ACE$L_SPARE1 ! For alignment LONG ACE$L_SYS_PROT ! Default system protection LONG ACE$L_OWN_PROT ! Default owner protection LONG ACE$L_GRP_PROT ! Default group protection LONG ACE$L_WOR_PROT ! Default world protection end group ACE$R_DIRDEF_TYPE case group ACE$R_IMAGE_ID_TYPE ! Protected subsystem ACE type LONG ACE$L_SPARE2 ! For alignment BASIC$QUADWORD ACE$Q_IMAGE_IDS ! Start of the image ids (a ! quadword for each identifier) end group ACE$R_IMAGE_ID_TYPE case group ACE$R_OIL_TYPE ! Object Information Label LONG ACE$L_OIL_FLAGS ! For Alignment LONG ACE$L_BRAND_NAME ! OIL Type-Specific Info STRING ACE$R_CLASS_PROT = 1 ! OIL Class Block end group ACE$R_OIL_TYPE end variant end group ACE$R_ACE_FIELDS end record ACEDEF