Cleanup, add node and header commands
This commit is contained in:
+32
-9
@@ -1,26 +1,44 @@
|
||||
use core::{mem, slice};
|
||||
use core::ops::{Deref, DerefMut};
|
||||
|
||||
use super::Extent;
|
||||
|
||||
/// The header of the filesystem
|
||||
#[derive(Debug)]
|
||||
#[repr(packed)]
|
||||
pub struct Header {
|
||||
/// Signature, should be b"REDOXFS\0"
|
||||
pub signature: [u8; 8],
|
||||
/// Version, should be 1
|
||||
pub version: u64,
|
||||
pub free_space: Extent,
|
||||
pub padding: [u8; 224],
|
||||
pub extents: [Extent; 16],
|
||||
/// Disk ID, a 128-byte unique identifier
|
||||
pub uuid: [u8; 16],
|
||||
/// Disk size, in 512-byte sectors
|
||||
pub size: u64,
|
||||
/// Block of root node
|
||||
pub root: u64,
|
||||
/// Block of free space node
|
||||
pub free_space: u64,
|
||||
}
|
||||
|
||||
impl Header {
|
||||
pub fn new() -> Header {
|
||||
pub fn default() -> Header {
|
||||
Header {
|
||||
signature: [0; 8],
|
||||
version: 0,
|
||||
free_space: Extent::default(),
|
||||
padding: [0; 224],
|
||||
extents: [Extent::default(); 16]
|
||||
uuid: [0; 16],
|
||||
size: 0,
|
||||
root: 0,
|
||||
free_space: 0,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new() -> Header {
|
||||
Header {
|
||||
signature: *b"REDOXFS\0",
|
||||
version: 1,
|
||||
uuid: [0; 16],
|
||||
size: 0,
|
||||
root: 0,
|
||||
free_space: 0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,3 +63,8 @@ impl DerefMut for Header {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn header_size_test(){
|
||||
assert!(mem::size_of::<Header>() <= 512);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user