Specifications
System Macros Invoked by Drivers
SETIPL
SETIPL
Sets the current IPL of the local processor.
Format
SETIPL [ipl=31] [environ=MULTIPROCESSOR]
Parameters
[ipl=31]
Level at which to set the current IPL. The default value sets IPL to 31, blocking
all interrupts on the local processor.
[environ=MULTIPROCESSOR]
Processing environment in which the SETIPL synchronization macro
is to be assembled. If you do not specify environ, or if you do specify
environ=MULTIPROCESSOR, the SETIPL macro generates the following
assembly-time warning message, where xx is an IPL above IPL 2:
%MACRO-W-GENWARN, Generated WARNING: Raising IPL to #xx provides no multiprocessing synchronization
If you are certain that the purpose of the macro invocation is to block only
local processor events, you can disable the warning message by including
environ=UNIPROCESSOR in the invocation.
Description
The SETIPL macro sets the IPL of the local processor by moving the specified ipl
or IPL 31 into its IPL register (PR$_IPL).
Note that the SETIPL macro provides full synchronization only in a uniprocessing
environment. In a multiprocessor configuration, SETIPL is suitable only for
blocking events on the local processor. To provide synchronized access to system
resources and devices in a multiprocessing environment, you must use the
DEVICELOCK/DEVICEUNLOCK, FORKLOCK/FORKUNLOCK, and LOCK
/UNLOCK macros.
2–65