1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#![allow(dead_code)]
pub const MAGIC : [u8;4] = [2,3,3,3];
#[derive(Clone, Copy, Debug)]
pub struct SuperBlock {
pub jump1 : u8,
pub jump2 : u8,
pub jump3 : u8,
pub oem : [u8;8],
pub setting : Setting,
}
impl SuperBlock {
pub fn new(block_size: usize, block_num: usize, map_offset: usize, root_offset: usize)->Self {
Self {
jump1: 0,
jump2: 0,
jump3: 0,
oem: [0;8],
setting: Setting{
bytes_per_block: block_size as u64,
block_num: block_num as u64,
block_map_offset: map_offset as u64,
root_table_offset: root_offset as u64,
},
}
}
}
#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub struct Setting {
pub bytes_per_block : u64,
pub block_num : u64,
pub block_map_offset : u64,
pub root_table_offset : u64,
}