X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Finterrupt.h;h=93a53876cbef3f14dc516d75cb2f977ac2afa3bb;hb=d25e3478acccec70402ff32554669a982be8e281;hp=4f2b0978f6f5625bc4f9858903710c4c4e7bc4ec;hpb=cf507f95509a855a752b6f1771aa06877b8a3b30;p=sbcl.git diff --git a/src/runtime/interrupt.h b/src/runtime/interrupt.h index 4f2b097..93a5387 100644 --- a/src/runtime/interrupt.h +++ b/src/runtime/interrupt.h @@ -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);