X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.h;h=4d7ab2ec13feda804a9ce4ac0527a9e69603be76;hb=e26e24ac5b2c744fc5104f7123c5ddcf884dca02;hp=e3ff2d78503ced8e352570e591ecabd04874edd4;hpb=7572e0506af331534e6f97b027d56e8bea09410c;p=sbcl.git diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h index e3ff2d7..4d7ab2e 100644 --- a/src/runtime/runtime.h +++ b/src/runtime/runtime.h @@ -45,9 +45,25 @@ void os_preinit(); #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 /* @@ -131,6 +147,7 @@ extern struct dyndebug_config { int dyndebug_backtrace_when_lost; int dyndebug_sleep_when_lost; int dyndebug_io; + int dyndebug_runtime_link; } dyndebug_config; #ifdef LISP_FEATURE_GENCGC @@ -188,7 +205,7 @@ typedef unsigned int u32; 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 @@ -198,12 +215,15 @@ typedef pthread_t os_thread_t; 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) @@ -359,4 +379,6 @@ extern char *copied_string (char *string); # define GENCGC_IS_PRECISE 1 #endif +void *os_dlsym_default(char *name); + #endif /* _SBCL_RUNTIME_H_ */