agino_bitmap.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright (c) 2018-2024 Oracle. All Rights Reserved.
  4. * Author: Darrick J. Wong <djwong@kernel.org>
  5. */
  6. #ifndef __XFS_SCRUB_AGINO_BITMAP_H__
  7. #define __XFS_SCRUB_AGINO_BITMAP_H__
  8. /* Bitmaps, but for type-checked for xfs_agino_t */
  9. struct xagino_bitmap {
  10. struct xbitmap32 aginobitmap;
  11. };
  12. static inline void xagino_bitmap_init(struct xagino_bitmap *bitmap)
  13. {
  14. xbitmap32_init(&bitmap->aginobitmap);
  15. }
  16. static inline void xagino_bitmap_destroy(struct xagino_bitmap *bitmap)
  17. {
  18. xbitmap32_destroy(&bitmap->aginobitmap);
  19. }
  20. static inline int xagino_bitmap_clear(struct xagino_bitmap *bitmap,
  21. xfs_agino_t agino, unsigned int len)
  22. {
  23. return xbitmap32_clear(&bitmap->aginobitmap, agino, len);
  24. }
  25. static inline int xagino_bitmap_set(struct xagino_bitmap *bitmap,
  26. xfs_agino_t agino, unsigned int len)
  27. {
  28. return xbitmap32_set(&bitmap->aginobitmap, agino, len);
  29. }
  30. static inline bool xagino_bitmap_test(struct xagino_bitmap *bitmap,
  31. xfs_agino_t agino, unsigned int *len)
  32. {
  33. return xbitmap32_test(&bitmap->aginobitmap, agino, len);
  34. }
  35. static inline int xagino_bitmap_walk(struct xagino_bitmap *bitmap,
  36. xbitmap32_walk_fn fn, void *priv)
  37. {
  38. return xbitmap32_walk(&bitmap->aginobitmap, fn, priv);
  39. }
  40. #endif /* __XFS_SCRUB_AGINO_BITMAP_H__ */