0.7.13.28:
[sbcl.git] / src / runtime / cheneygc-internal.h
1 extern lispobj *from_space;
2 extern lispobj *from_space_free_pointer;
3
4 extern lispobj *new_space;
5 extern lispobj *new_space_free_pointer;
6
7
8 /* predicates */
9 /* #if defined(DEBUG_SPACE_PREDICATES) */
10 #if 0
11 boolean
12 from_space_p(lispobj object)
13 {
14     lispobj *ptr;
15
16     /* this can be called for untagged pointers as well as for 
17        descriptors, so this assertion's not applicable
18        gc_assert(is_lisp_pointer(object));
19     */
20     ptr = (lispobj *) native_pointer(object);
21
22     return ((from_space <= ptr) &&
23             (ptr < from_space_free_pointer));
24 }           
25
26 boolean
27 new_space_p(lispobj object)
28 {
29     lispobj *ptr;
30
31     /*    gc_assert(is_lisp_pointer(object)); */
32
33     ptr = (lispobj *) native_pointer(object);
34                 
35     return ((new_space <= ptr) &&
36             (ptr < new_space_free_pointer));
37 }           
38
39 #else
40
41 #define from_space_p(ptr) \
42         ((from_space <= ((lispobj *) ((pointer_sized_uint_t) ptr))) && \
43          (((lispobj *) ((pointer_sized_uint_t) ptr))< from_space_free_pointer))
44
45 #define new_space_p(ptr) \
46         ((new_space <= ((lispobj *) ((pointer_sized_uint_t) ptr))) && \
47          (((lispobj *) ((pointer_sized_uint_t) ptr)) < new_space_free_pointer))
48
49 #endif
50