X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fbsd-os.h;h=2324514746b3238ac5fe812449c697e5f47e936d;hb=1071bf1ca8292aeeef4a684d277f1e6b4693865a;hp=5dfff24d536e243c4b3349e60d24b226399c0aa0;hpb=343ef95fda9da33830d5ab6aabe5368c898f0918;p=sbcl.git diff --git a/src/runtime/bsd-os.h b/src/runtime/bsd-os.h index 5dfff24..2324514 100644 --- a/src/runtime/bsd-os.h +++ b/src/runtime/bsd-os.h @@ -31,7 +31,6 @@ typedef vm_size_t os_vm_size_t; #endif typedef off_t os_vm_offset_t; typedef int os_vm_prot_t; -typedef int os_context_register_t; #if defined __OpenBSD__ /* name defined for compatibility between OpenBSD 3.1 sigaltstack(2) and @@ -54,7 +53,20 @@ typedef ucontext_t os_context_t; * step flag bit by messing with the flags stored in a signal context, * so we need to implement single stepping in a more roundabout way. */ #define CANNOT_GET_TO_SINGLE_STEP_FLAG -#define SIG_MEMORY_FAULT SIGBUS +#define SIG_MEMORY_FAULT SIGSEGV +/* Sometime in late 2005 FreeBSD was changed to signal SIGSEGV instead + * of SIGBUS for memory faults, as required by POSIX. In order to + * support both new and old FreeBSD at the same time, both signals are + * hooked to the GC write barrier machinery. If you're reading this + * message in the far future where FreeBSD 6 and earlier are just + * quaint memories, feel free to delete this hack (and any code that's + * #ifdef SIG_MEMORY_FAULT2'ed). -- JES, 2005-12-30 + */ +#define SIG_MEMORY_FAULT2 SIGBUS + +#define SIG_INTERRUPT_THREAD (SIGINFO) +#define SIG_STOP_FOR_GC (SIGUSR1) +#define SIG_RESUME_FROM_GC (SIGUSR2) #elif defined __OpenBSD__ @@ -68,17 +80,7 @@ typedef ucontext_t os_context_t; #define SIG_MEMORY_FAULT SIGSEGV #elif defined LISP_FEATURE_DARWIN - /* man pages claim that the third argument is a sigcontext struct, - but ucontext_t is defined, matches sigcontext where sensible, - offers better access to mcontext, and is of course the SUSv2- - mandated type of the third argument, so we use that instead. - If Apple is going to break ucontext_t out of spite, I'm going - to be cross with them ;) -- PRM */ - -#include -typedef ucontext_t os_context_t; -#define SIG_MEMORY_FAULT SIGBUS - +#include "darwin-os.h" #else #error unsupported BSD variant #endif