Cleanup, add node and header commands

This commit is contained in:
Jeremy Soller
2016-02-24 17:30:37 -07:00
parent d116ce57da
commit 8ff4863bbb
7 changed files with 162 additions and 81 deletions
+32 -9
View File
@@ -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);
}