1 #ifndef _BCACHEFS_BKEY_METHODS_H
2 #define _BCACHEFS_BKEY_METHODS_H
11 extern const char * const bch_bkey_types[];
17 * The keys were mergeable, but would have overflowed size - so instead
18 * l was changed to the maximum size, and both keys were modified:
25 /* Returns reason for being invalid if invalid, else NULL: */
26 const char * (*key_invalid)(const struct bch_fs *,
28 void (*key_debugcheck)(struct bch_fs *, struct btree *,
30 void (*val_to_text)(struct printbuf *, struct bch_fs *,
32 void (*swab)(const struct bkey_format *, struct bkey_packed *);
33 bool (*key_normalize)(struct bch_fs *, struct bkey_s);
34 enum merge_result (*key_merge)(struct bch_fs *,
35 struct bkey_i *, struct bkey_i *);
38 const char *bch2_bkey_val_invalid(struct bch_fs *, struct bkey_s_c);
39 const char *__bch2_bkey_invalid(struct bch_fs *, struct bkey_s_c,
40 enum btree_node_type);
41 const char *bch2_bkey_invalid(struct bch_fs *, struct bkey_s_c,
42 enum btree_node_type);
43 const char *bch2_bkey_in_btree_node(struct btree *, struct bkey_s_c);
45 void bch2_bkey_debugcheck(struct bch_fs *, struct btree *, struct bkey_s_c);
47 void bch2_bpos_to_text(struct printbuf *, struct bpos);
48 void bch2_bkey_to_text(struct printbuf *, const struct bkey *);
49 void bch2_val_to_text(struct printbuf *, struct bch_fs *,
51 void bch2_bkey_val_to_text(struct printbuf *, struct bch_fs *,
54 void bch2_bkey_swab(const struct bkey_format *, struct bkey_packed *);
56 bool bch2_bkey_normalize(struct bch_fs *, struct bkey_s);
58 enum merge_result bch2_bkey_merge(struct bch_fs *,
59 struct bkey_i *, struct bkey_i *);
61 void bch2_bkey_renumber(enum btree_node_type, struct bkey_packed *, int);
63 #endif /* _BCACHEFS_BKEY_METHODS_H */