!*** MODULE $XABPRODEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ! protection xab field definitions ! $xabprodef ! ! PARAMETER XAB$C_PRO = '00000013'X ! xabpro id code PARAMETER XAB$M_NOREAD = '00000001'X PARAMETER XAB$M_NOWRITE = '00000002'X PARAMETER XAB$M_NOEXE = '00000004'X PARAMETER XAB$M_NODEL = '00000008'X STRUCTURE /XABPRODEF/ UNION MAP PARAMETER XAB$S_NOREAD = 1 PARAMETER XAB$V_NOREAD = 0 ! deny read access PARAMETER XAB$S_NOWRITE = 1 PARAMETER XAB$V_NOWRITE = 1 ! deny write access PARAMETER XAB$S_NOEXE = 1 PARAMETER XAB$V_NOEXE = 2 ! deny execution access PARAMETER XAB$S_NODEL = 1 PARAMETER XAB$V_NODEL = 3 ! deny delete access BYTE %FILL (1) END MAP END UNION END STRUCTURE ! XABPRODEF PARAMETER XAB$M_PROPAGATE = '00000001'X PARAMETER XAB$K_PROLEN_V3 = '00000010'X ! V3a xabpro length PARAMETER XAB$C_PROLEN_V3 = '00000010'X ! V3a xabpro length STRUCTURE /XABPRODEF1/ BYTE %FILL BYTE %FILL INTEGER*2 %FILL INTEGER*4 %FILL ! HAS SAME COD, BLN, SPARE AND NXT FIELD ! THESE 4 FIELDS ARE COMMON TO ALL XABS AND ! HAVE BEEN DEFINED BY $XABDEF UNION MAP INTEGER*2 XAB$W_PRO ! protection mask END MAP MAP PARAMETER XAB$S_SYS = 4 PARAMETER XAB$V_SYS = 0 ! system PARAMETER XAB$S_OWN = 4 PARAMETER XAB$V_OWN = 4 ! owner PARAMETER XAB$S_GRP = 4 PARAMETER XAB$V_GRP = 8 ! group PARAMETER XAB$S_WLD = 4 PARAMETER XAB$V_WLD = 12 BYTE %FILL (2) ! world END MAP END UNION BYTE XAB$B_MTACC ! Magtape access control char. UNION MAP BYTE XAB$B_PROT_OPT ! XABPRO options field END MAP MAP PARAMETER XAB$S_PROPAGATE = 1 PARAMETER XAB$V_PROPAGATE = 0 ! Propagate security attributes on $ENTER and $RENAME BYTE %FILL (1) END MAP END UNION UNION MAP INTEGER*4 XAB$L_UIC ! uic code END MAP MAP INTEGER*2 XAB$W_MBM ! member code INTEGER*2 XAB$W_GRP ! group code END MAP END UNION UNION MAP INTEGER*4 XAB$Q_PROT_MODE(2) ! eventually may be a quadword END MAP MAP BYTE XAB$B_PROT_MODE ! but currently only a byte END MAP END UNION INTEGER*4 XAB$L_ACLBUF ! address of user's ACL buffer INTEGER*2 XAB$W_ACLSIZ ! size of user's ACL buffer INTEGER*2 XAB$W_ACLLEN ! return length of entire ACL INTEGER*4 XAB$L_ACLCTX ! ACL context field INTEGER*4 XAB$L_ACLSTS ! ACL return err status INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare INTEGER*4 %FILL ! spare END STRUCTURE ! XABPRODEF1 ! basealign on aggregate XABPRODEF1 operates after aggregate end PARAMETER XAB$K_PROLEN = '00000058'X ! xabpro length PARAMETER XAB$C_PROLEN = '00000058'X ! xabpro length !DEC$ END OPTIONS