Specifications
Operating System Routines
EXE$INSTIMQ
EXE$INSTIMQ
Inserts a timer queue element (TQE) into the timer queue.
Module
EXSUBROUT
Input
Location Contents
R0, R1 Quadword expiration time for TQE
R5 Address of TQE to be inserted
EXE$GQ_1ST_TIME Expiration time of first TQE in timer queue
Output
Location Contents
R2, R3 Destroyed
TQE$Q_TIME Quadword expiration time for TQE
EXE$GQ_1ST_TIME Updated if TQE is inserted at the head of the timer
queue
Synchronization
EXE$INSTIMQ 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$INSTIMQ.)
EXE$INSTIMQ 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$INSTIMQ inserts the specified TQE into the timer queue according to its
expiration time. If the expiration time of the new TQE is sooner than that of
the first TQE in the queue, EXE$INSTIMQ raises IPL to interval clock IPL
(obtaining the HWCLK spinlock in a multiprocessing environment), inserts it on
the head of the queue, and updates EXE$GQ_1ST_TIME.
3–34