mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-09 13:26:48 +00:00
Access the console device table with IRQ disabled
This commit is contained in:
parent
e4fd51bc6f
commit
bd8be26b30
@ -28,7 +28,7 @@ pub fn register_device(name: String, device: Arc<dyn AnyConsoleDevice>) {
|
|||||||
.get()
|
.get()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.console_device_table
|
.console_device_table
|
||||||
.lock()
|
.lock_irq_disabled()
|
||||||
.insert(name, device);
|
.insert(name, device);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,13 +37,17 @@ pub fn get_device(str: &str) -> Option<Arc<dyn AnyConsoleDevice>> {
|
|||||||
.get()
|
.get()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.console_device_table
|
.console_device_table
|
||||||
.lock()
|
.lock_irq_disabled()
|
||||||
.get(str)
|
.get(str)
|
||||||
.cloned()
|
.cloned()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn all_devices() -> Vec<(String, Arc<dyn AnyConsoleDevice>)> {
|
pub fn all_devices() -> Vec<(String, Arc<dyn AnyConsoleDevice>)> {
|
||||||
let console_devs = COMPONENT.get().unwrap().console_device_table.lock();
|
let console_devs = COMPONENT
|
||||||
|
.get()
|
||||||
|
.unwrap()
|
||||||
|
.console_device_table
|
||||||
|
.lock_irq_disabled();
|
||||||
console_devs
|
console_devs
|
||||||
.iter()
|
.iter()
|
||||||
.map(|(name, device)| (name.clone(), device.clone()))
|
.map(|(name, device)| (name.clone(), device.clone()))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user