X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fglobals.h;h=4ffd653fc9fa4261afcf22482c361c0b9782a458;hb=6769a6cdb368694f39f9c0e2b6790f45cf308b91;hp=03e991b6004b03aa277f440a96f09ef525002a5d;hpb=83543d4d5f876def7327969ec6ec40606e9e63f1;p=sbcl.git diff --git a/src/runtime/globals.h b/src/runtime/globals.h index 03e991b..4ffd653 100644 --- a/src/runtime/globals.h +++ b/src/runtime/globals.h @@ -24,15 +24,28 @@ extern int foreign_function_call_active; extern boolean stop_the_world; +#if defined(LISP_FEATURE_SB_THREAD) +extern pthread_key_t specials; +#endif + extern lispobj *current_control_stack_pointer; extern lispobj *current_control_frame_pointer; # if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) extern lispobj *current_binding_stack_pointer; # endif -# ifndef LISP_FEATURE_GENCGC -/* Beware! gencgc has also a (non-global) dynamic_space_free_pointer. */ +#if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) +/* This is unused on X86 and X86_64, but is used as the global + * allocation pointer by the cheney GC, and, in some instances, as + * the global allocation pointer on PPC/GENCGC. This should probably + * be cleaned up such that it only needs to exist on cheney. At the + * moment, it is also used by the GENCGC, to hold the pseudo_atomic + * bits, and is tightly coupled to reg_ALLOC by the assembly + * routines. */ extern lispobj *dynamic_space_free_pointer; +#endif + +# ifndef LISP_FEATURE_GENCGC extern lispobj *current_auto_gc_trigger; # endif @@ -44,7 +57,7 @@ extern void globals_init(void); # ifdef LISP_FEATURE_MIPS # ifdef __linux__ -# define EXTERN(name,bytes) .globl name +# define EXTERN(name,bytes) .globl name # else # define EXTERN(name,bytes) .extern name bytes # endif @@ -60,7 +73,7 @@ extern void globals_init(void); /**/ # ifdef LISP_FEATURE_ALPHA # ifdef __linux__ -# define EXTERN(name,bytes) .globl name +# define EXTERN(name,bytes) .globl name # endif # endif /**/ @@ -68,7 +81,7 @@ extern void globals_init(void); # ifdef LISP_FEATURE_DARWIN # define EXTERN(name,bytes) .globl _/**/name # else -# define EXTERN(name,bytes) .globl name +# define EXTERN(name,bytes) .globl name # endif # endif /**/