Ironclad implements standard POSIX signals for use between processes. The supported signals with their corresponding values are:
A Linux-like signal model is provided, where the kernel takes care of signal
dispatching and registering, and the only thing userland has to do in
particular to support signal control flow transfer is using sa_restorer
and signal_return
syscalls, in a construct as such:
void restorer(void) { // Do whatever on signal end. signal_return(); // Handle error, usually just panic. __builtin_unreachable(); }
In a normal desktop system, this will be implemented by the libc or similar layer, but this is something to keep in mind when working without those abstractions. sigaction, signal_return.