1*928b721aSDarrick J. Wong // SPDX-License-Identifier: GPL-2.0-or-later 2*928b721aSDarrick J. Wong /* 3*928b721aSDarrick J. Wong * Copyright (c) 2023-2024 Oracle. All Rights Reserved. 4*928b721aSDarrick J. Wong * Author: Darrick J. Wong <djwong@kernel.org> 5*928b721aSDarrick J. Wong */ 6*928b721aSDarrick J. Wong #ifndef __XFS_SCRUB_INO_BITMAP_H__ 7*928b721aSDarrick J. Wong #define __XFS_SCRUB_INO_BITMAP_H__ 8*928b721aSDarrick J. Wong 9*928b721aSDarrick J. Wong /* Bitmaps, but for type-checked for xfs_ino_t */ 10*928b721aSDarrick J. Wong 11*928b721aSDarrick J. Wong struct xino_bitmap { 12*928b721aSDarrick J. Wong struct xbitmap64 inobitmap; 13*928b721aSDarrick J. Wong }; 14*928b721aSDarrick J. Wong 15*928b721aSDarrick J. Wong static inline void xino_bitmap_init(struct xino_bitmap *bitmap) 16*928b721aSDarrick J. Wong { 17*928b721aSDarrick J. Wong xbitmap64_init(&bitmap->inobitmap); 18*928b721aSDarrick J. Wong } 19*928b721aSDarrick J. Wong 20*928b721aSDarrick J. Wong static inline void xino_bitmap_destroy(struct xino_bitmap *bitmap) 21*928b721aSDarrick J. Wong { 22*928b721aSDarrick J. Wong xbitmap64_destroy(&bitmap->inobitmap); 23*928b721aSDarrick J. Wong } 24*928b721aSDarrick J. Wong 25*928b721aSDarrick J. Wong static inline int xino_bitmap_set(struct xino_bitmap *bitmap, xfs_ino_t ino) 26*928b721aSDarrick J. Wong { 27*928b721aSDarrick J. Wong return xbitmap64_set(&bitmap->inobitmap, ino, 1); 28*928b721aSDarrick J. Wong } 29*928b721aSDarrick J. Wong 30*928b721aSDarrick J. Wong static inline int xino_bitmap_test(struct xino_bitmap *bitmap, xfs_ino_t ino) 31*928b721aSDarrick J. Wong { 32*928b721aSDarrick J. Wong uint64_t len = 1; 33*928b721aSDarrick J. Wong 34*928b721aSDarrick J. Wong return xbitmap64_test(&bitmap->inobitmap, ino, &len); 35*928b721aSDarrick J. Wong } 36*928b721aSDarrick J. Wong 37*928b721aSDarrick J. Wong #endif /* __XFS_SCRUB_INO_BITMAP_H__ */ 38