+/* signal_register_signal ******************************************************
+
+ Register the specified handler with the specified signal.
+
+*******************************************************************************/
+
+void signal_register_signal(int signum, functionptr handler, int flags)
+{
+ struct sigaction act;
+
+ void (*function)(int, siginfo_t *, void *);
+
+ function = (void (*)(int, siginfo_t *, void *)) handler;
+
+ if (sigemptyset(&act.sa_mask) != 0)
+ vm_abort_errno("signal_register_signal: sigemptyset failed");
+
+ act.sa_sigaction = function;
+ act.sa_flags = flags;
+
+ if (sigaction(signum, &act, NULL) != 0)
+ vm_abort_errno("signal_register_signal: sigaction failed");
+}
+
+