0.8.10.16:
[sbcl.git] / tools-for-build / grovel-headers.c
index 2254aa3..c065542 100644 (file)
@@ -28,6 +28,7 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <signal.h>
+#include <errno.h>
 
 #include "genesis/config.h"
 
@@ -41,6 +42,7 @@ defconstant(char* lisp_name, long unix_number)
           lisp_name, unix_number, unix_number);
 }
 
+#define DEFERRNO(name) defconstant(#name, name)
 #define DEFSIGNAL(name) defconstant(#name, name)
 
 int
@@ -55,7 +57,7 @@ main(int argc, char *argv[])
     /* don't need no steenking hand-editing */
     printf(
 ";;;; This is an automatically generated file, please do not hand-edit it.\n\
-;;;; See the program \"grovel_headers.c\".\n\
+;;;; See the program \"grovel-headers.c\".\n\
 \n\
 ");
 
@@ -74,7 +76,7 @@ main(int argc, char *argv[])
     DEFTYPE("uid-t",   uid_t);
     printf("\n");
 
-    printf(";;; fcntl.h (or unistd.h on OpenBSD)\n");
+    printf(";;; fcntl.h (or unistd.h on OpenBSD and NetBSD)\n");
     defconstant("r_ok", R_OK);
     defconstant("w_ok", W_OK);
     defconstant("x_ok", X_OK);
@@ -104,6 +106,15 @@ main(int argc, char *argv[])
     defconstant("s-ifsock", S_IFSOCK);
     printf("\n");
 
+    printf(";;; error numbers\n");
+    DEFERRNO(ENOENT);
+    DEFERRNO(EINTR);
+    DEFERRNO(EIO);
+    DEFERRNO(EEXIST);
+    DEFERRNO(ESPIPE);
+    DEFERRNO(EWOULDBLOCK);
+    printf("\n");
+
     printf(";;; for wait3(2) in run-program.lisp\n");
     defconstant("wnohang", WNOHANG);
     defconstant("wuntraced", WUNTRACED);
@@ -149,8 +160,7 @@ main(int argc, char *argv[])
     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)))
+#ifdef SIGEMT
     DEFSIGNAL(SIGEMT);
 #endif
     DEFSIGNAL(SIGFPE);
@@ -188,9 +198,5 @@ main(int argc, char *argv[])
     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;
 }