X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.h;h=e3ff2d78503ced8e352570e591ecabd04874edd4;hb=eac461c1f1ca91cfe282c779291d582ed6b336cb;hp=186f29680d117c69e19ba013f17baeb4628a6922;hpb=5cfc11977fc09cfb6a95f3d9d485deb147b8f7d3;p=sbcl.git diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h index 186f296..e3ff2d7 100644 --- a/src/runtime/runtime.h +++ b/src/runtime/runtime.h @@ -15,6 +15,17 @@ #ifndef _SBCL_RUNTIME_H_ #define _SBCL_RUNTIME_H_ +#if defined(LISP_FEATURE_WIN32) && defined(LISP_FEATURE_SB_THREAD) +# include "pthreads_win32.h" +#else +# include +# ifdef LISP_FEATURE_SB_THREAD +# include +# endif +#endif + +#include + #if defined(LISP_FEATURE_SB_THREAD) #define thread_self() pthread_self() #define thread_kill pthread_kill @@ -29,6 +40,10 @@ #define thread_mutex_unlock(l) 0 #endif +#if defined(LISP_FEATURE_WIN32) && defined(LISP_FEATURE_SB_THREAD) +void os_preinit(); +#endif + #if defined(LISP_FEATURE_SB_SAFEPOINT) void map_gc_page(); void unmap_gc_page(); @@ -115,6 +130,7 @@ extern struct dyndebug_config { int dyndebug_pagefaults; int dyndebug_backtrace_when_lost; int dyndebug_sleep_when_lost; + int dyndebug_io; } dyndebug_config; #ifdef LISP_FEATURE_GENCGC @@ -125,7 +141,6 @@ void dyndebug_init(void); #if QSHOW_SIGNAL_SAFE == 1 && !defined(LISP_FEATURE_WIN32) -#include extern sigset_t blockable_sigset; #define QSHOW_BLOCK \ @@ -178,7 +193,6 @@ typedef unsigned long pointer_sized_uint_t ; #include #if defined(LISP_FEATURE_SB_THREAD) -#include typedef pthread_t os_thread_t; #else typedef pid_t os_thread_t; @@ -331,4 +345,18 @@ extern char *copied_string (char *string); # define THREADS_USING_GCSIGNAL 1 #endif +/* Now that SPARC has precise GENCGC, several places that used to be + * #ifdef PCC need adjustment. Clearly, "PPC or SPARC" is as unhelpful + * a test as its reverse, "x86 or x86-64". However, the feature + * commonly used to differentiate between those two worlds is + * C_STACK_IS_CONTROL_STACK, and clearly (or at least in my humble + * opinion), at some point we'd like to have precise GC on x86 while + * still sharing the C stack, so stack usage ought not imply GC + * conservativeness. So let's have a helper feature that makes the code + * a bit more future-proof, even if it is itself currently defined in + * the naive way: */ +#if defined(LISP_FEATURE_GENCGC) && !defined(LISP_FEATURE_C_STACK_IS_CONTROL_STACK) +# define GENCGC_IS_PRECISE 1 +#endif + #endif /* _SBCL_RUNTIME_H_ */