diff --git a/audio/pcspkrd/src/scheme.rs b/audio/pcspkrd/src/scheme.rs index 4a24228f22..2cb21fc51a 100644 --- a/audio/pcspkrd/src/scheme.rs +++ b/audio/pcspkrd/src/scheme.rs @@ -28,10 +28,6 @@ impl SchemeMut for PcspkrScheme { } } - fn dup(&mut self, _id: usize, _buf: &[u8]) -> Result { - Err(Error::new(EPERM)) - } - fn read(&mut self, _id: usize, _buf: &mut [u8]) -> Result { Err(Error::new(EPERM)) } diff --git a/graphics/bgad/src/scheme.rs b/graphics/bgad/src/scheme.rs index 0d536e4e9d..3d2c89996e 100644 --- a/graphics/bgad/src/scheme.rs +++ b/graphics/bgad/src/scheme.rs @@ -33,14 +33,6 @@ impl SchemeMut for BgaScheme { } } - fn dup(&mut self, file: usize, buf: &[u8]) -> Result { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - Ok(file) - } - fn read(&mut self, _file: usize, buf: &mut [u8]) -> Result { let mut i = 0; let data = format!("{},{}\n", self.bga.width(), self.bga.height()).into_bytes(); diff --git a/graphics/fbbootlogd/src/scheme.rs b/graphics/fbbootlogd/src/scheme.rs index ca848b90da..7e37aa8cb6 100644 --- a/graphics/fbbootlogd/src/scheme.rs +++ b/graphics/fbbootlogd/src/scheme.rs @@ -6,7 +6,6 @@ use syscall::{Error, EventFlags, Result, EBADF, EINVAL, ENOENT}; use crate::display::Display; use crate::text::TextScreen; -#[derive(Clone)] pub struct Handle { pub events: EventFlags, pub notified_read: bool, @@ -51,25 +50,6 @@ impl Scheme for FbbootlogScheme { Ok(id) } - fn dup(&mut self, id: usize, buf: &[u8]) -> Result { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let handle = self - .handles - .get(&id) - .map(|handle| handle.clone()) - .ok_or(Error::new(EBADF))?; - - let new_id = self.next_id; - self.next_id += 1; - - self.handles.insert(new_id, handle); - - Ok(new_id) - } - fn fevent(&mut self, id: usize, flags: syscall::EventFlags) -> Result { let handle = self.handles.get_mut(&id).ok_or(Error::new(EBADF))?; diff --git a/graphics/fbcond/src/scheme.rs b/graphics/fbcond/src/scheme.rs index 7e1d46d18e..dd667cbf47 100644 --- a/graphics/fbcond/src/scheme.rs +++ b/graphics/fbcond/src/scheme.rs @@ -3,7 +3,7 @@ use std::os::fd::AsRawFd; use event::{EventQueue, UserData}; use redox_scheme::SchemeBlock; -use syscall::{Error, EventFlags, Result, EBADF, EINVAL, ENOENT, O_NONBLOCK}; +use syscall::{Error, EventFlags, Result, EBADF, ENOENT, O_NONBLOCK}; use crate::display::Display; use crate::text::TextScreen; @@ -25,7 +25,6 @@ impl UserData for VtIndex { } } -#[derive(Clone)] pub struct Handle { pub vt_i: VtIndex, pub flags: usize, @@ -98,25 +97,6 @@ impl SchemeBlock for FbconScheme { } } - fn dup(&mut self, id: usize, buf: &[u8]) -> Result> { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let handle = self - .handles - .get(&id) - .map(|handle| handle.clone()) - .ok_or(Error::new(EBADF))?; - - let new_id = self.next_id; - self.next_id += 1; - - self.handles.insert(new_id, handle); - - Ok(Some(new_id)) - } - fn fevent( &mut self, id: usize, diff --git a/net/alxd/src/device/mod.rs b/net/alxd/src/device/mod.rs index 64415b1887..e461f04003 100644 --- a/net/alxd/src/device/mod.rs +++ b/net/alxd/src/device/mod.rs @@ -1802,14 +1802,6 @@ impl scheme::SchemeMut for Alx { } } - fn dup(&mut self, id: usize, buf: &[u8]) -> Result { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - Ok(id) - } - fn read(&mut self, id: usize, _buf: &mut [u8]) -> Result { /* let head = unsafe { self.read(RDH) }; diff --git a/net/driver-network/src/lib.rs b/net/driver-network/src/lib.rs index c52d0d7481..0f5a8663a9 100644 --- a/net/driver-network/src/lib.rs +++ b/net/driver-network/src/lib.rs @@ -40,7 +40,6 @@ pub struct NetworkScheme { blocked: Vec, } -#[derive(Copy, Clone)] enum Handle { Data, Mac, @@ -177,17 +176,6 @@ impl SchemeBlock for NetworkScheme { })) } - fn dup(&mut self, id: usize, buf: &[u8]) -> Result> { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let handle = *self.handles.get(&id).ok_or(Error::new(EBADF))?; - self.next_id += 1; - self.handles.insert(self.next_id, handle); - Ok(Some(self.next_id)) - } - fn read( &mut self, id: usize, diff --git a/storage/ahcid/src/scheme.rs b/storage/ahcid/src/scheme.rs index ce153ffb1e..7ed30f2de1 100644 --- a/storage/ahcid/src/scheme.rs +++ b/storage/ahcid/src/scheme.rs @@ -7,13 +7,12 @@ use driver_block::{Disk, DiskWrapper}; use redox_scheme::{CallerCtx, OpenResult, SchemeBlock}; use syscall::schemev2::NewFdFlags; use syscall::{ - Error, Result, Stat, EACCES, EBADF, EINVAL, EISDIR, ENOENT, ENOLCK, EOVERFLOW, MODE_DIR, - MODE_FILE, O_DIRECTORY, O_STAT, + Error, Result, Stat, EACCES, EBADF, EISDIR, ENOENT, ENOLCK, EOVERFLOW, MODE_DIR, MODE_FILE, + O_DIRECTORY, O_STAT, }; use crate::ahci::hba::HbaMem; -#[derive(Clone)] enum Handle { List(Vec), // Dir contents buffer Disk(usize), // Disk index @@ -165,25 +164,6 @@ impl SchemeBlock for DiskScheme { })) } - fn xdup(&mut self, id: usize, buf: &[u8], _: &CallerCtx) -> Result> { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let new_handle = { - let handle = self.handles.get(&id).ok_or(Error::new(EBADF))?; - handle.clone() - }; - - let new_id = self.next_id; - self.next_id += 1; - self.handles.insert(new_id, new_handle); - Ok(Some(OpenResult::ThisScheme { - number: new_id, - flags: NewFdFlags::POSITIONED, - })) - } - fn fstat(&mut self, id: usize, stat: &mut Stat) -> Result> { match *self.handles.get(&id).ok_or(Error::new(EBADF))? { Handle::List(ref data) => { diff --git a/storage/bcm2835-sdhcid/src/scheme.rs b/storage/bcm2835-sdhcid/src/scheme.rs index 27777290bb..70bf4772e0 100644 --- a/storage/bcm2835-sdhcid/src/scheme.rs +++ b/storage/bcm2835-sdhcid/src/scheme.rs @@ -1,18 +1,16 @@ use std::collections::BTreeMap; use std::fmt::Write; use std::str; -use std::sync::{Arc, Mutex}; use driver_block::{Disk, DiskWrapper}; use syscall::schemev2::NewFdFlags; use syscall::{ - Error, Result, Stat, EACCES, EBADF, EINVAL, EISDIR, ENOENT, ENOLCK, EOVERFLOW, MODE_DIR, - MODE_FILE, O_DIRECTORY, O_STAT, + Error, Result, Stat, EACCES, EBADF, EISDIR, ENOENT, ENOLCK, EOVERFLOW, MODE_DIR, MODE_FILE, + O_DIRECTORY, O_STAT, }; use redox_scheme::{CallerCtx, OpenResult, SchemeBlock}; -#[derive(Clone)] enum Handle { List(Vec), // Dir contents buffer Disk(usize), // Disk index @@ -155,22 +153,6 @@ impl SchemeBlock for DiskScheme { } } - fn dup(&mut self, id: usize, buf: &[u8]) -> Result> { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let new_handle = { - let handle = self.handles.get(&id).ok_or(Error::new(EBADF))?; - handle.clone() - }; - - let new_id = self.next_id; - self.next_id += 1; - self.handles.insert(new_id, new_handle); - Ok(Some(new_id)) - } - fn fstat(&mut self, id: usize, stat: &mut Stat) -> Result> { match *self.handles.get(&id).ok_or(Error::new(EBADF))? { Handle::List(ref data) => { diff --git a/storage/ided/src/scheme.rs b/storage/ided/src/scheme.rs index d2ceaa4ad6..ff0a63e58a 100644 --- a/storage/ided/src/scheme.rs +++ b/storage/ided/src/scheme.rs @@ -6,14 +6,13 @@ use std::sync::{Arc, Mutex}; use driver_block::{Disk, DiskWrapper}; use syscall::schemev2::NewFdFlags; use syscall::{ - Error, Result, Stat, EACCES, EBADF, EINVAL, EISDIR, ENOENT, ENOLCK, EOVERFLOW, MODE_DIR, - MODE_FILE, O_DIRECTORY, O_STAT, + Error, Result, Stat, EACCES, EBADF, EISDIR, ENOENT, ENOLCK, EOVERFLOW, MODE_DIR, MODE_FILE, + O_DIRECTORY, O_STAT, }; use crate::ide::Channel; use redox_scheme::{CallerCtx, OpenResult, SchemeBlock}; -#[derive(Clone)] enum Handle { List(Vec), // Dir contents buffer Disk(usize), // Disk index @@ -168,22 +167,6 @@ impl SchemeBlock for DiskScheme { } } - fn dup(&mut self, id: usize, buf: &[u8]) -> Result> { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let new_handle = { - let handle = self.handles.get(&id).ok_or(Error::new(EBADF))?; - handle.clone() - }; - - let new_id = self.next_id; - self.next_id += 1; - self.handles.insert(new_id, new_handle); - Ok(Some(new_id)) - } - fn fstat(&mut self, id: usize, stat: &mut Stat) -> Result> { match *self.handles.get(&id).ok_or(Error::new(EBADF))? { Handle::List(ref data) => { diff --git a/storage/nvmed/src/scheme.rs b/storage/nvmed/src/scheme.rs index 772b72e8b6..493a08293b 100644 --- a/storage/nvmed/src/scheme.rs +++ b/storage/nvmed/src/scheme.rs @@ -9,15 +9,14 @@ use std::{cmp, str}; use redox_scheme::{CallerCtx, OpenResult, SchemeBlock}; use syscall::schemev2::NewFdFlags; use syscall::{ - Error, Result, Stat, EACCES, EBADF, EINVAL, EISDIR, ENOENT, ENOLCK, EOVERFLOW, MODE_DIR, - MODE_FILE, O_DIRECTORY, O_STAT, + Error, Result, Stat, EACCES, EBADF, EISDIR, ENOENT, ENOLCK, EOVERFLOW, MODE_DIR, MODE_FILE, + O_DIRECTORY, O_STAT, }; use crate::nvme::{Nvme, NvmeNamespace}; use partitionlib::{LogicalBlockSize, PartitionTable}; -#[derive(Clone)] enum Handle { List(Vec), // entries Disk(u32), // disk num @@ -271,22 +270,6 @@ impl SchemeBlock for DiskScheme { })) } - fn dup(&mut self, id: usize, buf: &[u8]) -> Result> { - if !buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let new_handle = { - let handle = self.handles.get(&id).ok_or(Error::new(EBADF))?; - handle.clone() - }; - - let new_id = self.next_id; - self.next_id += 1; - self.handles.insert(new_id, new_handle); - Ok(Some(new_id)) - } - fn fstat(&mut self, id: usize, stat: &mut Stat) -> Result> { match *self.handles.get(&id).ok_or(Error::new(EBADF))? { Handle::List(ref data) => { diff --git a/storage/virtio-blkd/src/scheme.rs b/storage/virtio-blkd/src/scheme.rs index b3288516d4..217bf68f94 100644 --- a/storage/virtio-blkd/src/scheme.rs +++ b/storage/virtio-blkd/src/scheme.rs @@ -384,10 +384,6 @@ impl<'a> SchemeBlock for DiskScheme<'a> { } } - fn dup(&mut self, _old_id: usize, _buf: &[u8]) -> Result> { - todo!() - } - fn close(&mut self, id: usize) -> syscall::Result> { self.handles .remove(&id)