1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _BCACHEFS_EXTENTS_TYPES_H 3 #define _BCACHEFS_EXTENTS_TYPES_H 4 5 #include "bcachefs_format.h" 6 7 struct bch_extent_crc_unpacked { 8 u32 compressed_size; 9 u32 uncompressed_size; 10 u32 live_size; 11 12 u8 csum_type; 13 u8 compression_type; 14 15 u16 offset; 16 17 u16 nonce; 18 19 struct bch_csum csum; 20 }; 21 22 struct extent_ptr_decoded { 23 unsigned idx; 24 bool has_ec; 25 struct bch_extent_crc_unpacked crc; 26 struct bch_extent_ptr ptr; 27 struct bch_extent_stripe_ptr ec; 28 }; 29 30 struct bch_io_failures { 31 u8 nr; 32 struct bch_dev_io_failures { 33 u8 dev; 34 u8 idx; 35 u8 nr_failed; 36 u8 nr_retries; 37 } devs[BCH_REPLICAS_MAX]; 38 }; 39 40 #endif /* _BCACHEFS_EXTENTS_TYPES_H */ 41