diff --git a/src/arch/x86_64/kernel/acpi.rs b/src/arch/x86_64/kernel/acpi.rs index ebd95c194b708d21154efe9cc17db5e868c29e50..ae10eb07557de22524e05255328232d363c63d75 100644 --- a/src/arch/x86_64/kernel/acpi.rs +++ b/src/arch/x86_64/kernel/acpi.rs @@ -1,6 +1,7 @@ use core::convert::Infallible; use core::{mem, ptr, slice, str}; +use x86::io::*; use x86_64::structures::paging::PhysFrame; use crate::arch::x86_64::kernel::processor; @@ -8,7 +9,6 @@ use crate::arch::x86_64::mm::paging::{ BasePageSize, PageSize, PageTableEntryFlags, PageTableEntryFlagsExt, }; use crate::arch::x86_64::mm::{paging, virtualmem, PhysAddr, VirtAddr}; -use crate::x86::io::*; /// Memory at this physical address is supposed to contain a pointer to the Extended BIOS Data Area (EBDA). const EBDA_PTR_LOCATION: PhysAddr = PhysAddr(0x0000_040E); diff --git a/src/arch/x86_64/kernel/apic.rs b/src/arch/x86_64/kernel/apic.rs index bde3b1c4462ce7ca82028b7ea8c9be4f52ab0e6d..7748e188c9e76716e16ed89bbb39c3745a1a26a5 100644 --- a/src/arch/x86_64/kernel/apic.rs +++ b/src/arch/x86_64/kernel/apic.rs @@ -11,6 +11,9 @@ use core::{cmp, fmt, mem, u32}; use arch::x86_64::kernel::percore::*; use arch::x86_64::kernel::{idt, irq, processor}; use crossbeam_utils::CachePadded; +#[cfg(feature = "smp")] +use x86::controlregs::*; +use x86::msr::*; #[cfg(feature = "acpi")] use crate::arch::x86_64::kernel::acpi; @@ -23,9 +26,6 @@ use crate::arch::x86_64::mm::{paging, virtualmem, PhysAddr, VirtAddr}; use crate::collections::irqsave; use crate::config::*; use crate::scheduler::CoreId; -#[cfg(feature = "smp")] -use crate::x86::controlregs::*; -use crate::x86::msr::*; use crate::{arch, env, mm, scheduler}; const MP_FLT_SIGNATURE: u32 = 0x5f504d5f; diff --git a/src/arch/x86_64/kernel/gdt.rs b/src/arch/x86_64/kernel/gdt.rs index 93079a26a403366932adc88e390e859feb873d52..084ffc421cfe933fa2e860be8f068bb00b7692be 100644 --- a/src/arch/x86_64/kernel/gdt.rs +++ b/src/arch/x86_64/kernel/gdt.rs @@ -2,16 +2,17 @@ use alloc::boxed::Box; use core::mem; use core::sync::atomic::Ordering; +use x86::bits64::segmentation::*; +use x86::bits64::task::*; +use x86::dtables::{self, DescriptorTablePointer}; +use x86::segmentation::*; +use x86::task::*; +use x86::Ring; + use super::scheduler::TaskStacks; use super::CURRENT_STACK_ADDRESS; use crate::arch::x86_64::kernel::percore::*; use crate::config::*; -use crate::x86::bits64::segmentation::*; -use crate::x86::bits64::task::*; -use crate::x86::dtables::{self, DescriptorTablePointer}; -use crate::x86::segmentation::*; -use crate::x86::task::*; -use crate::x86::Ring; pub const GDT_NULL: u16 = 0; pub const GDT_KERNEL_CODE: u16 = 1; diff --git a/src/arch/x86_64/kernel/idt.rs b/src/arch/x86_64/kernel/idt.rs index 75c904d164d81b461fb815f81d1c3bfba221f601..8c0132c8c8515a8ee2f930589ed44501792ed333 100644 --- a/src/arch/x86_64/kernel/idt.rs +++ b/src/arch/x86_64/kernel/idt.rs @@ -1,10 +1,11 @@ use core::sync::atomic::{AtomicBool, Ordering}; +use x86::bits64::paging::VAddr; +use x86::dtables::{self, DescriptorTablePointer}; +use x86::segmentation::{SegmentSelector, SystemDescriptorTypes64}; +use x86::Ring; + use crate::arch::x86_64::kernel::gdt; -use crate::x86::bits64::paging::VAddr; -use crate::x86::dtables::{self, DescriptorTablePointer}; -use crate::x86::segmentation::{SegmentSelector, SystemDescriptorTypes64}; -use crate::x86::Ring; /// An interrupt gate descriptor. /// diff --git a/src/arch/x86_64/kernel/irq.rs b/src/arch/x86_64/kernel/irq.rs index dd0e4a30ad9b9ba054cd616cbc431133e3f9848f..d35ba137d0368e9d4dc2d5b4a55b38389d0f2171 100644 --- a/src/arch/x86_64/kernel/irq.rs +++ b/src/arch/x86_64/kernel/irq.rs @@ -1,5 +1,5 @@ use alloc::collections::BTreeMap; -use alloc::string::String; +use alloc::string::{String, ToString}; use core::arch::asm; use core::fmt; @@ -7,7 +7,6 @@ use x86::bits64::rflags::{self, RFlags}; use x86::irq::PageFaultError; use x86::{controlregs, irq}; -use crate::alloc::string::ToString; use crate::arch::x86_64::kernel::percore::*; use crate::arch::x86_64::kernel::{apic, idt, processor}; use crate::scheduler; diff --git a/src/arch/x86_64/kernel/pci.rs b/src/arch/x86_64/kernel/pci.rs index db8606d8efdff3e526f6226ff4fc1cad4f20ad5f..ae0d1da9581f169089741747a65e19fb745abc11 100644 --- a/src/arch/x86_64/kernel/pci.rs +++ b/src/arch/x86_64/kernel/pci.rs @@ -2,6 +2,7 @@ use alloc::vec::Vec; use core::{fmt, u32, u8}; use num_derive::{FromPrimitive, ToPrimitive}; +use x86::io::*; use crate::arch::x86_64::mm::{PhysAddr, VirtAddr}; use crate::collections::irqsave; @@ -12,7 +13,6 @@ use crate::drivers::virtio::depr::virtio_fs::VirtioFsDriver; use crate::drivers::virtio::transport::pci as pci_virtio; use crate::drivers::virtio::transport::pci::VirtioDriver; use crate::synch::spinlock::SpinlockIrqSave; -use crate::x86::io::*; // TODO: should these be pub? currently needed since used in virtio.rs maybe use getter methods to be more flexible. pub const PCI_MAX_BUS_NUMBER: u8 = 32; diff --git a/src/arch/x86_64/kernel/percore.rs b/src/arch/x86_64/kernel/percore.rs index a817f888b53944e9671b092beb480d42bf8e2960..12415c9843c62357d26f344729e34ef45ec02f09 100644 --- a/src/arch/x86_64/kernel/percore.rs +++ b/src/arch/x86_64/kernel/percore.rs @@ -3,11 +3,11 @@ use core::sync::atomic::{AtomicU64, Ordering}; use core::{mem, ptr}; use crossbeam_utils::CachePadded; +use x86::bits64::task::TaskStateSegment; +use x86::msr::*; use crate::arch::x86_64::kernel::irq::IrqStatistics; use crate::scheduler::{CoreId, PerCoreScheduler}; -use crate::x86::bits64::task::TaskStateSegment; -use crate::x86::msr::*; pub static mut PERCORE: PerCoreVariables = CachePadded::new(PerCoreInnerVariables::new(0)); diff --git a/src/arch/x86_64/kernel/pic.rs b/src/arch/x86_64/kernel/pic.rs index 2fdf24f5f013b0db1825df4fda40d90c72829a49..572d8135ea57f61af280bca458ef9333a0a8c74c 100644 --- a/src/arch/x86_64/kernel/pic.rs +++ b/src/arch/x86_64/kernel/pic.rs @@ -1,6 +1,7 @@ +use x86::io::*; + use crate::arch::x86_64::kernel::idt; use crate::arch::x86_64::kernel::irq::ExceptionStackFrame; -use crate::x86::io::*; const PIC1_COMMAND_PORT: u16 = 0x20; const PIC1_DATA_PORT: u16 = 0x21; diff --git a/src/arch/x86_64/kernel/pit.rs b/src/arch/x86_64/kernel/pit.rs index d258e194d83615232007dff1892b1af6ad1b9808..3863ca930aaeb3c6b2dd5668b41a69df7a59b33f 100644 --- a/src/arch/x86_64/kernel/pit.rs +++ b/src/arch/x86_64/kernel/pit.rs @@ -1,7 +1,8 @@ #![allow(dead_code)] +use x86::io::*; + use crate::arch::x86_64::kernel::pic; -use crate::x86::io::*; const PIT_CLOCK: u64 = 1_193_182; pub const PIT_INTERRUPT_NUMBER: u8 = pic::PIC1_INTERRUPT_OFFSET; diff --git a/src/arch/x86_64/kernel/processor.rs b/src/arch/x86_64/kernel/processor.rs index 098e87d14f21b3dae56d10190ddafbecf4f413bb..3223188b9460c6226c1d6cebd755f0f08cac34c4 100644 --- a/src/arch/x86_64/kernel/processor.rs +++ b/src/arch/x86_64/kernel/processor.rs @@ -13,14 +13,14 @@ use core::{fmt, u32}; use hermit_entry::boot_info::PlatformInfo; use qemu_exit::QEMUExit; use x86::bits64::segmentation; +use x86::controlregs::*; +use x86::cpuid::*; +use x86::msr::*; #[cfg(feature = "acpi")] use crate::arch::x86_64::kernel::acpi; use crate::arch::x86_64::kernel::{boot_info, idt, irq, pic, pit}; use crate::env; -use crate::x86::controlregs::*; -use crate::x86::cpuid::*; -use crate::x86::msr::*; const IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP: u64 = 1 << 16; const IA32_MISC_ENABLE_SPEEDSTEP_LOCK: u64 = 1 << 20; diff --git a/src/arch/x86_64/kernel/serial.rs b/src/arch/x86_64/kernel/serial.rs index 4ec9e2d47769e68d17d296647fbe8e85e6ab78b0..7c401cf403ec3b91a95c0f06c43f864f67707cb3 100644 --- a/src/arch/x86_64/kernel/serial.rs +++ b/src/arch/x86_64/kernel/serial.rs @@ -1,7 +1,8 @@ use core::hint::spin_loop; +use x86::io::*; + use crate::env; -use crate::x86::io::*; const UART_TX: u16 = 0; const UART_IER: u16 = 1; diff --git a/src/arch/x86_64/kernel/vga.rs b/src/arch/x86_64/kernel/vga.rs index 7a68abd1601195dcc7eb473b58edafc2db58c99a..422e91ce9ffdbba7b46374d367e2935d49bafffa 100644 --- a/src/arch/x86_64/kernel/vga.rs +++ b/src/arch/x86_64/kernel/vga.rs @@ -1,6 +1,7 @@ +use x86::io::*; + use crate::arch::x86_64::mm::paging::{BasePageSize, PageTableEntryFlags, PageTableEntryFlagsExt}; use crate::arch::x86_64::mm::{paging, PhysAddr, VirtAddr}; -use crate::x86::io::*; const CRT_CONTROLLER_ADDRESS_PORT: u16 = 0x3D4; const CRT_CONTROLLER_DATA_PORT: u16 = 0x3D5; diff --git a/src/drivers/net/rtl8139.rs b/src/drivers/net/rtl8139.rs index a4067f82ce691e7fb0d1497ad4870cbd482f49ee..333e42d17635b58d364bb438bdb8c0f9e832db5b 100644 --- a/src/drivers/net/rtl8139.rs +++ b/src/drivers/net/rtl8139.rs @@ -6,6 +6,8 @@ use alloc::boxed::Box; use alloc::collections::{btree_map, BTreeMap}; use core::mem; +use x86::io::*; + use crate::arch::kernel::irq::*; use crate::arch::kernel::pci; use crate::arch::kernel::percore::increment_irq_counter; @@ -13,7 +15,6 @@ use crate::arch::mm::paging::virt_to_phys; use crate::arch::mm::VirtAddr; use crate::drivers::error::DriverError; use crate::drivers::net::{network_irqhandler, NetworkInterface}; -use crate::x86::io::*; /// size of the receive buffer const RX_BUF_LEN: usize = 8192; diff --git a/src/lib.rs b/src/lib.rs index 2f36448d238e59722cd130fbb6cda99386b8f8b7..899da10afed7716fc2724200307d194394dce7aa 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -44,10 +44,6 @@ extern crate log; #[cfg(not(target_os = "none"))] #[macro_use] extern crate std; -#[cfg(target_arch = "aarch64")] -extern crate aarch64; -#[cfg(target_arch = "x86_64")] -extern crate x86; use alloc::alloc::Layout; use core::alloc::GlobalAlloc;