X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.h;h=f204cf157a247ee405183ee96c3236c1a17e590a;hb=7f0f521aa3f6b45259c5dfd5f7f11adcd1a7cac6;hp=6d0a39e39538b730a21a0ead53acfc92b2b8c6fc;hpb=6fb6e66f531dfb6140ec3e0cc8f84f6ecd1927ca;p=sbcl.git diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h index 6d0a39e..f204cf1 100644 --- a/src/runtime/runtime.h +++ b/src/runtime/runtime.h @@ -38,15 +38,13 @@ #define N_LOWTAG_BITS 3 #define LOWTAG_MASK ((1<>N_TYPE_BITS)) +#define HeaderValue(obj) ((unsigned long) ((obj) >> N_WIDETAG_BITS)) #define CONS(obj) ((struct cons *)((obj)-LIST_POINTER_LOWTAG)) #define SYMBOL(obj) ((struct symbol *)((obj)-OTHER_POINTER_LOWTAG)) @@ -69,10 +67,15 @@ typedef signed int s32; typedef u32 lispobj; static inline int -lowtagof(lispobj obj) { +lowtag_of(lispobj obj) { return obj & LOWTAG_MASK; } +static inline int +widetag_of(lispobj obj) { + return obj & WIDETAG_MASK; +} + /* Is the Lisp object obj something with pointer nature (as opposed to * e.g. a fixnum or character or unbound marker)? */ static inline int