#include "dm-btree-internal.h"
#include "dm-transaction-manager.h"
#include <linux/device-mapper.h>
#define DM_MSG_PREFIX …
#define BTREE_CSUM_XOR …
static void node_prepare_for_write(const struct dm_block_validator *v,
struct dm_block *b,
size_t block_size)
{ … }
static int node_check(const struct dm_block_validator *v,
struct dm_block *b,
size_t block_size)
{ … }
const struct dm_block_validator btree_node_validator = …;
int bn_read_lock(struct dm_btree_info *info, dm_block_t b,
struct dm_block **result)
{ … }
static int bn_shadow(struct dm_btree_info *info, dm_block_t orig,
struct dm_btree_value_type *vt,
struct dm_block **result)
{ … }
int new_block(struct dm_btree_info *info, struct dm_block **result)
{ … }
void unlock_block(struct dm_btree_info *info, struct dm_block *b)
{ … }
void init_ro_spine(struct ro_spine *s, struct dm_btree_info *info)
{ … }
void exit_ro_spine(struct ro_spine *s)
{ … }
int ro_step(struct ro_spine *s, dm_block_t new_child)
{ … }
void ro_pop(struct ro_spine *s)
{ … }
struct btree_node *ro_node(struct ro_spine *s)
{ … }
void init_shadow_spine(struct shadow_spine *s, struct dm_btree_info *info)
{ … }
void exit_shadow_spine(struct shadow_spine *s)
{ … }
int shadow_step(struct shadow_spine *s, dm_block_t b,
struct dm_btree_value_type *vt)
{ … }
struct dm_block *shadow_current(struct shadow_spine *s)
{ … }
struct dm_block *shadow_parent(struct shadow_spine *s)
{ … }
int shadow_has_parent(struct shadow_spine *s)
{ … }
dm_block_t shadow_root(struct shadow_spine *s)
{ … }
static void le64_inc(void *context, const void *value_le, unsigned int count)
{ … }
static void le64_dec(void *context, const void *value_le, unsigned int count)
{ … }
static int le64_equal(void *context, const void *value1_le, const void *value2_le)
{ … }
void init_le64_type(struct dm_transaction_manager *tm,
struct dm_btree_value_type *vt)
{ … }