Fix make-array transforms.
[sbcl.git] / src / runtime / gc.h
index 2929013..a028466 100644 (file)
 
 #ifndef _GC_H_
 #define _GC_H_
-typedef signed long page_index_t;
+
+#include "sbcl.h"
+#include <stdint.h>
+
+#define PAGE_BYTES BACKEND_PAGE_BYTES
+
+typedef intptr_t page_index_t;
+#ifdef LISP_FEATURE_WIN32
+#define PAGE_INDEX_FMT "Id"
+#else
+#define PAGE_INDEX_FMT "ld"
+#endif
+
 typedef signed char generation_index_t;
 
 extern void gc_init(void);
@@ -29,58 +41,10 @@ extern void gc_init_tables(void);
 extern void set_auto_gc_trigger(os_vm_size_t usage);
 extern void clear_auto_gc_trigger(void);
 
-extern int maybe_gc_pending;
-
 #include "fixnump.h"
 
-#if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
+extern boolean maybe_gc(os_context_t *context);
 
-#define set_alloc_pointer(value)                \
-    SetSymbolValue(ALLOCATION_POINTER, value, 0)
-#define get_alloc_pointer()                     \
-    SymbolValue(ALLOCATION_POINTER, 0)
-#define get_binding_stack_pointer(thread)       \
-    SymbolValue(BINDING_STACK_POINTER, thread)
-#define get_pseudo_atomic_atomic(thread)        \
-    SymbolValue(PSEUDO_ATOMIC_ATOMIC, thread)
-#define set_pseudo_atomic_atomic(thread)                                \
-    SetSymbolValue(PSEUDO_ATOMIC_ATOMIC, make_fixnum(1), thread);
-#define clear_pseudo_atomic_atomic(thread)                      \
-    SetSymbolValue(PSEUDO_ATOMIC_ATOMIC, make_fixnum(0), thread);
-#define get_pseudo_atomic_interrupted(thread)                   \
-    fixnum_value(SymbolValue(PSEUDO_ATOMIC_INTERRUPTED, thread))
-#define clear_pseudo_atomic_interrupted(thread)                         \
-    SetSymbolValue(PSEUDO_ATOMIC_INTERRUPTED, make_fixnum(0), thread)
-#define set_pseudo_atomic_interrupted(thread)                           \
-    SetSymbolValue(PSEUDO_ATOMIC_INTERRUPTED, make_fixnum(1), thread)
-
-#elif defined(LISP_FEATURE_PPC) && defined(LISP_FEATURE_GENCGC)
-
-#define set_alloc_pointer(value) \
-    (dynamic_space_free_pointer =                                       \
-     (value) | (((unsigned long)dynamic_space_free_pointer) & LOWTAG_MASK))
-
-#define get_alloc_pointer()                                     \
-    ((unsigned long) dynamic_space_free_pointer & ~LOWTAG_MASK)
-#define get_binding_stack_pointer(thread)       \
-    (current_binding_stack_pointer)
-#define get_pseudo_atomic_atomic(thread)                                \
-    ((unsigned long)dynamic_space_free_pointer & flag_PseudoAtomic)
-#define set_pseudo_atomic_atomic(thread)                                \
-    (dynamic_space_free_pointer                                         \
-     = (lispobj*) ((unsigned long)dynamic_space_free_pointer | flag_PseudoAtomic))
-#define clear_pseudo_atomic_atomic(thread)                              \
-    (dynamic_space_free_pointer                                         \
-     = (lispobj*) ((unsigned long) dynamic_space_free_pointer & ~flag_PseudoAtomic))
-#define get_pseudo_atomic_interrupted(thread)                           \
-    ((unsigned long) dynamic_space_free_pointer & flag_PseudoAtomicInterrupted)
-#define clear_pseudo_atomic_interrupted(thread)                         \
-    (dynamic_space_free_pointer                                         \
-     = (lispobj*) ((unsigned long) dynamic_space_free_pointer & ~flag_PseudoAtomicInterrupted))
-#define set_pseudo_atomic_interrupted(thread)                           \
-    (dynamic_space_free_pointer                                         \
-     = (lispobj*) ((unsigned long) dynamic_space_free_pointer | flag_PseudoAtomicInterrupted))
-
-#endif
+extern os_vm_size_t bytes_consed_between_gcs;
 
 #endif /* _GC_H_ */