From 15313f98af2519d6733824d3c8ef89a44626c8cd Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jackpot51@gmail.com> Date: Sat, 20 Oct 2018 08:08:31 -0600 Subject: [PATCH] Remove unnecessary dup implementations --- src/scheme/debug.rs | 16 ------------- src/scheme/initfs.rs | 27 +--------------------- src/scheme/irq.rs | 8 ------- src/scheme/live.rs | 22 ------------------ src/scheme/pipe.rs | 52 ------------------------------------------- src/scheme/root.rs | 17 -------------- src/scheme/sys/mod.rs | 22 ------------------ src/scheme/time.rs | 15 ------------- 8 files changed, 1 insertion(+), 178 deletions(-) diff --git a/src/scheme/debug.rs b/src/scheme/debug.rs index fa559f37..17e016fa 100644 --- a/src/scheme/debug.rs +++ b/src/scheme/debug.rs @@ -59,22 +59,6 @@ impl Scheme for DebugScheme { Ok(id) } - fn dup(&self, id: usize, buf: &[u8]) -> Result<usize> { - if ! buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let flags = { - let handles = handles(); - *handles.get(&id).ok_or(Error::new(EBADF))? - }; - - let new_id = NEXT_ID.fetch_add(1, Ordering::SeqCst); - handles_mut().insert(new_id, flags); - - Ok(new_id) - } - /// Read the file `number` into the `buffer` /// /// Returns the number of bytes read diff --git a/src/scheme/initfs.rs b/src/scheme/initfs.rs index a283f382..113507ef 100644 --- a/src/scheme/initfs.rs +++ b/src/scheme/initfs.rs @@ -19,7 +19,6 @@ include!(concat!(env!("OUT_DIR"), "/gen.rs")); struct Handle { path: &'static [u8], - flags: usize, data: &'static [u8], mode: u16, seek: usize @@ -42,7 +41,7 @@ impl InitFsScheme { } impl Scheme for InitFsScheme { - fn open(&self, path: &[u8], flags: usize, _uid: u32, _gid: u32) -> Result<usize> { + fn open(&self, path: &[u8], _flags: usize, _uid: u32, _gid: u32) -> Result<usize> { let path_utf8 = str::from_utf8(path).or(Err(Error::new(ENOENT)))?; let path_trimmed = path_utf8.trim_matches('/'); @@ -52,7 +51,6 @@ impl Scheme for InitFsScheme { let id = self.next_id.fetch_add(1, Ordering::SeqCst); self.handles.write().insert(id, Handle { path: entry.0, - flags: flags, data: (entry.1).0, mode: if (entry.1).1 { MODE_DIR | 0o755 } else { MODE_FILE | 0o744 }, seek: 0 @@ -65,29 +63,6 @@ impl Scheme for InitFsScheme { Err(Error::new(ENOENT)) } - fn dup(&self, id: usize, buf: &[u8]) -> Result<usize> { - if ! buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let (path, flags, data, mode, seek) = { - let handles = self.handles.read(); - let handle = handles.get(&id).ok_or(Error::new(EBADF))?; - (handle.path, handle.flags, handle.data, handle.mode, handle.seek) - }; - - let id = self.next_id.fetch_add(1, Ordering::SeqCst); - self.handles.write().insert(id, Handle { - path: path, - flags: flags, - data: data, - mode: mode, - seek: seek - }); - - Ok(id) - } - fn read(&self, id: usize, buffer: &mut [u8]) -> Result<usize> { let mut handles = self.handles.write(); let handle = handles.get_mut(&id).ok_or(Error::new(EBADF))?; diff --git a/src/scheme/irq.rs b/src/scheme/irq.rs index d48e4c60..3c61091a 100644 --- a/src/scheme/irq.rs +++ b/src/scheme/irq.rs @@ -48,14 +48,6 @@ impl Scheme for IrqScheme { } } - fn dup(&self, file: usize, buf: &[u8]) -> Result<usize> { - if ! buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - Ok(file) - } - fn read(&self, file: usize, buffer: &mut [u8]) -> Result<usize> { // Ensures that the length of the buffer is larger than the size of a usize if buffer.len() >= mem::size_of::<usize>() { diff --git a/src/scheme/live.rs b/src/scheme/live.rs index 95afdad8..f753e2b3 100644 --- a/src/scheme/live.rs +++ b/src/scheme/live.rs @@ -64,28 +64,6 @@ impl Scheme for DiskScheme { Ok(id) } - fn dup(&self, id: usize, buf: &[u8]) -> Result<usize> { - if ! buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let (path, data, mode, seek) = { - let handles = self.handles.read(); - let handle = handles.get(&id).ok_or(Error::new(EBADF))?; - (handle.path, handle.data.clone(), handle.mode, handle.seek) - }; - - let id = self.next_id.fetch_add(1, Ordering::SeqCst); - self.handles.write().insert(id, Handle { - path: path, - data: data, - mode: mode, - seek: seek - }); - - Ok(id) - } - fn read(&self, id: usize, buffer: &mut [u8]) -> Result<usize> { let mut handles = self.handles.write(); let mut handle = handles.get_mut(&id).ok_or(Error::new(EBADF))?; diff --git a/src/scheme/pipe.rs b/src/scheme/pipe.rs index d7659b67..3112abc4 100644 --- a/src/scheme/pipe.rs +++ b/src/scheme/pipe.rs @@ -53,38 +53,6 @@ impl PipeScheme { } impl Scheme for PipeScheme { - fn dup(&self, id: usize, buf: &[u8]) -> Result<usize> { - if ! buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let mut pipes = pipes_mut(); - - let read_option = if let Some(pipe) = pipes.0.get(&id) { - Some(pipe.dup()?) - } else { - None - }; - if let Some(pipe) = read_option { - let pipe_id = PIPE_NEXT_ID.fetch_add(1, Ordering::SeqCst); - pipes.0.insert(pipe_id, Arc::new(pipe)); - return Ok(pipe_id); - } - - let write_option = if let Some(pipe) = pipes.1.get(&id) { - Some(pipe.dup()?) - } else { - None - }; - if let Some(pipe) = write_option { - let pipe_id = PIPE_NEXT_ID.fetch_add(1, Ordering::SeqCst); - pipes.1.insert(pipe_id, Arc::new(pipe)); - return Ok(pipe_id); - } - - Err(Error::new(EBADF)) - } - fn read(&self, id: usize, buf: &mut [u8]) -> Result<usize> { // Clone to prevent deadlocks let pipe = { @@ -186,16 +154,6 @@ impl PipeRead { } } - fn dup(&self) -> Result<Self> { - Ok(PipeRead { - scheme_id: self.scheme_id, - event_id: self.event_id, - flags: AtomicUsize::new(self.flags.load(Ordering::SeqCst)), - condition: self.condition.clone(), - vec: self.vec.clone() - }) - } - fn fcntl(&self, cmd: usize, arg: usize) -> Result<usize> { match cmd { F_GETFL => Ok(self.flags.load(Ordering::SeqCst)), @@ -264,16 +222,6 @@ impl PipeWrite { } } - fn dup(&self) -> Result<Self> { - Ok(PipeWrite { - scheme_id: self.scheme_id, - event_id: self.event_id, - flags: AtomicUsize::new(self.flags.load(Ordering::SeqCst)), - condition: self.condition.clone(), - vec: self.vec.clone() - }) - } - fn fcntl(&self, cmd: usize, arg: usize) -> Result<usize> { match cmd { F_GETFL => Ok(self.flags.load(Ordering::SeqCst)), diff --git a/src/scheme/root.rs b/src/scheme/root.rs index f98af13c..e8c42709 100644 --- a/src/scheme/root.rs +++ b/src/scheme/root.rs @@ -127,23 +127,6 @@ impl Scheme for RootScheme { } } - fn dup(&self, file: usize, buf: &[u8]) -> Result<usize> { - if ! buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let mut handles = self.handles.write(); - let inner = { - let inner = handles.get(&file).ok_or(Error::new(EBADF))?; - inner.clone() - }; - - let id = self.next_id.fetch_add(1, Ordering::SeqCst); - handles.insert(id, inner); - - Ok(id) - } - fn read(&self, file: usize, buf: &mut [u8]) -> Result<usize> { let handle = { let handles = self.handles.read(); diff --git a/src/scheme/sys/mod.rs b/src/scheme/sys/mod.rs index 91380f14..a98d1ba8 100644 --- a/src/scheme/sys/mod.rs +++ b/src/scheme/sys/mod.rs @@ -96,28 +96,6 @@ impl Scheme for SysScheme { Err(Error::new(ENOENT)) } - fn dup(&self, id: usize, buf: &[u8]) -> Result<usize> { - if ! buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let (path, data, mode, seek) = { - let handles = self.handles.read(); - let handle = handles.get(&id).ok_or(Error::new(EBADF))?; - (handle.path, handle.data.clone(), handle.mode, handle.seek) - }; - - let id = self.next_id.fetch_add(1, Ordering::SeqCst); - self.handles.write().insert(id, Handle { - path: path, - data: data, - mode: mode, - seek: seek - }); - - Ok(id) - } - fn read(&self, id: usize, buffer: &mut [u8]) -> Result<usize> { let mut handles = self.handles.write(); let handle = handles.get_mut(&id).ok_or(Error::new(EBADF))?; diff --git a/src/scheme/time.rs b/src/scheme/time.rs index 2e9c09a5..a7f9180d 100644 --- a/src/scheme/time.rs +++ b/src/scheme/time.rs @@ -45,21 +45,6 @@ impl Scheme for TimeScheme { Ok(id) } - fn dup(&self, id: usize, buf: &[u8]) -> Result<usize> { - if ! buf.is_empty() { - return Err(Error::new(EINVAL)); - } - - let clock = { - let handles = self.handles.read(); - *handles.get(&id).ok_or(Error::new(EBADF))? - }; - - let new_id = self.next_id.fetch_add(1, Ordering::SeqCst); - self.handles.write().insert(new_id, clock); - Ok(new_id) - } - fn read(&self, id: usize, buf: &mut [u8]) -> Result<usize> { let clock = { let handles = self.handles.read(); -- GitLab