1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_SUPER_TYPES_H
3#define _BCACHEFS_SUPER_TYPES_H
4
5struct bch_sb_handle {
6	struct bch_sb		*sb;
7	struct file		*s_bdev_file;
8	struct block_device	*bdev;
9	char			*sb_name;
10	struct bio		*bio;
11	void			*holder;
12	size_t			buffer_size;
13	blk_mode_t		mode;
14	unsigned		have_layout:1;
15	unsigned		have_bio:1;
16	unsigned		fs_sb:1;
17	u64			seq;
18};
19
20struct bch_devs_mask {
21	unsigned long d[BITS_TO_LONGS(BCH_SB_MEMBERS_MAX)];
22};
23
24struct bch_devs_list {
25	u8			nr;
26	u8			data[BCH_BKEY_PTRS_MAX];
27};
28
29struct bch_member_cpu {
30	u64			nbuckets;	/* device size */
31	u16			first_bucket;   /* index of first bucket used */
32	u16			bucket_size;	/* sectors */
33	u16			group;
34	u8			state;
35	u8			discard;
36	u8			data_allowed;
37	u8			durability;
38	u8			freespace_initialized;
39	u8			valid;
40	u8			btree_bitmap_shift;
41	u64			btree_allocated_bitmap;
42};
43
44#endif /* _BCACHEFS_SUPER_TYPES_H */
45