.TITLE AUTREL - Release the task waiting for log .IDENT /X0.AIC/ .ENABLE LC ; ;+ ; ** AUTREL - This routine is a 'C' callable routine that will release ; a task that is currently waiting for an local event flag ; ; CALL: ; autrel( &tsknm,efn); ; ; where ; &tsknm - Is a pointer to the RAD50 representation ; of the task name ; ; efn - Is the number of the event flag to be ; used to release the task ; ; Returns: ; nothing in particular. ; ;- search:: .word 0 ..free:: .word 0 AUTREL:: mov 2(sp),r0 ; Point to the task name in RAD50 mov 4(sp),r1 ; and the event flag number call $saval ; save all of the registers just in case mov r0,r3 ; Point to the task name for search call ; ; We have established the environment now we will switch to the system ; state for final processing ; call $swstk,100$ ;; Declare a system process call @search ;; Find the TCB for this task bcs 90$ ;; If this fails its cause he's dead. mov r0,r5 ;; Copy the TCB for the $setf call mov r1,r0 ;; and the event flag call @..free ;; and now set the flag so dummy can go 90$: return ;; from system state 100$: ; to task state return ; to the caller. .end