#ifdef LISP_FEATURE_GENCGC
#include "gencgc-alloc-region.h"
#else
-#error "threading doesn't work with cheney gc yet"
+struct alloc_region { };
#endif
#include "genesis/symbol.h"
#include "genesis/static-symbols.h"
static inline lispobj SymbolValue(u32 tagged_symbol_pointer, void *thread) {
struct symbol *sym= (struct symbol *)
- (tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
+ (pointer_sized_uint_t)(tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
#ifdef LISP_FEATURE_SB_THREAD
if(thread && sym->tls_index) {
lispobj r=
}
static inline lispobj SymbolTlValue(u32 tagged_symbol_pointer, void *thread) {
struct symbol *sym= (struct symbol *)
- (tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
+ (pointer_sized_uint_t)(tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
#ifdef LISP_FEATURE_SB_THREAD
return ((union per_thread_data *)thread)
->dynamic_values[fixnum_value(sym->tls_index)];
static inline void SetSymbolValue(u32 tagged_symbol_pointer,lispobj val, void *thread) {
struct symbol *sym= (struct symbol *)
- (tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
+ (pointer_sized_uint_t)(tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
#ifdef LISP_FEATURE_SB_THREAD
if(thread && sym->tls_index) {
lispobj *pr= &(((union per_thread_data *)thread)
static inline void SetTlSymbolValue(u32 tagged_symbol_pointer,lispobj val, void *thread) {
#ifdef LISP_FEATURE_SB_THREAD
struct symbol *sym= (struct symbol *)
- (tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
+ (pointer_sized_uint_t)(tagged_symbol_pointer-OTHER_POINTER_LOWTAG);
((union per_thread_data *)thread)
->dynamic_values[fixnum_value(sym->tls_index)]
=val;
#endif
}
-
+int arch_os_thread_init(struct thread *thread);
+extern struct thread *arch_os_get_current_thread();
#endif /* _INCLUDE_THREAD_H_ */