!*** MODULE $XABALLDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ! allocation xab definitions ! $xaballdef ! ! the fields thru bkz cannot be rearranged due to ! their commonality with fab ! PARAMETER XAB$C_ALL = '00000014'X ! xaball id code PARAMETER XAB$M_HRD = '00000001'X PARAMETER XAB$M_ONC = '00000002'X PARAMETER XAB$M_CBT = '00000020'X PARAMETER XAB$M_CTG = '00000080'X PARAMETER XAB$C_ANY = '00000000'X ! any allocation o.k. PARAMETER XAB$C_CYL = '00000001'X ! cylinder boundary PARAMETER XAB$C_LBN = '00000002'X ! allocate at specified lbn PARAMETER XAB$C_VBN = '00000003'X ! allocate near specified vbn PARAMETER XAB$C_RFI = '00000004'X ! allocate near related file STRUCTURE /XABALLDEF/ 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 BYTE XAB$B_AOP ! allocation options END MAP MAP PARAMETER XAB$S_HRD = 1 PARAMETER XAB$V_HRD = 0 ! fail if requested alignment impossible PARAMETER XAB$S_ONC = 1 PARAMETER XAB$V_ONC = 1 ! locate allocated space within a cylinder PARAMETER XAB$S_CBT = 1 PARAMETER XAB$V_CBT = 5 ! contiguous alllocation, best try PARAMETER XAB$S_CTG = 1 PARAMETER XAB$V_CTG = 7 BYTE %FILL (1) ! contiguous allocation END MAP END UNION BYTE XAB$B_ALN ! alignment type INTEGER*2 XAB$W_VOL ! relative volume no. for allocation ! (not applicable if aln = vbn or rfi) INTEGER*4 XAB$L_LOC ! allocation location INTEGER*4 XAB$L_ALQ ! allocation quantity INTEGER*2 XAB$W_DEQ ! default allocation quantity BYTE %FILL ! 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 UNION MAP INTEGER*2 XAB$W_RFI(1:3) ! related file id END MAP MAP INTEGER*2 XAB$W_RFI0 ! file number INTEGER*2 XAB$W_RFI2 ! seq number INTEGER*2 XAB$W_RFI4 ! rev number END MAP END UNION INTEGER*2 %FILL ! (spare) END STRUCTURE ! XABALLDEF ! basealign on aggregate XABALLDEF operates after aggregate end PARAMETER XAB$K_ALLLEN = '00000020'X ! length of xaball PARAMETER XAB$C_ALLLEN = '00000020'X ! length of xaball !DEC$ END OPTIONS