From 99a15e791d1815b44b24bc380d39430ff7dbc758 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Mon, 7 Nov 2016 13:56:02 -0700 Subject: [PATCH] Get CPU features --- scheme/sys/cpu.rs | 13 +++++++++++++ scheme/sys/mod.rs | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 scheme/sys/cpu.rs diff --git a/scheme/sys/cpu.rs b/scheme/sys/cpu.rs new file mode 100644 index 0000000..70c1694 --- /dev/null +++ b/scheme/sys/cpu.rs @@ -0,0 +1,13 @@ +use collections::Vec; + +use arch::device::cpu::cpu_info; +use syscall::error::{Error, EIO, Result}; + +pub fn resource() -> Result> { + let mut string = format!("CPUs: {}\n", ::cpu_count()); + + match cpu_info(&mut string) { + Ok(()) => Ok(string.into_bytes()), + Err(_) => Err(Error::new(EIO)) + } +} diff --git a/scheme/sys/mod.rs b/scheme/sys/mod.rs index f5ed0bf..b0dfac4 100644 --- a/scheme/sys/mod.rs +++ b/scheme/sys/mod.rs @@ -10,6 +10,7 @@ use syscall::flag::{MODE_DIR, MODE_FILE, SEEK_CUR, SEEK_END, SEEK_SET}; use syscall::scheme::Scheme; mod context; +mod cpu; mod memory; mod scheme; //mod interrupt; @@ -37,6 +38,7 @@ impl SysScheme { let mut files: BTreeMap<&'static [u8], Box> = BTreeMap::new(); files.insert(b"context", Box::new(move || context::resource())); + files.insert(b"cpu", Box::new(move || cpu::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()));