Add sys:exe to get current executable

This commit is contained in:
Jeremy Soller 2016-11-14 20:54:33 -07:00
parent 61871c6071
commit a916e29b3c
2 changed files with 18 additions and 0 deletions

16
kernel/scheme/sys/exe.rs Normal file
View file

@ -0,0 +1,16 @@
use collections::Vec;
use context;
use syscall::error::{Error, ESRCH, Result};
pub fn resource() -> Result<Vec<u8>> {
let mut name = {
let contexts = context::contexts();
let context_lock = contexts.current().ok_or(Error::new(ESRCH))?;
let context = context_lock.read();
let name = context.name.lock();
name.clone()
};
name.push(b'\n');
Ok(name)
}

View file

@ -11,6 +11,7 @@ use syscall::scheme::Scheme;
mod context;
mod cpu;
mod exe;
mod memory;
mod scheme;
//mod interrupt;
@ -39,6 +40,7 @@ impl SysScheme {
files.insert(b"context", Box::new(move || context::resource()));
files.insert(b"cpu", Box::new(move || cpu::resource()));
files.insert(b"exe", Box::new(move || exe::resource()));
files.insert(b"memory", Box::new(move || memory::resource()));
files.insert(b"scheme", Box::new(move || scheme::resource()));
//files.insert(b"interrupt", Box::new(move || interrupt::resource()));