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