summaryrefslogtreecommitdiff
path: root/pico/osdep/signals.h
diff options
context:
space:
mode:
Diffstat (limited to 'pico/osdep/signals.h')
-rw-r--r--pico/osdep/signals.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/pico/osdep/signals.h b/pico/osdep/signals.h
new file mode 100644
index 00000000..2ea33cc4
--- /dev/null
+++ b/pico/osdep/signals.h
@@ -0,0 +1,62 @@
+/*
+ * $Id: signals.h 761 2007-10-23 22:35:18Z hubert@u.washington.edu $
+ *
+ * ========================================================================
+ * Copyright 2006 University of Washington
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * ========================================================================
+ */
+
+
+#ifndef PICO_OSDEP_SIGNALS_INCLUDED
+#define PICO_OSDEP_SIGNALS_INCLUDED
+
+
+/*
+ * [Re]Define signal functions as needed...
+ */
+#ifdef POSIX_SIGNALS
+/*
+ * Redefine signal call to our wrapper of POSIX sigaction
+ */
+#define signal(SIG,ACT) posix_signal(SIG,ACT)
+#define our_sigunblock(SIG) posix_sigunblock(SIG)
+#else /* !POSIX_SIGNALS */
+#ifdef SYSV_SIGNALS
+/*
+ * Redefine signal calls to SYSV style call.
+ */
+#define signal(SIG,ACT) sigset(SIG,ACT)
+#define our_sigunblock(SIG) sigrelse(SIG)
+#else /* !SYSV_SIGNALS */
+#ifdef _WINDOWS
+#define our_sigunblock(SIG)
+#else /* !_WINDOWS */
+/*
+ * Good ol' BSD signals.
+ */
+#define our_sigunblock(SIG)
+#endif /* !_WINDOWS */
+#endif /* !SYSV_SIGNALS */
+#endif /* !POSIX_SIGNALS */
+
+
+
+/* exported prototypes */
+void picosigs(void);
+#if defined(SIGWINCH) && defined(TIOCGWINSZ)
+RETSIGTYPE winch_handler(int);
+#endif
+
+#ifdef POSIX_SIGNALS
+void (*posix_signal(int, RETSIGTYPE (*)()))(int);
+int posix_sigunblock(int);
+#endif
+
+#endif /* PICO_OSDEP_SIGNALS_INCLUDED */