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.
7 /* Variables everybody needs to look at or frob on. */
12 #include "internals.h"
15 int foreign_function_call_active;
17 lispobj *current_control_stack_pointer;
18 lispobj *current_control_frame_pointer;
20 #ifndef BINDING_STACK_POINTER
21 lispobj *current_binding_stack_pointer;
24 lispobj *read_only_space;
25 lispobj *static_space;
26 lispobj *dynamic_0_space;
27 lispobj *dynamic_1_space;
28 unsigned dynamic_space_size;
29 lispobj *control_stack;
32 #if (defined(i386) || defined(__x86_64))
33 lispobj *control_stack_end;
35 lispobj *binding_stack;
37 lispobj *current_dynamic_space;
39 #ifndef ALLOCATION_POINTER
40 lispobj *current_dynamic_space_free_pointer;
42 #ifndef INTERNAL_GC_TRIGGER
43 lispobj *current_auto_gc_trigger;
46 unsigned long read_only_space_size;
47 unsigned long binding_stack_size;
48 unsigned long static_space_size;
49 unsigned long control_stack_size;
55 /* Space, stack, and free pointer vars are initialized by
56 validate() and coreparse(). */
58 #ifndef INTERNAL_GC_TRIGGER
59 /* No GC trigger yet */
60 current_auto_gc_trigger = NULL;
63 /* Set foreign function call active. */
64 foreign_function_call_active = 1;
66 /* Initialize the current lisp state. */
67 #if !(defined(i386) || defined(__x86_64))
68 current_control_stack_pointer = control_stack;
70 current_control_stack_pointer = control_stack_end;
73 current_control_frame_pointer = (lispobj *) 0;
74 #ifndef BINDING_STACK_POINTER
75 current_binding_stack_pointer = binding_stack;