Expand description
Architecture facade (HAL) for Strat9-OS
This module is the ONLY architecture-neutral entry point that non-arch
kernel code may use. All references to crate::arch::x86_64::... outside
of the arch/ directory have been migrated here (jalon R0 of the RISC-V
port plan: see doc/riscv-port-implementation.md).
Design:
- Under
target_arch = "x86_64", this module re-exports the existingx86_64backend verbatim (zero behaviour change). - Under
target_arch = "riscv64", a minimal bring-up backend provides the same API surface (subset growing with each jalon). - New code MUST use these re-exports, never a concrete backend directly.
Re-exports§
pub use backend::percpu;pub use backend::serial;pub use backend::cli;pub use backend::hlt;pub use backend::interrupts_enabled;pub use backend::restore_flags;pub use backend::save_flags_and_cli;pub use backend::sti;pub use backend::rdtsc;pub use backend::cpuid;pub use backend::cpuid;pub use backend::speaker;pub use crate::arch::x86_64::percpu::MAX_CPUS;pub use crate::arch::x86_64::apic;pub use crate::arch::x86_64::boot_timestamp;pub use crate::arch::x86_64::clac;pub use crate::arch::x86_64::gdt;pub use crate::arch::x86_64::idt;pub use crate::arch::x86_64::init_cpu_extensions;pub use crate::arch::x86_64::io;pub use crate::arch::x86_64::ioapic;pub use crate::arch::x86_64::keyboard;pub use crate::arch::x86_64::keyboard_layout;pub use crate::arch::x86_64::mouse;pub use crate::arch::x86_64::msi;pub use crate::arch::x86_64::pci;pub use crate::arch::x86_64::pic;pub use crate::arch::x86_64::rdmsr;pub use crate::arch::x86_64::ring3_diag;pub use crate::arch::x86_64::smp;pub use crate::arch::x86_64::stac;pub use crate::arch::x86_64::syscall;pub use crate::arch::x86_64::timer;pub use crate::arch::x86_64::tlb;pub use crate::arch::x86_64::tss;pub use crate::arch::x86_64::vga;pub use crate::arch::x86_64::vgabuf;pub use crate::arch::x86_64::wrmsr;pub use crate::arch::x86_64::xgetbv;pub use crate::arch::x86_64::xsetbv;
Modules§
- backend
- The active backend, as
crate::arch::backend::*.