| Commit | Line | Data |
|---|---|---|
| eeab7066 RT |
1 | /* |
| 2 | ||
| 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. | |
| 5 | ||
| 6 | */ | |
| 62957726 | 7 | |
| e67c0397 | 8 | #ifndef _GLOBALS_H_ |
| 9 | #define _GLOBALS_H_ | |
| 62957726 | 10 | |
| 11 | #ifndef LANGUAGE_ASSEMBLY | |
| 12 | ||
| 13 | #include "lisp.h" | |
| 14 | ||
| 15 | extern int foreign_function_call_active; | |
| 16 | ||
| 9edd3c4b | 17 | extern fpu_mode_t fpu_mode; |
| 18 | ||
| 62957726 | 19 | extern lispobj *current_control_stack_pointer; |
| 20 | extern lispobj *current_control_frame_pointer; | |
| 9a8c1c2f | 21 | |
| 5ced0fdf | 22 | #if !defined(ibmrt) && !defined(i386) |
| 62957726 | 23 | extern lispobj *current_binding_stack_pointer; |
| 24 | #endif | |
| 25 | ||
| 26 | extern lispobj *read_only_space; | |
| 27 | extern lispobj *static_space; | |
| 28 | extern lispobj *dynamic_0_space; | |
| 29 | extern lispobj *dynamic_1_space; | |
| a7070998 | 30 | extern unsigned dynamic_space_size; |
| 44a8f0c7 | 31 | extern unsigned static_size; |
| 62957726 | 32 | extern lispobj *control_stack; |
| 33 | extern lispobj *binding_stack; | |
| 9a8c1c2f | 34 | |
| 44a8f0c7 RT |
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; | |
| 39 | ||
| d087598d | 40 | #if (defined(i386) || defined(__x86_64)) |
| 5ced0fdf | 41 | extern lispobj *control_stack_end; |
| 42 | #endif | |
| 62957726 | 43 | extern lispobj *current_dynamic_space; |
| 9a8c1c2f | 44 | |
| d01310f2 | 45 | #if !defined(ibmrt) && !defined(i386) |
| 62957726 | 46 | extern lispobj *current_dynamic_space_free_pointer; |
| 47 | extern lispobj *current_auto_gc_trigger; | |
| 48 | #endif | |
| 49 | ||
| 50 | extern void globals_init(void); | |
| 51 | ||
| 9a8c1c2f | 52 | #else /* LANGUAGE_ASSEMBLY */ |
| 62957726 | 53 | |
| 54 | /* These are needed by ./assem.s */ | |
| 55 | ||
| eb44537a | 56 | #ifdef ppc |
| 57 | #ifdef DARWIN | |
| 58 | #define EXTERN(name,bytes) .globl _/**/name | |
| 59 | #else | |
| 60 | #define EXTERN(name,bytes) .globl _/**/name | |
| 61 | #endif | |
| 62 | #endif | |
| 62957726 | 63 | #ifdef mips |
| 64 | #define EXTERN(name,bytes) .extern name bytes | |
| 65 | #endif | |
| 66 | #ifdef sparc | |
| 0d38205a | 67 | #ifdef SVR4 |
| 68 | #define EXTERN(name,bytes) .global name | |
| 69 | #else | |
| 7648921f | 70 | #define EXTERN(name,bytes) .global _ ## name |
| 62957726 | 71 | #endif |
| 0d38205a | 72 | #endif |
| 62957726 | 73 | #ifdef ibmrt |
| 74 | #define EXTERN(name,bytes) .globl _/**/name | |
| 75 | #endif | |
| 76 | ||
| 5ced0fdf | 77 | #ifdef i386 |
| 78 | #ifdef __linux__ | |
| 79 | #define EXTERN(name,bytes) .globl _/**/name | |
| 80 | #else | |
| 81 | #define EXTERN(name,bytes) .global _ ## name | |
| 82 | #endif | |
| 83 | #endif | |
| 84 | ||
| 62957726 | 85 | EXTERN(foreign_function_call_active, 4) |
| 86 | ||
| 9a8c1c2f | 87 | EXTERN(current_control_stack_pointer, 4) |
| 88 | EXTERN(current_control_frame_pointer, 4) | |
| 5ced0fdf | 89 | #if !defined(ibmrt) && !defined(i386) |
| 9a8c1c2f | 90 | EXTERN(current_binding_stack_pointer, 4) |
| 91 | EXTERN(current_dynamic_space_free_pointer, 4) | |
| 62957726 | 92 | #endif |
| 62957726 | 93 | #ifdef mips |
| 9a8c1c2f | 94 | EXTERN(current_flags_register, 4) |
| 62957726 | 95 | #endif |
| 48cccfec | 96 | #endif /* LANGUAGE_ASSEMBLY */ |
| e67c0397 | 97 | #endif /* _GLOBALS_H_ */ |