Specifications
Operating System Routines
SMP$ACQNOIPL
SMP$ACQNOIPL
Acquires a device lock, assuming the local processor is already running at the IPL
appropriate for acquisition of the lock.
Module
SPINLOCKS
Macro
DEVICELOCK
Input
Location Contents
R0 Address of device lock
Output
Location Contents
R0 Address of device lock
Synchronization
Upon entry, the local processor must be executing at the synchronization IPL of
the device lock, as it is, for instance, when responding to a device interrupt.
SMP$ACQNOIPL exits with the IPL unchanged and the device lock held.
Description
The DEVICELOCK macro calls SMP$ACQNOIPL when NOSETIPL is specified
as its condition argument.
SMP$ACQNOIPL attempts to acquire the requested device lock, allowing the
acquisition to succeed if the local processor already holds the lock or if the lock is
unowned.
If the lock is unowned, the routine increments by 1 a counter that records the
acquisition level. Each additional (or nested) acquisition of this lock by the
owning processor again increments this counter.
If the lock is owned by another processor, the local processor spin waits until the
lock is released.
3–149