[package]
name = "starry-kernel"
version = "0.5.13"
edition.workspace = true
description = "A Linux-compatible OS kernel built on ArceOS unikernel"
authors = [
"Azure-stars <Azure_stars@126.com>",
"Yuekai Jia <equation618@gmail.com>",
"KylinSoft Co., Ltd. <https://www.kylinos.cn/>",
"朝倉水希 <asakuramizu111@gmail.com>",
"Mivik <mivikq@gmail.com>",
]
repository.workspace = true
license.workspace = true
[features]
default = ["dynamic_debug"]
dev-log = []
ext4 = ["ax-fs/ext4"]
input = ["dep:ax-input", "ax-feat/input"]
memtrack = ["ax-feat/backtrace", "ax-alloc/tracking"]
rknpu = ["dep:ax-driver", "ax-driver/rknpu"]
k230-kpu = ["ax-feat/xuantie-c9xx", "dep:axklib", "dep:k230-kpu"]
plat-dyn = [
"ax-feat/plat-dyn",
"dep:ax-driver",
"ax-driver/usb",
"dep:crab-usb",
"dep:rdrive",
]
vsock = ["ax-feat/vsock"]
dynamic_debug = ["ax-feat/ipi"]
sg2002 = [
"dep:ax-dma",
"dep:sg2002-tpu",
"dep:some-serial",
"dep:sg200x-bsp",
"dep:tock-registers",
]
stack-guard-page = ["ax-feat/stack-guard-page"]
[dependencies]
ax-feat = { workspace = true, features = [
"fp-simd",
"irq",
"uspace",
"multitask",
"task-ext",
"sched-rr",
"rtc",
"fs-ng-ext4",
"net-ng",
] }
ax-alloc = { workspace = true }
ax-config.workspace = true
ax-display.workspace = true
ax-fs = { version = "0.5.16", path = "../../arceos/modules/axfs-ng", package = "ax-fs-ng" }
ax-cpu = { workspace = true, features = ["fp-simd"] }
ax-input = { workspace = true, optional = true }
ax-lazyinit.workspace = true
ax-log.workspace = true
ax-mm.workspace = true
axnet = { version = "0.7.0", path = "../../arceos/modules/axnet-ng", package = "ax-net-ng" }
ax-driver = { workspace = true, optional = true }
axklib = { workspace = true, optional = true }
axplat-dyn = { workspace = true, optional = true }
ax-runtime.workspace = true
ax-sync.workspace = true
ax-task.workspace = true
ax-dma = { workspace = true, optional = true }
sg2002-tpu = { workspace = true, optional = true }
k230-kpu = { workspace = true, optional = true }
crab-usb = { workspace = true, optional = true }
rdrive = { workspace = true, optional = true }
axbacktrace = { workspace = true }
ax-errno = { workspace = true }
axnsproxy = { workspace = true }
axfs-ng-vfs = { workspace = true }
ax-io = { workspace = true }
axpoll = { workspace = true }
bitflags = "2.10"
bitmaps = { version = "3.2", default-features = false }
bytemuck = { version = "1.23", features = ["unsound_ptr_pod_impl", "derive"] }
cfg-if = "1.0"
chrono = { version = "0.4", default-features = false }
downcast-rs = { version = "2.0", default-features = false, features = ["sync"] }
enum_dispatch = "0.3"
event-listener = { version = "5.4", default-features = false }
extern-trait = "0.4"
flatten_objects = "0.2.4"
hashbrown = "0.16"
indoc = "2"
inherit-methods-macro = "0.1.0"
ax-kernel-guard = { workspace = true }
kernel-elf-parser = "0.3.4"
ax-kspin = { workspace = true, features = ["lock_api"] }
linux-raw-sys = { version = "0.12", default-features = false, features = [
"no_std",
"general",
"net",
"netlink",
"prctl",
"system",
"ioctl",
"loop_device",
] }
lock_api = { version = "0.4", features = ["arc_lock"] }
ax-memory-addr = { workspace = true }
ax-memory-set = { workspace = true }
num_enum = { version = "0.7", default-features = false }
ouroboros = { version = "0.18", default-features = false }
ax-percpu = { workspace = true }
rand = { version = "0.10", default-features = false, features = ["alloc"] }
ringbuf = { version = "0.4.8", default-features = false, features = ["alloc"] }
scope-local = { workspace = true }
slab = { version = "0.4.9", default-features = false }
spin = { workspace = true }
starry-process = { workspace = true }
starry-signal = { workspace = true }
starry-vm = { workspace = true }
strum = { version = "0.28", default-features = false, features = ["derive"] }
syscalls = { version = "0.8", default-features = false }
uluru = "3.1.0"
weak-map = "0.1.1"
xmas-elf = "0.9"
zerocopy = { version = "0.8", features = ["derive"] }
ax-ipi = { workspace = true }
static-keys = "0.8"
ddebug = "0.5"
kprobe = "0.5"
kmod = { version = "0.2", package = "kmod-tools" }
kmod-loader = "0.2.1"
lwprintf-rs = "0.3"
some-serial = { workspace = true, optional = true }
sg200x-bsp = { workspace = true, optional = true }
tock-registers = { version = "0.9", optional = true }
ktracepoint = "0.6"
ksym = "0.6"
kbpf-basic = "0.5.7"
rbpf = { version = "0.4", default-features = false }
[target.'cfg(target_arch = "x86_64")'.dependencies]
x86 = "0.52"
[target.'cfg(any(target_arch = "riscv32", target_arch = "riscv64"))'.dependencies]
riscv.workspace = true
[target.'cfg(not(any(target_arch = "aarch64", target_arch = "loongarch64")))'.dependencies]
ax-page-table-multiarch = { workspace = true, features = ["copy-from"] }