Bug fixes for fcntl and o_cloexec

Add fcntl to schemes
Fix debug: hang
This commit is contained in:
Jeremy Soller
2017-04-19 21:56:09 -06:00
parent 40ff16e42d
commit efd64d55e1
19 changed files with 204 additions and 43 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ pub fn resource() -> Result<Vec<u8>> {
for (fd, f) in row.2.iter().enumerate() {
let file = match *f {
None => continue,
Some(file) => file
Some(ref file) => file.clone()
};
let scheme = {
+2
View File
@@ -14,6 +14,7 @@ mod cpu;
mod exe;
mod iostat;
mod scheme;
mod scheme_num;
//mod interrupt;
//mod log;
//mod test;
@@ -43,6 +44,7 @@ impl SysScheme {
files.insert(b"exe", Box::new(move || exe::resource()));
files.insert(b"iostat", Box::new(move || iostat::resource()));
files.insert(b"scheme", Box::new(move || scheme::resource()));
files.insert(b"scheme_num", Box::new(move || scheme_num::resource()));
//files.insert(b"interrupt", Box::new(move || interrupt::resource()));
//files.insert(b"log", Box::new(move || log::resource()));
//files.insert(b"test", Box::new(move || test::resource()));
+1 -1
View File
@@ -15,7 +15,7 @@ pub fn resource() -> Result<Vec<u8>> {
let mut data = Vec::new();
let schemes = scheme::schemes();
for (name, _scheme_lock) in schemes.iter_name(scheme_ns) {
for (name, _scheme_id) in schemes.iter_name(scheme_ns) {
data.extend_from_slice(name);
data.push(b'\n');
}
+25
View File
@@ -0,0 +1,25 @@
use collections::Vec;
use context;
use scheme;
use syscall::error::{Error, ESRCH, Result};
pub fn resource() -> Result<Vec<u8>> {
let scheme_ns = {
let contexts = context::contexts();
let context_lock = contexts.current().ok_or(Error::new(ESRCH))?;
let context = context_lock.read();
context.ens
};
let mut data = Vec::new();
let schemes = scheme::schemes();
for (name, &scheme_id) in schemes.iter_name(scheme_ns) {
data.extend_from_slice(format!("{:>4}: ", scheme_id.into()).as_bytes());
data.extend_from_slice(name);
data.push(b'\n');
}
Ok(data)
}