Interface LOWER_SPLX

Preprocessor macro expanding to a command

SpaceUser/kernel
ContextSync/async
May blockNo
SPLAny
Dynamic memoryNo

#include <SPAD/AC.H>

LOWER_SPLX(splx)

Description

Lowers SPL to a given value. splx must be lower or equal than current SPL (KERNEL$SPL). This macro issues a proper compiler memory-barrier, so that the compiler doesn't try to reorder code around SPL-lowering instruction. After lowering the SPL, this macro calls immediatelly any ASTs or IORQs that were pending above the new SPL.

Arguments

Implementation note

When __DEBUG is >= 2, the macro performs a check if current SPL is higher or equal than new SPL. It also performs a check if the argument is correct.

See also

RAISE_SPL, RAISE_SPLX, LOWER_SPL SPL_X