1
0
Fork 0
forked from AbleOS/ableos
ableos-idl/kernel/src/scheduler.rs

26 lines
648 B
Rust
Raw Normal View History

2023-06-26 07:55:37 -05:00
use {
crate::host::TrapHandler,
alloc::vec::Vec,
hbvm::{validate::validate, vm::Vm},
};
pub struct Scheduler<'a> {
data: Vec<Vm<'a, TrapHandler>>,
}
impl Scheduler<'_> {
fn new_process(&mut self, program: Vec<u8>) {
#[allow(clippy::redundant_else)]
if let Err(e) = validate(&program) {
log::error!("Program validation error: {e:?}");
} else {
log::info!("valid program");
unsafe {
let mut vm = Vm::new_unchecked(&program, TrapHandler);
vm.memory.insert_test_page();
self.data.push(vm);
}
}
}
}