X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fglobals.h;h=71f30850e79a10356fd637e541cf0a2989956505;hb=e4542bc034db18cf98f005b2dac53a6d7d5c7260;hp=695e644e6d2ee2bc3d5ccc4933f259de64816713;hpb=d0583fb59b0d5e243c9141d649b82bac577f5aa9;p=sbcl.git diff --git a/src/runtime/globals.h b/src/runtime/globals.h index 695e644..71f3085 100644 --- a/src/runtime/globals.h +++ b/src/runtime/globals.h @@ -9,75 +9,94 @@ * files for more information. */ -/* - * $Header$ - */ - -#if !defined(_INCLUDE_GLOBALS_H_) +#ifndef _INCLUDED_GLOBALS_H_ #define _INCLUDED_GLOBALS_H_ #ifndef LANGUAGE_ASSEMBLY +# include +# include +# include "runtime.h" +#endif -#include "runtime.h" +#include "sbcl.h" +#ifndef LANGUAGE_ASSEMBLY 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(ibmrt) && !defined(__i386__) +# if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) extern lispobj *current_binding_stack_pointer; -#endif +# endif -extern lispobj *control_stack; -#ifdef __i386__ -extern lispobj *control_stack_end; -#endif -#if !defined(ibmrt) && !defined(__i386__) +# ifndef LISP_FEATURE_GENCGC +/* Beware! gencgc has also a (non-global) dynamic_space_free_pointer. */ extern lispobj *dynamic_space_free_pointer; extern lispobj *current_auto_gc_trigger; -#endif - -extern void globals_init(void); +# endif -#else LANGUAGE_ASSEMBLY +extern lispobj *current_dynamic_space; -/* These are needed by ./assem.s */ +extern void globals_init(void); -#ifdef mips -#define EXTERN(name,bytes) .extern name bytes -#endif -#ifdef sparc -#ifdef SVR4 -#define EXTERN(name,bytes) .global name -#else -#define EXTERN(name,bytes) .global _ ## name -#endif -#endif -#ifdef ibmrt -#define EXTERN(name,bytes) .globl _/**/name -#endif - -#ifdef __i386__ -#ifdef __linux__ -#define EXTERN(name,bytes) .globl _/**/name -#else -#define EXTERN(name,bytes) .global _ ## name -#endif -#endif +#else /* LANGUAGE_ASSEMBLY */ + +# ifdef LISP_FEATURE_MIPS +# ifdef __linux__ +# define EXTERN(name,bytes) .globl name +# else +# define EXTERN(name,bytes) .extern name bytes +# endif +# endif +/**/ +# ifdef LISP_FEATURE_SPARC +# ifdef SVR4 +# define EXTERN(name,bytes) .global name +# else +# define EXTERN(name,bytes) .global _ ## name +# endif +# endif +/**/ +# ifdef LISP_FEATURE_ALPHA +# ifdef __linux__ +# define EXTERN(name,bytes) .globl name +# endif +# endif +/**/ +# ifdef LISP_FEATURE_PPC +# ifdef LISP_FEATURE_DARWIN +# define EXTERN(name,bytes) .globl _/**/name +# else +# define EXTERN(name,bytes) .globl name +# endif +# endif +/**/ +# if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64) +# define EXTERN(name,bytes) .global name +# endif + +# if defined(LISP_FEATURE_ALPHA) || defined(LISP_FEATURE_X86_64) +# define POINTERSIZE 8 +# else +# define POINTERSIZE 4 +# endif EXTERN(foreign_function_call_active, 4) -EXTERN(current_control_stack_pointer, 4) -EXTERN(current_control_frame_pointer, 4) -#if !defined(ibmrt) && !defined(__i386__) -EXTERN(current_binding_stack_pointer, 4) -EXTERN(dynamic_space_free_pointer, 4) -#endif - -#ifdef mips -EXTERN(current_flags_register, 4) -#endif +EXTERN(current_control_stack_pointer, POINTERSIZE) +EXTERN(current_control_frame_pointer, POINTERSIZE) +# if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) +EXTERN(current_binding_stack_pointer, POINTERSIZE) +# endif +# ifndef LISP_FEATURE_GENCGC +EXTERN(dynamic_space_free_pointer, POINTERSIZE) +# endif -#endif LANGUAGE_ASSEMBLY +#endif /* LANGUAGE_ASSEMBLY */ -#endif _INCLUDED_GLOBALS_H_ +#endif /* _INCLUDED_GLOBALS_H_ */