• Home
  • Raw
  • Download

Lines Matching +full:max +full:- +full:cur

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)
89 #define XFS_BTREE_STATS_INC(cur, stat) \ argument
90 XFS_STATS_INC_OFF((cur)->bc_mp, (cur)->bc_statoff + __XBTS_ ## stat)
91 #define XFS_BTREE_STATS_ADD(cur, stat, val) \ argument
92 XFS_STATS_ADD_OFF((cur)->bc_mp, (cur)->bc_statoff + __XBTS_ ## stat, val)
94 #define XFS_BTREE_MAXLEVELS 9 /* max of all btrees */
107 void (*set_root)(struct xfs_btree_cur *cur,
111 int (*alloc_block)(struct xfs_btree_cur *cur,
115 int (*free_block)(struct xfs_btree_cur *cur, struct xfs_buf *bp);
118 void (*update_lastrec)(struct xfs_btree_cur *cur,
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);
133 void (*init_rec_from_cur)(struct xfs_btree_cur *cur,
135 void (*init_ptr_from_cur)(struct xfs_btree_cur *cur,
141 int64_t (*key_diff)(struct xfs_btree_cur *cur,
145 * Difference between key2 and key1 -- positive if key1 > key2,
148 int64_t (*diff_two_keys)(struct xfs_btree_cur *cur,
155 int (*keys_inorder)(struct xfs_btree_cur *cur,
160 int (*recs_inorder)(struct xfs_btree_cur *cur,
181 /* Per-AG btree information. */
199 /* Btree-in-inode cursor information */
223 uint bc_flags; /* btree features - below */
228 #define XFS_BTCUR_LEFTRA 1 /* left sibling has been read-ahead */
229 #define XFS_BTCUR_RIGHTRA 2 /* right sibling has been read-ahead */
260 #define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)((bp)->b_addr))
266 xfs_failaddr_t __xfs_btree_check_lblock(struct xfs_btree_cur *cur,
268 xfs_failaddr_t __xfs_btree_check_sblock(struct xfs_btree_cur *cur,
276 struct xfs_btree_cur *cur, /* btree cursor */
286 struct xfs_btree_cur *cur, /* btree cursor */
295 struct xfs_btree_cur *cur, /* btree cursor */
304 xfs_btree_cur_t *cur, /* btree cursor */
309 * Allocate a new one, copy the record, re-get the buffers.
313 xfs_btree_cur_t *cur, /* input cursor */
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.
398 int xfs_btree_change_owner(struct xfs_btree_cur *cur, uint64_t new_owner,
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()
436 * Min and max functions for extlen, agblock, fileoff, and filblks types.
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
465 typedef int (*xfs_btree_query_range_fn)(struct xfs_btree_cur *cur,
468 int xfs_btree_query_range(struct xfs_btree_cur *cur,
471 int xfs_btree_query_all(struct xfs_btree_cur *cur, xfs_btree_query_range_fn fn,
474 typedef int (*xfs_btree_visit_blocks_fn)(struct xfs_btree_cur *cur, int level,
483 int xfs_btree_visit_blocks(struct xfs_btree_cur *cur,
486 int xfs_btree_count_blocks(struct xfs_btree_cur *cur, xfs_extlen_t *blocks);
488 union xfs_btree_rec *xfs_btree_rec_addr(struct xfs_btree_cur *cur, int n,
490 union xfs_btree_key *xfs_btree_key_addr(struct xfs_btree_cur *cur, int n,
492 union xfs_btree_key *xfs_btree_high_key_addr(struct xfs_btree_cur *cur, int n,
494 union xfs_btree_ptr *xfs_btree_ptr_addr(struct xfs_btree_cur *cur, int n,
496 int xfs_btree_lookup_get_block(struct xfs_btree_cur *cur, int level,
498 struct xfs_btree_block *xfs_btree_get_block(struct xfs_btree_cur *cur,
500 bool xfs_btree_ptr_is_null(struct xfs_btree_cur *cur, union xfs_btree_ptr *ptr);
501 int64_t xfs_btree_diff_two_ptrs(struct xfs_btree_cur *cur,
504 void xfs_btree_get_sibling(struct xfs_btree_cur *cur,
507 void xfs_btree_get_keys(struct xfs_btree_cur *cur,
509 union xfs_btree_key *xfs_btree_high_key_from_key(struct xfs_btree_cur *cur,
511 int xfs_btree_has_record(struct xfs_btree_cur *cur, union xfs_btree_irec *low,
513 bool xfs_btree_has_more_records(struct xfs_btree_cur *cur);
514 struct xfs_ifork *xfs_btree_ifork_ptr(struct xfs_btree_cur *cur);
519 xfs_btree_cur_t *cur, 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()
533 void xfs_btree_set_ptr_null(struct xfs_btree_cur *cur,
535 int xfs_btree_get_buf_block(struct xfs_btree_cur *cur, union xfs_btree_ptr *ptr,
537 void xfs_btree_set_sibling(struct xfs_btree_cur *cur,
540 void xfs_btree_init_block_cur(struct xfs_btree_cur *cur,
542 void xfs_btree_copy_ptrs(struct xfs_btree_cur *cur,
545 void xfs_btree_copy_keys(struct xfs_btree_cur *cur,