! *** 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 ! + DECLARE LONG CONSTANT CAP$K_ALL_USER = -1 DECLARE LONG CONSTANT CAP$K_ALL_USER_ADD = -1 DECLARE LONG CONSTANT CAP$K_ALL_CPU_ADD = -1 DECLARE LONG CONSTANT CAP$K_ALL_ACTIVE_CPUS = -1 DECLARE LONG CONSTANT CAP$K_ALL_USER_REMOVE = 0 DECLARE LONG CONSTANT CAP$K_ALL_CPU_REMOVE = 0 DECLARE LONG CONSTANT CAP$K_GET_FREE_CAP = 0 ! ! Constants defining user capability numbers ! DECLARE LONG CONSTANT CAP$M_USER1 = x'00000001' DECLARE LONG CONSTANT CAP$M_USER2 = x'00000002' DECLARE LONG CONSTANT CAP$M_USER3 = x'00000004' DECLARE LONG CONSTANT CAP$M_USER4 = x'00000008' DECLARE LONG CONSTANT CAP$M_USER5 = x'00000010' DECLARE LONG CONSTANT CAP$M_USER6 = x'00000020' DECLARE LONG CONSTANT CAP$M_USER7 = x'00000040' DECLARE LONG CONSTANT CAP$M_USER8 = x'00000080' DECLARE LONG CONSTANT CAP$M_USER9 = x'00000100' DECLARE LONG CONSTANT CAP$M_USER10 = x'00000200' DECLARE LONG CONSTANT CAP$M_USER11 = x'00000400' DECLARE LONG CONSTANT CAP$M_USER12 = x'00000800' DECLARE LONG CONSTANT CAP$M_USER13 = x'00001000' DECLARE LONG CONSTANT CAP$M_USER14 = x'00002000' DECLARE LONG CONSTANT CAP$M_USER15 = x'00004000' DECLARE LONG CONSTANT CAP$M_USER16 = x'00008000' DECLARE LONG CONSTANT CAP$S_CAP = 4 record CAP group CAP$R_FILL_65_ variant case LONG CAP$L_CAP case group CAP$R_FILL_66_ LONG USER1_bits ! COMMENT ADDED BY SDL - USER1_bits contains bits USER1 through FILL_1 end group CAP$R_FILL_66_ end variant end group CAP$R_FILL_65_ end record CAP ! ! Constants defining user CPU numbers ! DECLARE LONG CONSTANT CAP$M_CPU0 = x'00000001' DECLARE LONG CONSTANT CAP$M_CPU1 = x'00000002' DECLARE LONG CONSTANT CAP$M_CPU2 = x'00000004' DECLARE LONG CONSTANT CAP$M_CPU3 = x'00000008' DECLARE LONG CONSTANT CAP$M_CPU4 = x'00000010' DECLARE LONG CONSTANT CAP$M_CPU5 = x'00000020' DECLARE LONG CONSTANT CAP$M_CPU6 = x'00000040' DECLARE LONG CONSTANT CAP$M_CPU7 = x'00000080' DECLARE LONG CONSTANT CAP$M_CPU8 = x'00000100' DECLARE LONG CONSTANT CAP$M_CPU9 = x'00000200' DECLARE LONG CONSTANT CAP$M_CPU10 = x'00000400' DECLARE LONG CONSTANT CAP$M_CPU11 = x'00000800' DECLARE LONG CONSTANT CAP$M_CPU12 = x'00001000' DECLARE LONG CONSTANT CAP$M_CPU13 = x'00002000' DECLARE LONG CONSTANT CAP$M_CPU14 = x'00004000' DECLARE LONG CONSTANT CAP$M_CPU15 = x'00008000' DECLARE LONG CONSTANT CAP$M_CPU16 = x'00010000' DECLARE LONG CONSTANT CAP$M_CPU17 = x'00020000' DECLARE LONG CONSTANT CAP$M_CPU18 = x'00040000' DECLARE LONG CONSTANT CAP$M_CPU19 = x'00080000' DECLARE LONG CONSTANT CAP$M_CPU20 = x'00100000' DECLARE LONG CONSTANT CAP$M_CPU21 = x'00200000' DECLARE LONG CONSTANT CAP$M_CPU22 = x'00400000' DECLARE LONG CONSTANT CAP$M_CPU23 = x'00800000' DECLARE LONG CONSTANT CAP$M_CPU24 = x'01000000' DECLARE LONG CONSTANT CAP$M_CPU25 = x'02000000' DECLARE LONG CONSTANT CAP$M_CPU26 = x'04000000' DECLARE LONG CONSTANT CAP$M_CPU27 = x'08000000' DECLARE LONG CONSTANT CAP$M_CPU28 = x'10000000' DECLARE LONG CONSTANT CAP$M_CPU29 = x'20000000' DECLARE LONG CONSTANT CAP$M_CPU30 = x'40000000' DECLARE LONG CONSTANT CAP$M_CPU31 = x'80000000' DECLARE LONG CONSTANT CAP$S_CAP_CPUS = 4 record CAP_CPUS group CAP$R_FILL_67_ variant case LONG CAP$L_CAP_CPUS case group CAP$R_FILL_68_ LONG CPU0_bits ! COMMENT ADDED BY SDL - CPU0_bits contains bits CPU0 through CPU31 end group CAP$R_FILL_68_ end variant end group CAP$R_FILL_67_ end record CAP_CPUS DECLARE LONG CONSTANT CAP$M_IMPLICIT_AFFINITY_CLEAR = x'00000001' DECLARE LONG CONSTANT CAP$M_IMPLICIT_AFFINITY_SET = x'00000002' DECLARE LONG CONSTANT CAP$M_IMPLICIT_DEFAULT_ONLY = x'00000004' DECLARE LONG CONSTANT CAP$M_IMPLICIT_ALL_THREADS = x'00000008' DECLARE LONG CONSTANT CAP$S_IMP_FLAGS = 1 record IMP_FLAGS group CAP$R_IMP_FLAGS ! Shut implicit affinity off ! Turn implicit affinity on ! Only system default changed ! Change affects all kernel threads in process BYTE IMPLICIT_AFFINITY_CLEAR_bits ! COMMENT ADDED BY SDL - IMPLICIT_AFFINITY_CLEAR_bits contains bits & ! IMPLICIT_AFFINITY_CLEAR through FILL_69_ end group CAP$R_IMP_FLAGS end record IMP_FLAGS ! ! Note: the following flags structure must mimic that of [LIB]CPBDEF.SDL ! DECLARE LONG CONSTANT CAP$M_FLAG_CHECK_CPU = x'00000001' DECLARE LONG CONSTANT CAP$M_FLAG_PERMANENT = x'00000002' DECLARE LONG CONSTANT CAP$M_FLAG_CHECK_CPU_ACTIVE = x'00000008' DECLARE LONG CONSTANT CAP$M_FLAG_DEFAULT_ONLY = x'00000010' DECLARE LONG CONSTANT CAP$M_ALL_THREADS = x'00000020' DECLARE LONG CONSTANT CAP$M_PURGE_WS_IF_NEW_RAD = x'00000040' DECLARE LONG CONSTANT CAP$S_CAP_FLAGS = 1 record CAP_FLAGS group CAP$R_CAP_FLAGS ! Check that process can run ! Affect permanent mask ! Filler to match $CPBDEF ! Check all selected CPUs active ! Only system default changed ! Change affects all kernel threads in process ! If the home RAD was changed, purge the working set BYTE FLAG_CHECK_CPU_bits ! COMMENT ADDED BY SDL - FLAG_CHECK_CPU_bits contains bits FLAG_CHECK_CPU through FILL_70_ end group CAP$R_CAP_FLAGS end record CAP_FLAGS