0.8.4.10
[sbcl.git] / tools-for-build / grovel_headers.c
index 0184bfa..2254aa3 100644 (file)
@@ -27,6 +27,9 @@
 #include <sys/termios.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <signal.h>
+
+#include "genesis/config.h"
 
 #define DEFTYPE(lispname,cname) { cname foo; \
     printf("(define-alien-type " lispname " (%s %d))\n", (((foo=-1)<0) ? "sb!alien:signed" : "unsigned"), (8 * (sizeof foo))); }
@@ -38,6 +41,8 @@ defconstant(char* lisp_name, long unix_number)
           lisp_name, unix_number, unix_number);
 }
 
+#define DEFSIGNAL(name) defconstant(#name, name)
+
 int
 main(int argc, char *argv[])
 {
@@ -139,5 +144,53 @@ main(int argc, char *argv[])
     */
     printf("\n");
 
+    printf(";;; signals\n");
+    DEFSIGNAL(SIGALRM);
+    DEFSIGNAL(SIGBUS);
+    DEFSIGNAL(SIGCHLD);
+    DEFSIGNAL(SIGCONT);
+/* FIXME: Maybe #ifdef SIGEMT would be a smarter conditional? */
+#if (!(defined LISP_FEATURE_LINUX) || !((defined LISP_FEATURE_PPC) || (defined LISP_FEATURE_X86)))
+    DEFSIGNAL(SIGEMT);
+#endif
+    DEFSIGNAL(SIGFPE);
+    DEFSIGNAL(SIGHUP);
+    DEFSIGNAL(SIGILL);
+    DEFSIGNAL(SIGINT);
+    DEFSIGNAL(SIGIO);
+    DEFSIGNAL(SIGIOT);
+    DEFSIGNAL(SIGKILL);
+    DEFSIGNAL(SIGPIPE);
+    DEFSIGNAL(SIGPROF);
+    DEFSIGNAL(SIGQUIT);
+    DEFSIGNAL(SIGSEGV);
+#if ((defined LISP_FEATURE_LINUX) && (defined LISP_FEATURE_X86))
+    DEFSIGNAL(SIGSTKFLT);
+#endif
+    DEFSIGNAL(SIGSTOP);
+#if (!((defined LISP_FEATURE_LINUX) && (defined LISP_FEATURE_X86))) 
+    DEFSIGNAL(SIGSYS);
+#endif
+    DEFSIGNAL(SIGTERM);
+    DEFSIGNAL(SIGTRAP);
+    DEFSIGNAL(SIGTSTP);
+    DEFSIGNAL(SIGTTIN);
+    DEFSIGNAL(SIGTTOU);
+    DEFSIGNAL(SIGURG);
+    DEFSIGNAL(SIGUSR1);
+    DEFSIGNAL(SIGUSR2);
+    DEFSIGNAL(SIGVTALRM);
+#ifdef LISP_FEATURE_SUNOS
+    DEFSIGNAL(SIGWAITING);
+#endif
+    DEFSIGNAL(SIGWINCH);
+#ifndef LISP_FEATURE_HPUX
+    DEFSIGNAL(SIGXCPU);
+    DEFSIGNAL(SIGXFSZ);
+#endif
+#ifdef LISP_FEATURE_SB_THREAD
+    /* FIXME OAOOM alert: this information is duplicated in linux-os.h */
+    defconstant("sig-dequeue",SIGRTMIN+2);
+#endif
     return 0;
 }