2 * This software is part of the SBCL system. See the README file for
5 * This software is derived from the CMU CL system, which was
6 * written at Carnegie Mellon University and released into the
7 * public domain. The software is in the public domain and is
8 * provided with absolutely no warranty. See the COPYING and CREDITS
9 * files for more information.
16 #if !defined(_INCLUDE_GLOBALS_H_)
17 #define _INCLUDED_GLOBALS_H_
19 #ifndef LANGUAGE_ASSEMBLY
23 extern int foreign_function_call_active;
25 extern lispobj *current_control_stack_pointer;
26 extern lispobj *current_control_frame_pointer;
27 #if !defined(ibmrt) && !defined(__i386__)
28 extern lispobj *current_binding_stack_pointer;
31 extern lispobj *read_only_space;
32 extern lispobj *static_space;
33 extern lispobj *control_stack;
34 extern lispobj *binding_stack;
36 extern lispobj *control_stack_end;
38 #if !defined(ibmrt) && !defined(__i386__)
39 extern lispobj *dynamic_space_free_pointer;
40 extern lispobj *current_auto_gc_trigger;
43 extern void globals_init(void);
45 #else LANGUAGE_ASSEMBLY
47 /* These are needed by ./assem.s */
50 #define EXTERN(name,bytes) .extern name bytes
54 #define EXTERN(name,bytes) .global name
56 #define EXTERN(name,bytes) .global _ ## name
60 #define EXTERN(name,bytes) .globl _/**/name
65 #define EXTERN(name,bytes) .globl _/**/name
67 #define EXTERN(name,bytes) .global _ ## name
71 EXTERN(foreign_function_call_active, 4)
73 EXTERN(current_control_stack_pointer, 4)
74 EXTERN(current_control_frame_pointer, 4)
75 #if !defined(ibmrt) && !defined(__i386__)
76 EXTERN(current_binding_stack_pointer, 4)
77 EXTERN(dynamic_space_free_pointer, 4)
81 EXTERN(current_flags_register, 4)
84 #endif LANGUAGE_ASSEMBLY
86 #endif _INCLUDED_GLOBALS_H_