Implement on_close method of SchemeSync instead of using a separate method
This commit is contained in:
@@ -978,9 +978,7 @@ impl<T: GraphicsAdapter> SchemeSync for GraphicsSchemeInner<T> {
|
||||
let ptr = T::map_dumb_buffer(&mut self.adapter, framebuffer);
|
||||
Ok(unsafe { ptr.add(offset as usize) } as usize)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: GraphicsAdapter> GraphicsSchemeInner<T> {
|
||||
fn on_close(&mut self, id: usize) {
|
||||
self.handles.remove(id);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@ use event::EventQueue;
|
||||
use inputd::ConsumerHandleEvent;
|
||||
use libredox::errno::EAGAIN;
|
||||
use orbclient::Event;
|
||||
use redox_scheme::{scheme::SchemeState, RequestKind, SignalBehavior, Socket};
|
||||
use redox_scheme::scheme::{SchemeState, SchemeSync};
|
||||
use redox_scheme::{RequestKind, SignalBehavior, Socket};
|
||||
|
||||
use crate::scheme::FbbootlogScheme;
|
||||
|
||||
|
||||
@@ -249,7 +249,3 @@ impl SchemeSync for FbbootlogScheme {
|
||||
Ok(buf.len())
|
||||
}
|
||||
}
|
||||
|
||||
impl FbbootlogScheme {
|
||||
pub fn on_close(&mut self, _id: usize) {}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ use pci_types::{
|
||||
PciHeader as TyPciHeader, PciPciBridgeHeader,
|
||||
};
|
||||
use redox_scheme::{
|
||||
scheme::{register_sync_scheme, SchemeState},
|
||||
scheme::{register_sync_scheme, SchemeState, SchemeSync},
|
||||
RequestKind, SignalBehavior,
|
||||
};
|
||||
|
||||
|
||||
@@ -304,10 +304,8 @@ impl SchemeSync for PciScheme {
|
||||
_ => Err(Error::new(EBADF)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl PciScheme {
|
||||
pub fn on_close(&mut self, id: usize) {
|
||||
fn on_close(&mut self, id: usize) {
|
||||
match self.handles.remove(id) {
|
||||
Some(HandleWrapper {
|
||||
inner: Handle::Channel { addr, .. },
|
||||
|
||||
@@ -38,7 +38,7 @@ use pcid_interface::irq_helpers::{
|
||||
use pcid_interface::{PciFeature, PciFeatureInfo, PciFunctionHandle};
|
||||
|
||||
use redox_scheme::{
|
||||
scheme::{register_sync_scheme, SchemeState},
|
||||
scheme::{register_sync_scheme, SchemeState, SchemeSync},
|
||||
RequestKind, SignalBehavior, Socket,
|
||||
};
|
||||
|
||||
@@ -180,7 +180,7 @@ fn daemon_with_context_size<const N: usize>(
|
||||
.expect("xhcid: failed to write scheme");
|
||||
}
|
||||
RequestKind::OnClose { id } => {
|
||||
hci.on_close(id);
|
||||
(&*hci).on_close(id);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
@@ -2350,12 +2350,13 @@ impl<const N: usize> SchemeSync for &Xhci<N> {
|
||||
_ => Err(Error::new(EBADF)),
|
||||
}
|
||||
}
|
||||
}
|
||||
impl<const N: usize> Xhci<N> {
|
||||
pub fn on_close(&self, fd: usize) {
|
||||
|
||||
fn on_close(&mut self, fd: usize) {
|
||||
self.handles.remove(&fd);
|
||||
}
|
||||
}
|
||||
|
||||
impl<const N: usize> Xhci<N> {
|
||||
pub fn get_endp_status(&self, port_num: PortId, endp_num: u8) -> Result<EndpointStatus> {
|
||||
let port_state = self.port_states.get(&port_num).ok_or(Error::new(EBADFD))?;
|
||||
|
||||
|
||||
+2
-1
@@ -3,7 +3,8 @@ use std::{env, process};
|
||||
mod filesystem;
|
||||
mod scheme;
|
||||
|
||||
use redox_scheme::{scheme::SchemeState, RequestKind, SignalBehavior};
|
||||
use redox_scheme::scheme::{SchemeState, SchemeSync};
|
||||
use redox_scheme::{RequestKind, SignalBehavior};
|
||||
|
||||
use self::scheme::Scheme;
|
||||
|
||||
|
||||
+2
-3
@@ -677,9 +677,8 @@ impl SchemeSync for Scheme {
|
||||
_ => Err(Error::new(EOPNOTSUPP)),
|
||||
}
|
||||
}
|
||||
}
|
||||
impl Scheme {
|
||||
pub fn on_close(&mut self, fd: usize) {
|
||||
|
||||
fn on_close(&mut self, fd: usize) {
|
||||
let Some(Handle::Inode(inode)) = self.handles.remove(fd) else {
|
||||
return;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user