X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fglobals.h;h=2064f6f08b194bbab7d9b59a019cc4a732e08469;hb=c3699db2053ff3b5ac6a98d4431c3789496002d8;hp=f91de8af838d5934ecabc3d560bf3f4ea3dac6c9;hpb=dfa55a883f94470267b626dae77ce7e7dfac3df6;p=sbcl.git diff --git a/src/runtime/globals.h b/src/runtime/globals.h index f91de8a..2064f6f 100644 --- a/src/runtime/globals.h +++ b/src/runtime/globals.h @@ -14,33 +14,37 @@ #ifndef LANGUAGE_ASSEMBLY +#include +#include #include "runtime.h" extern int foreign_function_call_active; +extern boolean stop_the_world; extern lispobj *current_control_stack_pointer; extern lispobj *current_control_frame_pointer; -#if !defined(ibmrt) && !defined(__i386__) +#if !defined(LISP_FEATURE_X86) extern lispobj *current_binding_stack_pointer; #endif -#if !defined(ibmrt) && !defined(__i386__) -/* FIXME: why doesn't the x86 need this? */ +#if !defined(LISP_FEATURE_X86) +/* FIXME: Why doesn't the x86 need this? */ extern lispobj *dynamic_space_free_pointer; extern lispobj *current_auto_gc_trigger; #endif -extern lispobj *current_dynamic_space; +extern lispobj *current_dynamic_space; +extern pid_t parent_pid; +extern boolean stop_the_world; extern void globals_init(void); -#else LANGUAGE_ASSEMBLY - -/* These are needed by assem.S. */ +#else /* LANGUAGE_ASSEMBLY */ #ifdef mips #define EXTERN(name,bytes) .extern name bytes #endif +/**/ #ifdef sparc #ifdef SVR4 #define EXTERN(name,bytes) .global name @@ -48,26 +52,34 @@ extern void globals_init(void); #define EXTERN(name,bytes) .global _ ## name #endif #endif -#ifdef ibmrt -#define EXTERN(name,bytes) .globl _/**/name -#endif - +/**/ #ifdef alpha -#ifdef linux +#ifdef __linux__ #define EXTERN(name,bytes) .globl name #endif #endif - +#ifdef ppc +#ifdef DARWIN +#define EXTERN(name,bytes) .globl _/**/name +#else +#define EXTERN(name,bytes) .globl name +#endif +#endif +#ifdef LISP_FEATURE_X86 +#ifdef __linux__ /* I'm very dubious about this. Linux hasn't used _ on external names * since ELF became prevalent - i.e. about 1996, on x86 -dan 20010125 */ -#ifdef __i386__ -#ifdef __linux__ #define EXTERN(name,bytes) .globl _/**/name #else #define EXTERN(name,bytes) .global _ ## name #endif #endif +/* FIXME : these sizes are, incidentally, bogus on Alpha. But the + * EXTERN macro doesn't use its second arg anyway, so no immediate harm + * done -dan 2002.05.07 + */ + EXTERN(foreign_function_call_active, 4) EXTERN(current_control_stack_pointer, 4) @@ -80,6 +92,6 @@ EXTERN(current_dynamic_space, 4) EXTERN(current_flags_register, 4) #endif -#endif LANGUAGE_ASSEMBLY +#endif /* LANGUAGE_ASSEMBLY */ -#endif _INCLUDED_GLOBALS_H_ +#endif /* _INCLUDED_GLOBALS_H_ */