diff --git a/kernel/src/device/evdev/mod.rs b/kernel/src/device/evdev/mod.rs index 713163644..cd2319cfb 100644 --- a/kernel/src/device/evdev/mod.rs +++ b/kernel/src/device/evdev/mod.rs @@ -28,7 +28,7 @@ use file::{ use ostd::sync::SpinLock; use spin::Once; -use super::char::{acquire_major, register, unregister, MajorIdOwner}; +use super::registry::char::{acquire_major, register, unregister, MajorIdOwner}; use crate::{ fs::{ device::{Device, DeviceType}, diff --git a/kernel/src/device/fb.rs b/kernel/src/device/fb.rs index 5c1effa19..9dc73ab64 100644 --- a/kernel/src/device/fb.rs +++ b/kernel/src/device/fb.rs @@ -9,7 +9,7 @@ use ostd::{ Pod, }; -use super::char; +use super::registry::char; use crate::{ current_userspace, events::IoEvents, diff --git a/kernel/src/device/mem/mod.rs b/kernel/src/device/mem/mod.rs index 64c009018..1adea59cc 100644 --- a/kernel/src/device/mem/mod.rs +++ b/kernel/src/device/mem/mod.rs @@ -27,7 +27,7 @@ use file::MemFile; pub use file::{getrandom, geturandom}; use spin::Once; -use super::char::{acquire_major, register, MajorIdOwner}; +use super::registry::char::{acquire_major, register, MajorIdOwner}; use crate::{ fs::{ device::{Device, DeviceType}, diff --git a/kernel/src/device/misc/mod.rs b/kernel/src/device/misc/mod.rs index 1abd5b496..6aa7cbc07 100644 --- a/kernel/src/device/misc/mod.rs +++ b/kernel/src/device/misc/mod.rs @@ -7,7 +7,7 @@ use device_id::MajorId; use spin::Once; -use super::char::{acquire_major, MajorIdOwner}; +use super::registry::char::{acquire_major, MajorIdOwner}; #[cfg(all(target_arch = "x86_64", feature = "cvm_guest"))] pub mod tdxguest; @@ -19,6 +19,6 @@ pub(super) fn init_in_first_kthread() { #[cfg(target_arch = "x86_64")] ostd::if_tdx_enabled!({ - super::char::register(tdxguest::TdxGuest::new()).unwrap(); + super::registry::char::register(tdxguest::TdxGuest::new()).unwrap(); }); } diff --git a/kernel/src/device/mod.rs b/kernel/src/device/mod.rs index 625f65ff3..8fbaa8a01 100644 --- a/kernel/src/device/mod.rs +++ b/kernel/src/device/mod.rs @@ -1,12 +1,11 @@ // SPDX-License-Identifier: MPL-2.0 -mod char; -mod disk; mod evdev; mod fb; mod mem; pub mod misc; mod pty; +mod registry; mod shm; pub mod tty; @@ -20,7 +19,7 @@ use crate::{ }; pub fn init_in_first_kthread() { - disk::init_in_first_kthread(); + registry::init_in_first_kthread(); mem::init_in_first_kthread(); misc::init_in_first_kthread(); evdev::init_in_first_kthread(); @@ -39,8 +38,7 @@ pub fn init_in_first_process(ctx: &Context) -> Result<()> { tty::init_in_first_process()?; pty::init_in_first_process(&fs_resolver, ctx)?; shm::init_in_first_process(&fs_resolver, ctx)?; - char::init_in_first_process(&fs_resolver)?; - disk::init_in_first_process(&fs_resolver)?; + registry::init_in_first_process(&fs_resolver)?; Ok(()) } @@ -48,7 +46,7 @@ pub fn init_in_first_process(ctx: &Context) -> Result<()> { /// Looks up a device according to the device ID. pub fn get_device(devid: DeviceId) -> Result> { // TODO: Add support for looking up block devices. - char::lookup(devid).ok_or_else(|| { + registry::char::lookup(devid).ok_or_else(|| { Error::with_message(Errno::EINVAL, "the device ID is invalid or unsupported") }) } diff --git a/kernel/src/device/disk.rs b/kernel/src/device/registry/block.rs similarity index 100% rename from kernel/src/device/disk.rs rename to kernel/src/device/registry/block.rs diff --git a/kernel/src/device/char.rs b/kernel/src/device/registry/char.rs similarity index 100% rename from kernel/src/device/char.rs rename to kernel/src/device/registry/char.rs diff --git a/kernel/src/device/registry/mod.rs b/kernel/src/device/registry/mod.rs new file mode 100644 index 000000000..995d5ae6a --- /dev/null +++ b/kernel/src/device/registry/mod.rs @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MPL-2.0 + +use crate::{fs::fs_resolver::FsResolver, prelude::*}; + +mod block; +pub(super) mod char; + +pub(super) fn init_in_first_kthread() { + block::init_in_first_kthread(); +} + +pub(super) fn init_in_first_process(fs_resolver: &FsResolver) -> Result<()> { + char::init_in_first_process(fs_resolver)?; + block::init_in_first_process(fs_resolver)?; + + Ok(()) +} diff --git a/kernel/src/device/tty/device.rs b/kernel/src/device/tty/device.rs index 12f86d2bb..0962f1a14 100644 --- a/kernel/src/device/tty/device.rs +++ b/kernel/src/device/tty/device.rs @@ -12,7 +12,7 @@ use spin::Once; use super::n_tty::tty1_device; use crate::{ device::{ - char, + registry::char, tty::{ n_tty::{hvc0_device, VtDriver}, Tty, diff --git a/kernel/src/device/tty/n_tty.rs b/kernel/src/device/tty/n_tty.rs index 07e387522..50cdd5cda 100644 --- a/kernel/src/device/tty/n_tty.rs +++ b/kernel/src/device/tty/n_tty.rs @@ -10,7 +10,7 @@ use spin::Once; use super::{Tty, TtyDriver}; use crate::{ - device::char, + device::registry::char, events::IoEvents, fs::{ inode_handle::FileIo,