Merge close and on_close scheme calls
This commit is contained in:
+1
-1
@@ -78,7 +78,7 @@ impl FileDescription {
|
||||
.ok_or(Error::new(EBADF))?
|
||||
.clone();
|
||||
|
||||
scheme.on_close(self.number)
|
||||
scheme.close(self.number)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -484,9 +484,6 @@ pub trait KernelScheme: Send + Sync + 'static {
|
||||
fn close(&self, id: usize) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
fn on_close(&self, id: usize) -> Result<()> {
|
||||
self.close(id)
|
||||
}
|
||||
fn kcall(
|
||||
&self,
|
||||
id: usize,
|
||||
|
||||
+4
-7
@@ -1494,15 +1494,12 @@ impl KernelScheme for UserScheme {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn close(&self, file: usize) -> Result<()> {
|
||||
let inner = self.inner.upgrade().ok_or(Error::new(ENODEV))?;
|
||||
inner.call(Opcode::Close, [file], &mut PageSpan::empty())?;
|
||||
Ok(())
|
||||
}
|
||||
fn on_close(&self, id: usize) -> Result<()> {
|
||||
fn close(&self, id: usize) -> Result<()> {
|
||||
let inner = self.inner.upgrade().ok_or(Error::new(ENODEV))?;
|
||||
if !inner.supports_on_close {
|
||||
return self.close(id);
|
||||
let inner = self.inner.upgrade().ok_or(Error::new(ENODEV))?;
|
||||
inner.call(Opcode::Close, [id], &mut PageSpan::empty())?;
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
inner.todo.send(Sqe {
|
||||
|
||||
Reference in New Issue
Block a user