Specifications
Operating System Routines
EXE$RMVTIMQ
EXE$RMVTIMQ
Removes timer queue elements (TQEs) from the timer queue.
Module
EXSUBROUT
Input
Location Contents
R2 Access mode (unused by system subroutine)
R3 Request identification (unused by system
subroutine)
R4 Type of TQE entry (TQE$B_RQTYPE) to remove
from queue (TQE$C_ SSNGL) if bit 31 is zero. If bit
31 is set, then R4 contains the address of the TQE.
R5 Process ID (TQE$L_PID)
Output
Location Contents
R0 If R0=1, then at least one TQE was removed. If
R0=0, then no TQE was removed.
R1 Destroyed
Synchronization
EXE$RMVTIMQ immediately raises to IPL$_TIMER (IPL$_SYNCH), obtaining
the TIMER spinlock in a multiprocessing environment. As a result, its caller
must not be executing above IPL$_SYNCH or hold any spinlocks of a higher
rank. (For instance, a driver fork process executing at IPL$_SYNCH holding the
IOLOCK8 fork lock can call EXE$RMVTIMQ and might need the SCHED and
HWCLK spinlocks, but these impose no additional restrictions on the caller.)
EXE$RMVTIMQ returns control to its caller at the caller’s IPL. The caller retains
any spinlocks it held at the time of the call.
Description
EXE$RMVTIMQ removes the specified TQEs from the timer queue. Entries are
removed by address, type, access mode, request identification, and process ID.
Any entries which meet matching criteria are removed from queue.
If a system subroutine or a wake request TQE is being removed, access mode and
request identification need not be supplied. If the TQE address is supplied in R4,
no other input need be supplied.
3–55