#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
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
#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;
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);
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