1
0
Fork 0
forked from AbleOS/ableos

Scheduler work

This commit is contained in:
able 2023-06-26 07:55:37 -05:00
parent 1dd330e604
commit 567871d18e
3 changed files with 27 additions and 1 deletions

View file

@ -4,7 +4,7 @@ TODO
- Build out the object system - Build out the object system
- Build or Find an acceptable IDL - Build or Find an acceptable IDL
Short List of potentials Short List of potentials
- [Jerma](https://github.com/OriDevTeam/jerma-rs) - [comline](https://git.ablecorp.us/DOOME1M8Cover/comline)
- Work on a styleguide for commits - Work on a styleguide for commits
Maybe something allong the lines of Maybe something allong the lines of
[relevant shorthand note] Explination [relevant shorthand note] Explination

View file

@ -28,6 +28,7 @@ pub mod ipc;
mod kmain; mod kmain;
mod logger; mod logger;
mod memory; mod memory;
mod scheduler;
pub mod utils; pub mod utils;
use versioning::Version; use versioning::Version;

25
kernel/src/scheduler.rs Normal file
View file

@ -0,0 +1,25 @@
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);
}
}
}
}