From 7ef8a7379f7f7d09e71ccae2a0b688c3cd80423f Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Fri, 8 Feb 2019 18:42:39 -0500 Subject: merge sources into single tree --- src/signal/signal.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/signal/signal.c (limited to 'src/signal/signal.c') diff --git a/src/signal/signal.c b/src/signal/signal.c new file mode 100644 index 00000000..373fddc5 --- /dev/null +++ b/src/signal/signal.c @@ -0,0 +1,42 @@ +#if defined _POSIX_SOURCE +#include "sys/types.h" +#endif + +#include + +/** set a signal handler **/ +void (*signal(int sig, void (*func)(int)))(int) +{ + (void)sig; + /* TODO */ + /* + RETURN_SUCCESS(a pointer to the signal handler); + RETURN_FAILURE(CONSTANT(SIG_ERR), the request could not be honored); + */ + return func; +} + +/*** +sets the signal handler for the signal specified by ARGUMENT(sig) to +ARGUMENT(func). + +Specifying CONSTANT(SIG_DFL) for ARGUMENT(func) resets the signal handler +to its default behavior. + +Specifying CONSTANT(SIG_IGN) for ARGUMENT(func) causes the signal +ARGUMENT(sig) to be ignored. + +Otherwise, ARGUMENT(func) must be a pointer to a function which takes a +single TYPE(int) argument and does not return a value. +***/ + +/* +UNDEFINED(A signal handler for CONSTANT(SIGFPE) returns) +UNDEFINED(A signal handler calling standard library functions other than THIS() if the signal occurs as other than as a result of calling FUNCTION(abort) or FUNCTION(raise)) +UNDEFINED(FIXME: some function calls from signal handlers) +IMPLEMENTATION(Whether signal blocking is performed when a signal occurs) +IMPLEMENTATION(Other signals corresponding to computation exceptions for which signal handlers must not return) +*/ +/* +STDC(1) +*/ -- cgit v1.2.1