! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! protection xab field definitions ! $xabprodef ! ! DECLARE LONG CONSTANT XAB$C_PRO = 19 ! xabpro id code DECLARE LONG CONSTANT XAB$M_NOREAD = x'00000001' DECLARE LONG CONSTANT XAB$M_NOWRITE = x'00000002' DECLARE LONG CONSTANT XAB$M_NOEXE = x'00000004' DECLARE LONG CONSTANT XAB$M_NODEL = x'00000008' DECLARE LONG CONSTANT XAB$S_XABPRODEF = 1 record XABPRODEF variant case group XAB$R_XABPRODEF_BITS ! deny read access ! deny write access ! deny execution access ! deny delete access BYTE NOREAD_bits ! COMMENT ADDED BY SDL - NOREAD_bits contains bits NOREAD through FILL_12_ end group XAB$R_XABPRODEF_BITS end variant end record XABPRODEF DECLARE LONG CONSTANT XAB$M_PROPAGATE = x'00000001' DECLARE LONG CONSTANT XAB$K_PROLEN_V3 = 16 ! V3a xabpro length DECLARE LONG CONSTANT XAB$C_PROLEN_V3 = 16 ! V3a xabpro length DECLARE LONG CONSTANT XAB$S_XABPRODEF1 = 88 record XABPRODEF1 BYTE XABPRODEF$$_FILL_1 BYTE XABPRODEF$$_FILL_2 WORD XABPRODEF$$_FILL_3 LONG 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 group XAB$R_PRO_OVERLAY variant case WORD XAB$W_PRO ! protection mask case group XAB$R_PRO_BITS ! system ! owner ! group ! world WORD SYS_bits ! COMMENT ADDED BY SDL - SYS_bits contains bits SYS through WLD end group XAB$R_PRO_BITS end variant end group XAB$R_PRO_OVERLAY BYTE XAB$B_MTACC ! Magtape access control char. group XAB$R_PROT_OPT_OVERLAY variant case BYTE XAB$B_PROT_OPT ! XABPRO options field case group XAB$R_PROT_OPT_FIELDS ! Propagate security attributes on $ENTER and $RENAME BYTE PROPAGATE_bits ! COMMENT ADDED BY SDL - PROPAGATE_bits contains bits PROPAGATE through FILL_13_ end group XAB$R_PROT_OPT_FIELDS end variant end group XAB$R_PROT_OPT_OVERLAY group XAB$R_UIC_OVERLAY variant case LONG XAB$L_UIC ! uic code case group XAB$R_UIC_FIELDS WORD XAB$W_MBM ! member code WORD XAB$W_GRP ! group code end group XAB$R_UIC_FIELDS end variant end group XAB$R_UIC_OVERLAY group XAB$R_PROT_MODE_OVERLAY ! RWED/mode protection for file variant case BASIC$QUADWORD XAB$Q_PROT_MODE ! eventually may be a quadword case group XAB$R_PROT_MODE_FIELDS BYTE XAB$B_PROT_MODE ! but currently only a byte end group XAB$R_PROT_MODE_FIELDS end variant end group XAB$R_PROT_MODE_OVERLAY LONG XAB$L_ACLBUF ! address of user's ACL buffer WORD XAB$W_ACLSIZ ! size of user's ACL buffer WORD XAB$W_ACLLEN ! return length of entire ACL LONG XAB$L_ACLCTX ! ACL context field LONG XAB$L_ACLSTS ! ACL return err status LONG XABPRODEF$$_FILL_10 ! spare LONG XABPRODEF$$_FILL_11 ! spare LONG XABPRODEF$$_FILL_12 ! spare LONG XABPRODEF$$_FILL_13 ! spare LONG XABPRODEF$$_FILL_14 ! spare LONG XABPRODEF$$_FILL_15 ! spare LONG XABPRODEF$$_FILL_16 ! spare LONG XABPRODEF$$_FILL_17 ! spare LONG XABPRODEF$$_FILL_18 ! spare LONG XABPRODEF$$_FILL_19 ! spare LONG XABPRODEF$$_FILL_20 ! spare LONG XABPRODEF$$_FILL_21 ! spare end record XABPRODEF1 ! basealign on aggregate XABPRODEF1 operates after aggregate end DECLARE LONG CONSTANT XAB$K_PROLEN = 88 ! xabpro length DECLARE LONG CONSTANT XAB$C_PROLEN = 88 ! xabpro length