/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:44 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:21 $1$DGA7274:[STARLET_H.SRC]RMSUSR.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $XABPRODEF ***/ #ifndef __XABPRODEF_LOADED #define __XABPRODEF_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 /* */ /* 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 #ifdef __NEW_STARLET typedef 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_12_ : 4; } xab$r_xabprodef_bits; } XABPRODEF; #if !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 /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ 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_12_ : 4; } xab$r_xabprodef_bits; } ; #if !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 /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define XAB$M_PROPAGATE 0x1 #define XAB$K_PROLEN_V3 16 /* V3a xabpro length */ #define XAB$C_PROLEN_V3 16 /* V3a xabpro length */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _xabprodef1 { #pragma __nomember_alignment unsigned char xab$b_cod; /* xab id code */ unsigned char xab$b_bln; /* block length */ short int xabprodef$$_fill_1; /* (spare) */ void *xab$l_nxt; /* xab chain link */ __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_13_ : 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 */ __int64 xab$q_prot_mode; __struct { unsigned char xab$b_prot_mode; /* but currently only a byte */ } xab$r_prot_mode_fields; } xab$r_prot_mode_overlay; char *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 */ unsigned int xabprodef$$_fill_10; /* spare */ unsigned int xabprodef$$_fill_11; /* spare */ unsigned int xabprodef$$_fill_12; /* spare */ unsigned int xabprodef$$_fill_13; /* spare */ unsigned int xabprodef$$_fill_14; /* spare */ unsigned int xabprodef$$_fill_15; /* spare */ unsigned int xabprodef$$_fill_16; /* spare */ unsigned int xabprodef$$_fill_17; /* spare */ unsigned int xabprodef$$_fill_18; /* spare */ unsigned int xabprodef$$_fill_19; /* spare */ unsigned int xabprodef$$_fill_20; /* spare */ unsigned int xabprodef$$_fill_21; /* spare */ } XABPRODEF1; #if !defined(__VAXC) #define xab$w_pro xab$r_pro_overlay.xab$w_pro #define xab$r_pro_bits xab$r_pro_overlay.xab$r_pro_bits #define xab$v_sys xab$r_pro_bits.xab$v_sys #define xab$v_own xab$r_pro_bits.xab$v_own #define xab$v_grp xab$r_pro_bits.xab$v_grp #define xab$v_wld xab$r_pro_bits.xab$v_wld #define xab$b_prot_opt xab$r_prot_opt_overlay.xab$b_prot_opt #define xab$r_prot_opt_fields xab$r_prot_opt_overlay.xab$r_prot_opt_fields #define xab$v_propagate xab$r_prot_opt_fields.xab$v_propagate #define xab$l_uic xab$r_uic_overlay.xab$l_uic #define xab$r_uic_fields xab$r_uic_overlay.xab$r_uic_fields #define xab$w_mbm xab$r_uic_fields.xab$w_mbm #define xab$w_grp xab$r_uic_fields.xab$w_grp #define xab$q_prot_mode xab$r_prot_mode_overlay.xab$q_prot_mode #define xab$r_prot_mode_fields xab$r_prot_mode_overlay.xab$r_prot_mode_fields #define xab$b_prot_mode xab$r_prot_mode_fields.xab$b_prot_mode #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif struct xabprodef1 { #pragma __nomember_alignment unsigned char xab$b_cod; /* xab id code */ unsigned char xab$b_bln; /* block length */ short int xabprodef$$_fill_1; /* (spare) */ void *xab$l_nxt; /* xab chain link */ __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_13_ : 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 */ __int64 xab$q_prot_mode; __struct { unsigned char xab$b_prot_mode; /* but currently only a byte */ } xab$r_prot_mode_fields; } xab$r_prot_mode_overlay; char *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 */ unsigned int xabprodef$$_fill_10; /* spare */ unsigned int xabprodef$$_fill_11; /* spare */ unsigned int xabprodef$$_fill_12; /* spare */ unsigned int xabprodef$$_fill_13; /* spare */ unsigned int xabprodef$$_fill_14; /* spare */ unsigned int xabprodef$$_fill_15; /* spare */ unsigned int xabprodef$$_fill_16; /* spare */ unsigned int xabprodef$$_fill_17; /* spare */ unsigned int xabprodef$$_fill_18; /* spare */ unsigned int xabprodef$$_fill_19; /* spare */ unsigned int xabprodef$$_fill_20; /* spare */ unsigned int xabprodef$$_fill_21; /* spare */ } ; #if !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 /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* basealign on aggregate XABPRODEF1 operates after aggregate end */ #define XAB$K_PROLEN 88 /* xabpro length */ #define XAB$C_PROLEN 88 /* xabpro length */ /* These are traditional macros that should be hand-maintained for compatibility */ /* Do not have to add new ones, but do have to maintain those that are here already. */ #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_PROPAGATE 0 /* propagate security attributes on $ENTER and $RENAME */ #define XAB$V_PROPOGATE 0 /* continue mis-spelled name for compatibility */ #define XAB$M_PROPOGATE (1 << XAB$V_PROPOGATE) #ifdef __NEW_STARLET #define XABPRO _xabprodef1 #else #define XABPRO xabprodef1 #endif #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 #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 /* __XABPRODEF_LOADED */