! *** 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 field definitions ! - DECLARE LONG CONSTANT PRT$C_NA = 0 ! No Access DECLARE LONG CONSTANT PRT$C_KR = 3 ! Kernel Read only DECLARE LONG CONSTANT PRT$C_KW = 2 ! Kernel Write DECLARE LONG CONSTANT PRT$C_ER = 7 ! Exec Read only DECLARE LONG CONSTANT PRT$C_EW = 5 ! Exec Write DECLARE LONG CONSTANT PRT$C_SR = 11 ! Super Read only DECLARE LONG CONSTANT PRT$C_SW = 8 ! Super Write DECLARE LONG CONSTANT PRT$C_UR = 15 ! User Read only DECLARE LONG CONSTANT PRT$C_UW = 4 ! User Write DECLARE LONG CONSTANT PRT$C_ERKW = 6 ! Exec Read Kernel Write DECLARE LONG CONSTANT PRT$C_SRKW = 10 ! Super Read Kernel Write DECLARE LONG CONSTANT PRT$C_SREW = 9 ! Super Read Exec Write DECLARE LONG CONSTANT PRT$C_URKW = 14 ! User Read Kernel Write DECLARE LONG CONSTANT PRT$C_UREW = 13 ! User Read Exec Write DECLARE LONG CONSTANT PRT$C_URSW = 12 ! User Read Super Write DECLARE LONG CONSTANT PRT$C_RESERVED = 1 ! Reserved ! Verified for x86 port - Clair Grant ! ! These protections are not VAX / Alpha compatible: ! DECLARE LONG CONSTANT PRT$C_KRO = 16 ! Kernel Read Only DECLARE LONG CONSTANT PRT$C_ERO = 17 ! Exec Read Only DECLARE LONG CONSTANT PRT$C_SRO = 18 ! Super Read Only DECLARE LONG CONSTANT PRT$C_URO = 19 ! User Read Only DECLARE LONG CONSTANT PRT$C_KWX = 20 ! Kernel Write+Execute DECLARE LONG CONSTANT PRT$C_EWX = 21 ! Exec Write+Execute DECLARE LONG CONSTANT PRT$C_SWX = 22 ! Super Write+Execute DECLARE LONG CONSTANT PRT$C_UWX = 23 ! User Write+Execute ! Verified for x86 port--Drew Mason ! ! These protections are not VAX / Alpha / IA64 compatible: ! ! The execute access is permitted in all modes specified in the symbol. ! For example, SREWX is Kernel Write Execute, Exec Write Execute, ! Super Read Execute, User no access. DECLARE LONG CONSTANT PRT$C_ERKWX = 24 ! Exec Read Kernel Write (execute) DECLARE LONG CONSTANT PRT$C_SRKWX = 25 ! Super Read Kernel Write (execute) DECLARE LONG CONSTANT PRT$C_SREWX = 26 ! Super Read Exec Write (execute) DECLARE LONG CONSTANT PRT$C_URKWX = 27 ! User Read Kernel Write (execute) DECLARE LONG CONSTANT PRT$C_UREWX = 28 ! User Read Exec Write (execute) DECLARE LONG CONSTANT PRT$C_URSWX = 29 ! User Read Super Write (execute) DECLARE LONG CONSTANT PRT$C_COUNT = 30 ! Number of protection codes