diff --git a/kernel/comps/framebuffer/src/lib.rs b/kernel/comps/framebuffer/src/lib.rs index 5bcea971..1a5f5408 100644 --- a/kernel/comps/framebuffer/src/lib.rs +++ b/kernel/comps/framebuffer/src/lib.rs @@ -16,7 +16,7 @@ use component::{init_component, ComponentInitError}; use font8x8::UnicodeFonts; use ostd::{ boot::{boot_info, memory_region::MemoryRegionType}, - io_mem::IoMem, + io::IoMem, mm::{VmIo, PAGE_SIZE}, sync::SpinLock, }; diff --git a/kernel/comps/virtio/src/device/input/device.rs b/kernel/comps/virtio/src/device/input/device.rs index 71645dc6..277fb207 100644 --- a/kernel/comps/virtio/src/device/input/device.rs +++ b/kernel/comps/virtio/src/device/input/device.rs @@ -16,7 +16,7 @@ use aster_util::{field_ptr, safe_ptr::SafePtr}; use bitflags::bitflags; use log::{debug, info}; use ostd::{ - io_mem::IoMem, + io::IoMem, mm::{DmaDirection, DmaStream, FrameAllocOptions, HasDaddr, VmIo, PAGE_SIZE}, offset_of, sync::{LocalIrqDisabled, RwLock, SpinLock}, diff --git a/kernel/comps/virtio/src/device/input/mod.rs b/kernel/comps/virtio/src/device/input/mod.rs index 3f5fe3a0..5dc79380 100644 --- a/kernel/comps/virtio/src/device/input/mod.rs +++ b/kernel/comps/virtio/src/device/input/mod.rs @@ -28,7 +28,7 @@ pub mod device; use aster_util::safe_ptr::SafePtr; -use ostd::{io_mem::IoMem, Pod}; +use ostd::{io::IoMem, Pod}; use crate::transport::VirtioTransport; diff --git a/kernel/comps/virtio/src/device/socket/config.rs b/kernel/comps/virtio/src/device/socket/config.rs index 59b1d5c3..52f7a207 100644 --- a/kernel/comps/virtio/src/device/socket/config.rs +++ b/kernel/comps/virtio/src/device/socket/config.rs @@ -2,7 +2,7 @@ use aster_util::safe_ptr::SafePtr; use bitflags::bitflags; -use ostd::{io_mem::IoMem, mm::PodOnce, Pod}; +use ostd::{io::IoMem, mm::PodOnce, Pod}; use crate::transport::VirtioTransport; diff --git a/kernel/comps/virtio/src/transport/mmio/device.rs b/kernel/comps/virtio/src/transport/mmio/device.rs index ad370ffa..c3a42ee3 100644 --- a/kernel/comps/virtio/src/transport/mmio/device.rs +++ b/kernel/comps/virtio/src/transport/mmio/device.rs @@ -14,7 +14,7 @@ use ostd::{ }, pci::cfg_space::Bar, }, - io_mem::IoMem, + io::IoMem, mm::{DmaCoherent, PAGE_SIZE}, offset_of, sync::RwLock, diff --git a/kernel/comps/virtio/src/transport/mmio/multiplex.rs b/kernel/comps/virtio/src/transport/mmio/multiplex.rs index 1d361d1f..fb97345d 100644 --- a/kernel/comps/virtio/src/transport/mmio/multiplex.rs +++ b/kernel/comps/virtio/src/transport/mmio/multiplex.rs @@ -6,7 +6,7 @@ use core::fmt::Debug; use aster_rights::{ReadOp, TRightSet, WriteOp}; use aster_util::safe_ptr::SafePtr; use ostd::{ - io_mem::IoMem, + io::IoMem, sync::RwLock, trap::{IrqCallbackFunction, IrqLine, TrapFrame}, }; diff --git a/kernel/comps/virtio/src/transport/mod.rs b/kernel/comps/virtio/src/transport/mod.rs index f75a8f3c..794457d1 100644 --- a/kernel/comps/virtio/src/transport/mod.rs +++ b/kernel/comps/virtio/src/transport/mod.rs @@ -7,7 +7,7 @@ use aster_util::safe_ptr::SafePtr; use ostd::{ arch::device::io_port::{PortRead, PortWrite}, bus::pci::cfg_space::Bar, - io_mem::IoMem, + io::IoMem, mm::{DmaCoherent, PodOnce}, trap::IrqCallbackFunction, Pod, diff --git a/kernel/comps/virtio/src/transport/pci/common_cfg.rs b/kernel/comps/virtio/src/transport/pci/common_cfg.rs index a3b022ba..15623801 100644 --- a/kernel/comps/virtio/src/transport/pci/common_cfg.rs +++ b/kernel/comps/virtio/src/transport/pci/common_cfg.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MPL-2.0 use aster_util::safe_ptr::SafePtr; -use ostd::{io_mem::IoMem, Pod}; +use ostd::{io::IoMem, Pod}; use super::capability::VirtioPciCapabilityData; use crate::transport::pci::capability::VirtioPciCpabilityType; diff --git a/kernel/comps/virtio/src/transport/pci/device.rs b/kernel/comps/virtio/src/transport/pci/device.rs index 8809c415..73d01abe 100644 --- a/kernel/comps/virtio/src/transport/pci/device.rs +++ b/kernel/comps/virtio/src/transport/pci/device.rs @@ -13,7 +13,7 @@ use ostd::{ }, BusProbeError, }, - io_mem::IoMem, + io::IoMem, mm::DmaCoherent, offset_of, trap::IrqCallbackFunction, diff --git a/kernel/comps/virtio/src/transport/pci/legacy.rs b/kernel/comps/virtio/src/transport/pci/legacy.rs index 5cc0908e..f1902a00 100644 --- a/kernel/comps/virtio/src/transport/pci/legacy.rs +++ b/kernel/comps/virtio/src/transport/pci/legacy.rs @@ -10,7 +10,7 @@ use ostd::{ pci::{capability::CapabilityData, cfg_space::Bar, common_device::PciCommonDevice}, BusProbeError, }, - io_mem::IoMem, + io::IoMem, mm::{DmaCoherent, HasDaddr, PAGE_SIZE}, trap::IrqCallbackFunction, }; diff --git a/ostd/src/arch/riscv/timer/mod.rs b/ostd/src/arch/riscv/timer/mod.rs index d6c4c75e..5c0a687f 100644 --- a/ostd/src/arch/riscv/timer/mod.rs +++ b/ostd/src/arch/riscv/timer/mod.rs @@ -6,7 +6,7 @@ use core::sync::atomic::{AtomicU64, Ordering}; use spin::Once; -use crate::{arch::boot::DEVICE_TREE, io_mem::IoMem}; +use crate::{arch::boot::DEVICE_TREE, io::IoMem}; /// The timer frequency (Hz). Here we choose 1000Hz since 1000Hz is easier for unit conversion and /// convenient for timer. What's more, the frequency cannot be set too high or too low, 1000Hz is diff --git a/ostd/src/bus/mmio/common_device.rs b/ostd/src/bus/mmio/common_device.rs index 3601a669..0e67702a 100644 --- a/ostd/src/bus/mmio/common_device.rs +++ b/ostd/src/bus/mmio/common_device.rs @@ -7,7 +7,7 @@ use log::info; use super::VIRTIO_MMIO_MAGIC; use crate::{ - io_mem::IoMem, + io::IoMem, mm::{ paddr_to_vaddr, page_prop::{CachePolicy, PageFlags}, diff --git a/ostd/src/bus/mmio/device.rs b/ostd/src/bus/mmio/device.rs index a8992ff8..187b5ab9 100644 --- a/ostd/src/bus/mmio/device.rs +++ b/ostd/src/bus/mmio/device.rs @@ -7,7 +7,7 @@ use log::info; use super::VIRTIO_MMIO_MAGIC; use crate::{ - io_mem::IoMem, + device::io_mem::IoMem, mm::{paddr_to_vaddr, Paddr, VmIo}, trap::IrqLine, }; diff --git a/ostd/src/bus/pci/cfg_space.rs b/ostd/src/bus/pci/cfg_space.rs index df9e1402..a3dab720 100644 --- a/ostd/src/bus/pci/cfg_space.rs +++ b/ostd/src/bus/pci/cfg_space.rs @@ -12,7 +12,7 @@ use bitflags::bitflags; use super::PciDeviceLocation; use crate::{ arch::device::io_port::{PortRead, PortWrite}, - io_mem::IoMem, + io::IoMem, mm::{ page_prop::{CachePolicy, PageFlags}, PodOnce, VmIoOnce, diff --git a/ostd/src/io_mem.rs b/ostd/src/io/io_mem.rs similarity index 100% rename from ostd/src/io_mem.rs rename to ostd/src/io/io_mem.rs diff --git a/ostd/src/io/mod.rs b/ostd/src/io/mod.rs new file mode 100644 index 00000000..63c86f8f --- /dev/null +++ b/ostd/src/io/mod.rs @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: MPL-2.0 + +//! Device I/O access and corresponding allocator. +//! +//! This module allows device drivers to access the device I/O they need +//! through _allocators_. There are two types of device I/O: +//! - `IoMem` for memory I/O (MMIO). +//! - `IoPort` for port I/O (PIO). + +mod io_mem; + +pub use self::io_mem::IoMem; diff --git a/ostd/src/lib.rs b/ostd/src/lib.rs index 45adfa17..4e7c17c2 100644 --- a/ostd/src/lib.rs +++ b/ostd/src/lib.rs @@ -31,8 +31,8 @@ pub mod bus; pub mod collections; pub mod console; pub mod cpu; +pub mod io; mod error; -pub mod io_mem; pub mod logger; pub mod mm; pub mod panic;