/* Flags:
* MAPLE_ALLOC_RANGE Use allocation ranges (tracks gaps) in this tree
- * MAPLE_RCU Operate in read/copy/update mode for multi-readers.
+ * MAPLE_USE_RCU Operate in read/copy/update mode for multi-readers.
+ * MAPLE_HEIGHT_OFFSET The position of the tree height in the flags
+ * MAPLE_HEIGHT_MASK The mask for the maple tree height value.
*/
#define MAPLE_ALLOC_RANGE 1 // Bit 0
-#define MAPLE_RCU 2 // Bit 1
+#define MAPLE_USE_RCU 2 // Bit 1
#define MAPLE_HEIGHT_OFFSET 2 // Bits 2-4
-#define MAPLE_HEIGHT 28 // Bits 2-4
+#define MAPLE_HEIGHT_MASK 28 // Bits 2-4
struct maple_tree {
spinlock_t ma_lock;
unsigned int ma_flags;
static unsigned int mt_height(const struct maple_tree *mt)
{
- return (mt->ma_flags & MAPLE_HEIGHT) >> MAPLE_HEIGHT_OFFSET;
+ return (mt->ma_flags & MAPLE_HEIGHT_MASK) >> MAPLE_HEIGHT_OFFSET;
}
static void mas_set_height(struct ma_state *mas)
{
unsigned int new_flags = mas->tree->ma_flags;
- new_flags &= ~MAPLE_HEIGHT;
+ new_flags &= ~MAPLE_HEIGHT_MASK;
new_flags |= mas->depth << MAPLE_HEIGHT_OFFSET;
mas->tree->ma_flags = new_flags;
}