! *** 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 ! + ! ! Statistics block. This block is used to report various data regarding ! an open file to the requesting program. ! ! - ! ! The first two longwords are presented in inverted form for compatibility ! with the old RSX-11 statistics block. ! DECLARE LONG CONSTANT SBK$K_LENGTH = 32 DECLARE LONG CONSTANT SBK$C_LENGTH = 32 DECLARE LONG CONSTANT SBK$S_SBKDEF = 32 record SBKDEF group SBK$R_STLBN_OVERLAY variant case LONG SBK$L_STLBN ! starting LBN if contiguous case group SBK$R_STLBN_FIELDS WORD SBK$W_STLBNH ! high order word WORD SBK$W_STLBNL ! low order word end group SBK$R_STLBN_FIELDS end variant end group SBK$R_STLBN_OVERLAY group SBK$R_FILESIZE_OVERLAY variant case LONG SBK$L_FILESIZE ! file size case group SBK$R_FILESIZE_FIELDS WORD SBK$W_FILESIZH ! high order word WORD SBK$W_FILESIZL ! low order word ! ! The following two fields are for RSX-11 compatibility ! end group SBK$R_FILESIZE_FIELDS end variant end group SBK$R_FILESIZE_OVERLAY BYTE SBK$B_ACNT ! low byte of access count BYTE SBK$B_LCNT ! low byte of lock count LONG SBK$L_FCB ! address of file control block WORD SBKDEF$$_FILL_1 ! spare WORD SBK$W_ACNT ! access count WORD SBK$W_LCNT ! lock count (against writers) WORD SBK$W_WCNT ! writer count WORD SBK$W_TCNT ! truncate lock count LONG SBK$L_READS ! count of reads executed on channel LONG SBK$L_WRITES ! count of writes executed on channel end record SBKDEF