[package]
name = "aster-nix"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
align_ext = { path = "../ostd/libs/align_ext" }
aster-input = { path = "comps/input" }
aster-block = { path = "comps/block" }
aster-network = { path = "comps/network" }
aster-console = { path = "comps/console" }
aster-softirq = { path = "comps/softirq" }
aster-logger = { path = "comps/logger" }
aster-mlsdisk = { path = "comps/mlsdisk" }
aster-time = { path = "comps/time" }
aster-virtio = { path = "comps/virtio" }
aster-rights = { path = "libs/aster-rights" }
component = { path = "libs/comp-sys/component" }
controlled = { path = "libs/comp-sys/controlled" }
osdk-frame-allocator = { path = "../osdk/deps/frame-allocator" }
osdk-heap-allocator = { path = "../osdk/deps/heap-allocator" }
ostd = { path = "../ostd" }
typeflags = { path = "libs/typeflags" }
typeflags-util = { path = "libs/typeflags-util" }
aster-rights-proc = { path = "libs/aster-rights-proc" }
aster-util = { path = "libs/aster-util" }
aster-bigtcp = { path = "libs/aster-bigtcp" }
atomic-integer-wrapper = { path = "libs/atomic-integer-wrapper" }
id-alloc = { path = "../ostd/libs/id-alloc" }
int-to-c-enum = { path = "libs/int-to-c-enum" }
cpio-decoder = { path = "libs/cpio-decoder" }
intrusive-collections = "0.9.5"
paste = "1.0"
time = { version = "0.3", default-features = false, features = ["alloc"] }
tdx-guest = { version = "0.2.1", optional = true }

# parse elf file
xmas-elf = "0.8.0"
# data-structures
bitflags = "1.3"
keyable-arc = { path = "libs/keyable-arc" }
# unzip initramfs
libflate = { version = "2", default-features = false }
core2 = { version = "0.4", default-features = false, features = ["alloc"] }
lending-iterator = "0.1.7"
spin = "0.9.4"
lru = "0.12.3"
log = "0.4"
bitvec = { version = "1.0", default-features = false, features = ["alloc"] }
hashbrown = "0.14"
rand = { version = "0.8.5", default-features = false, features = [
    "small_rng",
    "std_rng",
] }
inherit-methods-macro = { git = "https://github.com/asterinas/inherit-methods-macro", rev = "98f7e3e" }
getset = "0.1.2"
takeable = "0.2.2"
cfg-if = "1.0"
# Fixed point numbers
# TODO: fork this crate to rewrite all the (unnecessary) unsafe usage
fixed = "1.28.0"

[target.riscv64gc-unknown-none-elf.dependencies]
riscv = { version = "0.11.1", features = ["s-mode"] }

[features]
all = ["cvm_guest"]

cvm_guest = ["dep:tdx-guest", "ostd/cvm_guest"]

[lints]
workspace = true
