Specifications

Operating System Routines
EXE$INSERTIRP
EXE$INSERTIRP
Inserts an IRP into the specified queue of IRPs according to the base priority of
the process that issued the I/O request.
Module
SYSQIOREQ
Input
Location Contents
R2 Address of I/O queue listhead for the device
R3 Address of IRP
IRP$B_PRI Base priority of process requesting the I/O
Output
Location Contents
R1 Destroyed
PSL<2> (Z bit) Set if the entry is first in the queue, cleared if at
least one entry is already in the queue
Pending-I/O queue IRP inserted
Synchronization
EXE$INSERTIRP must be called at fork IPL or higher. In a multiprocessing
environment, the caller must also hold the associated fork lock.
EXE$INSERTIRP does not alter IPL or acquire any spinlocks. It returns to
its caller.
Description
EXE$INSERTIRP determines the position of the specified IRP in the pending-I/O
queue according to two factors:
Priority of the IRP, which is derived from the requesting process’s base
priority as stored in the IRP$B_PRI
Time that the entry is queued; for each priority, the queue is ordered on a
first-in/first-out basis
EXE$INSERTIRP inserts the IRP into the queue at that position, adjusts the
queue links, and sets the Z bit in the PSL to indicate the status of the queue.
3–31