Implement UUID

This commit is contained in:
Jeremy Soller
2017-09-30 15:07:46 -06:00
parent 6d62d22262
commit db22937361
5 changed files with 70 additions and 2 deletions
+4 -1
View File
@@ -1,11 +1,13 @@
#![deny(warnings)]
extern crate redoxfs;
extern crate uuid;
use std::{env, fs, process, time};
use std::io::Read;
use redoxfs::{FileSystem, DiskFile};
use uuid::Uuid;
fn main() {
let mut args = env::args().skip(1);
@@ -48,7 +50,8 @@ fn main() {
let ctime = time::SystemTime::now().duration_since(time::UNIX_EPOCH).unwrap();
match FileSystem::create_reserved(disk, &bootloader, ctime.as_secs(), ctime.subsec_nanos()) {
Ok(filesystem) => {
println!("redoxfs-mkfs: created filesystem on {}, reserved {} blocks, size {} MB", disk_path, filesystem.block, filesystem.header.1.size/1000/1000);
let uuid = Uuid::from_bytes(&filesystem.header.1.uuid).unwrap();
println!("redoxfs-mkfs: created filesystem on {}, reserved {} blocks, size {} MB, uuid {}", disk_path, filesystem.block, filesystem.header.1.size/1000/1000, uuid.hyphenated());
},
Err(err) => {
println!("redoxfs-mkfs: failed to create filesystem on {}: {}", disk_path, err);
+4 -1
View File
@@ -1,6 +1,8 @@
use std::{fmt, mem, slice};
use std::ops::{Deref, DerefMut};
use uuid::Uuid;
/// The header of the filesystem
#[repr(packed)]
pub struct Header {
@@ -37,10 +39,11 @@ impl Header {
}
pub fn new(size: u64, root: u64, free: u64) -> Header {
let uuid = Uuid::new_v4();
Header {
signature: *Header::SIGNATURE,
version: Header::VERSION,
uuid: [0; 16],
uuid: *uuid.as_bytes(),
size: size,
root: root,
free: free,
+1
View File
@@ -4,6 +4,7 @@
#![deny(warnings)]
extern crate syscall;
extern crate uuid;
pub use self::disk::{Disk, DiskCache, DiskFile};
pub use self::ex_node::ExNode;