projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.16.32: weak hash tables
[sbcl.git]
/
src
/
runtime
/
gc-internal.h
diff --git
a/src/runtime/gc-internal.h
b/src/runtime/gc-internal.h
index
f04bf6e
..
7de67a1
100644
(file)
--- a/
src/runtime/gc-internal.h
+++ b/
src/runtime/gc-internal.h
@@
-69,7
+69,11
@@
NWORDS(unsigned long x, unsigned long n_bits)
* for SPARC users in that bit
*/
* for SPARC users in that bit
*/
+#if defined(LISP_FEATURE_SPARC)
+#define FUN_RAW_ADDR_OFFSET 0
+#else
#define FUN_RAW_ADDR_OFFSET (6*sizeof(lispobj) - FUN_POINTER_LOWTAG)
#define FUN_RAW_ADDR_OFFSET (6*sizeof(lispobj) - FUN_POINTER_LOWTAG)
+#endif
/* values for the *_alloc_* parameters */
#define FREE_PAGE_FLAG 0
/* values for the *_alloc_* parameters */
#define FREE_PAGE_FLAG 0
@@
-88,8
+92,12
@@
extern lispobj (*transother[256])(lispobj object);
extern long (*sizetab[256])(lispobj *where);
extern struct weak_pointer *weak_pointers; /* in gc-common.c */
extern long (*sizetab[256])(lispobj *where);
extern struct weak_pointer *weak_pointers; /* in gc-common.c */
+extern struct hash_table *weak_hash_tables; /* in gc-common.c */
extern void scavenge(lispobj *start, long n_words);
extern void scavenge(lispobj *start, long n_words);
+extern void scavenge_interrupt_contexts(void);
+extern void scav_weak_hash_tables(void);
+extern void scan_weak_hash_tables(void);
extern void scan_weak_pointers(void);
lispobj copy_large_unboxed_object(lispobj object, long nwords);
extern void scan_weak_pointers(void);
lispobj copy_large_unboxed_object(lispobj object, long nwords);
@@
-111,4
+119,10
@@
lispobj *gc_search_space(lispobj *start, size_t words, lispobj *pointer);
#include "cheneygc-internal.h"
#endif
#include "cheneygc-internal.h"
#endif
+#if N_WORD_BITS == 32
+# define SIMPLE_ARRAY_WORD_WIDETAG SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG
+#elif N_WORD_BITS == 64
+# define SIMPLE_ARRAY_WORD_WIDETAG SIMPLE_ARRAY_UNSIGNED_BYTE_64_WIDETAG
+#endif
+
#endif /* _GC_INTERNAL_H_ */
#endif /* _GC_INTERNAL_H_ */