/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:05 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFAE.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $ACEDEF ***/ #ifndef __ACEDEF_LOADED #define __ACEDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #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_POSIX_OWNER 14 /* Posix UID/GID (persona) from image */ #define ACE$C_MAX_CODE 15 /* Maximum ACE type code plus 1 */ #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 */ #define ACE$M_USERNAME_VALID 0x1 #define ACE$M_UIC_VALID 0x2 #define ACE$M_UID_VALID 0x4 #define ACE$M_GID_VALID 0x8 #define ACE$M_GROUP_MODE_VALID 0x10 #define ACE$M_OTHER 0x7 #define ACE$M_GROUP 0x38 #define ACE$M_USER 0x1C0 #define ACE$M_S_IXOTH 0x1 #define ACE$M_S_IWOTH 0x2 #define ACE$M_S_IROTH 0x4 #define ACE$M_S_IXGRP 0x8 #define ACE$M_S_IWGRP 0x10 #define ACE$M_S_IRGRP 0x20 #define ACE$M_S_IXUSR 0x40 #define ACE$M_S_IWUSR 0x80 #define ACE$M_S_IRUSR 0x100 #define ACE$M_S_ISGID 0x400 #define ACE$M_S_ISUID 0x800 #define ACE$S_POSIX_OWNER_LENGTH 60 /* Length of POSIX_OWNER ACE */ #ifdef __NEW_STARLET typedef struct _acedef { unsigned char ace$b_size; /* Size of the entry */ unsigned char ace$b_type; /* Type of entry */ __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_10_ : 4; } ace$r_flags_info; __struct { /* Flags for KEYID type */ unsigned ace$v_reserved : 4; /* Count of reserved longwords */ unsigned ace$v_fill_11_ : 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_12_ : 6; } ace$r_flags_bits0; __struct { /* Type independent flags */ unsigned ace$v_filler_1 : 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_13_ : 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_14_ : 3; } ace$r_fill_1_; } ace$r_fill_0_; __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_3_; } ace$r_fill_2_; __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_15_ : 6; } ace$r_fill_5_; } ace$r_fill_4_; /* 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_16_ : 6; } ace$r_rmsjnl_flags_bits; } ace$r_rmsjnl_flags_overlay; unsigned int ace$l_jnlidx; /* journal stream index number */ unsigned __int64 ace$q_cdate; /* creation date/time of journal */ unsigned int ace$l_backup_seqno; /* BACKUP sequence number (to */ /* find where to start in journal). */ unsigned __int64 ace$q_modification_time; /* 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 __int64 ace$q_image_ids; /* 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; /* - POSIX_OWNER ACE, Persona from Image - */ /* Process effective persona derived from image activation. */ /* Support for POSIX/COE effective UID/GID identities granted */ /* to a process if the image has this ACE and it is valid. */ /* The UID and GID are extensions to the Persona Security Block */ /* (PSBDEF). */ /* */ /* Currently, only the SUID, SGID, GID and POSIX_MODE (GROUP) */ /* fields are supported. VMS_GRP_PROT is also used internally. */ /* */ __struct { /* POSIX_OWNER ACE Type */ __union { unsigned int ace$l_posix_flags; /* POSIX_OWNER Flags */ __struct { unsigned ace$v_username_valid : 1; /* Validates Posix username */ unsigned ace$v_uic_valid : 1; /* Validates Posix UIC */ unsigned ace$v_uid_valid : 1; /* Validates Posix User ID */ unsigned ace$v_gid_valid : 1; /* Validates Posix Group ID */ unsigned ace$v_group_mode_valid : 1; /* Validates Posix mode for Group file protection */ unsigned ace$v_fill_17_ : 3; } ace$r_fill_7_; } ace$r_fill_6_; char ace$t_posix_username [32]; /* Posix Username */ __union { unsigned int ace$l_posix_uic; /* Posix UIC */ __struct { unsigned short int ace$w_posix_mem; /* Member number in UIC */ unsigned short int ace$w_posix_grp; /* Group number in UIC */ } ace$r_fill_9_; } ace$r_fill_8_; unsigned int ace$l_posix_uid; /* Posix User ID */ unsigned int ace$l_posix_gid; /* Posix Group ID */ __union { unsigned int ace$l_posix_mode; /* Posix file protection (mode) */ __struct { unsigned ace$v_other : 3; /* Other Permissions */ unsigned ace$v_group : 3; /* Group Permissions */ unsigned ace$v_user : 3; /* User Permissions */ unsigned ace$v_fill_18_ : 7; } ace$r_posix_mode_fields; __struct { /* - Other Permissions - */ unsigned ace$v_s_ixoth : 1; /* Posix mode - other execute */ unsigned ace$v_s_iwoth : 1; /* Posix mode - other write */ unsigned ace$v_s_iroth : 1; /* Posix mode - other read */ /* - Group Permissions - */ unsigned ace$v_s_ixgrp : 1; /* Posix mode - group execute */ unsigned ace$v_s_iwgrp : 1; /* Posix mode - group write */ unsigned ace$v_s_irgrp : 1; /* Posix mode - group read */ /* - User Permissions - */ unsigned ace$v_s_ixusr : 1; /* Posix mode - user execute */ unsigned ace$v_s_iwusr : 1; /* Posix mode - user write */ unsigned ace$v_s_irusr : 1; /* Posix mode - user read */ unsigned ace$v_s_spare : 1; /* Blank bit field */ /* - SxID Bits - */ unsigned ace$v_s_isgid : 1; /* Posix set group ID on execution */ unsigned ace$v_s_isuid : 1; /* Posix set user ID on execution */ unsigned ace$v_fill_19_ : 4; } ace$r_posix_mode_bits; } ace$r_posix_mode_overlay; unsigned int ace$l_vms_grp_prot; /* Posix to VMS Group Prot. */ } ace$r_posix_owner_type; /* End - POSIX_OWNER ACE */ } ace$r_ace_fields; } ACEDEF; #if !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_0_.ace$l_access #define ace$v_read ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.ace$v_read #define ace$v_write ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.ace$v_write #define ace$v_execute ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.ace$v_execute #define ace$v_delete ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.ace$v_delete #define ace$v_control ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.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_2_.ace$l_info_flags #define ace$w_application_flags ace$r_ace_fields.ace$r_info_type.ace$r_fill_2_.ace$r_fill_3_.ace$w_application_flags #define ace$w_application_facility ace$r_ace_fields.ace$r_info_type.ace$r_fill_2_.ace$r_fill_3_.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_4_.ace$l_rms_attrib\ ute_flags #define ace$v_statistics ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$r_fill_4_.ace$r_fill_5_.ace$v_stati\ stics #define ace$v_xlate_dec ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$r_fill_4_.ace$r_fill_5_.ace$v_xlate_\ dec #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$r_fid_overlay ace$r_ace_fields.ace$r_rmsjnl_type.ace$r_fid_overlay #define ace$w_fid ace$r_fid_overlay.ace$w_fid #define ace$r_fid_fields ace$r_fid_overlay.ace$r_fid_fields #define ace$w_fid_num ace$r_fid_fields.ace$w_fid_num #define ace$w_fid_seq ace$r_fid_fields.ace$w_fid_seq #define ace$r_fid_rvn_overlay ace$r_fid_fields.ace$r_fid_rvn_overlay #define ace$w_fid_rvn ace$r_fid_rvn_overlay.ace$w_fid_rvn #define ace$r_fid_rvn_fields ace$r_fid_rvn_overlay.ace$r_fid_rvn_fields #define ace$b_fid_rvn ace$r_fid_rvn_fields.ace$b_fid_rvn #define ace$b_fid_nmx ace$r_fid_rvn_fields.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 #define ace$l_posix_flags ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$l_posix_flags #define ace$v_username_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_username_valid #define ace$v_uic_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_uic_valid #define ace$v_uid_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_uid_valid #define ace$v_gid_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_gid_valid #define ace$v_group_mode_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_group_mode_valid #define ace$t_posix_username ace$r_ace_fields.ace$r_posix_owner_type.ace$t_posix_username #define ace$l_posix_uic ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_8_.ace$l_posix_uic #define ace$w_posix_mem ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_8_.ace$r_fill_9_.ace$w_posix_mem #define ace$w_posix_grp ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_8_.ace$r_fill_9_.ace$w_posix_grp #define ace$l_posix_uid ace$r_ace_fields.ace$r_posix_owner_type.ace$l_posix_uid #define ace$l_posix_gid ace$r_ace_fields.ace$r_posix_owner_type.ace$l_posix_gid #define ace$l_posix_mode ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$l_posix_mode #define ace$v_other ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_fields.ace$v_other #define ace$v_group ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_fields.ace$v_group #define ace$v_user ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_fields.ace$v_user #define ace$v_s_ixoth ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_ixoth #define ace$v_s_iwoth ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_iwoth #define ace$v_s_iroth ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_iroth #define ace$v_s_ixgrp ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_ixgrp #define ace$v_s_iwgrp ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_iwgrp #define ace$v_s_irgrp ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_irgrp #define ace$v_s_ixusr ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_ixusr #define ace$v_s_iwusr ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_iwusr #define ace$v_s_irusr ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_irusr #define ace$v_s_spare ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_spare #define ace$v_s_isgid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_isgid #define ace$v_s_isuid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_isuid #define ace$l_vms_grp_prot ace$r_ace_fields.ace$r_posix_owner_type.ace$l_vms_grp_prot #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct acedef { unsigned char ace$b_size; /* Size of the entry */ unsigned char ace$b_type; /* Type of entry */ __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_10_ : 4; } ace$r_flags_info; __struct { /* Flags for KEYID type */ unsigned ace$v_reserved : 4; /* Count of reserved longwords */ unsigned ace$v_fill_11_ : 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_12_ : 6; } ace$r_flags_bits0; __struct { /* Type independent flags */ unsigned ace$v_filler_1 : 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_13_ : 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_14_ : 3; } ace$r_fill_1_; } ace$r_fill_0_; __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_3_; } ace$r_fill_2_; __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_15_ : 6; } ace$r_fill_5_; } ace$r_fill_4_; /* 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_16_ : 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; /* - POSIX_OWNER ACE, Persona from Image - */ /* Process effective persona derived from image activation. */ /* Support for POSIX/COE effective UID/GID identities granted */ /* to a process if the image has this ACE and it is valid. */ /* The UID and GID are extensions to the Persona Security Block */ /* (PSBDEF). */ /* */ /* Currently, only the SUID, SGID, GID and POSIX_MODE (GROUP) */ /* fields are supported. VMS_GRP_PROT is also used internally. */ /* */ __struct { /* POSIX_OWNER ACE Type */ __union { unsigned int ace$l_posix_flags; /* POSIX_OWNER Flags */ __struct { unsigned ace$v_username_valid : 1; /* Validates Posix username */ unsigned ace$v_uic_valid : 1; /* Validates Posix UIC */ unsigned ace$v_uid_valid : 1; /* Validates Posix User ID */ unsigned ace$v_gid_valid : 1; /* Validates Posix Group ID */ unsigned ace$v_group_mode_valid : 1; /* Validates Posix mode for Group file protection */ unsigned ace$v_fill_17_ : 3; } ace$r_fill_7_; } ace$r_fill_6_; char ace$t_posix_username [32]; /* Posix Username */ __union { unsigned int ace$l_posix_uic; /* Posix UIC */ __struct { unsigned short int ace$w_posix_mem; /* Member number in UIC */ unsigned short int ace$w_posix_grp; /* Group number in UIC */ } ace$r_fill_9_; } ace$r_fill_8_; unsigned int ace$l_posix_uid; /* Posix User ID */ unsigned int ace$l_posix_gid; /* Posix Group ID */ __union { unsigned int ace$l_posix_mode; /* Posix file protection (mode) */ __struct { unsigned ace$v_other : 3; /* Other Permissions */ unsigned ace$v_group : 3; /* Group Permissions */ unsigned ace$v_user : 3; /* User Permissions */ unsigned ace$v_fill_18_ : 7; } ace$r_posix_mode_fields; __struct { /* - Other Permissions - */ unsigned ace$v_s_ixoth : 1; /* Posix mode - other execute */ unsigned ace$v_s_iwoth : 1; /* Posix mode - other write */ unsigned ace$v_s_iroth : 1; /* Posix mode - other read */ /* - Group Permissions - */ unsigned ace$v_s_ixgrp : 1; /* Posix mode - group execute */ unsigned ace$v_s_iwgrp : 1; /* Posix mode - group write */ unsigned ace$v_s_irgrp : 1; /* Posix mode - group read */ /* - User Permissions - */ unsigned ace$v_s_ixusr : 1; /* Posix mode - user execute */ unsigned ace$v_s_iwusr : 1; /* Posix mode - user write */ unsigned ace$v_s_irusr : 1; /* Posix mode - user read */ unsigned ace$v_s_spare : 1; /* Blank bit field */ /* - SxID Bits - */ unsigned ace$v_s_isgid : 1; /* Posix set group ID on execution */ unsigned ace$v_s_isuid : 1; /* Posix set user ID on execution */ unsigned ace$v_fill_19_ : 4; } ace$r_posix_mode_bits; } ace$r_posix_mode_overlay; unsigned int ace$l_vms_grp_prot; /* Posix to VMS Group Prot. */ } ace$r_posix_owner_type; /* End - POSIX_OWNER ACE */ } ace$r_ace_fields; } ; #if !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_0_.ace$l_access #define ace$v_read ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.ace$v_read #define ace$v_write ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.ace$v_write #define ace$v_execute ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.ace$v_execute #define ace$v_delete ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.ace$v_delete #define ace$v_control ace$r_ace_fields.ace$r_key_aud_type.ace$r_fill_0_.ace$r_fill_1_.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_2_.ace$l_info_flags #define ace$w_application_flags ace$r_ace_fields.ace$r_info_type.ace$r_fill_2_.ace$r_fill_3_.ace$w_application_flags #define ace$w_application_facility ace$r_ace_fields.ace$r_info_type.ace$r_fill_2_.ace$r_fill_3_.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_4_.ace$l_rms_attrib\ ute_flags #define ace$v_statistics ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$r_fill_4_.ace$r_fill_5_.ace$v_stati\ stics #define ace$v_xlate_dec ace$r_ace_fields.ace$r_info_type.ace$r_info_data.ace$r_rmsatr_type.ace$r_fill_4_.ace$r_fill_5_.ace$v_xlate_\ dec #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 #define ace$l_posix_flags ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$l_posix_flags #define ace$v_username_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_username_valid #define ace$v_uic_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_uic_valid #define ace$v_uid_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_uid_valid #define ace$v_gid_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_gid_valid #define ace$v_group_mode_valid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_6_.ace$r_fill_7_.ace$v_group_mode_valid #define ace$t_posix_username ace$r_ace_fields.ace$r_posix_owner_type.ace$t_posix_username #define ace$l_posix_uic ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_8_.ace$l_posix_uic #define ace$w_posix_mem ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_8_.ace$r_fill_9_.ace$w_posix_mem #define ace$w_posix_grp ace$r_ace_fields.ace$r_posix_owner_type.ace$r_fill_8_.ace$r_fill_9_.ace$w_posix_grp #define ace$l_posix_uid ace$r_ace_fields.ace$r_posix_owner_type.ace$l_posix_uid #define ace$l_posix_gid ace$r_ace_fields.ace$r_posix_owner_type.ace$l_posix_gid #define ace$l_posix_mode ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$l_posix_mode #define ace$v_other ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_fields.ace$v_other #define ace$v_group ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_fields.ace$v_group #define ace$v_user ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_fields.ace$v_user #define ace$v_s_ixoth ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_ixoth #define ace$v_s_iwoth ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_iwoth #define ace$v_s_iroth ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_iroth #define ace$v_s_ixgrp ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_ixgrp #define ace$v_s_iwgrp ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_iwgrp #define ace$v_s_irgrp ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_irgrp #define ace$v_s_ixusr ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_ixusr #define ace$v_s_iwusr ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_iwusr #define ace$v_s_irusr ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_irusr #define ace$v_s_spare ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_spare #define ace$v_s_isgid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_isgid #define ace$v_s_isuid ace$r_ace_fields.ace$r_posix_owner_type.ace$r_posix_mode_overlay.ace$r_posix_mode_bits.ace$v_s_isuid #define ace$l_vms_grp_prot ace$r_ace_fields.ace$r_posix_owner_type.ace$l_vms_grp_prot #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __ACEDEF_LOADED */