!*** MODULE $XABPRODEF ***
! --
! ++
! 
!         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 
	PARAMETER XAB$K_PROLEN = '00000058'X	!  xabpro length 
	PARAMETER XAB$C_PROLEN = '00000058'X	!  xabpro length 
	STRUCTURE /XABPRODEF1/
	    BYTE      XABPRODEF$$_FILL_1
	    BYTE      XABPRODEF$$_FILL_2
	    INTEGER*2 XABPRODEF$$_FILL_3
	    INTEGER*4 XABPRODEF$$_FILL_4		! 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 XABPRODEF$$_FILL_10		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_11		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_12		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_13		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_14		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_15		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_16		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_17		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_18		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_19		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_20		!  spare
	    INTEGER*4 XABPRODEF$$_FILL_21		!  spare
	END STRUCTURE	! XABPRODEF1