3 This code was written as part of the CMU Common Lisp project at
4 Carnegie Mellon University, and has been placed in the public domain.
11 #ifndef LANGUAGE_ASSEMBLY
15 extern int foreign_function_call_active;
17 extern fpu_mode_t fpu_mode;
19 extern lispobj *current_control_stack_pointer;
20 extern lispobj *current_control_frame_pointer;
22 #if !defined(ibmrt) && !defined(i386)
23 extern lispobj *current_binding_stack_pointer;
26 extern lispobj *read_only_space;
27 extern lispobj *static_space;
28 extern lispobj *dynamic_0_space;
29 extern lispobj *dynamic_1_space;
30 extern unsigned dynamic_space_size;
31 extern unsigned static_size;
32 extern lispobj *control_stack;
33 extern lispobj *binding_stack;
35 extern unsigned long read_only_space_size;
36 extern unsigned long binding_stack_size;
37 extern unsigned long static_space_size;
38 extern unsigned long control_stack_size;
40 #if (defined(i386) || defined(__x86_64))
41 extern lispobj *control_stack_end;
43 extern lispobj *current_dynamic_space;
45 #if !defined(ibmrt) && !defined(i386)
46 extern lispobj *current_dynamic_space_free_pointer;
47 extern lispobj *current_auto_gc_trigger;
50 extern void globals_init(void);
52 #else /* LANGUAGE_ASSEMBLY */
54 /* These are needed by ./assem.s */
58 #define EXTERN(name,bytes) .globl _/**/name
60 #define EXTERN(name,bytes) .globl _/**/name
64 #define EXTERN(name,bytes) .extern name bytes
68 #define EXTERN(name,bytes) .global name
70 #define EXTERN(name,bytes) .global _ ## name
74 #define EXTERN(name,bytes) .globl _/**/name
79 #define EXTERN(name,bytes) .globl _/**/name
81 #define EXTERN(name,bytes) .global _ ## name
85 EXTERN(foreign_function_call_active, 4)
87 EXTERN(current_control_stack_pointer, 4)
88 EXTERN(current_control_frame_pointer, 4)
89 #if !defined(ibmrt) && !defined(i386)
90 EXTERN(current_binding_stack_pointer, 4)
91 EXTERN(current_dynamic_space_free_pointer, 4)
94 EXTERN(current_flags_register, 4)
96 #endif /* LANGUAGE_ASSEMBLY */
97 #endif /* _GLOBALS_H_ */