xref: /linux/fs/xfs/scrub/dab_bitmap.h (revision c771600c6af14749609b49565ffb4cac2959710d)
1*6c631e79SDarrick J. Wong // SPDX-License-Identifier: GPL-2.0-or-later
2*6c631e79SDarrick J. Wong /*
3*6c631e79SDarrick J. Wong  * Copyright (c) 2022-2024 Oracle.  All Rights Reserved.
4*6c631e79SDarrick J. Wong  * Author: Darrick J. Wong <djwong@kernel.org>
5*6c631e79SDarrick J. Wong  */
6*6c631e79SDarrick J. Wong #ifndef __XFS_SCRUB_DAB_BITMAP_H__
7*6c631e79SDarrick J. Wong #define __XFS_SCRUB_DAB_BITMAP_H__
8*6c631e79SDarrick J. Wong 
9*6c631e79SDarrick J. Wong /* Bitmaps, but for type-checked for xfs_dablk_t */
10*6c631e79SDarrick J. Wong 
11*6c631e79SDarrick J. Wong struct xdab_bitmap {
12*6c631e79SDarrick J. Wong 	struct xbitmap32	dabitmap;
13*6c631e79SDarrick J. Wong };
14*6c631e79SDarrick J. Wong 
15*6c631e79SDarrick J. Wong static inline void xdab_bitmap_init(struct xdab_bitmap *bitmap)
16*6c631e79SDarrick J. Wong {
17*6c631e79SDarrick J. Wong 	xbitmap32_init(&bitmap->dabitmap);
18*6c631e79SDarrick J. Wong }
19*6c631e79SDarrick J. Wong 
20*6c631e79SDarrick J. Wong static inline void xdab_bitmap_destroy(struct xdab_bitmap *bitmap)
21*6c631e79SDarrick J. Wong {
22*6c631e79SDarrick J. Wong 	xbitmap32_destroy(&bitmap->dabitmap);
23*6c631e79SDarrick J. Wong }
24*6c631e79SDarrick J. Wong 
25*6c631e79SDarrick J. Wong static inline int xdab_bitmap_set(struct xdab_bitmap *bitmap,
26*6c631e79SDarrick J. Wong 		xfs_dablk_t dabno, xfs_extlen_t len)
27*6c631e79SDarrick J. Wong {
28*6c631e79SDarrick J. Wong 	return xbitmap32_set(&bitmap->dabitmap, dabno, len);
29*6c631e79SDarrick J. Wong }
30*6c631e79SDarrick J. Wong 
31*6c631e79SDarrick J. Wong static inline bool xdab_bitmap_test(struct xdab_bitmap *bitmap,
32*6c631e79SDarrick J. Wong 		xfs_dablk_t dabno, xfs_extlen_t *len)
33*6c631e79SDarrick J. Wong {
34*6c631e79SDarrick J. Wong 	return xbitmap32_test(&bitmap->dabitmap, dabno, len);
35*6c631e79SDarrick J. Wong }
36*6c631e79SDarrick J. Wong 
37*6c631e79SDarrick J. Wong #endif	/* __XFS_SCRUB_DAB_BITMAP_H__ */
38