Merge branch 'master' into boehm-demers-weiser-gc
[bpt/guile.git] / libguile / gc.h
index 1173012..4692a49 100644 (file)
@@ -3,7 +3,7 @@
 #ifndef SCM_GC_H
 #define SCM_GC_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2002, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -134,10 +134,15 @@ SCM_API int scm_debug_cells_gc_interval ;
 void scm_i_expensive_validation_check (SCM cell);
 #endif
 
-SCM_API scm_i_pthread_mutex_t scm_i_gc_admin_mutex;
+SCM_INTERNAL scm_i_pthread_mutex_t scm_i_gc_admin_mutex;
 
-#define scm_gc_running_p (SCM_I_CURRENT_THREAD->gc_running_p)
-SCM_API scm_i_pthread_mutex_t scm_i_sweep_mutex;
+#define scm_gc_running_p  0
+SCM_INTERNAL scm_i_pthread_mutex_t scm_i_sweep_mutex;
+
+#ifdef __ia64__
+void *scm_ia64_register_backing_store_base (void);
+void *scm_ia64_ar_bsp (const void *);
+#endif
 
 \f
 
@@ -160,24 +165,13 @@ SCM_API size_t scm_max_segment_size;
 
 #define SCM_SET_FREELIST_LOC(key,ptr) scm_i_pthread_setspecific ((key), (ptr))
 #define SCM_FREELIST_LOC(key) ((SCM *) scm_i_pthread_getspecific (key))
-SCM_API scm_i_pthread_key_t scm_i_freelist;
-SCM_API scm_i_pthread_key_t scm_i_freelist2;
 SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist;
 SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist2;
 
-
-SCM_API unsigned long scm_gc_cells_swept;
-SCM_API unsigned long scm_gc_cells_collected;
-SCM_API unsigned long scm_gc_malloc_collected;
-SCM_API unsigned long scm_gc_ports_collected;
-SCM_API unsigned long scm_cells_allocated;
-SCM_API int scm_gc_cell_yield_percentage;
-SCM_API int scm_gc_malloc_yield_percentage;
 SCM_API unsigned long scm_mallocated;
+SCM_API unsigned long scm_gc_ports_collected;
 SCM_API unsigned long scm_mtrigger;
 
-
-
 SCM_API SCM scm_after_gc_hook;
 
 SCM_API scm_t_c_hook scm_before_gc_c_hook;
@@ -208,11 +202,12 @@ SCM_API SCM scm_set_debug_cell_accesses_x (SCM flag);
 
 
 SCM_API SCM scm_object_address (SCM obj);
+SCM_API SCM scm_gc_enable (void);
+SCM_API SCM scm_gc_disable (void);
+SCM_API SCM scm_gc_dump (void);
 SCM_API SCM scm_gc_stats (void);
 SCM_API SCM scm_gc_live_object_stats (void);
 SCM_API SCM scm_gc (void);
-SCM_API void scm_gc_for_alloc (struct scm_t_cell_type_statistics *freelist);
-SCM_API SCM scm_gc_for_newcell (struct scm_t_cell_type_statistics *master, SCM *freelist);
 SCM_API void scm_i_gc (const char *what);
 SCM_API void scm_gc_mark (SCM p);
 SCM_API int scm_in_heap_p (SCM value);
@@ -275,7 +270,6 @@ SCM_API void scm_gc_register_roots (SCM *b, unsigned long n);
 SCM_API void scm_gc_unregister_roots (SCM *b, unsigned long n);
 SCM_API void scm_storage_prehistory (void);
 SCM_API int scm_init_storage (void);
-SCM_API void *scm_get_stack_base (void);
 SCM_API void scm_init_gc (void);
 
 #if SCM_ENABLE_DEPRECATED == 1