axhal 0.2.2-preview.4

ArceOS hardware abstraction layer, provides unified APIs for platform-specific operations
Documentation
[package]
name = "axhal"
version = "0.2.2-preview.4"
edition.workspace = true
authors = ["Yuekai Jia <equation618@gmail.com>"]
description = "ArceOS hardware abstraction layer, provides unified APIs for platform-specific operations"
license.workspace = true
homepage.workspace = true
repository = "https://github.com/arceos-org/arceos/tree/main/modules/axhal"
documentation = "https://arceos-org.github.io/arceos/axhal/index.html"
readme = "README.md"

[features]
smp = [
    "axplat-x86-pc?/smp",
    "axplat-aarch64-qemu-virt?/smp",
    "axplat-riscv64-qemu-virt?/smp",
    "axplat-loongarch64-qemu-virt?/smp",
    "axplat/smp",
]
irq = [
    "dep:linkme",
    "axplat-x86-pc?/irq",
    "axplat-aarch64-qemu-virt?/irq",
    "axplat-riscv64-qemu-virt?/irq",
    "axplat-loongarch64-qemu-virt?/irq",
    "axplat/irq",
]
fp-simd = [
    "axcpu/fp-simd",
    "axplat-x86-pc?/fp-simd",
    "axplat-aarch64-qemu-virt?/fp-simd",
    "axplat-riscv64-qemu-virt?/fp-simd",
    "axplat-loongarch64-qemu-virt?/fp-simd",
]
rtc = [
    "axplat-x86-pc?/rtc",
    "axplat-aarch64-qemu-virt?/rtc",
    "axplat-riscv64-qemu-virt?/rtc",
    "axplat-loongarch64-qemu-virt?/rtc",
]
paging = ["dep:axalloc", "dep:page_table_multiarch"]
tls = ["axcpu/tls"]
uspace = ["paging", "axcpu/uspace"]

# Custom or default platforms
myplat = []
defplat = [
    "dep:axplat-x86-pc",
    "dep:axplat-aarch64-qemu-virt",
    "dep:axplat-riscv64-qemu-virt",
    "dep:axplat-loongarch64-qemu-virt",
]

default = []
ipi = ["irq"]

[dependencies]
axalloc = { version = "0.2.2-preview.1", optional = true }
axconfig = { version = "0.2.2-preview.1" }
axcpu = { version = "0.3.0-preview.2" }
axplat = { version = ">=0.3.0-preview.2, <0.3.0" }
cfg-if.workspace = true
heapless = "0.9"
kernel_guard.workspace = true
lazyinit.workspace = true
linkme = { version = "0.3.33", optional = true }
log.workspace = true
memory_addr.workspace = true
page_table_multiarch = { version = "0.5", optional = true, features = ["axerrno"] }
percpu.workspace = true
fdt-parser = "0.4"

[target.'cfg(target_arch = "x86_64")'.dependencies]
axplat-x86-pc = { version = ">=0.3.0-preview.2, <0.3.0", optional = true }

[target.'cfg(target_arch = "aarch64")'.dependencies]
axplat-aarch64-qemu-virt = { version = ">=0.3.0-preview.2, <0.3.0", optional = true }

[target.'cfg(target_arch = "riscv64")'.dependencies]
axplat-riscv64-qemu-virt = { version = ">=0.3.0-preview.2, <0.3.0", optional = true }

[target.'cfg(target_arch = "loongarch64")'.dependencies]
axplat-loongarch64-qemu-virt = { version = ">=0.3.0-preview.2, <0.3.0", optional = true }

[build-dependencies]
axconfig = { version = "0.2.2-preview.1" }