Expand description
ArceOS hardware abstraction layer, provides unified APIs for platform-specific operations.
It does the bootstrapping and initialization process for the specified platform, and provides useful operations on the hardware.
Currently supported platforms (specify by cargo features):
x86-pc: Standard PC with x86_64 ISA.riscv64-qemu-virt: QEMU virt machine with RISC-V ISA.aarch64-qemu-virt: QEMU virt machine with AArch64 ISA.aarch64-raspi: Raspberry Pi with AArch64 ISA.dummy: If none of the above platform is selected, the dummy platform will be used. In this platform, most of the operations are no-op orunimplemented!(). This platform is mainly used for cargo test.
Cargo Features
smp: Enable SMP (symmetric multiprocessing) support.fp_simd: Enable floating-point and SIMD support.paging: Enable page table manipulation.irq: Enable interrupt handling support.
Modules
- Architecture-specific types and operations.
 - Console input and output.
 - CPU-related operations.
 - irq
irqInterrupt management. - Physical memory management.
 - Miscellaneous operation, e.g. terminate the system.
 - mp
smpMulti-core operations. - paging
pagingPage table manipulation. - Time-related operations.
 - tls
tlsThread Local Storage (TLS) support. - Trap handling.
 
Constants
- KERNEL_PROCESS_ID
monolithicThe kernel process ID, which is always 1. 
Functions
- Initializes the platform devices for the primary CPU.
 - Initializes the platform devices for secondary CPUs.
 - Returns the name of the platform.
 - set_tss_stack_topx86-64set tss stack top