From b79c69cbfca48d4d1e6c3306ddcccc2122131f4d Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 29 Sep 2016 17:45:01 -0600 Subject: [PATCH] Add dup to ahci disk scheme --- drivers/ahcid/src/scheme.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/ahcid/src/scheme.rs b/drivers/ahcid/src/scheme.rs index 76b8b8a..4b39ae3 100644 --- a/drivers/ahcid/src/scheme.rs +++ b/drivers/ahcid/src/scheme.rs @@ -43,6 +43,15 @@ impl Scheme for DiskScheme { } } + fn dup(&self, id: usize) -> Result { + let mut handles = self.handles.lock(); + let mut handle = handles.get_mut(&id).ok_or(Error::new(EBADF))?; + + let new_id = self.next_id.fetch_add(1, Ordering::SeqCst); + self.handles.lock().insert(new_id, handle.clone()); + Ok(new_id) + } + fn read(&self, id: usize, buf: &mut [u8]) -> Result { let mut handles = self.handles.lock(); let mut handle = handles.get_mut(&id).ok_or(Error::new(EBADF))?;