.TITLE TDPRIV ; ; FORTRAN CALLABLE SUBROUTINE TO SET TASK PRIVILEGE SECTION OF TDB ; ; CALL TDPRIV(ALL,NTDB) ; ; ALL -ARGUMENT WHICH IF NON-NULL INDICATES THAT ; TDB PRIVILEGES SHOULD EQUAL OWNER TASK'S. ; IF ALL IS A NULL ARGUMENT, PRIVILEGES ARE DENIED. ; ; NTDB - ORDINAL NUMBER OF SUBTASK ; .PSECT SUBTAS,RO,I,LCL,REL,CON ; TDPRIV:: MOVB (R5)+,R2 ;NUMBER OF ARGS BLE 100$ INC R5 MOV (R5)+,R1 ;"ALL" CMP #2,R2 BGT 20$ MOV (R5)+,R3 ;NTDB ADDR BLE 20$ MOV (R3),R3 ;NTDB CMP #MAXTD,R3 BLT 20$ SUB #1,R3 ASL R3 BR 21$ 20$: CLR R3 ;DEFAULT 21$: MOV TDB(R3),R3 TST R1 BLE 50$ ;NULL? TDPR$R R3,#JP.PI!JP.PD!JP.PT,#PR.RST!PR.CTC!PR.TEV!PR.CHN 99$: 101$: MOV #1,R0 ;SUCCESS INDICATOR RETURN 50$: TDPR$R R3 BR 99$ 100$: MOV #-1,R0 ;INVALID ARGUMENT LIST RETURN .END