#define _GC_H
+#include "config.h"
+#include "vm/types.h"
+
+#if defined(ENABLE_THREADS)
+# include "threads/native/threads.h"
+#endif
+
+
+/* Configuration Switches *****************************************************/
+
+/*#define GCCONF_FINALIZER*/
+/*#define GCCONF_HDRFLAG_REFERENCING*/
+
+
/* Debugging ******************************************************************/
#define GC_DEBUGGING
#define GC_TEST_FLAGS(obj, flags) ((obj)->hdrflags & (flags))
#define POINTS_INTO(ptr, ptr_start, ptr_end) \
- ((void *) (ptr) > (ptr_start) && (void *) (ptr) < (ptr_end))
+ ((void *) (ptr) >= (ptr_start) && (void *) (ptr) < (ptr_end))
/* Global Variables ***********************************************************/
+extern bool gc_pending;
extern bool gc_notify_finalizer;
+/* Prototypes *****************************************************************/
+
+#if defined(ENABLE_THREADS)
+void gc_suspend(threadobject *thread, ucontext_t *context);
+#endif
+
+
/* Statistics *****************************************************************/
#if defined(ENABLE_STATISTICS)