! *** 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 ! ! allocation xab definitions ! $xaballdef ! ! the fields thru bkz cannot be rearranged due to ! their commonality with fab ! DECLARE LONG CONSTANT XAB$C_ALL = 20 ! xaball id code DECLARE LONG CONSTANT XAB$M_HRD = x'00000001' DECLARE LONG CONSTANT XAB$M_ONC = x'00000002' DECLARE LONG CONSTANT XAB$M_CBT = x'00000020' DECLARE LONG CONSTANT XAB$M_CTG = x'00000080' DECLARE LONG CONSTANT XAB$C_ANY = 0 ! any allocation o.k. DECLARE LONG CONSTANT XAB$C_CYL = 1 ! cylinder boundary DECLARE LONG CONSTANT XAB$C_LBN = 2 ! allocate at specified lbn DECLARE LONG CONSTANT XAB$C_VBN = 3 ! allocate near specified vbn DECLARE LONG CONSTANT XAB$C_RFI = 4 ! allocate near related file DECLARE LONG CONSTANT XAB$S_XABALLDEF = 32 record XABALLDEF BYTE XABALLDEF$$_FILL_1 BYTE XABALLDEF$$_FILL_2 WORD XABALLDEF$$_FILL_3 LONG XABALLDEF$$_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_AOP_OVERLAY variant case BYTE XAB$B_AOP ! allocation options case group XAB$R_AOP_BITS ! fail if requested alignment impossible ! locate allocated space within a cylinder ! (spares) ! contiguous alllocation, best try ! spare ! contiguous allocation BYTE HRD_bits ! COMMENT ADDED BY SDL - HRD_bits contains bits HRD through CTG end group XAB$R_AOP_BITS end variant end group XAB$R_AOP_OVERLAY BYTE XAB$B_ALN ! alignment type WORD XAB$W_VOL ! relative volume no. for allocation ! (not applicable if aln = vbn or rfi) LONG XAB$L_LOC ! allocation location LONG XAB$L_ALQ ! allocation quantity WORD XAB$W_DEQ ! default allocation quantity BYTE XABALLDEF$$_FILL_7 ! bucket size for area (note: field name is bkz, ! defined above in $xabdef,since it is shared by the fhc ! xab and has the same offset, of course) ! -----***** ! HAVE BEEN DEFINED BY $XABDEF BYTE XAB$B_AID ! area id number group XAB$R_RFI_OVERLAY variant case WORD XAB$W_RFI ( 1 to 3 ) ! related file id case group XAB$R_RFI_FIELDS WORD XAB$W_RFI0 ! file number WORD XAB$W_RFI2 ! seq number WORD XAB$W_RFI4 ! rev number end group XAB$R_RFI_FIELDS end variant end group XAB$R_RFI_OVERLAY WORD XABALLDEF$$_FILL_8 ! (spare) end record XABALLDEF ! basealign on aggregate XABALLDEF operates after aggregate end DECLARE LONG CONSTANT XAB$K_ALLLEN = 32 ! length of xaball DECLARE LONG CONSTANT XAB$C_ALLLEN = 32 ! length of xaball