/********************************************************************************************************************************/ /* Created: 15-MAR-2001 23:37:53 by OpenVMS SDL EV1-33 */ /* Source: 15-MAR-2001 23:34:06 _$11$DUA933:[BUILD.SDL]STARDEFAE.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $ACEDEF ***/ #ifndef __ACEDEF_LOADED #define __ACEDEF_LOADED 1 #pragma nostandard #ifdef __cplusplus extern "C" { #define __unknown_params ... #else #define __unknown_params #endif #if !defined(__VAXC) && !defined(VAXC) #define __struct struct #define __union union #else #define __struct variant_struct #define __union variant_union #endif /*+ */ /* */ /* Access Control list Entry structure definitions */ /* */ /*- */ #define ACE$C_KEYID 1 /* Key identifier entry */ #define ACE$C_RMSJNL_BI 2 /* RMS BI journal */ #define ACE$C_RMSJNL_AI 3 /* RMS AI journal */ #define ACE$C_RMSJNL_AT 4 /* RMS AT journal */ #define ACE$C_AUDIT 5 /* Security audit journal entry */ #define ACE$C_ALARM 6 /* Security alarm entry */ #define ACE$C_INFO 7 /* General purpose information */ #define ACE$C_RMSJNL_RU_DEFAULT 8 /* RU journal default volume */ #define ACE$C_DIRDEF 9 /* Directory default protection */ #define ACE$C_RMSJNL_RU 10 /* RU journal (many per file) */ #define ACE$C_SUBSYSTEM_IDS 11 /* Protected subsystem ids */ #define ACE$C_OIL 12 /* Object Information Label */ #define ACE$C_NEW_OWNER 13 /* Protection for owner ACE */ #define ACE$C_MAX_CODE 14 /* Maximum ACE type code plus 1 */ /* ACE types registered to */ #define ACE$C_PATHWORKS 128 /* Pathworks common ACE */ #define ACE$C_LANMAN_SECURITY 129 /* LANMAN security */ #define ACE$C_LANMAN_ATTRIB 130 /* LANMAN extended attributes */ #define ACE$C_NETWARE 131 /* Netware trustee */ #define ACE$C_MAC_COMMENT 132 /* MacIntosh comment */ #define ACE$C_PATHWORKS_1 133 /* reserved to Pathworks */ #define ACE$C_PATHWORKS_2 134 /* reserved to Pathworks */ #define ACE$C_PATHWORKS_3 135 /* reserved to Pathworks */ #define ACE$C_RESERVED 255 /* Reserved ACE type */ #define ACE$C_APPLICATION 7 /* Alternate application ACE code */ #define ACE$C_CUST 1 /* Customer defined */ #define ACE$C_CSS 2 /* CSS defined */ #define ACE$C_VMS 3 /* VMS defined */ #define ACE$M_SUCCESS 0x1 #define ACE$M_FAILURE 0x2 #define ACE$M_DEFAULT 0x100 #define ACE$M_PROTECTED 0x200 #define ACE$M_HIDDEN 0x400 #define ACE$M_NOPROPAGATE 0x800 #define ACE$M_READ 0x1 #define ACE$M_WRITE 0x2 #define ACE$M_EXECUTE 0x4 #define ACE$M_DELETE 0x8 #define ACE$M_CONTROL 0x10 #define ACE$K_LENGTH 8 /* Length of the overhead area */ #define ACE$C_LENGTH 8 /* Length of the overhead area */ #define ACE$C_RMS_ATTRIBUTES 0 /* variant of ACE for file attributes */ #define ACE$K_RMS_ATTRIBUTES 0 /* variant of ACE for file attributes */ #define ACE$K_RMSATR_MINOR_V50 2 /* minor ID for VMS 5.0 */ #define ACE$K_RMSATR_MINOR_VDW 2 /* minor ID for DECwindows V1.0 */ #define ACE$C_RMSATR_MINOR_ID 2 /* current minor ID (obsolete symbol) */ #define ACE$K_RMSATR_MINOR_ID 2 #define ACE$C_RMSATR_MAJOR_ID 1 /* current major ID */ #define ACE$K_RMSATR_MAJOR_ID 1 #define ACE$M_STATISTICS 0x1 #define ACE$M_XLATE_DEC 0x2 #define ACE$S_RMSATR 20 /* size of RMS file attributes ACE (fixed fields) */ #define ACE$S_RMSATR_V50 20 /* size of RMS file attributes ACE (fixed fields) */ #define ACE$S_RMSATR_VDW 20 /* size of RMS file attributes ACE (fixed fields) */ /* Beyond the fixed fields, variable length information will by stored */ #define ACE$_RMSATR_ORGANIZATION 1 /* organizational extension object ID */ #define ACE$_RMSATR_SEMANTICS 2 /* file semantics object ID */ #define ACE$K_RMSATR_ORG_MAX_LEN 64 #define ACE$K_RMSATR_SEM_MAX_LEN 64 #define ACE$S_RMSJNL_RU_DEFAULT 17 /* length of RMSJNL RU default ACE */ #define ACE$M_JOURNAL_DISABLED 0x1 #define ACE$M_BACKUP_DONE 0x2 #define ACE$S_RMSJNL_RU 38 /* length of RMSJNL RU ACE */ #define ACE$S_RMSJNL 50 /* length of RMSJNL AI/BI/AT ACE */ #define ACE$S_OIL_S64I64 32 /* Length of Type 0 OIL ACE */ #define ACE$S_OIL_S128 32 /* Length of Type 1 OIL ACE */ #define ACE$S_OIL 32 /* Maximum OIL ACE Size */ struct acedef { unsigned char ace$b_size; /* Size of the entry */ unsigned char ace$b_type; /* Type of entry */ /* outside products. Not */ /* recognized by VMS software. */ /* Registered for Pathworks... */ __union { unsigned short int ace$w_flags; /* Type dependent & independent flags */ __struct { /* Flags for INFO type ACE */ unsigned ace$v_info_type : 4; /* INFO ACE subtype */ unsigned ace$v_fill_0 : 4; } ace$r_flags_info; __struct { /* Flags for KEYID type */ unsigned ace$v_reserved : 4; /* Count of reserved longwords */ unsigned ace$v_fill_1 : 4; } ace$r_flags_keyid; __struct { unsigned ace$v_success : 1; /* Audit or alarm upon success */ unsigned ace$v_failure : 1; /* Audit ot alarm upon failure */ unsigned ace$v_fill_2 : 6; } ace$r_flags_bits0; __struct { /* Type independent flags */ unsigned ace$v_fill_a : 8; unsigned ace$v_default : 1; /* Directory default entry */ unsigned ace$v_protected : 1; /* Protected ACE */ unsigned ace$v_hidden : 1; /* Hidden ACE */ unsigned ace$v_nopropagate : 1; /* No propagation between versions */ unsigned ace$v_fill_3 : 4; } ace$r_flags_bits; } ace$r_flags_overlay; __union { /* Start of ACE overlayed area */ __struct { /* KEY-ID and security audit types */ __union { unsigned int ace$l_access; /* Access rights bitmask */ __struct { unsigned ace$v_read : 1; /* Allowed to read */ unsigned ace$v_write : 1; /* Allowed to write */ unsigned ace$v_execute : 1; /* Allowed to execute */ unsigned ace$v_delete : 1; /* Allowed to delete */ unsigned ace$v_control : 1; /* All privileges of the owner */ unsigned ace$v_fill_6 : 3; } ace$r_fill_5; } ace$r_fill_4; __union { unsigned int ace$l_key; /* Start of the key fields */ char ace$t_auditname [16]; /* Start of the security journal name */ } ace$r_key_overlay; } ace$r_key_aud_type; __struct { __union { unsigned int ace$l_info_flags; /* INFO type application flags */ __struct { unsigned short int ace$w_application_flags; /* VMS application flags word */ unsigned short int ace$w_application_facility; /* VMS application facility code */ } ace$r_fill_8; } ace$r_fill_7; __union { char ace$t_info_start; /* Start of the information */ __struct { unsigned short int ace$w_rmsatr_variant; /* Which variant of the RMS attributes ACE */ unsigned char ace$b_rmsatr_fixlen; /* length of fixed format fields */ /* (introduced at minor ID 3. Older */ /* ACE's are assumed to be all fixed form) */ char ace$b_rmsatr_spare1; /* currectly unused */ unsigned short int ace$w_rmsatr_minor_id; /* RMS file attributes ACE minor ID */ unsigned short int ace$w_rmsatr_major_id; /* RMS file attributes ACE major ID */ __union { unsigned int ace$l_rms_attribute_flags; /* RMS file attributes flags definitions */ __struct { unsigned ace$v_statistics : 1; /* Statistics monitoring enabled on this file */ unsigned ace$v_xlate_dec : 1; /* File semantics are DEC-local */ unsigned ace$v_fill_11 : 6; } ace$r_fill_10; } ace$r_fill_9; /* using a {field-type, length, value} scheme. This allows extensibility */ /* and compact representation. */ /* */ /* field types are: */ } ace$r_rmsatr_type; } ace$r_info_data; } ace$r_info_type; __struct { /* Used for all 5 RMSJNL_xxx ACEs */ char ace$t_volnam [12]; /* Volume name of journal file */ unsigned char ace$b_volnam_len; /* Length of volume name of journal file */ unsigned char ace$b_rjrver; /* RMS journal file structure level */ __union { /* File-id of journal file */ unsigned short int ace$w_fid [3]; /* file id */ __struct { unsigned short int ace$w_fid_num; /* file number */ unsigned short int ace$w_fid_seq; /* sequence number */ __union { unsigned short int ace$w_fid_rvn; /* relative volume number */ __struct { unsigned char ace$b_fid_rvn; /* alternate format RVN */ unsigned char ace$b_fid_nmx; /* alternate format file number extension */ } ace$r_fid_rvn_fields; } ace$r_fid_rvn_overlay; } ace$r_fid_fields; } ace$r_fid_overlay; __union { unsigned short int ace$w_rmsjnl_flags; __struct { unsigned ace$v_journal_disabled : 1; /* journaling disabled */ /* (AI, BI, AT only; set by BACKUP) */ unsigned ace$v_backup_done : 1; /* BACKUP done on this file; */ /* RMS needs to write a backup marker */ /* (AI, BI, AT only; set by BACKUP) */ unsigned ace$v_fill_12 : 6; } ace$r_rmsjnl_flags_bits; } ace$r_rmsjnl_flags_overlay; unsigned int ace$l_jnlidx; /* journal stream index number */ unsigned int ace$q_cdate [2]; /* creation date/time of journal */ unsigned int ace$l_backup_seqno; /* BACKUP sequence number (to */ /* find where to start in journal). */ unsigned int ace$q_modification_time [2]; /* timestamp of last backup or last */ /* journal entry recovered. */ } ace$r_rmsjnl_type; __struct { unsigned int ace$l_spare1; /* For alignment */ unsigned int ace$l_sys_prot; /* Default system protection */ unsigned int ace$l_own_prot; /* Default owner protection */ unsigned int ace$l_grp_prot; /* Default group protection */ unsigned int ace$l_wor_prot; /* Default world protection */ } ace$r_dirdef_type; __struct { /* Protected subsystem ACE type */ unsigned int ace$l_spare2; /* For alignment */ unsigned int ace$q_image_ids [2]; /* Start of the image ids (a */ /* quadword for each identifier) */ } ace$r_image_id_type; __struct { /* Object Information Label */ unsigned int ace$l_oil_flags; /* For Alignment */ unsigned int ace$l_brand_name; /* OIL Type-Specific Info */ char ace$r_class_prot; /* OIL Class Block */ } ace$r_oil_type; } ace$r_ace_fields; } ; #if !defined(__VAXC) && !defined(VAXC) #define ace$w_flags ace$r_flags_overlay.ace$w_flags #define ace$v_info_type ace$r_flags_overlay.ace$r_flags_info.ace$v_info_type #define ace$v_reserved ace$r_flags_overlay.ace$r_flags_keyid.ace$v_reserved #define ace$v_success ace$r_flags_overlay.ace$r_flags_bits0.ace$v_success #define ace$v_failure ace$r_flags_overlay.ace$r_flags_bits0.ace$v_failure #define ace$v_default ace$r_flags_overlay.ace$r_flags_bits.ace$v_default #define ace$v_protected ace$r_flags_overlay.ace$r_flags_bits.ace$v_protected #define ace$v_hidden ace$r_flags_overlay.ace$r_flags_bits.ace$v_hidden #define ace$v_nopropagate ace$r_flags_overlay.ace$r_flags_bits.ace$v_nopropagate #define ace$l_access ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_4.ace$l_access #define ace$v_read ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_4.ace$r_fill_5.ace$v_read #define ace$v_write ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_4.ace$r_fill_5.ace$v_write #define ace$v_execute ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_4.ace$r_fill_5.ace$v_execute #define ace$v_delete ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_4.ace$r_fill_5.ace$v_delete #define ace$v_control ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_4.ace$r_fill_5.ace$v_control #define ace$l_key ace$r_ace_fields.ace$r_key_aud_type.ace$r_key_overlay.ace$l_key #define ace$t_auditname ace$r_ace_fields.ace$r_key_aud_type.ace$r_key_overlay.ace$t_auditname #define ace$l_info_flags ace$r_ace_fields.ace$r_info_type.ace$r_fill_7.ace$l_info_flags #define ace$w_application_flags ace$r_ace_fields.ace$r_info_type.ace$r_fill_7.ace$r_fill_8.ace$w_application_flags #define ace$w_application_facility ace$r_ace_fields.ace$r_info_type.ace$r_fill_7.ace$r_fill_8.ace$w_application_facility #define ace$t_info_start ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$t_info_start #define ace$w_rmsatr_variant ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$w_rmsatr_variant #define ace$b_rmsatr_fixlen ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$b_rmsatr_fixlen #define ace$w_rmsatr_minor_id ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$w_rmsatr_minor_id #define ace$w_rmsatr_major_id ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$w_rmsatr_major_id #define ace$l_rms_attribute_flags ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$r_fill_9.ace$l_rms_attribu\ te_flags #define ace$v_statistics ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$r_fill_9.ace$r_fill_10.ace$v_statis\ tics #define ace$v_xlate_dec ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$r_fill_9.ace$r_fill_10.ace$v_xlate_d\ ec #define ace$t_volnam ace$r_ace_fields.ace$r_rmsjnl_type.ace$t_volnam #define ace$b_volnam_len ace$r_ace_fields.ace$r_rmsjnl_type.ace$b_volnam_len #define ace$b_rjrver ace$r_ace_fields.ace$r_rmsjnl_type.ace$b_rjrver #define ace$w_fid ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_fid_overlay.ace$w_fid #define ace$w_fid_num ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_fid_overlay.ace$r_fid_fields.ace$w_fid_num #define ace$w_fid_seq ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_fid_overlay.ace$r_fid_fields.ace$w_fid_seq #define ace$w_fid_rvn ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_fid_overlay.ace$r_fid_fields.ace$r_fid_rvn_overlay.ace$w_fid_rvn #define ace$b_fid_rvn ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_fid_overlay.ace$r_fid_fields.ace$r_fid_rvn_overlay.ace$r_fid_rvn_fie\ lds.ace$b_fid_rvn #define ace$b_fid_nmx ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_fid_overlay.ace$r_fid_fields.ace$r_fid_rvn_overlay.ace$r_fid_rvn_fie\ lds.ace$b_fid_nmx #define ace$w_rmsjnl_flags ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_rmsjnl_flags_overlay.ace$w_rmsjnl_flags #define ace$v_journal_disabled ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_rmsjnl_flags_overlay.ace$r_rmsjnl_flags_bits.ace$v_journal_\ disabled #define ace$v_backup_done ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_rmsjnl_flags_overlay.ace$r_rmsjnl_flags_bits.ace$v_backup_done #define ace$l_jnlidx ace$r_ace_fields.ace$r_rmsjnl_type.ace$l_jnlidx #define ace$q_cdate ace$r_ace_fields.ace$r_rmsjnl_type.ace$q_cdate #define ace$l_backup_seqno ace$r_ace_fields.ace$r_rmsjnl_type.ace$l_backup_seqno #define ace$q_modification_time ace$r_ace_fields.ace$r_rmsjnl_type.ace$q_modification_time #define ace$l_spare1 ace$r_ace_fields.ace$r_dirdef_type.ace$l_spare1 #define ace$l_sys_prot ace$r_ace_fields.ace$r_dirdef_type.ace$l_sys_prot #define ace$l_own_prot ace$r_ace_fields.ace$r_dirdef_type.ace$l_own_prot #define ace$l_grp_prot ace$r_ace_fields.ace$r_dirdef_type.ace$l_grp_prot #define ace$l_wor_prot ace$r_ace_fields.ace$r_dirdef_type.ace$l_wor_prot #define ace$l_spare2 ace$r_ace_fields.ace$r_image_id_type.ace$l_spare2 #define ace$q_image_ids ace$r_ace_fields.ace$r_image_id_type.ace$q_image_ids #define ace$l_oil_flags ace$r_ace_fields.ace$r_oil_type.ace$l_oil_flags #define ace$l_brand_name ace$r_ace_fields.ace$r_oil_type.ace$l_brand_name #define ace$r_class_prot ace$r_ace_fields.ace$r_oil_type.ace$r_class_prot #endif /* #if !defined(__VAXC) && !defined(VAXC) */ #ifdef __cplusplus } #endif #pragma standard #endif /* __ACEDEF_LOADED */