Update redox_scheme.

This commit is contained in:
4lDO2
2024-06-11 18:37:32 +02:00
parent d9bc645185
commit 74fd559f6e
2 changed files with 13 additions and 12 deletions
Generated
+2 -2
View File
@@ -130,7 +130,7 @@ dependencies = [
[[package]]
name = "redox-scheme"
version = "0.2.0"
source = "git+https://gitlab.redox-os.org/4lDO2/redox-scheme.git?branch=schemev2#54a79f82bf82f14256b33dace7c68673b0851898"
source = "git+https://gitlab.redox-os.org/4lDO2/redox-scheme.git?branch=schemev2#40c29c6f08e095e7b3739feae47a3c24f469c4d3"
dependencies = [
"libredox",
"redox_syscall",
@@ -139,7 +139,7 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.5.1"
source = "git+https://gitlab.redox-os.org/4lDO2/syscall.git?branch=schemev2#f72cc4d7431841aaad039bce57af4e59c82f78c4"
source = "git+https://gitlab.redox-os.org/4lDO2/syscall.git?branch=schemev2#495a0adbd8333fd21fae2d97129b094607878ba7"
dependencies = [
"bitflags",
]
+11 -10
View File
@@ -8,9 +8,10 @@ use alloc::string::String;
use hashbrown::HashMap;
use redox_initfs::{InitFs, InodeStruct, Inode, InodeDir, InodeKind, types::Timespec};
use redox_scheme::CallerCtx;
use redox_scheme::OpenResult;
use redox_scheme::RequestKind;
use redox_scheme::SchemeV2;
use redox_scheme::SchemeMut;
use redox_scheme::SignalBehavior;
use redox_scheme::Socket;
@@ -84,8 +85,8 @@ fn inode_len(inode: InodeStruct<'static>) -> Result<usize> {
})
}
impl SchemeV2 for InitFsScheme {
fn open(&mut self, path: &str, _flags: usize) -> Result<OpenResult> {
impl SchemeMut for InitFsScheme {
fn xopen(&mut self, path: &str, _flags: usize, ctx: &CallerCtx) -> Result<OpenResult> {
let mut components = path
// trim leading and trailing slash
.trim_matches('/')
@@ -197,12 +198,12 @@ impl SchemeV2 for InitFsScheme {
}
}
fn seek(&mut self, id: usize, pos: i64, whence: usize) -> Result<u64> {
fn seek(&mut self, id: usize, pos: isize, whence: usize) -> Result<isize> {
let handle = self.handles.get_mut(&id).ok_or(Error::new(EBADF))?;
let new_offset = redox_scheme::calc_seek_offset_usize(handle.seek, pos as isize, whence, inode_len(Self::get_inode(&self.fs, handle.inode)?)?)?;
let new_offset = redox_scheme::calc_seek_offset_usize(handle.seek, pos, whence, inode_len(Self::get_inode(&self.fs, handle.inode)?)?)?;
handle.seek = new_offset as usize;
Ok(new_offset as u64)
Ok(new_offset)
}
fn fcntl(&mut self, id: usize, _cmd: usize, _arg: usize) -> Result<usize> {
@@ -246,17 +247,17 @@ impl SchemeV2 for InitFsScheme {
Ok(0)
}
fn fsync(&mut self, id: usize) -> Result<()> {
fn fsync(&mut self, id: usize) -> Result<usize> {
if !self.handles.contains_key(&id) {
return Err(Error::new(EBADF));
}
Ok(())
Ok(0)
}
fn close(&mut self, id: usize) -> Result<()> {
fn close(&mut self, id: usize) -> Result<usize> {
let _ = self.handles.remove(&id).ok_or(Error::new(EBADF))?;
Ok(())
Ok(0)
}
}