Skip to content
Snippets Groups Projects
Verified Commit 73583446 authored by Jeremy Soller's avatar Jeremy Soller
Browse files

Re-enable support for live kernel

parent 8c7bb57e
No related branches found
No related tags found
No related merge requests found
......@@ -223,7 +223,35 @@ fn inner() -> Result<()> {
}
println!("Loading Kernel...");
let kernel = {
let kernel = if let Ok((_i, mut kernel_file)) = find("\\redox_bootloader\\kernel") {
let info = kernel_file.info()?;
let len = info.FileSize;
let kernel = unsafe {
let ptr = allocate_zero_pages((len as usize + page_size - 1) / page_size)?;
slice::from_raw_parts_mut(
ptr as *mut u8,
len as usize
)
};
let mut i = 0;
for mut chunk in kernel.chunks_mut(4 * MB) {
print!("\r{}% - {} MB", i as u64 * 100 / len, i / MB);
let count = kernel_file.read(&mut chunk)?;
if count == 0 {
break;
}
//TODO: return error instead of assert
assert_eq!(count, chunk.len());
i += count;
}
println!("\r{}% - {} MB", i as u64 * 100 / len, i / MB);
kernel
} else {
let mut fs = redoxfs()?;
let root = fs.header.1.root;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment