43 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _BCACHEFS_EC_TYPES_H3#define _BCACHEFS_EC_TYPES_H4 5#include "bcachefs_format.h"6 7struct bch_replicas_padded {8 struct bch_replicas_entry_v1 e;9 u8 pad[BCH_BKEY_PTRS_MAX];10};11 12struct stripe {13 size_t heap_idx;14 u16 sectors;15 u8 algorithm;16 u8 nr_blocks;17 u8 nr_redundant;18 u8 blocks_nonempty;19 u8 disk_label;20};21 22struct gc_stripe {23 u16 sectors;24 25 u8 nr_blocks;26 u8 nr_redundant;27 28 unsigned alive:1; /* does a corresponding key exist in stripes btree? */29 u16 block_sectors[BCH_BKEY_PTRS_MAX];30 struct bch_extent_ptr ptrs[BCH_BKEY_PTRS_MAX];31 32 struct bch_replicas_padded r;33};34 35struct ec_stripe_heap_entry {36 size_t idx;37 unsigned blocks_nonempty;38};39 40typedef DEFINE_MIN_HEAP(struct ec_stripe_heap_entry, ec_stripes_heap) ec_stripes_heap;41 42#endif /* _BCACHEFS_EC_TYPES_H */43