Specifications
Operating System Routines
SMP$RESTOREL
SMP$RESTOREL
Releases a single acquisition of a device lock held by the local processor.
Module
SPINLOCKS
Macro
DEVICEUNLOCK
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 or above the IPL at which
the device lock was originally obtained. This IPL must be greater than IPL$_
ASTDEL. Violations of IPL synchronization in a full-checking multiprocessing
environment result in a SPLIPLLOW bugcheck. At exit, IPL is unchanged and
the device lock may or may not be still held.
Description
The DEVICEUNLOCK macro calls SMP$RESTOREL when RESTORE is
specified as its condition argument.
SMP$RESTOREL first verifies that the local processor owns the specified device
lock. If this is not the case, the procedure issues an SPLRSTERR bugcheck.
Otherwise, SMP$RESTOREL proceeds to decrement the ownership count of the
device lock. If the ownership count of the device lock drops to its initial state, the
procedure releases the lock and makes it available to other processors.
3–156