! *** 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 ! $SCHED function codes DECLARE LONG CONSTANT CSH$_READ_ALL = 23 ! Read data on all processes DECLARE LONG CONSTANT CSH$_READ_NEW = 24 ! Read data on new processes DECLARE LONG CONSTANT CSH$_SET_CLASS = 25 ! Place process(es) into class(es) DECLARE LONG CONSTANT CSH$_RES1 = 26 DECLARE LONG CONSTANT CSH$_RES2 = 27 DECLARE LONG CONSTANT CSH$_RES3 = 28 DECLARE LONG CONSTANT CSH$_RES4 = 29 DECLARE LONG CONSTANT CSH$_SET_NEW = 30 ! Define this process as "new" DECLARE LONG CONSTANT CSH$_SET_TIMEOUT = 31 ! Set deadman timer DECLARE LONG CONSTANT CSH$_RES5 = 32 DECLARE LONG CONSTANT CSH$_RES6 = 33 DECLARE LONG CONSTANT CSH$_RES7 = 34 DECLARE LONG CONSTANT CSH$_RES8 = 35 DECLARE LONG CONSTANT CSH$_READ_QUANT = 36 ! Read per-class quanta remaining DECLARE LONG CONSTANT CSH$_SET_QUANT = 37 ! Define per-class quanta DECLARE LONG CONSTANT CSH$_RES9 = 38 DECLARE LONG CONSTANT CSH$_RESA = 39 DECLARE LONG CONSTANT CSH$_RESB = 40 DECLARE LONG CONSTANT CSH$_RESC = 41 DECLARE LONG CONSTANT CSH$_SET_ATTN_AST = 42 ! Establish attention AST DECLARE LONG CONSTANT CSH$_RSED = 43 DECLARE LONG CONSTANT CSH$_RESE = 44 DECLARE LONG CONSTANT CSH$_RESF = 45 DECLARE LONG CONSTANT CSH$_RES0 = 46 DECLARE LONG CONSTANT CSH$_CLEAR_ATTN_AST = 47 ! Clear attention AST DECLARE LONG CONSTANT CSH$_MAX_SCHED_FUNC = 48 ! AST reason mask DECLARE LONG CONSTANT CSH$V_NEW_PROC = 1 ! Possible new process ! CSHC -- Class ScHeduler Class block ! ! Used to communicate from user to system, defining process/class mapping DECLARE LONG CONSTANT CSHC$K_LENGTH = 8 DECLARE LONG CONSTANT CSHC$C_LENGTH = 8 DECLARE LONG CONSTANT CSHC$S_CSHC = 8 record CSHC LONG CSHC$L_EPID ! EPID of target process WORD CSHC$W_CLASS ! Class number, 0-N, %X'FFFF' means ! `Take out of class scheduling' WORD CSHC$W_WINDFALL ! Windfall ticks to grant end record CSHC ! CSHP -- Class ScHeduler data block for Processes ! ! Used to communicate from system to user, showing various characteristics ! of processes. DECLARE LONG CONSTANT CSHP$K_LENGTH = 24 DECLARE LONG CONSTANT CSHP$C_LENGTH = 24 DECLARE LONG CONSTANT CSHP$S_CSHP = 24 record CSHP LONG CSHP$L_STATUS ! Copy of PCB$L_STS WORD CSHP$W_PIX ! Process index slot BYTE CSHP$B_PRI ! Current priority (internal) BYTE CSHP$B_PRIB ! Current base priority (internal) LONG CSHP$L_EPID ! The official PID STRING CSHP$T_ACCOUNT = 8 ! Account string from PCB LONG CSHP$L_CPUTIM ! CPU time charged end record CSHP