X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=functions%2Fsignal.c;h=d0fc8b60a027d1827130adbadf58c63f0afac920;hb=435127acb8e016352a581827aa0465a2b32824e6;hp=33535f81ce36095914c6f13c213662b80d11f872;hpb=d954dee1f991f0bc017ac65c4203c36c838abb1f;p=fw%2Fpdclib diff --git a/functions/signal.c b/functions/signal.c index 33535f8..d0fc8b6 100644 --- a/functions/signal.c +++ b/functions/signal.c @@ -5,5 +5,63 @@ // This code is Public Domain. Use, modify, and redistribute at will. // ---------------------------------------------------------------------------- +/* PDPC code - unreviewed +static void (*handlers[6])(int) = { + __sigdfl, + __sigdfl, + __sigdfl, + __sigdfl, + __sigdfl, + __sigdfl }; + +void __sigdfl(int sig) +{ + handlers[sig] = SIG_DFL; + if (sig == SIGABRT) + { + exit(EXIT_FAILURE); + } + return; +} + +void __sigerr(int sig) +{ + (void)sig; + return; +} + +void __sigign(int sig) +{ + (void)sig; + return; +} + +#define SIG_DFL __sigdfl +#define SIG_ERR __sigerr +#define SIG_IGN __sigign + +#define SIGABRT 1 +#define SIGFPE 2 +#define SIGILL 3 +#define SIGINT 4 +#define SIGSEGV 5 +#define SIGTERM 6 +*/ + int raise( int sig ) { /* TODO */ }; + +/* PDPC code - unreviewed +{ + (handlers[sig])(sig); + return (0); +} +*/ + void ( * signal( int sig, void ( *func )( int ) ) ) ( int ) { /* TODO */ }; + +/* PDPC code - unreviewed +{ + handlers[sig] = func; + return (func); +} +*/