! *** 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 ! ! Global symbol definition record (GSD) ! DECLARE LONG CONSTANT GSD$K_ENTRIES = 1 ! Offset to first entry in record DECLARE LONG CONSTANT GSD$C_ENTRIES = 1 ! Offset to first entry in record DECLARE LONG CONSTANT GSD$C_PSC = 0 ! Psect definition DECLARE LONG CONSTANT GSD$C_SYM = 1 ! Symbol specification DECLARE LONG CONSTANT GSD$C_EPM = 2 ! Entry point and mask definition DECLARE LONG CONSTANT GSD$C_PRO = 3 ! Procedure with formal arguments DECLARE LONG CONSTANT GSD$C_SYMW = 4 ! Symbol specification with word psect DECLARE LONG CONSTANT GSD$C_EPMW = 5 ! Entry point mask with word psect DECLARE LONG CONSTANT GSD$C_PROW = 6 ! Procedure with word psect DECLARE LONG CONSTANT GSD$C_IDC = 7 ! Random entity check DECLARE LONG CONSTANT GSD$C_ENV = 8 ! Define environment DECLARE LONG CONSTANT GSD$C_LSY = 9 ! Local symbol DECLARE LONG CONSTANT GSD$C_LEPM = 10 ! Local symbol entry point definition DECLARE LONG CONSTANT GSD$C_LPRO = 11 ! Local symbol procedure definition DECLARE LONG CONSTANT GSD$C_SPSC = 12 ! Shareable image psect definition ! DECLARE LONG CONSTANT GSD$C_VECTOR_TYPE_INCREMENT = 12 DECLARE LONG CONSTANT GSD$C_SYMV = 13 ! Vectored (dual-valued) versions of SYM, DECLARE LONG CONSTANT GSD$C_EPMV = 14 ! EPM, DECLARE LONG CONSTANT GSD$C_PROV = 15 ! PRO ! DECLARE LONG CONSTANT GSD$C_MASK_TYPE_INCREMENT = 15 DECLARE LONG CONSTANT GSD$C_SYMM = 16 ! Masked versions of SYM, DECLARE LONG CONSTANT GSD$C_EPMM = 17 ! EPM, DECLARE LONG CONSTANT GSD$C_PROM = 18 ! PRO DECLARE LONG CONSTANT GSD$C_MAXRECTYP = 18 ! Maximum entry type defined DECLARE LONG CONSTANT GSD$S_GSDEF = 2 record GSDEF BYTE GSD$B_RECTYP ! Record type (OBJ$C_GSD) BYTE GSD$B_GSDTYP ! Type of entry (first byte of entry) ! Vectored symbol types are (regular + 12). For example, SYMV = SYM + 12. ! ! Mask symbol types are (regular + 15). For example, SYMM = SYM + 15. ! end record GSDEF