summaryrefslogtreecommitdiff
path: root/newlib/libc/sys/rtems/include/signal.h
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/rtems/include/signal.h')
-rw-r--r--newlib/libc/sys/rtems/include/signal.h142
1 files changed, 142 insertions, 0 deletions
diff --git a/newlib/libc/sys/rtems/include/signal.h b/newlib/libc/sys/rtems/include/signal.h
new file mode 100644
index 00000000000..bb61b0c1741
--- /dev/null
+++ b/newlib/libc/sys/rtems/include/signal.h
@@ -0,0 +1,142 @@
+/*
+ * $Id$
+ */
+
+#ifndef __POSIX_SIGNALS_h
+#define __POSIX_SIGNALS_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/features.h>
+#include "_ansi.h"
+
+#include <sys/time.h>
+#include <sys/siginfo.h>
+#include <reent.h> /* only for reentrant signal() and raise() */
+
+/*
+ * 7.7 Signal handling <signal.h>, ANSI C Standard.
+ */
+
+typedef int sig_atomic_t;
+
+/*
+ * ANSI C Signal Handling Functions
+ */
+
+typedef void (*_sig_func_ptr) ();
+
+_sig_func_ptr _EXFUN(_signal_r, (struct _reent *, int, _sig_func_ptr));
+int _EXFUN(_raise_r, (struct _reent *, int));
+
+#ifndef _REENT_ONLY
+_sig_func_ptr _EXFUN(signal, (int, _sig_func_ptr));
+int _EXFUN(raise, (int));
+#endif
+
+/*
+ * 3.3.2 Send a Signal to a Process, P1003.1b-1993, p. 68
+ *
+ * NOTE: Behavior of kill() depends on _POSIX_SAVED_IDS.
+ */
+
+int _EXFUN(kill, (pid_t pid, int sig));
+
+/*
+ * 3.3.3 Manipulate Signal Sets, P1003.1b-1993, p. 69
+ */
+
+int _EXFUN(sigemptyset, (sigset_t *set));
+int _EXFUN(sigfillset, (sigset_t *set));
+int _EXFUN(sigaddset, (sigset_t *set, int signo));
+int _EXFUN(sigdelset, (sigset_t *set, int signo));
+int _EXFUN(sigismember, (const sigset_t *set, int signo));
+
+/*
+ * 3.3.4 Examine and Change Signal Action, P1003.1b-1993, p. 70
+ */
+
+int _EXFUN(sigaction,
+ (int sig, const struct sigaction *act, struct sigaction *oact)
+);
+
+/*
+ * 3.3.5 Examine and Change Blocked Signals, P1003.1b-1993, p. 73
+ *
+ * NOTE: P1003.1c/D10, p. 37 adds pthread_sigmask().
+ */
+
+/* values for how */
+
+#define SIG_BLOCK 1 /* resulting_set = (current_set | set) */
+#define SIG_UNBLOCK 2 /* resulting_set = (current_set & ~set) */
+#define SIG_SETMASK 3 /* resulting_set = set */
+
+int _EXFUN(sigprocmask, (int how, const sigset_t *set, sigset_t *oset));
+
+#if defined(_POSIX_THREADS)
+int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset));
+#endif
+
+/*
+ * 3.3.6 Examine Pending Signals, P1003.1b-1993, p. 75
+ */
+
+int _EXFUN(sigpending, (sigset_t *set));
+
+/*
+ * 3.3.7 Wait for a Signal, P1003.1b-1993, p. 75
+ */
+
+int _EXFUN(sigsuspend, (const sigset_t *sigmask));
+
+#if defined(_POSIX_REALTIME_SIGNALS)
+
+/*
+ * 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76
+ *
+ * NOTE: P1003.1c/D10, p. 39 adds sigwait().
+ */
+
+int _EXFUN(sigwaitinfo, (const sigset_t *set, siginfo_t *info));
+int _EXFUN(sigtimedwait,
+ (const sigset_t *set, siginfo_t *info, const struct timespec *timeout)
+);
+int _EXFUN(sigwait, (const sigset_t *set, int *sig));
+
+/*
+ * 3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78
+ */
+
+int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value));
+
+#endif
+
+/*
+ * 3.3.10 Send a Signal to a Thread, P1003.1c/D10, p. 43
+ */
+
+#if defined(_POSIX_THREADS)
+int _EXFUN(pthread_kill, (pthread_t thread, int sig));
+#endif
+
+/*
+ * 3.4.1 Schedule Alarm, P1003.1b-1993, p. 79
+ */
+
+unsigned int _EXFUN(alarm, (unsigned int seconds));
+
+/*
+ * 3.4.2 Suspend Process Execution, P1003.1b-1993, p. 80
+ */
+
+int _EXFUN(pause, (void));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */