blob: 9cd9eda7b958286240cdfbab9fb31cc61bcf9d96 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <stddef.h>
#include "_signal.h"
#include "_safety.h"
void __signal_handler(int sig)
{
___signal.current = sig;
if (___signal.handlers[sig] != NULL) {
___signal.handlers[sig](sig);
}
/* TODO: signal number to name */
if (sig == SIGFPE || sig == SIGILL || sig == SIGSEGV) {
___signal.current = 0;
__undefined("Signal handler for signal %d returned", sig);
}
___signal.current = 0;
}
/*
STDC(0)
SIGNAL_SAFE(0)
*/
|