dab_bitmap.h 913 B

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