2005-12-22 Zoltan Varga <vargaz@gmail.com>
[mono.git] / support / signal.c
index 763019fecbfac461f1580d12a8c1a475e03700e9..bc34f9839ff69d957b80b60a5d58cad909d99018 100644 (file)
@@ -1,5 +1,10 @@
 /*
  * <signal.h> wrapper functions.
+ *
+ * Authors:
+ *   Jonathan Pryor (jonpryor@vt.edu)
+ *
+ * Copyright (C) 2004-2005 Jonathan Pryor
  */
 
 #include <signal.h>
@@ -10,30 +15,42 @@ G_BEGIN_DECLS
 
 typedef void (*mph_sighandler_t)(int);
 
-mph_sighandler_t
+void*
 Mono_Posix_Stdlib_SIG_DFL (void)
 {
        return SIG_DFL;
 }
 
-mph_sighandler_t
+void*
 Mono_Posix_Stdlib_SIG_ERR (void)
 {
        return SIG_ERR;
 }
 
-mph_sighandler_t
+void*
 Mono_Posix_Stdlib_SIG_IGN (void)
 {
        return SIG_IGN;
 }
 
 void
-Mono_Posix_Stdlib_InvokeSignalHandler (int signum, mph_sighandler_t handler)
+Mono_Posix_Stdlib_InvokeSignalHandler (int signum, void *handler)
 {
-       handler (signum);
+       mph_sighandler_t _h = (mph_sighandler_t) handler;
+       _h (signum);
 }
 
+#ifndef PLATFORM_WIN32
+int
+Mono_Posix_Syscall_psignal (int sig, const char* s)
+{
+       errno = 0;
+       psignal (sig, s);
+       return errno == 0 ? 0 : -1;
+}
+#endif /* ndef PLATFORM_WIN32 */
+
+
 G_END_DECLS
 
 /*