bfd8c6dceaac532e0daff98760563acec4c4c408
[projects/cmucl/cmucl.git] / src / lisp / globals.h
1 /* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/globals.h,v 1.13 2009/11/02 15:05:07 rtoy Rel $ */
2
3 #ifndef _GLOBALS_H_
4 #define _GLOBALS_H_
5
6 #ifndef LANGUAGE_ASSEMBLY
7
8 #include "lisp.h"
9
10 extern int foreign_function_call_active;
11
12 extern fpu_mode_t fpu_mode;
13
14 extern lispobj *current_control_stack_pointer;
15 extern lispobj *current_control_frame_pointer;
16
17 #if !defined(ibmrt) && !defined(i386)
18 extern lispobj *current_binding_stack_pointer;
19 #endif
20
21 extern lispobj *read_only_space;
22 extern lispobj *static_space;
23 extern lispobj *dynamic_0_space;
24 extern lispobj *dynamic_1_space;
25 extern unsigned dynamic_space_size;
26 extern unsigned static_size;
27 extern lispobj *control_stack;
28 extern lispobj *binding_stack;
29
30 extern unsigned long read_only_space_size;
31 extern unsigned long binding_stack_size;
32 extern unsigned long static_space_size;
33 extern unsigned long control_stack_size;
34
35 #if (defined(i386) || defined(__x86_64))
36 extern lispobj *control_stack_end;
37 #endif
38 extern lispobj *current_dynamic_space;
39
40 #if !defined(ibmrt) && !defined(i386)
41 extern lispobj *current_dynamic_space_free_pointer;
42 extern lispobj *current_auto_gc_trigger;
43 #endif
44
45 extern void globals_init(void);
46
47 #else /* LANGUAGE_ASSEMBLY */
48
49 /* These are needed by ./assem.s */
50
51 #ifdef ppc
52 #ifdef DARWIN
53 #define EXTERN(name,bytes) .globl _/**/name
54 #else
55 #define EXTERN(name,bytes) .globl _/**/name
56 #endif
57 #endif
58 #ifdef mips
59 #define EXTERN(name,bytes) .extern name bytes
60 #endif
61 #ifdef sparc
62 #ifdef SVR4
63 #define EXTERN(name,bytes) .global name
64 #else
65 #define EXTERN(name,bytes) .global _ ## name
66 #endif
67 #endif
68 #ifdef ibmrt
69 #define EXTERN(name,bytes) .globl _/**/name
70 #endif
71
72 #ifdef i386
73 #ifdef __linux__
74 #define EXTERN(name,bytes) .globl _/**/name
75 #else
76 #define EXTERN(name,bytes) .global _ ## name
77 #endif
78 #endif
79
80 EXTERN(foreign_function_call_active, 4)
81
82     EXTERN(current_control_stack_pointer, 4)
83     EXTERN(current_control_frame_pointer, 4)
84 #if !defined(ibmrt) && !defined(i386)
85     EXTERN(current_binding_stack_pointer, 4)
86     EXTERN(current_dynamic_space_free_pointer, 4)
87 #endif
88 #ifdef mips
89     EXTERN(current_flags_register, 4)
90 #endif
91 #endif /* LANGUAGE_ASSEMBLY */
92 #endif /* _GLOBALS_H_ */