1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-23 00:16:17 +04:00

panicless default fs implement

This commit is contained in:
Ben Pig Chu 2018-12-20 14:26:32 +08:00
parent 113a33e575
commit 6e8c80d328
2 changed files with 13 additions and 12 deletions

View File

@ -108,16 +108,16 @@ lazy_static! {
// TODO: better way to provide default impl?
macro_rules! impl_inode {
() => {
fn info(&self) -> Result<FileInfo> { unimplemented!() }
fn sync(&self) -> Result<()> { unimplemented!() }
fn resize(&self, _len: usize) -> Result<()> { unimplemented!() }
fn create(&self, _name: &str, _type_: FileType) -> Result<Arc<INode>> { unimplemented!() }
fn unlink(&self, _name: &str) -> Result<()> { unimplemented!() }
fn link(&self, _name: &str, _other: &Arc<INode>) -> Result<()> { unimplemented!() }
fn rename(&self, _old_name: &str, _new_name: &str) -> Result<()> { unimplemented!() }
fn move_(&self, _old_name: &str, _target: &Arc<INode>, _new_name: &str) -> Result<()> { unimplemented!() }
fn find(&self, _name: &str) -> Result<Arc<INode>> { unimplemented!() }
fn get_entry(&self, _id: usize) -> Result<String> { unimplemented!() }
fn info(&self) -> Result<FileInfo> { Err(FsError::NotSupported) }
fn sync(&self) -> Result<()> { Ok(()) }
fn resize(&self, _len: usize) -> Result<()> { Err(FsError::NotSupported) }
fn create(&self, _name: &str, _type_: FileType) -> Result<Arc<INode>> { Err(FsError::NotDir) }
fn unlink(&self, _name: &str) -> Result<()> { Err(FsError::NotDir) }
fn link(&self, _name: &str, _other: &Arc<INode>) -> Result<()> { Err(FsError::NotDir) }
fn rename(&self, _old_name: &str, _new_name: &str) -> Result<()> { Err(FsError::NotDir) }
fn move_(&self, _old_name: &str, _target: &Arc<INode>, _new_name: &str) -> Result<()> { Err(FsError::NotDir) }
fn find(&self, _name: &str) -> Result<Arc<INode>> { Err(FsError::NotDir) }
fn get_entry(&self, _id: usize) -> Result<String> { Err(FsError::NotDir) }
fn fs(&self) -> Arc<FileSystem> { unimplemented!() }
fn as_any_ref(&self) -> &Any { self }
};

View File

@ -53,7 +53,7 @@ pub fn syscall(id: usize, args: [usize; 6], tf: &mut TrapFrame) -> i32 {
};
match ret {
Ok(code) => code,
Err(err) => -(err as i32),
Err(err) => (err as i32),
}
}
@ -286,7 +286,8 @@ pub type SysResult = Result<i32, SysError>;
#[repr(i32)]
#[derive(Debug)]
pub enum SysError {
// ucore compatible error code, which is a modified version of the ones used in linux
// ucore_plus compatible error code, which is a modified version of the ones used in linux
// note that ucore_os_lab use another error code table
// name conversion E_XXXXX -> SysError::Xxxxx
// see https://github.com/oscourse-tsinghua/ucore_plus/blob/master/ucore/src/libs-user-ucore/common/error.h
// we only add current used errors here