Implement UUID
This commit is contained in:
+4
-1
@@ -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
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user