18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) Qu Wenruo 2017.  All rights reserved.
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#ifndef BTRFS_TREE_CHECKER_H
78c2ecf20Sopenharmony_ci#define BTRFS_TREE_CHECKER_H
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#include "ctree.h"
108c2ecf20Sopenharmony_ci#include "extent_io.h"
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci/*
138c2ecf20Sopenharmony_ci * Comprehensive leaf checker.
148c2ecf20Sopenharmony_ci * Will check not only the item pointers, but also every possible member
158c2ecf20Sopenharmony_ci * in item data.
168c2ecf20Sopenharmony_ci */
178c2ecf20Sopenharmony_ciint btrfs_check_leaf_full(struct extent_buffer *leaf);
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci/*
208c2ecf20Sopenharmony_ci * Less strict leaf checker.
218c2ecf20Sopenharmony_ci * Will only check item pointers, not reading item data.
228c2ecf20Sopenharmony_ci */
238c2ecf20Sopenharmony_ciint btrfs_check_leaf_relaxed(struct extent_buffer *leaf);
248c2ecf20Sopenharmony_ciint btrfs_check_node(struct extent_buffer *node);
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciint btrfs_check_chunk_valid(struct extent_buffer *leaf,
278c2ecf20Sopenharmony_ci			    struct btrfs_chunk *chunk, u64 logical);
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci#endif
30