Add sys:exe to get current executable
This commit is contained in:
parent
61871c6071
commit
a916e29b3c
16
kernel/scheme/sys/exe.rs
Normal file
16
kernel/scheme/sys/exe.rs
Normal 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)
|
||||
}
|
|
@ -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()));
|
||||
|
|
Loading…
Reference in a new issue