Simplify (and robustify) regular PACKing
[sbcl.git] / src / runtime / linux-os.h
index ed8733d..6f1003c 100644 (file)
 #include <sys/syscall.h>
 #include <asm/unistd.h>
 #include <linux/version.h>
-#include "target-arch-os.h"
-#include "target-arch.h"
-
-#define linuxversion(a, b, c) (((a)<<16)+((b)<<8)+(c))
 
+// Needs to be defined before including target-arch.h
 typedef caddr_t os_vm_address_t;
 typedef size_t os_vm_size_t;
 typedef off_t os_vm_offset_t;
 typedef int os_vm_prot_t;
 
+#include "target-arch-os.h"
+#include "target-arch.h"
+#define linuxversion(a, b, c) (((a)<<16)+((b)<<8)+(c))
+
 #define OS_VM_PROT_READ    PROT_READ
 #define OS_VM_PROT_WRITE   PROT_WRITE
 #define OS_VM_PROT_EXECUTE PROT_EXEC
 
-/* /usr/include/asm/sigcontext.h  */
-typedef long os_context_register_t ;
+#define SIG_MEMORY_FAULT SIGSEGV
+
+/* Note that this must be higher than the highest numbered
+ * synchronously generated signal that we handle (that is SIGSEGV),
+ * due to Linux signal handling pecularities. See thread "Signal
+ * delivery order" from 2009-03-14 on kernel-devel@vger.kernel.org. */
+#define SIG_STOP_FOR_GC (SIGUSR2)