+
+__BEGIN_DECLS
+int raise __P((int));
+#ifndef _ANSI_SOURCE
+int kill __P((pid_t, int));
+int sigaction __P((int, const struct sigaction *, struct sigaction *));
+int sigaddset __P((sigset_t *, int));
+int sigdelset __P((sigset_t *, int));
+int sigemptyset __P((sigset_t *));
+int sigfillset __P((sigset_t *));
+int sigismember __P((const sigset_t *, int));
+int sigpending __P((sigset_t *));
+int sigprocmask __P((int, const sigset_t *, sigset_t *));
+int sigsuspend __P((const sigset_t *));
+#ifndef _POSIX_SOURCE
+int killpg __P((pid_t, int));
+int sigblock __P((int));
+int siginterrupt __P((int, int));
+int sigpause __P((int));
+int sigreturn __P((struct sigcontext *));
+int sigsetmask __P((int));
+int sigstack __P((const struct sigstack *, struct sigstack *));
+int sigvec __P((int, struct sigvec *, struct sigvec *));
+void psignal __P((unsigned int, const char *));
+#endif /* !_POSIX_SOURCE */
+#endif /* !_ANSI_SOURCE */
+__END_DECLS
+
+/* List definitions after function declarations, or Reiser cpp gets upset. */
+#define sigaddset(set, signo) (*(set) |= 1 << ((signo) - 1), 0)
+#define sigdelset(set, signo) (*(set) &= ~(1 << ((signo) - 1)), 0)
+#define sigemptyset(set) (*(set) = 0)
+#define sigfillset(set) (*(set) = ~(sigset_t)0, 0)
+#define sigismember(set, signo) ((*(set) & (1 << ((signo) - 1))) != 0)
+
+#endif /* !_USER_SIGNAL_H */