Add fsync. Add env scheme, currently hardcoded to get ion to launch. Make serial IRQ send data to debug scheme

This commit is contained in:
Jeremy Soller 2016-09-18 17:55:35 -06:00
parent 1b056395bb
commit 483d466b1a
8 changed files with 164 additions and 4 deletions

View file

@ -120,3 +120,18 @@ pub fn dup(fd: usize) -> Result<usize> {
let result = scheme_mutex.lock().dup(file.number);
result
}
pub fn fsync(fd: usize) -> Result<usize> {
let file = {
let contexts = context::contexts();
let context_lock = contexts.current().ok_or(Error::NoProcess)?;
let context = context_lock.read();
let file = context.get_file(fd).ok_or(Error::BadFile)?;
file
};
let schemes = scheme::schemes();
let scheme_mutex = schemes.get(file.scheme).ok_or(Error::BadFile)?;
let result = scheme_mutex.lock().fsync(file.number).and(Ok(0));
result
}