#endif
#if defined(LISP_FEATURE_SB_SAFEPOINT)
+
+typedef enum {
+ GC_NONE=0,
+ GC_FLIGHT,
+ GC_MESSAGE,
+ GC_INVOKED,
+ GC_QUIET,
+ GC_SETTLED,
+ GC_COLLECT,
+ GC_NPHASES
+} gc_phase_t;
+
void map_gc_page();
void unmap_gc_page();
int check_pending_interrupts();
+void gc_state_lock();
+void gc_state_wait(gc_phase_t);
+void gc_state_unlock();
+
#endif
/*
int dyndebug_backtrace_when_lost;
int dyndebug_sleep_when_lost;
int dyndebug_io;
+ int dyndebug_runtime_link;
} dyndebug_config;
#ifdef LISP_FEATURE_GENCGC
typedef signed int s32;
/* this is an integral type the same length as a machine pointer */
-typedef unsigned long pointer_sized_uint_t ;
+typedef uintptr_t pointer_sized_uint_t;
#include <sys/types.h>
typedef pid_t os_thread_t;
#endif
+typedef uintptr_t uword_t;
+typedef intptr_t sword_t;
+
/* FIXME: we do things this way because of the alpha32 port. once
alpha64 has arrived, all this nastiness can go away */
#if 64 == N_WORD_BITS
#define LOW_WORD(c) ((pointer_sized_uint_t)c)
#define OBJ_FMTX "lx"
-typedef unsigned long lispobj;
+typedef uintptr_t lispobj;
#else
#define OBJ_FMTX "x"
#define LOW_WORD(c) ((long)(c) & 0xFFFFFFFFL)
# define GENCGC_IS_PRECISE 1
#endif
+void *os_dlsym_default(char *name);
+
#endif /* _SBCL_RUNTIME_H_ */