From 6686c73d26e04464d1c71be6dfdd571ea59f5245 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sun, 19 Apr 2026 10:41:23 +0200 Subject: [PATCH] Implement on_close method of SchemeSync instead of using a separate method --- drivers/graphics/driver-graphics/src/lib.rs | 2 -- drivers/graphics/fbbootlogd/src/main.rs | 3 ++- drivers/graphics/fbbootlogd/src/scheme.rs | 4 ---- drivers/pcid/src/main.rs | 2 +- drivers/pcid/src/scheme.rs | 4 +--- drivers/usb/xhcid/src/main.rs | 4 ++-- drivers/usb/xhcid/src/xhci/scheme.rs | 7 ++++--- ramfs/src/main.rs | 3 ++- ramfs/src/scheme.rs | 5 ++--- 9 files changed, 14 insertions(+), 20 deletions(-) diff --git a/drivers/graphics/driver-graphics/src/lib.rs b/drivers/graphics/driver-graphics/src/lib.rs index 741139c10b..3bca38db1f 100644 --- a/drivers/graphics/driver-graphics/src/lib.rs +++ b/drivers/graphics/driver-graphics/src/lib.rs @@ -978,9 +978,7 @@ impl SchemeSync for GraphicsSchemeInner { let ptr = T::map_dumb_buffer(&mut self.adapter, framebuffer); Ok(unsafe { ptr.add(offset as usize) } as usize) } -} -impl GraphicsSchemeInner { fn on_close(&mut self, id: usize) { self.handles.remove(id); } diff --git a/drivers/graphics/fbbootlogd/src/main.rs b/drivers/graphics/fbbootlogd/src/main.rs index 2aa69bb56f..e3d97e6d91 100644 --- a/drivers/graphics/fbbootlogd/src/main.rs +++ b/drivers/graphics/fbbootlogd/src/main.rs @@ -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; diff --git a/drivers/graphics/fbbootlogd/src/scheme.rs b/drivers/graphics/fbbootlogd/src/scheme.rs index 4ba933afec..65bc6630b5 100644 --- a/drivers/graphics/fbbootlogd/src/scheme.rs +++ b/drivers/graphics/fbbootlogd/src/scheme.rs @@ -249,7 +249,3 @@ impl SchemeSync for FbbootlogScheme { Ok(buf.len()) } } - -impl FbbootlogScheme { - pub fn on_close(&mut self, _id: usize) {} -} diff --git a/drivers/pcid/src/main.rs b/drivers/pcid/src/main.rs index ec0dd54bb6..01acb7c6d5 100644 --- a/drivers/pcid/src/main.rs +++ b/drivers/pcid/src/main.rs @@ -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, }; diff --git a/drivers/pcid/src/scheme.rs b/drivers/pcid/src/scheme.rs index c2caf804f9..bb9f39a318 100644 --- a/drivers/pcid/src/scheme.rs +++ b/drivers/pcid/src/scheme.rs @@ -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, .. }, diff --git a/drivers/usb/xhcid/src/main.rs b/drivers/usb/xhcid/src/main.rs index 25b2fdd673..f290bc0d59 100644 --- a/drivers/usb/xhcid/src/main.rs +++ b/drivers/usb/xhcid/src/main.rs @@ -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( .expect("xhcid: failed to write scheme"); } RequestKind::OnClose { id } => { - hci.on_close(id); + (&*hci).on_close(id); } _ => {} } diff --git a/drivers/usb/xhcid/src/xhci/scheme.rs b/drivers/usb/xhcid/src/xhci/scheme.rs index f2d439a450..b524f5d834 100644 --- a/drivers/usb/xhcid/src/xhci/scheme.rs +++ b/drivers/usb/xhcid/src/xhci/scheme.rs @@ -2350,12 +2350,13 @@ impl SchemeSync for &Xhci { _ => Err(Error::new(EBADF)), } } -} -impl Xhci { - pub fn on_close(&self, fd: usize) { + + fn on_close(&mut self, fd: usize) { self.handles.remove(&fd); } +} +impl Xhci { pub fn get_endp_status(&self, port_num: PortId, endp_num: u8) -> Result { let port_state = self.port_states.get(&port_num).ok_or(Error::new(EBADFD))?; diff --git a/ramfs/src/main.rs b/ramfs/src/main.rs index 51709fb588..418460dcbf 100644 --- a/ramfs/src/main.rs +++ b/ramfs/src/main.rs @@ -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; diff --git a/ramfs/src/scheme.rs b/ramfs/src/scheme.rs index 36390995ac..2b4998760f 100644 --- a/ramfs/src/scheme.rs +++ b/ramfs/src/scheme.rs @@ -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; };