Crate axhal

Source
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 or unimplemented!(). 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.
  • tls: Enable kernel space thread-local storage support.
  • rtc: Enable real-time clock support.
  • uspace: Enable user space support.

Modules§

asm
Wrapper functions for assembly instructions.
console
Console input and output.
context
CPU register states for context switching.
irqirq
Interrupt management.
mem
Physical memory management.
pagingpaging
Page table manipulation.
percpu
CPU-local data structures.
power
CPU power management.
time
Time-related operations.
tlstls
Thread Local Storage (TLS) support.
trap
Trap handling.

Functions§

init_early
Initializes the platform at the early stage for the primary core.
init_early_secondarysmp
Initializes the platform at the early stage for secondary cores.
init_later
Initializes the platform at the later stage for the primary core.
init_later_secondarysmp
Initializes the platform at the later stage for secondary cores.
init_percpu
Initializes CPU-local data structures for the primary core.
init_percpu_secondarysmp
Initializes CPU-local data structures for secondary cores.