18 #ifndef GRN_DAT_CHECK_HPP_
19 #define GRN_DAT_CHECK_HPP_
31 return value_ == rhs.value_;
37 return (value_ & IS_OFFSET_FLAG) == IS_OFFSET_FLAG;
42 return value_ & ~IS_OFFSET_FLAG;
49 return (value_ & IS_PHANTOM_FLAG) == IS_PHANTOM_FLAG;
66 return value_ & (IS_PHANTOM_FLAG |
LABEL_MASK);
82 value_ |= IS_OFFSET_FLAG;
85 value_ &= ~IS_OFFSET_FLAG;
92 value_ = (value_ & IS_OFFSET_FLAG) | x;
100 value_ |= IS_PHANTOM_FLAG;
103 value_ = (value_ & IS_OFFSET_FLAG) | (
INVALID_LABEL << CHILD_SHIFT) |
111 value_ = (value_ & ~(
BLOCK_MASK << NEXT_SHIFT)) | (x << NEXT_SHIFT);
116 value_ = (value_ & ~(
BLOCK_MASK << PREV_SHIFT)) | (x << PREV_SHIFT);
128 value_ = (value_ & ~(
LABEL_MASK << CHILD_SHIFT)) | (x << CHILD_SHIFT);
134 value_ = (value_ & ~(
LABEL_MASK << SIBLING_SHIFT)) | (x << SIBLING_SHIFT);
140 static const UInt32 IS_OFFSET_FLAG = 1U << 31;
141 static const UInt32 IS_PHANTOM_FLAG = 1U << 30;
142 static const UInt32 NEXT_SHIFT = 9;
143 static const UInt32 PREV_SHIFT = 18;
144 static const UInt32 CHILD_SHIFT = 9;
145 static const UInt32 SIBLING_SHIFT = 18;
151 #endif // GRN_DAT_CHECK_HPP_