xref: /linux/fs/xfs/scrub/rtb_bitmap.h (revision b477ff98d903618a1ab8247861f2ea6e70c0f0f8)
1*fd97fe11SDarrick J. Wong // SPDX-License-Identifier: GPL-2.0-or-later
2*fd97fe11SDarrick J. Wong /*
3*fd97fe11SDarrick J. Wong  * Copyright (c) 2022-2024 Oracle.  All Rights Reserved.
4*fd97fe11SDarrick J. Wong  * Author: Darrick J. Wong <djwong@kernel.org>
5*fd97fe11SDarrick J. Wong  */
6*fd97fe11SDarrick J. Wong #ifndef __XFS_SCRUB_RTB_BITMAP_H__
7*fd97fe11SDarrick J. Wong #define __XFS_SCRUB_RTB_BITMAP_H__
8*fd97fe11SDarrick J. Wong 
9*fd97fe11SDarrick J. Wong /* Bitmaps, but for type-checked for xfs_rtblock_t */
10*fd97fe11SDarrick J. Wong 
11*fd97fe11SDarrick J. Wong struct xrtb_bitmap {
12*fd97fe11SDarrick J. Wong 	struct xbitmap64	rtbitmap;
13*fd97fe11SDarrick J. Wong };
14*fd97fe11SDarrick J. Wong 
xrtb_bitmap_init(struct xrtb_bitmap * bitmap)15*fd97fe11SDarrick J. Wong static inline void xrtb_bitmap_init(struct xrtb_bitmap *bitmap)
16*fd97fe11SDarrick J. Wong {
17*fd97fe11SDarrick J. Wong 	xbitmap64_init(&bitmap->rtbitmap);
18*fd97fe11SDarrick J. Wong }
19*fd97fe11SDarrick J. Wong 
xrtb_bitmap_destroy(struct xrtb_bitmap * bitmap)20*fd97fe11SDarrick J. Wong static inline void xrtb_bitmap_destroy(struct xrtb_bitmap *bitmap)
21*fd97fe11SDarrick J. Wong {
22*fd97fe11SDarrick J. Wong 	xbitmap64_destroy(&bitmap->rtbitmap);
23*fd97fe11SDarrick J. Wong }
24*fd97fe11SDarrick J. Wong 
xrtb_bitmap_set(struct xrtb_bitmap * bitmap,xfs_rtblock_t start,xfs_filblks_t len)25*fd97fe11SDarrick J. Wong static inline int xrtb_bitmap_set(struct xrtb_bitmap *bitmap,
26*fd97fe11SDarrick J. Wong 		xfs_rtblock_t start, xfs_filblks_t len)
27*fd97fe11SDarrick J. Wong {
28*fd97fe11SDarrick J. Wong 	return xbitmap64_set(&bitmap->rtbitmap, start, len);
29*fd97fe11SDarrick J. Wong }
30*fd97fe11SDarrick J. Wong 
xrtb_bitmap_walk(struct xrtb_bitmap * bitmap,xbitmap64_walk_fn fn,void * priv)31*fd97fe11SDarrick J. Wong static inline int xrtb_bitmap_walk(struct xrtb_bitmap *bitmap,
32*fd97fe11SDarrick J. Wong 		xbitmap64_walk_fn fn, void *priv)
33*fd97fe11SDarrick J. Wong {
34*fd97fe11SDarrick J. Wong 	return xbitmap64_walk(&bitmap->rtbitmap, fn, priv);
35*fd97fe11SDarrick J. Wong }
36*fd97fe11SDarrick J. Wong 
37*fd97fe11SDarrick J. Wong #endif	/* __XFS_SCRUB_RTB_BITMAP_H__ */
38