[package]
name = "ax-hal"
version = "0.5.27"
repository = "https://github.com/rcore-os/tgoskits"
edition.workspace = true
authors = ["Yuekai Jia <equation618@gmail.com>"]
description = "ArceOS hardware abstraction layer, provides unified APIs for platform-specific operations"
license.workspace = true

[features]
smp = [
    "axplat-dyn/smp",
    "ax-plat/smp",
]
irq = [
    "ax-plat/irq",
    "axplat-dyn/irq",
    "dep:ax-kspin",
]
fp-simd = [
    "ax-cpu/fp-simd",
    "axplat-dyn/fp-simd",
]
xuantie-c9xx = ["ax-cpu/xuantie-c9xx"]
rtc = ["axplat-dyn/rtc"]
paging = [
    "dep:ax-alloc",
    "dep:ax-page-table-multiarch",
    "ax-page-table-multiarch/ax-errno",
]
tls = ["ax-cpu/tls"]
uspace = ["paging", "ax-cpu/uspace", "axplat-dyn/uspace"]
hv = [
    "paging",
    "ax-cpu/arm-el2",
    "ax-cpu/exception-table",
    "ax-percpu/arm-el2",
    "axplat-dyn/hv",
]
host-test = []

default = []
ipi = ["irq"]

[dependencies]
ax-alloc = { workspace = true, optional = true }
ax-cpu.workspace = true
ax-kspin = { workspace = true, optional = true }
ax-plat.workspace = true
cfg-if.workspace = true
fdt-parser = "0.4"
heapless = "0.9"
ax-kernel-guard.workspace = true
log.workspace = true
ax-memory-addr.workspace = true
ax-page-table-multiarch = { workspace = true, optional = true }
ax-percpu = { workspace = true, features = ["non-zero-vma"] }
axplat-dyn = { workspace = true, default-features = false }
rdrive.workspace = true
spin.workspace = true

[build-dependencies]
quote = "1.0"
