maple_node
struct maple_node *node;
struct maple_node *node;
struct maple_node *alloc; /* A single allocated node for fast path writes */
struct maple_node *node; /* Decoded mas->node */
static __always_inline struct maple_node *mas_pop_node(struct ma_state *mas)
struct maple_node *ret;
static __always_inline unsigned char ma_data_end(struct maple_node *node,
struct maple_node *node;
static inline unsigned long ma_leaf_max_gap(struct maple_node *mn,
static inline struct maple_node *mt_alloc_one(gfp_t gfp)
struct maple_node *mn;
ma_max_gap(struct maple_node *node, unsigned long *gaps, enum maple_type mt,
struct maple_node *node;
struct maple_node *pnode;
struct maple_node *node = mte_to_node(parent);
struct maple_node *node;
static inline void mas_leaf_set_meta(struct maple_node *node,
static void ma_free_rcu(struct maple_node *node)
struct maple_node *tmp;
unsigned long node_copy(struct ma_state *mas, struct maple_node *src,
enum maple_type s_mt, struct maple_node *dst, unsigned char d_start,
void node_finalise(struct maple_node *node, enum maple_type mt,
struct maple_node *node;
struct maple_node *node;
struct maple_node *dst, *src;
struct maple_node *mn = cp->dst[d].node;
static __always_inline struct maple_node *mte_to_node(
return (struct maple_node *)((unsigned long)entry & ~MAPLE_NODE_MASK);
struct maple_node *node;
static inline struct maple_node *mas_mn(const struct ma_state *mas)
struct maple_node *node;
struct maple_node *node;
static inline struct maple_enode *mt_mk_node(const struct maple_node *node,
struct maple_node reuse, *newnode;
memset(&reuse, 0, sizeof(struct maple_node));
static inline void ma_init_slot(void __rcu **slot, const struct maple_node *mn,
memcpy(wr_mas->node, newnode, sizeof(struct maple_node));
static __always_inline bool ma_is_root(struct maple_node *node)
struct maple_node *node, const unsigned long index)
struct maple_node *node;
struct maple_node *node;
static int mas_next_node(struct ma_state *mas, struct maple_node *node,
struct maple_node *tmp;
struct maple_node *node;
struct maple_node *node = mas_mn(mas);
struct maple_node *node;
struct maple_node *node;
struct maple_node *node;
struct maple_node *node, *next;
struct maple_node *node, *start;
node = container_of(head, struct maple_node, rcu);
struct maple_node *node;
struct maple_node *node = mte_to_node(enode);
struct maple_node *node = mte_to_node(enode);
struct maple_node *mte_parent(const struct maple_enode *enode)
static __always_inline bool ma_dead_node(const struct maple_node *node)
struct maple_node *parent;
struct maple_node *node;
.align = sizeof(struct maple_node),
sizeof(struct maple_node), &args,
static inline unsigned long *ma_pivots(struct maple_node *node,
struct maple_node *node;
static inline unsigned long *ma_gaps(struct maple_node *node,
struct maple_node *node = mte_to_node(mas->node);
struct maple_node *new_node = mte_to_node(new_mas->node);
memcpy(new_node, node, sizeof(struct maple_node));
struct maple_node *node = mte_to_node(mas->node);
struct maple_node *new_node = mte_to_node(new_mas->node);
struct maple_node *node;
struct maple_node *node = mte_to_node(mn);
struct maple_node *node = mte_to_node(entry);
struct maple_node *p_mn, *node = mte_to_node(mte);
struct maple_node *parent;
static inline void __rcu **ma_slots(struct maple_node *mn, enum maple_type mt)
static inline struct maple_metadata *ma_meta(struct maple_node *mn,
static inline void ma_set_meta(struct maple_node *mn, enum maple_type mt,
static inline void mt_clear_meta(struct maple_tree *mt, struct maple_node *mn,
static inline unsigned char ma_meta_end(struct maple_node *mn,
static inline unsigned char ma_meta_gap(struct maple_node *mn)
static inline void ma_set_meta_gap(struct maple_node *mn, enum maple_type mt,
struct maple_node *node;
struct maple_node *node;
#define ma_mnode_ptr(x) ((struct maple_node *)(x))
struct maple_node *a_node; /* ancestor node. */
struct maple_node *p_node; /* parent node. */
static inline __init int not_empty(struct maple_node *node)
struct maple_node *mn;
struct maple_node *pnode;
struct maple_node *node_a, *node_b;
struct maple_node a, b;
return memcmp(&a, &b, sizeof(struct maple_node));
struct maple_node *node;
struct maple_node *node = mas_mn(mas);
static inline void mas_node_walk(struct ma_state *mas, struct maple_node *node,
struct maple_node *node;
struct maple_node *node = container_of(head, struct maple_node, rcu);