/********************************************************************************************************************************/ /* Created: 19-JUN-1992 18:08:29 by OpenVMS SDL EV1-11 */ /* Source: 19-JUN-1992 18:04:56 CRTL$:[ROUTLEY.CRTL.SDLFIX.BLADEFIX]RMSUSR.SDI; */ /* Modified: 24-Aug-1992 for C++ compatibility. */ /********************************************************************************************************************************/ /*** MODULE $XABPRODEF ***/ #ifndef __XABPRODEF_LOADED #define __XABPRODEF_LOADED 1 #if defined(__DECC) || defined(__DECCXX) #pragma __nostandard /* This file uses non-ANSI-Standard features */ #else #pragma nostandard #endif #if defined(__DECC) || defined(__DECCXX) #pragma __member_alignment __save #pragma __nomember_alignment #endif #ifdef __DECC #pragma __message __save #pragma __message __disable (__MISALGNDSTRCT) #pragma __message __disable (__MISALGNDMEM) #endif #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 /*** MODULE $xabprodef ***/ /*-- */ /*++ */ /* */ /* protection xab field definitions */ /* $xabprodef */ /* */ /* */ #define XAB$C_PRO 19 /* xabpro id code */ #define XAB$M_NOREAD 0x1 #define XAB$M_NOWRITE 0x2 #define XAB$M_NOEXE 0x4 #define XAB$M_NODEL 0x8 union xabprodef { __struct { unsigned xab$v_noread : 1; /* deny read access */ unsigned xab$v_nowrite : 1; /* deny write access */ unsigned xab$v_noexe : 1; /* deny execution access */ unsigned xab$v_nodel : 1; /* deny delete access */ unsigned xab$v_fill_10 : 4; } xab$r_xabprodef_bits; } ; #if !defined(__VAXC) && !defined(VAXC) #define xab$v_noread xab$r_xabprodef_bits.xab$v_noread #define xab$v_nowrite xab$r_xabprodef_bits.xab$v_nowrite #define xab$v_noexe xab$r_xabprodef_bits.xab$v_noexe #define xab$v_nodel xab$r_xabprodef_bits.xab$v_nodel #endif #define XAB$M_PROPAGATE 0x1 #define XAB$K_PROLEN_V3 16 /* V3a xabpro length */ #define XAB$C_PROLEN_V3 16 /* V3a xabpro length */ #define XAB$K_PROLEN 88 /* xabpro length */ #define XAB$C_PROLEN 88 /* xabpro length */ struct XABPRO { unsigned char xab$b_cod; unsigned char xab$b_bln; unsigned : 16; /* spare */ void *xab$l_nxt; /* Next XAB in chain */ __union { unsigned short int xab$w_pro; /* protection mask */ __struct { unsigned xab$v_sys : 4; /* system */ unsigned xab$v_own : 4; /* owner */ unsigned xab$v_grp : 4; /* group */ unsigned xab$v_wld : 4; /* world */ } xab$r_pro_bits; } xab$r_pro_overlay; unsigned char xab$b_mtacc; /* Magtape access control char. */ __union { unsigned char xab$b_prot_opt; /* XABPRO options field */ __struct { unsigned xab$v_propagate : 1; /* Propagate security attributes on $ENTER and $RENAME */ unsigned xab$v_fill_11 : 7; } xab$r_prot_opt_fields; } xab$r_prot_opt_overlay; __union { unsigned int xab$l_uic; /* uic code */ __struct { unsigned short int xab$w_mbm; /* member code */ unsigned short int xab$w_grp; /* group code */ } xab$r_uic_fields; } xab$r_uic_overlay; __union { /* RWED/mode protection for file */ int xab$q_prot_mode [2]; /* eventually may be a quadword */ __struct { unsigned char xab$b_prot_mode; /* but currently only a byte */ } xab$r_prot_mode_fields; } xab$r_prot_mode_overlay; void * xab$l_aclbuf; /* address of user's ACL buffer */ unsigned short int xab$w_aclsiz; /* size of user's ACL buffer */ unsigned short int xab$w_acllen; /* return length of entire ACL */ unsigned int xab$l_aclctx; /* ACL context field */ unsigned int xab$l_aclsts; /* ACL return err status */ int xabprodef$$_fill_10; /* spare */ int xabprodef$$_fill_11; /* spare */ int xabprodef$$_fill_12; /* spare */ int xabprodef$$_fill_13; /* spare */ int xabprodef$$_fill_14; /* spare */ int xabprodef$$_fill_15; /* spare */ int xabprodef$$_fill_16; /* spare */ int xabprodef$$_fill_17; /* spare */ int xabprodef$$_fill_18; /* spare */ int xabprodef$$_fill_19; /* spare */ int xabprodef$$_fill_20; /* spare */ int xabprodef$$_fill_21; /* spare */ } ; #if !defined(__VAXC) && !defined(VAXC) #define xab$w_pro xab$r_pro_overlay.xab$w_pro #define xab$v_sys xab$r_pro_overlay.xab$r_pro_bits.xab$v_sys #define xab$v_own xab$r_pro_overlay.xab$r_pro_bits.xab$v_own #define xab$v_grp xab$r_pro_overlay.xab$r_pro_bits.xab$v_grp #define xab$v_wld xab$r_pro_overlay.xab$r_pro_bits.xab$v_wld #define xab$b_prot_opt xab$r_prot_opt_overlay.xab$b_prot_opt #define xab$v_propagate xab$r_prot_opt_overlay.xab$r_prot_opt_fields.xab$v_propagate #define xab$l_uic xab$r_uic_overlay.xab$l_uic #define xab$w_mbm xab$r_uic_overlay.xab$r_uic_fields.xab$w_mbm #define xab$w_grp xab$r_uic_overlay.xab$r_uic_fields.xab$w_grp #define xab$q_prot_mode xab$r_prot_mode_overlay.xab$q_prot_mode #define xab$b_prot_mode xab$r_prot_mode_overlay.xab$r_prot_mode_fields.xab$b_prot_mode #endif /* These are tradtional macros that should be hand-maintained for compatibility */ #define XAB$V_SYS 0 /* system */ #define XAB$S_SYS 4 #define XAB$V_OWN 4 /* owner */ #define XAB$S_OWN 4 #define XAB$V_GRP 8 /* group */ #define XAB$S_GRP 4 #define XAB$V_WLD 12 /* world */ #define XAB$S_WLD 4 #define XAB$V_NOREAD 0 /* deny read access */ #define XAB$V_NOWRITE 1 /* deny write access */ #define XAB$V_NOEXE 2 /* deny execution access */ #define XAB$V_NODEL 3 /* deny delete access */ #define XAB$V_PROPOGATE 0 /* propogate security attributes on $ENTER and $RENAME */ #define XAB$M_PROPOGATE (1 << XAB$V_PROPOGATE) #define cc$rms_xabpro (*decc$ga_rms_xabpro) #if defined(__DECC) || defined(__DECCXX) # pragma __extern_model __save # pragma __extern_model __strict_refdef extern struct XABPRO cc$rms_xabpro; /* Declare initialized prototype data structures */ # pragma __extern_model __restore #else globalref struct XABPRO cc$rms_xabpro; /* Declare initialized prototype data structures */ #endif #if defined(__DECC) #pragma __message __restore #endif #if defined(__DECC) || defined(__DECCXX) #pragma __member_alignment __restore #endif #ifdef __cplusplus } #endif #if defined(__DECC) || defined(__DECCXX) #pragma __standard /* This file uses non-ANSI-Standard features */ #else #pragma standard #endif #endif /* __XABPRODEF_LOADED */