1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_SUPER_TYPES_H
3 #define _BCACHEFS_SUPER_TYPES_H
4 
5 struct bch_sb_handle {
6 	struct bch_sb		*sb;
7 	struct bdev_handle	*bdev_handle;
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 
20 struct bch_devs_mask {
21 	unsigned long d[BITS_TO_LONGS(BCH_SB_MEMBERS_MAX)];
22 };
23 
24 struct bch_devs_list {
25 	u8			nr;
26 	u8			data[BCH_BKEY_PTRS_MAX];
27 };
28 
29 struct 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 };
41 
42 #endif /* _BCACHEFS_SUPER_TYPES_H */
43