X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fglobals.h;h=2c02ebe65a66a1d8a0b833696d0ec45076fd7adc;hb=ab5427d31da2bd95805cccc8e47b8f43d3dd606d;hp=679e6265098968dc94f2005a12c6eadbc18ff403;hpb=364647ba8baa72a6f39ab057c8a2b024d910ac5e;p=sbcl.git diff --git a/src/runtime/globals.h b/src/runtime/globals.h index 679e626..2c02ebe 100644 --- a/src/runtime/globals.h +++ b/src/runtime/globals.h @@ -20,16 +20,15 @@ #include "sbcl.h" -/* Currently threads live only on x86oid platforms, but this thing - * cannot ever work with threads, so... */ -#if !defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) -#define FOREIGN_FUNCTION_CALL_FLAG -#endif - #ifndef LANGUAGE_ASSEMBLY -#ifdef FOREIGN_FUNCTION_CALL_FLAG +#ifdef LISP_FEATURE_SB_THREAD +#define foreign_function_call_active_p(thread) \ + (thread->foreign_function_call_active) +#else extern int foreign_function_call_active; +#define foreign_function_call_active_p(thread) \ + foreign_function_call_active #endif extern size_t dynamic_space_size; @@ -48,11 +47,15 @@ extern char **ENVIRON; extern pthread_key_t specials; #endif +#if !defined(LISP_FEATURE_SB_THREAD) extern lispobj *current_control_stack_pointer; +#endif +#if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64) || !defined(LISP_FEATURE_SB_THREAD) extern lispobj *current_control_frame_pointer; -# if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) +#endif +#if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) && !defined(LISP_FEATURE_SB_THREAD) extern lispobj *current_binding_stack_pointer; -# endif +#endif #if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) /* This is unused on X86 and X86_64, but is used as the global @@ -115,11 +118,13 @@ extern void globals_init(void); # define POINTERSIZE 4 # endif -#ifdef FOREIGN_FUNCTION_CALL_FLAG +#ifndef LISP_FEATURE_SB_THREAD EXTERN(foreign_function_call_active, 4) #endif +#if !defined(LISP_FEATURE_SB_THREAD) && !defined(LISP_FEATURE_C_STACK_IS_CONTROL_STACK) EXTERN(current_control_stack_pointer, POINTERSIZE) +#endif EXTERN(current_control_frame_pointer, POINTERSIZE) # if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) EXTERN(current_binding_stack_pointer, POINTERSIZE)