Skip to content
Snippets Groups Projects
Verified Commit fa7d1c82 authored by Jacob Lorentzon's avatar Jacob Lorentzon :speech_balloon:
Browse files

Replace Box<dyn Fn> with fn in sys: scheme.

parent acefb888
No related branches found
No related tags found
1 merge request!231Replace Box<dyn Fn> with fn in sys: scheme.
use alloc::boxed::Box;
use alloc::collections::BTreeMap; use alloc::collections::BTreeMap;
use alloc::vec::Vec; use alloc::vec::Vec;
use core::str; use core::str;
...@@ -30,33 +29,33 @@ struct Handle { ...@@ -30,33 +29,33 @@ struct Handle {
seek: usize seek: usize
} }
type SysFn = dyn Fn() -> Result<Vec<u8>> + Send + Sync; type SysFn = fn() -> Result<Vec<u8>>;
/// System information scheme /// System information scheme
pub struct SysScheme { pub struct SysScheme {
next_id: AtomicUsize, next_id: AtomicUsize,
files: BTreeMap<&'static str, Box<SysFn>>, files: BTreeMap<&'static str, SysFn>,
handles: RwLock<BTreeMap<usize, Handle>> handles: RwLock<BTreeMap<usize, Handle>>
} }
impl SysScheme { impl SysScheme {
pub fn new() -> SysScheme { pub fn new() -> SysScheme {
let mut files: BTreeMap<&'static str, Box<SysFn>> = BTreeMap::new(); let mut files: BTreeMap<&'static str, SysFn> = BTreeMap::new();
files.insert("block", Box::new(block::resource)); files.insert("block", block::resource);
files.insert("context", Box::new(context::resource)); files.insert("context", context::resource);
files.insert("cpu", Box::new(cpu::resource)); files.insert("cpu", cpu::resource);
files.insert("exe", Box::new(exe::resource)); files.insert("exe", exe::resource);
files.insert("iostat", Box::new(iostat::resource)); files.insert("iostat", iostat::resource);
files.insert("irq", Box::new(irq::resource)); files.insert("irq", irq::resource);
files.insert("log", Box::new(log::resource)); files.insert("log", log::resource);
files.insert("scheme", Box::new(scheme::resource)); files.insert("scheme", scheme::resource);
files.insert("scheme_num", Box::new(scheme_num::resource)); files.insert("scheme_num", scheme_num::resource);
files.insert("syscall", Box::new(syscall::resource)); files.insert("syscall", syscall::resource);
files.insert("uname", Box::new(uname::resource)); files.insert("uname", uname::resource);
files.insert("env", Box::new(|| Ok(Vec::from(crate::init_env())))); files.insert("env", || Ok(Vec::from(crate::init_env())));
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
files.insert("spurious_irq", Box::new(interrupt::irq::spurious_irq_resource)); files.insert("spurious_irq", interrupt::irq::spurious_irq_resource);
SysScheme { SysScheme {
next_id: AtomicUsize::new(0), next_id: AtomicUsize::new(0),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment