btrfs_diskformat/core/
root_backup.rs

1use static_assertions::const_assert_eq;
2use zerocopy::little_endian::U64 as U64LE;
3use zerocopy_derive::*;
4
5#[derive(Copy, Clone, Debug, FromBytes, IntoBytes, Unaligned, KnownLayout)]
6#[repr(C, packed)]
7pub struct RootBackup {
8    pub tree_root: U64LE,
9    pub tree_root_gen: U64LE,
10
11    pub chunk_root: U64LE,
12    pub chunk_root_gen: U64LE,
13
14    pub extent_root: U64LE,
15    pub extent_root_gen: U64LE,
16
17    pub fs_root: U64LE,
18    pub fs_root_gen: U64LE,
19
20    pub dev_root: U64LE,
21    pub dev_root_gen: U64LE,
22
23    pub csum_root: U64LE,
24    pub csum_root_gen: U64LE,
25
26    pub total_bytes: U64LE,
27    pub bytes_used: U64LE,
28
29    pub num_devices: U64LE,
30
31    /// Reserved for future use.
32    pub _unused_u64s: [u64; 4],
33
34    pub tree_root_level: u8,
35
36    pub chunk_root_level: u8,
37
38    pub extent_root_level: u8,
39
40    pub fs_root_level: u8,
41
42    pub dev_root_level: u8,
43
44    pub csum_root_level: u8,
45
46    /// Reserved for future use.
47    pub _unused_u8s: [u8; 10],
48}
49const_assert_eq!(core::mem::size_of::<RootBackup>(), 168);