The IPL may be indicated in hardware by the registers in a programmable interrupt controller, or in software by a bitmask or integer value and source code of threads.
[2] Control of interrupt level was also used to synchronize access to kernel data structures.
However, it was not allowed for an interrupt handler to lower IPL below that at which it was entered, since to do so could destroy the integrity of the synchronization system.
Priorities 16 and above are for requests from external hardware, while values below 16 are available for software interrupts (used internally by the operating system to schedule its own activities).
Not all values are actually used, but here are some of the more important ones: Alpha hardware contains native support for IPLs.