Lines Matching refs:key
135 static void dec_key(struct btree_geo *geo, unsigned long *key) in dec_key() argument
141 val = key[i]; in dec_key()
142 key[i] = val - 1; in dec_key()
159 unsigned long *key) in setkey() argument
161 longcpy(bkey(geo, node, n), key, geo->keylen); in setkey()
208 unsigned long *key) in btree_last() argument
219 longcpy(key, bkey(geo, node, 0), geo->keylen); in btree_last()
225 unsigned long *key) in keycmp() argument
227 return longcmp(bkey(geo, node, pos), key, geo->keylen); in keycmp()
230 static int keyzero(struct btree_geo *geo, unsigned long *key) in keyzero() argument
235 if (key[i]) in keyzero()
242 unsigned long *key) in btree_lookup() argument
252 if (keycmp(geo, node, i, key) <= 0) in btree_lookup()
265 if (keycmp(geo, node, i, key) == 0) in btree_lookup()
272 unsigned long *key, void *val) in btree_update() argument
282 if (keycmp(geo, node, i, key) <= 0) in btree_update()
295 if (keycmp(geo, node, i, key) == 0) { in btree_update()
316 unsigned long *retry_key = NULL, key[MAX_KEYLEN]; in btree_get_prev() local
323 longcpy(key, __key, geo->keylen); in btree_get_prev()
325 dec_key(geo, key); in btree_get_prev()
330 if (keycmp(geo, node, i, key) <= 0) in btree_get_prev()
345 if (keycmp(geo, node, i, key) <= 0) { in btree_get_prev()
355 longcpy(key, retry_key, geo->keylen); in btree_get_prev()
364 unsigned long *key) in getpos() argument
369 if (keycmp(geo, node, i, key) <= 0) in getpos()
389 unsigned long *key, int level) in find_level() argument
396 if (keycmp(geo, node, i, key) <= 0) in find_level()
404 setkey(geo, node, i, key); in find_level()
449 unsigned long *key, void *val, int level, in btree_insert_level() argument
463 node = find_level(head, geo, key, level); in btree_insert_level()
464 pos = getpos(geo, node, key); in btree_insert_level()
467 BUG_ON(pos < fill && keycmp(geo, node, pos, key) == 0); in btree_insert_level()
504 setkey(geo, node, pos, key); in btree_insert_level()
511 unsigned long *key, void *val, gfp_t gfp) in btree_insert() argument
514 return btree_insert_level(head, geo, key, val, 1, gfp); in btree_insert()
519 unsigned long *key, int level);
541 unsigned long *key, int level, unsigned long *child, int fill) in rebalance() argument
551 btree_remove_level(head, geo, key, level + 1); in rebalance()
556 parent = find_level(head, geo, key, level + 1); in rebalance()
557 i = getpos(geo, parent, key); in rebalance()
592 unsigned long *key, int level) in btree_remove_level() argument
605 node = find_level(head, geo, key, level); in btree_remove_level()
606 pos = getpos(geo, node, key); in btree_remove_level()
608 if ((level == 1) && (keycmp(geo, node, pos, key) != 0)) in btree_remove_level()
621 rebalance(head, geo, key, level, node, fill - 1); in btree_remove_level()
630 unsigned long *key) in btree_remove() argument
635 return btree_remove_level(head, geo, key, 1); in btree_remove()
642 unsigned long key[MAX_KEYLEN]; in btree_merge() local
661 if (!btree_last(victim, geo, key)) in btree_merge()
663 val = btree_lookup(victim, geo, key); in btree_merge()
664 err = btree_insert(target, geo, key, val, gfp); in btree_merge()
669 longcpy(dup, key, geo->keylen); in btree_merge()
679 unsigned long *key, size_t index, in __btree_for_each() argument
702 static void empty(void *elem, unsigned long opaque, unsigned long *key, in empty() argument
707 void visitorl(void *elem, unsigned long opaque, unsigned long *key, in visitorl() argument
712 func(elem, opaque, *key, index); in visitorl()
720 u32 *key = (void *)__key; in visitor32() local
722 func(elem, opaque, *key, index); in visitor32()
730 u64 *key = (void *)__key; in visitor64() local
732 func(elem, opaque, *key, index); in visitor64()
740 u64 *key = (void *)__key; in visitor128() local
742 func(elem, opaque, key[0], key[1], index); in visitor128()
749 unsigned long *key, in btree_visitor() argument
767 unsigned long *key, in btree_grim_visitor() argument