Functions | |
static void | os_fire_signal (uint32_t signal_mask, void *sighandler(void)) |
Perform signal delivery in thread's userspace. | |
void | os_deliver_signal (struct OS_thread_t *thread, uint32_t signals) |
Internal implementation of signal delivery into thread context. | |
void os_deliver_signal | ( | struct OS_thread_t * | thread, |
uint32_t | signals | ||
) |
Internal implementation of signal delivery into thread context.
As this routine is only designed to be called from pend_sv handler, it has strict requirements on state of thread. It must be in state just before being resumed.
thread | thread which gets signal handler injected |
signals | mask of signals being delivered |
|
static |
Perform signal delivery in thread's userspace.
This "function" is ever only called from os_deliver_signal(). It stores original values of LR and R0 - R3 registers and PC onto stack.
sighandler | address of signal handler function. Guarranteed to be non-NULL. Yet not to be valid. |
signal_mask | Bitmask of activated (pending) signals, which are catchable by the application. |