Lines Matching +full:last +full:- +full:level
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
29 * The in-core btree key. Overlapping btrees actually store two keys
53 * This nonsense is to make -wlint happy.
82 #define XFS_BB_ALL_BITS ((1 << XFS_BB_NUM_BITS) - 1)
84 #define XFS_BB_ALL_BITS_CRC ((1 << XFS_BB_NUM_BITS_CRC) - 1)
90 XFS_STATS_INC_OFF((cur)->bc_mp, (cur)->bc_statoff + __XBTS_ ## stat)
92 XFS_STATS_ADD_OFF((cur)->bc_mp, (cur)->bc_statoff + __XBTS_ ## stat, val)
117 /* update last record information */
123 /* records in block/level */
124 int (*get_minrecs)(struct xfs_btree_cur *cur, int level);
125 int (*get_maxrecs)(struct xfs_btree_cur *cur, int level);
128 int (*get_dmaxrecs)(struct xfs_btree_cur *cur, int level);
145 * Difference between key2 and key1 -- positive if key1 > key2,
181 /* Per-AG btree information. */
199 /* Btree-in-inode cursor information */
223 uint bc_flags; /* btree features - below */
225 struct xfs_buf *bc_bufs[XFS_BTREE_MAXLEVELS]; /* buf ptr per level */
228 #define XFS_BTCUR_LEFTRA 1 /* left sibling has been read-ahead */
229 #define XFS_BTCUR_RIGHTRA 2 /* right sibling has been read-ahead */
243 #define XFS_BTREE_LASTREC_UPDATE (1<<2) /* track last rec externally */
260 #define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)((bp)->b_addr))
267 struct xfs_btree_block *block, int level, struct xfs_buf *bp);
269 struct xfs_btree_block *block, int level, struct xfs_buf *bp);
278 int level, /* level of the btree block */
288 int level); /* btree block level */
297 int level); /* btree block level */
309 * Allocate a new one, copy the record, re-get the buffers.
317 * Compute first and last byte offsets for the fields given.
326 int *last); /* output: last byte offset */
330 * Long-form addressing.
342 * Read-ahead the block, don't wait for it, don't return a buffer.
343 * Long-form addressing.
353 * Read-ahead the block, don't wait for it, don't return a buffer.
354 * Short-form addressing.
372 __u16 level,
382 __u16 level,
420 return be16_to_cpu(block->bb_numrecs); in xfs_btree_get_numrecs()
426 block->bb_numrecs = cpu_to_be16(numrecs); in xfs_btree_set_numrecs()
431 return be16_to_cpu(block->bb_level); in xfs_btree_get_level()
460 * iterating, and non-zero to stop iterating. Any non-zero value will be
461 * passed up to the _query_range caller. The special value -ECANCELED can be
474 typedef int (*xfs_btree_visit_blocks_fn)(struct xfs_btree_cur *cur, int level,
496 int xfs_btree_lookup_get_block(struct xfs_btree_cur *cur, int level,
499 int level, struct xfs_buf **bpp);
516 /* Does this cursor point to the last block in the given level? */
520 int level) in xfs_btree_islastblock() argument
525 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_islastblock()
526 ASSERT(block && xfs_btree_check_block(cur, block, level, bp) == 0); in xfs_btree_islastblock()
528 if (cur->bc_flags & XFS_BTREE_LONG_PTRS) in xfs_btree_islastblock()
529 return block->bb_u.l.bb_rightsib == cpu_to_be64(NULLFSBLOCK); in xfs_btree_islastblock()
530 return block->bb_u.s.bb_rightsib == cpu_to_be32(NULLAGBLOCK); in xfs_btree_islastblock()
541 struct xfs_buf *bp, int level, int numrecs);