cleanup: os_vm_size_t in gc_alloc_new_region
[sbcl.git] / src / runtime / interrupt.h
index 4f2b097..05c6638 100644 (file)
@@ -109,10 +109,18 @@ struct interrupt_data {
     siginfo_t pending_info;
     sigset_t pending_mask;
     /* Was pending mask saved for gc request? True if GC_PENDING or
-     * SIG_STOP_FOR_GC happened in a pseudo atomic with no GC_INHIBIT
-     * NIL. Both deferrable interrupt handlers and gc are careful not
-     * to clobber each other's pending_mask. */
+     * SIG_STOP_FOR_GC happened in a pseudo atomic with GC_INHIBIT NIL
+     * and with no pending handler. Both deferrable interrupt handlers
+     * and gc are careful not to clobber each other's pending_mask. */
     boolean gc_blocked_deferrables;
+#ifdef LISP_FEATURE_PPC
+    /* On PPC when consing wants to turn to alloc(), it does so via a
+     * trap. When alloc() wants to save the sigmask it consults
+     * allocation_trap_context. It does not look up the most recent
+     * context, because alloc() can be called from other places
+     * too. */
+    os_context_t *allocation_trap_context;
+#endif
 };
 
 extern boolean interrupt_handler_pending_p(void);
@@ -158,4 +166,9 @@ extern void lisp_memory_fault_error(os_context_t *context,
                                     os_vm_address_t addr);
 #endif
 
+#include "thread.h"
+
+extern void lower_thread_control_stack_guard_page(struct thread *th);
+extern void reset_thread_control_stack_guard_page(struct thread *th);
+
 #endif