#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_shared.h"
#include "xfs_bit.h"
#include "xfs_format.h"
#include "xfs_trans_resv.h"
#include "xfs_mount.h"
#include "xfs_btree.h"
#include "scrub/scrub.h"
#include "scrub/bitmap.h"
#include <linux/interval_tree_generic.h>
struct xbitmap64_node { … };
#define START(node) …
#define LAST(node) …
static inline __maybe_unused void
xbitmap64_tree_insert(struct xbitmap64_node *node, struct rb_root_cached *root);
static inline __maybe_unused void
xbitmap64_tree_remove(struct xbitmap64_node *node, struct rb_root_cached *root);
static inline __maybe_unused struct xbitmap64_node *
xbitmap64_tree_iter_first(struct rb_root_cached *root, uint64_t start,
uint64_t last);
static inline __maybe_unused struct xbitmap64_node *
xbitmap64_tree_iter_next(struct xbitmap64_node *node, uint64_t start,
uint64_t last);
INTERVAL_TREE_DEFINE(…)
#define for_each_xbitmap64_extent(bn, bitmap) …
int
xbitmap64_clear(
struct xbitmap64 *bitmap,
uint64_t start,
uint64_t len)
{ … }
int
xbitmap64_set(
struct xbitmap64 *bitmap,
uint64_t start,
uint64_t len)
{ … }
void
xbitmap64_destroy(
struct xbitmap64 *bitmap)
{ … }
void
xbitmap64_init(
struct xbitmap64 *bitmap)
{ … }
int
xbitmap64_disunion(
struct xbitmap64 *bitmap,
struct xbitmap64 *sub)
{ … }
uint64_t
xbitmap64_hweight(
struct xbitmap64 *bitmap)
{ … }
int
xbitmap64_walk(
struct xbitmap64 *bitmap,
xbitmap64_walk_fn fn,
void *priv)
{ … }
bool
xbitmap64_empty(
struct xbitmap64 *bitmap)
{ … }
bool
xbitmap64_test(
struct xbitmap64 *bitmap,
uint64_t start,
uint64_t *len)
{ … }
struct xbitmap32_node { … };
static inline __maybe_unused void
xbitmap32_tree_insert(struct xbitmap32_node *node, struct rb_root_cached *root);
static inline __maybe_unused void
xbitmap32_tree_remove(struct xbitmap32_node *node, struct rb_root_cached *root);
static inline __maybe_unused struct xbitmap32_node *
xbitmap32_tree_iter_first(struct rb_root_cached *root, uint32_t start,
uint32_t last);
static inline __maybe_unused struct xbitmap32_node *
xbitmap32_tree_iter_next(struct xbitmap32_node *node, uint32_t start,
uint32_t last);
INTERVAL_TREE_DEFINE(…)
#define for_each_xbitmap32_extent(bn, bitmap) …
int
xbitmap32_clear(
struct xbitmap32 *bitmap,
uint32_t start,
uint32_t len)
{ … }
int
xbitmap32_set(
struct xbitmap32 *bitmap,
uint32_t start,
uint32_t len)
{ … }
void
xbitmap32_destroy(
struct xbitmap32 *bitmap)
{ … }
void
xbitmap32_init(
struct xbitmap32 *bitmap)
{ … }
int
xbitmap32_disunion(
struct xbitmap32 *bitmap,
struct xbitmap32 *sub)
{ … }
uint32_t
xbitmap32_hweight(
struct xbitmap32 *bitmap)
{ … }
int
xbitmap32_walk(
struct xbitmap32 *bitmap,
xbitmap32_walk_fn fn,
void *priv)
{ … }
bool
xbitmap32_empty(
struct xbitmap32 *bitmap)
{ … }
bool
xbitmap32_test(
struct xbitmap32 *bitmap,
uint32_t start,
uint32_t *len)
{ … }
uint32_t
xbitmap32_count_set_regions(
struct xbitmap32 *bitmap)
{ … }