diff --git a/src/syscall/mod.rs b/src/syscall/mod.rs index 1a0515217a3b6b115a66a054ac1ef7211cb7a436..cc05d4fa802c4fb6f11bf9c657a338c6a87b42d3 100644 --- a/src/syscall/mod.rs +++ b/src/syscall/mod.rs @@ -160,14 +160,21 @@ pub fn syscall(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, bp: u } } + /* let debug = { let contexts = crate::context::contexts(); if let Some(context_lock) = contexts.current() { let context = context_lock.read(); let name_raw = context.name.lock(); let name = unsafe { core::str::from_utf8_unchecked(&name_raw) }; - if name == "file:/bin/regs" { - true + if name == "file:/bin/cargo" || name == "file:/bin/rustc" { + if a == SYS_CLOCK_GETTIME { + false + } else if (a == SYS_WRITE || a == SYS_FSYNC) && (b == 1 || b == 2) { + false + } else { + true + } } else { false } @@ -185,6 +192,7 @@ pub fn syscall(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, bp: u println!("{}", debug::format_call(a, b, c, d, e, f)); } + */ // The next lines set the current syscall in the context struct, then once the inner() function // completes, we set the current syscall to none. @@ -209,6 +217,7 @@ pub fn syscall(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, bp: u } } + /* if debug { let contexts = crate::context::contexts(); if let Some(context_lock) = contexts.current() { @@ -227,6 +236,7 @@ pub fn syscall(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, bp: u } } } + */ // errormux turns Result<usize> into -errno Error::mux(result)